【发布时间】:2014-06-29 02:58:04
【问题描述】:
我正在尝试构建一个表单,其中可以将自己的值填写到 JTextField 中,或者依赖一个预设选项,该选项取决于从 JComboBox 中的选择。
这是 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);
这是 JTextField
tenurePrivateRenters = new JTextField();
tenurePrivateRenters.setHorizontalAlignment(SwingConstants.CENTER);
tenurePrivateRenters.setText("Private Renters");
tenurePrivateRenters.setBounds(58, 213, 134, 28);
contentPane.add(tenurePrivateRenters);
根据用户的 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(new ActionListener() {
public void actionPerformed (ActionEvent e){
@SuppressWarnings("unchecked")
JComboBox<String> selectedArea = (JComboBox<String>) e.getSource();
String selectedItem = (String) selectedArea.getSelectedItem();
if(selectedItem.equals("Own Specifications")){
tenurePrivateRenters.setText("10");
System.out.println("Good choice!");
}
}
}
);
}
但是对于这两个选项都没有任何反应,并且 JTextField 的值仍然保留在“Private Renters”上。知道我哪里出错了吗?
【问题讨论】:
标签: java swing jtextfield jcombobox