我有一系列 JCheckBox(1-20),每个 JCheckBox 都与一个 JTextField(1-20) 关联。我希望每次选中一个框时都更新所有文本字段。这些字段将使用公式 100/(选中的复选框的总和)进行更新。因此,如果选中 checkbox1,则 textfield1 显示 100。如果还选中 checkbox15,则 textfield1 和 textfield15 显示 50。现在,当我选中 checkbox1 时,textfield1 显示 100,当我选中 checkbox2 时,textfield1 显示 50,但 textbox1 保持为 100,而不是也更新为50. 如何使所有文本字段同时更新?
es1-es20 是我的文本字段 p1 是我从中获取 100 的文本字段。 Evensplit 是我的 20 个文本字段的数组。
此外,除非我为每个文本字段分别声明我的数组,否则它确实有效。我该去哪里 声明我的数组以便每个 Action 事件都可以访问它?
private void es1ActionPerformed(java.awt.event.ActionEvent evt) {
JCheckBox evensplit[] = new JCheckBox[24];
evensplit[0] = es1;
evensplit[1] = es2;
...24 times
int checknums = 0;
for(int c = 0;c< evensplit.length; c++) {
if(evensplit[c].isSelected()) {
checknums++;
double even = 100/checknums;
p1.setText(String.valueOf(even));
}
}
}
private void es2ActionPerformed(java.awt.event.ActionEvent evt) {
JCheckBox evensplit[] = new JCheckBox[24];
evensplit[0] = es1;
evensplit[1] = es2;
...24 times
int checknums = 0;
for(int c = 0;c< evensplit.length; c++) {
if(evensplit[c].isSelected()) {
checknums++;
double even = 100/checknums;
p2.setText(String.valueOf(even));
}
}
预先感谢您的帮助!
最佳答案
对于JCheckBox / JRadioButton / JToggleButton或JComboBox使用
1) ItemListener
2) ButtonGroup
3) ButtonModel
关于java - 每次用 java 检查一个框时更新所有 TextFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10467365/