2017-07-27 48 views
0

基本上我想顯示JComboBox將有他們和我有關的附加信息的一個或兩個變量中選擇想顯示的用戶不僅僅是例如更加結構化的方式信息附加它們。是否有可能對中的JComboBox中的選項表格式顯示?

換句話說,我想在JComboBox中的選項看起來像這樣:

John Smith  Male 01/01/1980 
Jane Harrison Female 01/01/1980 

我不想什麼是簡單地添加的所有信息,以便它看起來像這樣:

John Smith (Male, 01/01/1980) 
Jane Harrison (Female, 01/01/1980) 

我很抱歉,如果這是重複的,但在我看來,與關鍵字JComboBox和表的大多數問題是關於「相反」的問題,即將一個JComboBox放在一個表內。

回答

0

我去到最後一個完全不同的解決方案,但認爲這個答案可能最終受益人。

您可以通過使用ListCellRenderer本質上設計JComboBox中的選項外觀。看到此粗例如:

String[][] ar = {{"aasdf","ff"},{"fd","werewfewf"}}; 
JComboBox<String[]> box = new JComboBox<>(ar); 
box.setRenderer(new TableListCellRenderer()); 
getContentPane().add(box,BorderLayout.NORTH); // You can add it wherever you want 

這是TableListCellRenderer類:

class TableListCellRenderer 
implements ListCellRenderer<String[]> 
{ 
    @Override 
    public Component getListCellRendererComponent(JList<? extends String[]> list, 
               String[] value, 
               int index, 
               boolean isSelected, 
               boolean cellHasFocus) { 
     JPanel ret = new JPanel(new GridLayout(1,2)); 
     ret.add(new JLabel(value[0])); 
     ret.add(new JLabel(value[1])); 
     return ret; 
    } 
} 

對於屏幕截圖參見下文。你可以看到,有一些需要解決的,你可以在實踐中使用此之前的一些缺陷,但那些最可能可以通過玩弄的JPanel的佈局來解決。

Screenshot of example

有關的進一步信息,請參見the tutorial page on the JComboBoxthe javadoc on the ListCellRenderer interface(其中包含有幫助的簡單的例子,)。

相關問題