我已经在该站点上查看了类似的问题,但是我似乎无法理解这个概念,因此我必须发表自己的问题才能获得针对我的特定答案。
我试图通过单击JButton btnAdd将输入到JTextField txtAddEng中的文本添加到JComboBox engBox中。
engBox = new JComboBox();
engBox.setMaximumRowCount(1000);
engBox.setModel(new DefaultComboBoxModel(new String[] {"Select an Engagement"}));
engBox.setBounds(10, 0, 181, 20);
sopPanel.add(engBox);
txtAddEng = new JTextField();
txtAddEng.setHorizontalAlignment(SwingConstants.CENTER);
txtAddEng.setToolTipText("Type ENG-#### and click Add");
txtAddEng.setText("Add an engagement?");
txtAddEng.setBounds(201, 0, 181, 20);
sopPanel.add(txtAddEng);
txtAddEng.setColumns(10);
JButton btnAdd = new JButton("Add");
btnAdd.setBounds(383, 3, 51, 17);
btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent clickAdd) {
txtAddEng.toString();
engBox.add(txtAddEng);
}
});
答案 0 :(得分:1)
txtAddEng.toString();
该语句不执行任何操作。它仅调用toString()方法,但从未将其分配给变量。摆脱那句话。
engBox.add(txtAddEng);
您不想将文本字段添加到组合框。您想要在文本字段的组合框模型中添加文本。
所以代码应该是
engBox.addItem( txtAddEng.getText() );
阅读How to Use Combo Boxes上Swing教程中的部分,以获取更多信息和工作示例。保留所有Swing基础知识的方便链接。