Вопрос

У меня есть JFrame.Этот JFrame содержит JButton.Я нажимаю кнопку JButton, и создаются 10 полей JTextField.

проблема:Я не могу их видеть до тех пор, пока не «я принудительно перерисую()», изменив размер окна.Только тогда я вижу созданные JTextFields.

КОД:

JPanel points = new JPanel();

//Creating the JTextFields:
for (int i=0; i<10; i++) {
    JTextField textField = new JTextField();
    points.add(textField);
}

repaint();
this.repaint();
super.repaint();
points.repaint();

СПАСИБО - после цикла for я просто вызвал points.validate(), и это сработало...

Это было полезно?

Решение

Container.add Документы API говорят:

Примечание:Если компонент был добавлен в отображаемый контейнер, в этот контейнер должен быть вызван для отображения нового компонента.Если добавляются несколько компонентов, вы можете повысить эффективность, вызывая проверку только один раз, после того как все компоненты были добавлены.

Это непонятно и не очень умно, но таковы правила.может лучше позвонить JComponent.revalidate

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top