Components erscheinen erst bei Änderung des Frames

G

Gawain

Gast
Hallo!

Ich beschäftige mich seit neuestem mit Swing und bin nun auf folgendes Problem gestoßen:

Manchmal werden Components im Frame erst angezeigt, wenn ich das Fenster irgendwie verändere (größer, kleiner, etc). Ich bin draufgekommen dass es damit zusammenhängt, wie viele Components ich im Programm erzeuge (diese müssen nichtmal dem Frame hinzugefügt werden!). Klingt komisch, daher mal ein Beispiel:

Ich erzeuge eine simple Fenster-Klasse:

Java:
import javax.swing.*;
import java.awt.*;

public class Fenster extends JFrame {
	public Fenster() {
		setSize(300, 300);
		setLayout(null);
		setDefaultCloseOperation(3);
		setVisible(true);
	}
	
	public void create() {
		JPanel p = new JPanel();
		p.setSize(100, 100);
		p.setBackground(Color.GREEN);
		add(p);
	}
}

Im Konstruktor werden ganz einfache Einstellungen vorgenommen. Die Methode create() erzeugt ein Panel, modizifiert es ein wenig und fügt es dem Fenster hinzu.

Schließlich die main-Methode:

Java:
import javax.swing.*;
import java.math.*;

public class main {
	public static void main(String[] args) {
		Fenster f = new Fenster();
		f.create();	
	}
}

Zuerst Fenster erzeugen und dann mittels f.create() ein Panel einfügen. Soweit so gut, beim Ausführen sieht man das was man sehen will.

Füge ich aber jetzt in main nach der Zeile
Java:
Fenster f = new Fenster();
folgende Schleife ein:
Java:
for (int i=0; i<100; i++) {
          JLabel l = new JLabel();
}

dann passiert es bei manchen Ausführungen des Programms, dass das Label zunächst nicht angezeigt wird. Erst, wenn ich das Fenster verändere (kurz dran 'ziehen'), erscheint das Label. In dem Fall habe ich vor der create() Methode 100 Panels erzeugt. Wären es nur 10 gewesen, würde das Problem nie auftreten. Bei 1000 tritt es fast bei jedem Programmaufruf auf.

Woran liegt das? Arbeitet da im Hintergrund irgendwas zu langsam oder falsch? Ich kann mir nicht vorstellen, dass dieser Effekt so sein soll. (Man beachte, dass die erzeugten Panels mit dem Frame überhaupt nicht in Kontakt kommen.)

Daten:
Windows XP Home
JDK 1.6.0_21

liebe Grüße
 
G

Gawain

Gast
Danke, jetzt scheint es immer zu klappen. Aber ganz schleierhaft ist mir das nicht, das scheint ja sehr willkürlich abzulaufen (wenn ich das Programm kurz hintereinander aufrufe, dann klappt es beim ersten mal und beim zweiten mal möglicherweise nicht). Falls das in dem Link geklärt wird, dann sry, muss ich mir noch durchlesen.^^

liebe Grüße
 

L-ectron-X

