У меня есть ряд JCheckBoxes (1-20), и каждый связан с JTextField (1-20). Я хотел бы, чтобы все текстовые поля обновлялись каждый раз, когда флажок установлен. Поля должны быть обновлены по формуле 100/(сумма отмеченных флажков). Итак, если флажок checkbox1 установлен, то textfield1 отображает 100. Если флажок checkbox15 также отмечен, тогда textfield1 и textfield15 отображают 50. Прямо сейчас, когда я проверяю checkbox1, тогда textfield1 отображает 100, а когда я проверяю checkbox2, отображается 50, но textbox1 остается на 100 вместо того, чтобы также обновляться до 50. Что сделать, чтобы все текстовые поля обновлялись одновременно?
es1-es20 — мои текстовые поля. p1 — текстовое поле, из которого я получаю 100. evensplit - это мой массив из 20 текстовых полей.
Кроме того, это работает, если я не объявлю свой массив для каждого текстового поля. Где я должен объявить свой массив, чтобы каждое действие могло получить к нему доступ?
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));
}
}
Заранее благодарю за любую помощь!