2013-11-27 61 views
-1

我有一個桌子和四把組合框即「資產類別」,「部」,「分行」和「國家資產」。過濾使用組合框的表的Java

問題:現在我想能夠篩選我的表格,以便我可以選擇資產的類別「LAND & BUILDING」,並希望選擇資產的分支。

所以當我選擇「LAND & BUILDING」時,它顯示在我的表格中,當我選擇一個分支時,它也出現在表格中。所以表中的輸出變爲

ASSET CATEGORY | BRANCHES 
------------------|------------- 
LAND & BUILDING | BRANCH 1 

等等的其他組合框。我會很感激的幫助感謝

+1

您可以在Netbeans 7中以與使用文本編輯器編寫的Netbeans 6,Eclipse或Java文件完全相同的方式執行此操作。換句話說,Netbeans與它無關,是一個不相關的標籤。 –

+2

*「我真的很感謝你的幫助」*你有問題嗎?你有嘗試過什麼嗎?例如,Google針對「JTable過濾器教程」將頂部鏈接顯示爲[如何使用表格](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html),這似乎涵蓋了確切的要求。 –

+1

查看[如何使用表格](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html)並注意[排序和過濾](http:// docs .oracle.com/JavaSE的/教程/ uiswing /組件/ table.html#排序)部分 – MadProgrammer

回答

2

表排序和過濾是通過分揀對象管理。提供分揀對象的最簡單方法是autoCreateRowSorter綁定的屬性設置爲true:

JTable table = new JTable(); 
table.setAutoCreateRowSorter(true); 

然後,你可以使用RowFilter.regexFilter(String regex, int... indices)與分揀機。
請仔細查看官方教程頁面中包含示例的部分Sorting and Filter。您可以使用ItemListenerJComboBox創建新篩選器,以便在項目選擇事件中使用regexFiler函數。

jComboBox2.addItemListener(new ItemListener() { 

    @Override 
    public void itemStateChanged(ItemEvent e) { 

    JComboBox comb = (JComboBox)e.getSource(); 
    String selText = (String) comb.getSelectedItem(); 
    RowFilter<DefaultTableModel, Object> rf = null; 

    try { 
     rf = RowFilter.regexFilter(selText, 
           table.getColumnModel().getColumnIndex("ASSET CATEGORY")); 
     } catch (PatternSyntaxException ex) { 
        ex.printStackTrace(); 
     } 
     ((TableRowSorter)table.getRowSorter()).setRowFilter(rf); 

    } 
}); 
+0

[應該是有點複雜(HTTP:// stackoverflow.com/a/8187799/714968),[但](http://stackoverflow.com/questions/17854854/jtable-rowfilter-and-rowfilter-entry)+1方向.... – mKorbel

+0

@mKorbel,我看到。是的身份少頭將有問題:) +1到你的鏈接工作。 – Sage