验证几个jcombobox中是否已经选择了两个符号的特定组合的最佳方法是什么?这个问题是指我所拥有的情况。 G。 10个选项,每个选项我可以分配两个符号的组合,其中第一个来自[ALT,CTRL,SHIFT]向量,第二个来自[字母和数字]向量。两个向量都在JComboBoxes中可视化(每个选项都有两个组合框)。
答案 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();
}
}
});
所以基本上我写了两个非常相似的方法,并且我已经为值存储创建了一个带静态字段的新类。一切都很棒:))