我创建了一个 JComboBox 和 JButton 来提交信息。我需要将信息发送到不同的类,以使用 switch 方法对其进行排序。但看起来 ActionListener 内创建的字符串不能被其他类识别。
public Main() {
final JComboBox comboB = new JComboBox(b); //add int b in here for array
comboB.setBounds(50, 30, 123, 20);
contentPane.add(comboB);
JButton btnTest = new JButton("Test");
btnTest.setBounds(300, 350, 89, 23);
contentPane.add(btnTest);
btnTest.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String s = (String)comboB.getSelectedItem();
}
});
}
如何使 String 能够被其他类识别?我有一个单独的类,它将根据从 ComboBox 中选择的内容来更改操作,但我似乎无法获取此信息。谢谢。
最佳答案
首先,其他对象需要某种方式将 ActionListener
注册到组合框。我建议为您的类提供一个 addActionListener
方法,这将充当代理方法并简单地将调用传递到 comboB
其次,这意味着 comboB
将需要是一个类实例变量
第三,例如,其他类需要确定该操作是否源自组合框。
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof JComboBox) {
JComboBox cb = (JComboBox)e.getSource();
String s = (String)cb.getSelectedItem();
}
}
现在,这个问题没有太多可用的上下文,但是,就个人而言,我通常会使用您的 UI 类将更新的某种模型和/或其他的 PropertyChangeListener
类可以注册并监视主类“属性”的更改。
关于java - 我无法将字符串从 ActionListener 获取到 Java 中的不同类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17519833/