验证多个jcombobox项目选择的最佳方法是什么?

时间:2013-09-19 19:36:35

标签: java swing keyboard-shortcuts jcombobox

验证几个jcombobox中是否已经选择了两个符号的特定组合的最佳方法是什么?这个问题是指我所拥有的情况。 G。 10个选项,每个选项我可以分配两个符号的组合,其中第一个来自[ALT,CTRL,SHIFT]向量,第二个来自[字母和数字]向量。两个向量都在JComboBoxes中可视化(每个选项都有两个组合框)。

2 个答案:

答案 0 :(得分:0)

将jcomboboxes夫妇放入不同的桶中。那些在第一个组合框中选择了ALT的夫妇进入第一个,选择了CTRL的那个 - 到第二个,SHIFT - 到第三个。然后查看是否在存储桶中选择了第二个组合框中的相同选项。

答案 1 :(得分:0)

谢谢大家的回答。最后我用这种方式解决了这个问题:

    // Method For KeyGroup 1
public boolean isAlreadyKeyEvent(int index) {
     int vector[] = {combo_1_group1.getSelectedIndex(), combo_2_group1.getSelectedIndex(), combo_n_group1.getSelectedIndex()};
     int x = 0;
     for (int i : vector) {
          if (i == index) {
               x++;
          }
     }
     if (x > 1) {
          return true;
     } else {
          return false;
     }
}

// Method For KeyGroup 2
public boolean isAlreadyInputEvent(int index) {
     int vector[] = {combo_1_group2.getSelectedIndex(), combo_2_group2.getSelectedIndex(), combo_n_group2.getSelectedIndex()};
     int x = 0;
     for (int i : vector) {
          if (i == index) {
               x++;
          }
     }
     if (x > 1) {
          return true;
     } else {
          return false;
     }
}

combo_1_group2.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {

          boolean one = isAlreadyKeyEvent(combo_1_group2.getSelectedIndex());
          boolean two = isAlreadyInputEvent(combo_1_group1.getSelectedIndex());

          if (one) {
               if (two) {
                    JOptionPane.showMessageDialog(null, "Such shortcut already exists! \n" + 
               "Choose something else.");
                    combo_1_group2.setSelectedIndex(Settings.combo_1_group2);
               } else {
                   Settings.combo_1_group2 = combo_1_group2.getSelectedIndex();
               }
          } else {
              Settings.combo_1_group2 = combo_1_group2.getSelectedIndex();
          }     
     }
});

所以基本上我写了两个非常相似的方法,并且我已经为值存储创建了一个带静态字段的新类。一切都很棒:))