Fensterinhalt baut sich erst bei Größenveränderung auf

Status
Nicht offen für weitere Antworten.

Bwana

Mitglied
Guten abend zusammen,

nachdem ich in der Uni letztes semester die grundlagen für java kennengelernt hab, hab ich nun angefangen eigene klitzekleine programme zu basteln.
Meine Frage bezieht sich auf einen SleepTimer (der auch funktioniert => download)

(1)er besteht aus 2 fenstern, die haargenau aus dem gleichen code bestehen, das zweite fenster jedoch öffnet sich, zeigt aber keinen inhalt an! erst wenn man seine größe verändert (oder auch nur auf den Rahmen klickt ohne die Größe letztlich wirklich zu verändern) wird der Inhalt des Fensters eingeblendet.

(2)auch erscheinen beide fenster mittig vom screen (wie gewollt), für einen kurzen augenblick blinkt jedoch noch irgendwas anderes fenster-ähnliches am linken oberen bildrand auf.

Meine Frage nun, warum ist das so und wie kann ich es beheben.

hier mal mein code zu einem fenster, das andere ist analog:

Code:
JFrame timer = new TimerGui();	
		timer.setSize(169,110);
		timer.setResizable(false);
		timer.setVisible(true);
		timer.setLocationRelativeTo(null);
		timer.setAlwaysOnTop(true);
		timer.addWindowListener(listener);
Code:
public TimerGui()
	{
		setTitle("Timer-Eingabe");
		JPanel contentTimer = new JPanel();
		JLabel ueberschrift = new JLabel("Windows herunterfahren in: ");
		JLabel hoursLabel = new JLabel("HH");	
		JLabel minutesLabel = new JLabel("MM");
		
		contentTimer.add(ueberschrift);
		contentTimer.add(hours);
		contentTimer.add(hoursLabel);
		contentTimer.add(minutes);
		contentTimer.add(minutesLabel);
		contentTimer.add(ok);
		
		ok.addActionListener(this);
		
		setContentPane(contentTimer);		
	}

thx schon mal im voraus!
 

dieta

Top Contributor
Das mit dem "Aufblinken" kann daran liegen, dass er die Fenster erst mal standardmäßig in der Linken oberen Ecke (0, 0) zeichnet und sie dann erst in die Mitte des Bildschirms setzt. Das könntest du beheben, indem du Die Fenster manuell per setBounds ind die Mitte des Bildschirms setzt:
Code:
int w = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int h = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
int sx = 169;
int sy = 110;
setBounds((w/2)-(sx/2), (h/2)-(sy/2), (w/2)+(sx/2), (h/2)+(sy/2));

Das mit dem späten Anzeigen der Komponenten kannst du glaube ich lösen, indem du hinter setVisible(true) die folgenden Zeilen einfügst:
Code:
timer.validate();
timer.repaint();
 

Bwana

Mitglied
danke für die schnelle Hilfe !!

beides funktioniert nun :D ,
wobei ich die letzten beiden Parameter von setBounds() etwas verändert habe, da die Fenstergröße unabhängig von der screen-größe sein soll.

auch musste mir erst noch klar werden, dass repaint erst sinn macht, nachdem contentPane hinzugefügt wurde.

eine Frage hab ich aber noch...es funktioniert sowohl mit nur repaint() als auch mit nur validate();
aus der API entnehme ich, dass beide dazu da sind, im falle einer modifikation von komponenten, den inhalt upzudaten?!
wo liegt also der unterschied ??
 

dieta

