فرز أعمدة متعددة في JTable
سؤال
وأنا أعلم ذلك JTable
يمكن الفرز حسب عمود واحد.ولكن هل من الممكن السماح بفرز أعمدة متعددة أم أنني بحاجة إلى كتابة الكود بنفسي؟
المحلول
يمكنك الفرز حسب أعمدة متعددة عن طريق تحديد أكثر من مفتاح فرز عند الاتصال setSortKeys
في ال RowSorter
الذي تستخدمه.
نصائح أخرى
تفحص JXTable.JXTable هو امتداد لـ JTable الذي يدعم الفرز متعدد الأعمدة، بالإضافة إلى الوظائف الأخرى التي لا يوفرها JTable.إنه متاح مجانًا من JDNC/SwingLabs.
يجب أن تكون قادرًا على ضبط TableRowSorter والمقارنة المرتبطة به.مثال:
TableModel myModel = createMyTableModel();
JTable table = new JTable(myModel);
TableRowSorter t = new TableRowSorter(myModel);
t.setComparator(column that the comparator works against, Comparator<?> comparator);
table.setRowSorter(new TableRowSorter(myModel));
ETable من مجموعة netbeans.
وهو جزء من org-netbeans-swing-outline.jar
بحث جوجل لا شيء لرفعه.يعد ETable في الأساس أساسًا لـ Outline (a TreeTable) ولكنه يحتوي على ترتيب متعدد الأعمدة مدمج بالإضافة إلى العديد من الميزات الرائعة الأخرى
"أعلم أن Jtable يمكنه الفرز حسب عمود واحد.ولكن هل من الممكن السماح بفرز أعمدة متعددة أم أنني بحاجة إلى كتابة الكود بنفسي؟"
تتم إدارة فرز الجدول وتصفيته بواسطة كائن فارز.أسهل طريقة لتوفير كائن فارز هي تعيين الخاصية المرتبطة autoCreateRowSorter إلى true؛
JTable table = new JTable();
table.setAutoCreateRowSorter(true);
يحدد هذا الإجراء فارز الصفوف الذي يعد مثيلًا لـ javax.swing.table.TableRowSorter.