0

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

4

2 回答 2

0

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

于 2013-09-19T20:18:37.200 回答
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();
          }     
     }
});

所以基本上我已经编写了两个非常相似的方法,并且我创建了一个新类,其中包含用于值存储的静态字段。一切都很好:)

于 2013-09-24T16:04:15.790 回答