java - 同一类中的多个 JComboBox 事件处理

标签 java swing

我有两个 JComboBox 和一个按钮。如果我从两个组合框中单独选择一个项目并按下名为“搜索”的按钮,我将尝试执行此操作。然后,从两个组合框中选择的两个项目将保存在一个新的两个单独的字符串中。

请任何人帮我解决这个问题。

这是代码片段

//here is the strings that in the combo box
String lc[] = {"Kolabagan-Dhaka", "Gabtoli-Dhaka", "Fakirapul-Dhaka", "Shaymoli-Dhaka"};
String rc[] = {"Banani-Bogra", "Rangpur","Shatrasta-Bogra"};

//here is my two jcombo box
JComboBox lcCombo = new JComboBox(lc);
JComboBox rcCombo = new JComboBox(rc);
// here is my search button
JButton searchButton = new JButton("Search");

最佳答案

有两种方法可以解决这个问题。第一个是拥有一个实现 ActionListener 的类,并在实现中检查源代码 (ActionEvent.getSource())。根据事件来源的组件,您可以采取适当的操作。

另一个选项(也是我的偏好)是为每个需要的组件创建一个 ActionListener。如果您不想为每种情况显式定义一个匿名类,则可以使用匿名类。这样每个监听器都准确地知道哪个组件导致了事件以及要采取什么操作。

示例:

JComboBox lcCombo = new JComboBox(lc);
lcCombo.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent event) {
    //do left stuff
  }
});
JComboBox rcCombo = new JComboBox(rc);
rcCombo.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent event) {
    //do right stuff
  }
});

关于java - 同一类中的多个 JComboBox 事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13997503/

相关文章:

java - 如何使用键盘箭头键将行标题 JTable 滚动与另一个表同步

java - 在 Swing 中输入带有乌尔都语字体的文本时不显示英文字符

java - 如何使用 Swing Timer 延迟进度条的加载

java - 如何将任务栏按钮上的图像更改为 Swing 应用程序上的自定义图像?

java - 树遍历 - 在运行后将节点附加到邻接矩阵

java - 在多个布局中使用 ViewBinding

java - Spring Data mongo 将空值插入数据库

java - 在java中使用模式ctr解密aes加密字节

java - Java中使用elasticsearch滚动时程序保持运行

java - 从 Android Git 创建 Eclipse 项目