Frage

Ich habe einen JFrame. Diese JFrame enthält eine JButton. Ich klicke auf die JButton und 10 JTextFields geschaffen werden.

das Problem: Ich kann sie nicht sehen, bis „ich ein repaint () erzwingen“ durch die Größe des Fensters. Erst dann sehe ich die JTextFields erstellt.

CODE:

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();

DANKE - nach dem for-Schleife, rief ich points.validate nur () und es hat funktioniert ...

War es hilfreich?

Lösung

Container.add API-Dokumentation sayeth:

  

Hinweis: Wenn eine Komponente wurde hinzugefügt, um   ein Behälter, der angezeigt wurde,   validieren muss, dass aufgerufen werden   Behälter der neuen anzuzeigen   Komponente. Wenn mehrere Komponenten   Sein hinzugefügt haben, können Sie verbessern   Effizienz durch Validierung Aufruf nur   einmal, nachdem alle Komponenten   hinzugefügt.

Es ist dunkel und nicht sehr klug, aber es ist die Regeln. Es kann besser sein JComponent.revalidate anrufen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top