Java 基于JComboBox选择的JTextField更新
我正在尝试构建一个表单,其中可以将自己的值填充到JTextField中,或者依赖一个预设选项,这取决于JComboBox中的选择 这是JComboboxJava 基于JComboBox选择的JTextField更新,java,swing,jtextfield,jcombobox,Java,Swing,Jtextfield,Jcombobox,我正在尝试构建一个表单,其中可以将自己的值填充到JTextField中,或者依赖一个预设选项,这取决于JComboBox中的选择 这是JCombobox String[] areas = new String [] {"Own Specifications", "SurveySample", "UK", "London", "Surrey"}; @SuppressWarnings({ "unchecked", "rawtypes" }) final JComboBox&
String[] areas = new String [] {"Own Specifications", "SurveySample", "UK", "London", "Surrey"};
@SuppressWarnings({ "unchecked", "rawtypes" })
final JComboBox<String> selectedArea = new JComboBox(areas);
//selectedArea = new JComboBox<String>();
selectedArea.setModel(new DefaultComboBoxModel<String>(areas));
selectedArea.setBounds(282, 52, 164, 27);
contentPane.add(selectedArea);
根据用户的JComboBox选择,在JTextField中,值应该更改,例如,如果选择了调查样本,则JTextField的值应为10
我尝试了以下两种选择:
selectedArea.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
Object selectedValue = selectedArea.getSelectedItem();
if(selectedValue.equals("Own Specifications")){
tenurePrivateRenters.setText("10");
System.out.println("Good choice!");
}
}
});
及
selectedArea.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
@抑制警告(“未选中”)
JComboBox selectedArea=(JComboBox)e.getSource();
String selectedItem=(String)selectedArea.getSelectedItem();
if(selectedItem.equals(“自己的规范”)){
tenureprivatenters.setText(“10”);
System.out.println(“好选择!”);
}
}
}
);
}
但对于这两种选择,一切都没有发生,JTextField的价值仍然取决于“私人承租人”。你知道我哪里出错了吗?在你的itemStateChanged方法中,你有以下几点:
Object selectedValue = selectedArea.getSelectedItem();
getSelectedItem方法返回一个对象。然后,调用该对象的equals方法:
if(selectedValue.equals("Own Specifications")){
这肯定会返回false,因为Object equals方法正在比较String类型的对象和Object类型的对象
相反,如果要将selectedValue与字符串进行比较:
String selectedValue = (String)selectedArea.getSelectedItem();
然后,if语句应该可以像预期的那样工作。我已经尝试了您的代码,它工作得非常好。在尝试更改combobox的值之前,是否确定已将这些侦听器正确附加到combobox?尝试将它们正确地附加到构造函数中以确保
if(selectedValue.equals("Own Specifications")){
String selectedValue = (String)selectedArea.getSelectedItem();