Я пытаюсь сделать небольшие дополнения к старому Java-коду, который не поддерживает Swing.Мне нужно добавить небольшой диалог, который содержит панель, которая имеет флажок и пару текстовых полей.Когда пользователь нажимает на флажок, я хочу отключить или включить флажки.Эта часть, кажется, работает хорошо, но текстовые поля не перерисовываются должным образом.Когда я нажимаю флажок, поля не становятся активными, но если я затем нажимаю на панель или текстовое поле, вы видите, что они включены (обратное также верно, когда я снимаю флажок, поля все еще выглядят включенными).пока вы не попытаетесь нажать на них, и они станут призраками и не станут выбранными).Я использую setEnabled (булево), чтобы установить статус полей.Я пытался вызвать перерисовку и проверку как на полях, так и на панели после изменения статуса, и это, похоже, не работает.Я также попытался сфокусировать запрос полей, но это не сработало.У кого-нибудь есть другие идеи?
//The class that contains all of this is of type Window
//Declaration of the components
private Panel _inputPanel;
private TextField min , max;
//This method adds to two text fields
public void addMinMaxtextFields(String min, String max) {
TextField minField = new TextField(min);
TextField maxField = new TextField(max);
this.min = minField;
this.max = maxField;
this.min.setEnabled(false);
this.max.setEnabled(false);
_inputPanel.add(minField);
_inputPanel.add(maxField);
}
//listener for the checkbox
public void itemStateChanged(ItemEvent e) {
Component[] components = _inputPanel.getComponents();
min.setEnabled(!min.isEnabled());
min.setVisible(true);
min.validate();
min.repaint();
_inputPanel.validate();
_inputPanel.repaint();
this.pack();
this.setSize(this.getWidth(), this.getHeight());
this.validate();
this.repaint();
/* do nothing */
}