Я пытаюсь сделать некоторые небольшие дополнения к некоторому старому java-коду, который не поддерживает swing. Мне нужно добавить небольшой диалог, содержащий панель, которая имеет флажок и пару текстовых полей. Когда пользователь нажмет на флажок, я хочу отключить или включить флажки. Эта часть, похоже, работает хорошо, но текстовые поля неправильно перерисовываются. Когда я нажимаю флажок, поля не становятся включенными, но если я затем нажму на панель или текстовое поле, вы увидите, что они включены (противоположное тоже верно, когда я отменю флажок, поля по-прежнему отображаются включенными пока вы не попытаетесь нажать на них, и они станут призрачными и не станут выбраны). Я использую setEnabled (boolean) для установки состояния полей. Я попытался переименовать и проверить как поля, так и панель после изменения статуса, и это, похоже, не работает. Я также попытался настроить фокус запросов полей, и это не сработало. У кого-нибудь есть другие идеи?AWT repaint issues
//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 */
}
Можете ли вы добавить фрагменты кода? –
Извините, что у меня была чрезвычайная ситуация, и вас не было, я добавил фрагменты кода. – Mike2012