ejemplo - Problema de repintado de Java GUI()?
paintcomponent java (1)
Tengo un JFrame. Este JFrame contiene un JButton. Hago clic en JButton y se crean 10 JTextFields.
el problema: no puedo verlos hasta que "forzo un repintado ()" cambiando el tamaño de la ventana. Solo entonces veo los JTextFields creados.
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();
GRACIAS - después del ciclo for, acabo de llamar a points.validate () y funcionó ...
Container.add
API docs sayeth:
Nota: Si se ha agregado un componente a un contenedor que se ha mostrado, debe invocarse validar en ese contenedor para mostrar el nuevo componente. Si se agregan varios componentes, puede mejorar la eficacia al llamar validar solo una vez, después de que se hayan agregado todos los componentes.
Es oscuro y no muy inteligente, pero son las reglas. Puede ser mejor llamar a JComponent.revalidate