Java GUI repaint () problema?
-
21-08-2019 - |
Pergunta
Eu tenho um JFrame. Este JFrame contém um JButton. Clico no JButton e 10 JTextFields são criadas.
o problema: Eu não posso vê-los até que "eu forçar um repaint ()" por redimensionar a janela. Só então eu vejo os JTextFields criadas.
código:
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();
OBRIGADO - após a points.validate loop for, eu apenas chamado () e funcionou ...
Solução
Container.add
API docs sayeth:
Nota: Se um componente foi adicionado ao um recipiente que tenha sido apresentado, Validar deve ser chamado em que recipiente para exibir o novo componente. Se vários componentes são sendo adicionado, você pode melhorar eficiência, só validar as chamadas uma vez, depois de todos os componentes têm foi adicionado.
É obscura e não muito inteligente, mas é as regras. Pode ser melhor para chamar JComponent.revalidate