Gesperrter Benutzer
Es kann auch helfen, als letzte Anweisung in der create()-Methode
Code:
validate();
einzufügen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa JavaFX Runtime components are Missing??? AWT, Swing, JavaFX & SWT 3
F JavaFX JavaFX Builden: JavaFX Runtime components are missing AWT, Swing, JavaFX & SWT 0
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
K JDialog zeigt Components nicht an AWT, Swing, JavaFX & SWT 3
X Alle Components eines JPanels Enablen AWT, Swing, JavaFX & SWT 7
A Swing Liste von komplexen Components AWT, Swing, JavaFX & SWT 2
xehpuk Swing Erst Components, dann Container zeichnen AWT, Swing, JavaFX & SWT 2
I LayoutManager CardLayout mit anonymen Components AWT, Swing, JavaFX & SWT 4
J remove() components bei event von JComboBox AWT, Swing, JavaFX & SWT 2
M Special design of Swing components AWT, Swing, JavaFX & SWT 14
hdi dynamische Iteration über Components AWT, Swing, JavaFX & SWT 3
V components nordwest alignen AWT, Swing, JavaFX & SWT 4
P Components überlagern AWT, Swing, JavaFX & SWT 8
B HTML in Swing Components (JLabel) AWT, Swing, JavaFX & SWT 7
S 2 components & 1 button AWT, Swing, JavaFX & SWT 4
hdi Fenster mit variablen Components AWT, Swing, JavaFX & SWT 3
M icons für die java.swing components wie jbutton etc AWT, Swing, JavaFX & SWT 5
K Components auf Codeebene vor reverse engineering schützen? AWT, Swing, JavaFX & SWT 16
K Layout - Components richtig setzen AWT, Swing, JavaFX & SWT 9
G fullscreen GUI - eigene components? AWT, Swing, JavaFX & SWT 2
G Components form AWT, Swing, JavaFX & SWT 3
P Components updaten AWT, Swing, JavaFX & SWT 2
masta // thomas GridBagLayout - Zwischenraum zw. Components AWT, Swing, JavaFX & SWT 7
G components unbeweglich machen AWT, Swing, JavaFX & SWT 3
conan2 getFontMetrics() außerhalb des Components AWT, Swing, JavaFX & SWT 7
F Components aneinander AWT, Swing, JavaFX & SWT 2
W Components Focus mit TAB-Taste VERTIKAL bewegen AWT, Swing, JavaFX & SWT 4
V Zugriff auf Components aus einem ActionListener AWT, Swing, JavaFX & SWT 3
W JTable und mehrere Components in einer Zelle AWT, Swing, JavaFX & SWT 4
meez Striche rund um Components AWT, Swing, JavaFX & SWT 6
A Components in einer ArrayList aus anderer Klasse speichern AWT, Swing, JavaFX & SWT 8
K MouseEvents vor den Components abfangen? AWT, Swing, JavaFX & SWT 4
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
Z GUI: Knöpfe erscheinen spät, Etiketten gar nicht AWT, Swing, JavaFX & SWT 3
D Buttons erscheinen nicht auf dem zweiten Frame AWT, Swing, JavaFX & SWT 4
M AWT Gui anzeige Probes - Elemente erscheinen nicht regelmäßig AWT, Swing, JavaFX & SWT 2
M Swing Komponenten erscheinen beim darüberfahren? AWT, Swing, JavaFX & SWT 7
Z Bei Klick auf JButton soll ein anderer JButton erscheinen AWT, Swing, JavaFX & SWT 4
X Swing Bei Buttonklick soll PopupMenu erscheinen AWT, Swing, JavaFX & SWT 2
P JButtons haben nicht immer lust zu erscheinen AWT, Swing, JavaFX & SWT 9
A Buttons erscheinen erst beim rüberfahren AWT, Swing, JavaFX & SWT 13
Z Buttons erscheinen erst wenn man mit der Maus drüber geht AWT, Swing, JavaFX & SWT 7
S Falsche Position, Elemente erscheinen nicht, Flackern AWT, Swing, JavaFX & SWT 6
S JButtons in einem JPanel erscheinen nicht direkt AWT, Swing, JavaFX & SWT 7
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
L Swing Komponenten erst nach Resize sichtbar AWT, Swing, JavaFX & SWT 2
L JavaFX Animation, erst zeichnen dann anzeigen AWT, Swing, JavaFX & SWT 4
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
L JTextField erscheint erst nach Veränderung der Framegröße AWT, Swing, JavaFX & SWT 5
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
P JavaFX Slider soll Value erst ab einer bestimmten Bedinung aendern AWT, Swing, JavaFX & SWT 19
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
X JFrame erst nach dem Laden sichtbar stellen AWT, Swing, JavaFX & SWT 8
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
U ToolTip Größenänderung, passt sich erst beim zweiten Mal an AWT, Swing, JavaFX & SWT 6
T Eingabefelder gefüllt erst dann Button klickbar AWT, Swing, JavaFX & SWT 6
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
J 2D-Grafik JPanel wird erst 1-2sek nach start des JFrames angezeigt AWT, Swing, JavaFX & SWT 3
M Anzeige updatet sich erst am Ende des Programms AWT, Swing, JavaFX & SWT 3
J resize - Label bleibt erst schwarz AWT, Swing, JavaFX & SWT 4
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
P ... zeichnet erst im zweiten Anlauf AWT, Swing, JavaFX & SWT 10
L Swing JPanel erscheint erst beim Vergrößern AWT, Swing, JavaFX & SWT 4
R Fensterinhalt erscheint erst, wenn das Fenster verändert wird AWT, Swing, JavaFX & SWT 7
0 JFrame zeigt Inhalt erst nach vergrößern an AWT, Swing, JavaFX & SWT 3
R JPanel wird erst neu gezeichnet nach erneuter auswahl AWT, Swing, JavaFX & SWT 8
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
T JSpinner in JTable: Problem beim Auslesen, funktioniert erst beim Zellwechsel AWT, Swing, JavaFX & SWT 7
S (Applets) JProgressBar wird erst am Ende angezeigt AWT, Swing, JavaFX & SWT 13
M LayoutManager Erst layouten, dann zeichnen AWT, Swing, JavaFX & SWT 3
Z JPanel wird erst durch aufziehen des Fensters sichtbar AWT, Swing, JavaFX & SWT 3
F setIcon wird erst nach der methode ausgeführt AWT, Swing, JavaFX & SWT 4
T JTable erst nach Änderung der Spaltenbreite neu zeichnen AWT, Swing, JavaFX & SWT 10
T neuer JFrame öffnet sich erst wenn Methode die dahinerliegt abgeschlossen ist. BUG? AWT, Swing, JavaFX & SWT 4
I Swing Bild wird erst bei manueller Änderung der Fenstergrösse gezeichnet AWT, Swing, JavaFX & SWT 3
F Swing Button reagiert erst beim mehrmaligen Anklicken AWT, Swing, JavaFX & SWT 6
S Swing PopUp oeffnet sich nach der Methode, die erst nach Fensteraufruf gestartet wird AWT, Swing, JavaFX & SWT 3
R JButton -> erst sichtbar nach rollover AWT, Swing, JavaFX & SWT 9
F JButton reagiert erst beim 2 klick AWT, Swing, JavaFX & SWT 8
T JLabel.setText() funktioniert erst nach repaint() etc.? AWT, Swing, JavaFX & SWT 4
S JComboBox in JTable wird erst nach klick angezeigt AWT, Swing, JavaFX & SWT 2
N JFormattedTextField erst Verlassen, wenn Eingabe korrekt AWT, Swing, JavaFX & SWT 6
G Textarea zeigt Text erst am Schluss an AWT, Swing, JavaFX & SWT 2
T JButton wird erst bei mouseover sichtbar AWT, Swing, JavaFX & SWT 2
G Fenster erst nach Stoppen des Threads anzeigen AWT, Swing, JavaFX & SWT 3
G Elemente erst da wenn mit Maus drüber gefahren bin AWT, Swing, JavaFX & SWT 2
A JTree wird erst nach Klick aktualisiert AWT, Swing, JavaFX & SWT 2
X JTable "geht" erst beim 2.Klick AWT, Swing, JavaFX & SWT 2
G Tabelle aktualisiert sich erst, nachdem man auf sie klickt! AWT, Swing, JavaFX & SWT 4
P JTextArea erst nach Maximierung sichtbar AWT, Swing, JavaFX & SWT 3
T SWT - Inhalt einer Shell erst nach Größenänderung vorhanden AWT, Swing, JavaFX & SWT 5
B JPanel erst durch Button-Klick sichtbar machen AWT, Swing, JavaFX & SWT 8
M Java mit Swing - Elemente erst nach klick sichtbar AWT, Swing, JavaFX & SWT 13
C JPanel erst nach Button click anzeigen. AWT, Swing, JavaFX & SWT 11
A Panelinhalt erscheint erst nach Mouseklick auf den Framerand AWT, Swing, JavaFX & SWT 6
B Fensterinhalt baut sich erst bei Größenveränderung auf AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben