gpt4 book ai didi

java - 我无法将字符串从 ActionListener 获取到 Java 中的不同类

转载 作者:行者123 更新时间:2023-12-01 17:22:31 25 4
gpt4 key购买 nike

我创建了一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com