2014-04-05 45 views
0

我想添加一个JComboBox和一个JTextField到一个面板时,在组合框中选择一个项目。动态添加JCombobox和JTextField

我有这个面板的代码。

aantallenGebruikt.add(new JTextField("", 5)); 
onderdelenGebruikt.add(new JComboBox(onderdelenBox())); 
onderdelenGebruikt.get(0).addActionListener(MyFrame.this); 

panelAfronden = new JPanel(); 
panelAfronden.setLayout(new FlowLayout()); 

panelAfronden.add(new JLabel("Selecteer onderdeelNr en Vul gebruikte aantallen in")); 



panelAfronden2 = new JPanel(); 
panelAfronden2.setLayout(new FlowLayout()); 

panelAfronden2.add(onderdelenGebruikt.get(0)); 
panelAfronden2.add(aantallenGebruikt.get(0)); 

JScrollPane sPane = new JScrollPane(panelAfronden2); 
sPane.setPreferredSize(new Dimension(220, 230)); 

panelAfronden.add(sPane); 

panelAfronden.add(new JLabel("Opmerkingen")); 
opmerkingenAfronden = new JTextArea(5, 20); 
panelAfronden.add(opmerkingenAfronden); 

rondAf = new JButton("Rond Werkzaamheid Af"); 
rondAf.addActionListener(MyFrame.this); 
panelAfronden.add(rondAf); 

annuleer = new JButton("Annuleer"); 
annuleer.addActionListener(MyFrame.this); 
panelAfronden.add(annuleer); 

我有这样的ActionListener的

if(eventSource == onderdelenGebruikt){ 
     System.out.println("test"); 
    } 

我知道如何组合框和文本框添加到面板上,但目前,它甚至没有打印出来的test到控制台

回答

0

您的问题:

我知道如何将组合框和文本框添加到面板,但此刻它d甚至不会将测试打印到控制台上。

答:

商店JcomboBox一些地方,然后检查源ActionListener的参考。

做到这样:

final JComboBox comboBox = new JComboBox(onderdelenBox()); 
    onderdelenGebruikt.add(comboBox); 

    comboBox.addActionListener(MyFrame.this); 

ActionListener会这个样子。

if(eventSource == comboBox){ 
    System.out.println("test"); 
} 
+0

我刚刚那样做了,但是如何在“onderdelenGebruikt”中监听其他组合框的事件,我将动态添加? –

+0

我已更新我的帖子。请看看,您可以一次定义一个用于多个“JComboBox”的'ActionListener'。只需在'ActionListener'中检查源代码的实例。 – Braj

+0

所以如果我这样做'onderdeelNr = new JComboBox(onderdelenBox()); \t \t \t onderdelenGebruikt.add(onderdeelNr); \t \t \t JTextField onderdeelAantal = new JTextField(“”,5); \t \t \t aantallenGebruikt.add(onderdeelAantal); \t \t \t \t \t \t panelAfronden2.add(onderdeelNr); \t \t \t panelAfronden2.add(onderdeelAantal);'它应该工作? –