Top Contributor
Validate ordnet soweit ich weis das Layout etc. neu an (z.B. nachdem das Fenster in der Größe verändert wurde). Repaint zeichnet soweit ich weis nur den Inhalt des Frames neu (z.B. nachdem das Fenster minimiert und dann wieder maximiert wurde).
Ich hab mich damit noch nie so wirklich beschäftigt, habe aber gemerkt, dass man mit beiden nacheinander immer auf der sicheren Seite ist.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Fensterinhalt verändern AWT, Swing, JavaFX & SWT 3
J Fensterinhalt bei Klick auf Menüitem wechseln AWT, Swing, JavaFX & SWT 1
B Swing Fensterinhalt aktualisieren AWT, Swing, JavaFX & SWT 11
R Fensterinhalt erscheint erst, wenn das Fenster verändert wird AWT, Swing, JavaFX & SWT 7
Junker Fensterinhalt vor ausführen von repaint komplett löschen. AWT, Swing, JavaFX & SWT 2
O Fensterinhalt löschen und neu generieren AWT, Swing, JavaFX & SWT 2
M Windows-Fensterinhalt in Java-Applikation darstellen AWT, Swing, JavaFX & SWT 6
G Anfängerfrage: Fensterinhalt ändern AWT, Swing, JavaFX & SWT 4
I Fensterinhalt drucken AWT, Swing, JavaFX & SWT 2
K [SWT] Fensterinhalt ändern. AWT, Swing, JavaFX & SWT 2
G bild aus fensterinhalt AWT, Swing, JavaFX & SWT 5
Rudolf Swing Baut die View die Modelebene auf oder wer? AWT, Swing, JavaFX & SWT 13
Semox Warum baut man eine GUI nicht in der main-Methode? AWT, Swing, JavaFX & SWT 16
L Wie baut man ein SWT-Programm auf? AWT, Swing, JavaFX & SWT 4
Juelin Javafx hängt sich auf AWT, Swing, JavaFX & SWT 31
I JavaFX Programmcode pausieren gestaltet sich als schwierig AWT, Swing, JavaFX & SWT 7
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
berserkerdq2 Skalieren sich javafx objekte automatisch auf die Bildschirmgröße AWT, Swing, JavaFX & SWT 6
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
S e(fx)clipse erscheint nicht im Marketplace, lässt sich nicht installieren AWT, Swing, JavaFX & SWT 16
A TableView updatet sich nicht AWT, Swing, JavaFX & SWT 3
M Wieso verändert sich die Framerate nach erneutem Starten des AnimationTimer? AWT, Swing, JavaFX & SWT 18
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
J JOptionPane ruft sich selbst immer wieder neu auf AWT, Swing, JavaFX & SWT 3
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
R JOptionPane schließt sich nicht wieder AWT, Swing, JavaFX & SWT 2
R Textfield lässt sich nicht positionieren AWT, Swing, JavaFX & SWT 1
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
R Swing Komponente im JFrame überschreinen sich AWT, Swing, JavaFX & SWT 7
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
O showConfirmDialog öffnet sich nicht AWT, Swing, JavaFX & SWT 3
K JavaFX Fenstergröße ändert sich (Gluon - SceneBuilder) AWT, Swing, JavaFX & SWT 23
S JavaFX Scene öffnet sich nicht AWT, Swing, JavaFX & SWT 3
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
ralfb1105 JavaFX Label lässt sich innerhalb service Task nicht updaten? AWT, Swing, JavaFX & SWT 22
J ChangeListener verhält sich komisch AWT, Swing, JavaFX & SWT 14
S Ausgabe aktualisiert sich nur nach 2. Klick AWT, Swing, JavaFX & SWT 17
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
P Gui lässt sich nicht starten AWT, Swing, JavaFX & SWT 10
B JavaFX setOnMousePressed() - verhält sich wie setOnMouseClicked()? AWT, Swing, JavaFX & SWT 6
R JavaFX lässt sich nicht in Eclipse einbinden AWT, Swing, JavaFX & SWT 4
J BackgroundJPanel passt sich dem JFrame nicht an AWT, Swing, JavaFX & SWT 7
J Button lässt sich nicht auf dem JPanel verschieben AWT, Swing, JavaFX & SWT 5
M 2D-Grafik Spielfigur bewegt sich nicht AWT, Swing, JavaFX & SWT 6
W Javafx - Image soll sich mit der Camera mitbewegen AWT, Swing, JavaFX & SWT 1
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
K JavFX: VBox.setVGrow stell sich quer AWT, Swing, JavaFX & SWT 2
T Timer und GIF Animationen pausieren während Maus sich bewegt AWT, Swing, JavaFX & SWT 4
S Swing Bedienelemente ordnen sich automatisch neu an AWT, Swing, JavaFX & SWT 2
B Hauptfenster öffnet sich mehrmals AWT, Swing, JavaFX & SWT 9
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
E Java FX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 8
P Swing JFrame minimiert sich bei Doppelklick auf die Titel-Leiste AWT, Swing, JavaFX & SWT 17
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
D JavaFX Label lässt sich nicht mehrmals färben AWT, Swing, JavaFX & SWT 7
Prafy Sich ändernde Farbverläufe erstellen AWT, Swing, JavaFX & SWT 4
D JavaFX Anwendung hängt sich permanent auf AWT, Swing, JavaFX & SWT 6
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
T Swing Programm hängt sich auf! AWT, Swing, JavaFX & SWT 23
C LayoutManager Bei verkleinern des Fensters, verschieben sich JPanels übereinander. AWT, Swing, JavaFX & SWT 7
J Button vergrößert sich bei Fenster resize AWT, Swing, JavaFX & SWT 22
J Lohnt sich FX? AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 2
S JavaFX Image Skalierung in Scrollpane, Scrollpane resized sich nicht AWT, Swing, JavaFX & SWT 5
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
J Server stellt sich hin AWT, Swing, JavaFX & SWT 13
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
J Programm hängt sich bei Log In auf AWT, Swing, JavaFX & SWT 1
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
ToBJo JavaFX TreeView zerstört sich selbst AWT, Swing, JavaFX & SWT 1
T Swing Button bleibt grau [=> UI hat sich aufgehängt, Aufgabe in Thread auslagern] AWT, Swing, JavaFX & SWT 3
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0
M JXTreeTable: Spaltengröße läßt sich nicht mehr festlegen AWT, Swing, JavaFX & SWT 0
I JPanel in JScrollPane verkleinert sich leider nicht .... AWT, Swing, JavaFX & SWT 2
G Komponenten vergrößern sich nicht trotz Layoutmanager AWT, Swing, JavaFX & SWT 24
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
H 2D-Grafik BufferStrategy zieht spur hinter sich her AWT, Swing, JavaFX & SWT 3
T SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt AWT, Swing, JavaFX & SWT 3
kaoZ Swing JFrame lässt sich nicht über dispose() abbauen AWT, Swing, JavaFX & SWT 0
D 2D-Grafik Rechteck befindet sich unter dem Rahmen des JFrame. AWT, Swing, JavaFX & SWT 1
A Swing per JComboBox gewünschtes Attribut auswählen und Komponenten passen sich an AWT, Swing, JavaFX & SWT 7
B Swing focusGained öffnet sich zwei mal AWT, Swing, JavaFX & SWT 3
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
A Panel lässt sich nicht bewegen AWT, Swing, JavaFX & SWT 2
U ToolTip Größenänderung, passt sich erst beim zweiten Mal an AWT, Swing, JavaFX & SWT 6
H Java3D, ViewP Translattform soll sich nach einerformgroup richten. AWT, Swing, JavaFX & SWT 5
R JPanel-Größe verändert sich nicht. Warum? AWT, Swing, JavaFX & SWT 5
R Swing getContentPane maximiert sich nicht mit, wenn man das JFrame maxmiert AWT, Swing, JavaFX & SWT 8
A 2D-Grafik Zeichnen einer sich bewegenden Box mit BufferStrategy zieht Spur AWT, Swing, JavaFX & SWT 2
G 2D-Slider bzw. eine graphische Auswahlkomponente die sich so verhält AWT, Swing, JavaFX & SWT 6
F Grafik hängt sich auf AWT, Swing, JavaFX & SWT 20

Ähnliche Java Themen


Oben