trotz setSize keine breite

AcE(swiss)

Mitglied
Folgendes Problem:

Wenn ich bei meinem GUI nach während der Initialisierung das setVisible(false) ausführe und später die
die Breite vom Fenster abfage, kommt dort immer 0 raus.

Das GUI erbt von JPanel und hat ein JFrame namens mainWindow. Die Ausgabe this.getWidth ist 0, falls mainWindow.setVisible(false) ausgeführt wurde und 1150 wenn ich mainWindow.setVisible(true) mache.

Ich möchte aber das Fenster erst nach der Initialisierung des Hauptthreads sichtbar machen. Diese dauert auf Grund vieler (zugegeben nicht komprimierter) Bilder unt Töne bis zu 2 Sekunden.

Egal ob ich mainWindow / this.setSize mache, mit einem setVisible(false) wird nur immer nur die eine Grösse gesetzt... versteh ich gar nicht

WARUM wird die Grösse / Breite nicht gesetzt wenn ich es nicht sichtbar mache?
ich seh den Wald voller Bäume nicht mehr..

aadiöööööö
 

Bernd Hohmann

Top Contributor
Wenn ich es recht verstehe: ja, das ist ein Problem.

.setSize() geht hoch bis nach java.awt.Component und ruft dort ein .resize() auf. Mangels Sichtbarkeit kann das Resize aber nicht durchgeführt werden (da war irgendwas... lang lang ists her) und man läuft gegen die Wand weil .size() noch alte Werte hat (oder garkeine Werte).

Ich glaube, dass ich mir damals für AWT meinen eigenen Frame als Subklasse gebaut habe der die gesetzte Größe zwischengespeichert hat für den Fall, dass die Komponente noch nicht gerendert werden kann.

Für Dein Problem würde ich vorschlagen, dass Du das Fenster einfach anzeigst (eventuell .pack() aufrufen) und einen Progressbar für das Laden der Items anzeigst.

Bernd
 

bERt0r

Top Contributor
Also ich kann bei bestem Willen dein Problem nicht rekonstruieren. Vielleicht solltest du ein bisschen Code posten.
Vielleicht noch eine Frage: Erstellst du deinen Frame auf dem EDT?
 

AcE(swiss)

Mitglied
oke, also nochmal von vorn:

Ich hab, unter anderem, einen Hauptthread welcher für das Berechnen, Bewegen und Zeichnen der Objekte zuständig ist und ein Fenster, in welches die Szenerie gezeichnet wird.
Das Fenster wird dabei durch eine Klasse SpielfeldGui, welches von JPanel erbt, realisiert. In Hauptthread PlayGrouse lade ich alle Bilder und Sounds in die Bibliotheken und erstelle die Instanz von SpielfeldGui mit den Bibliotheken. Das laden der Bilder und Sounds dauert noch an, während das Fenster bereits angezeigt wird.

Da ein Spielstart zu diesem Zeitpunkt nicht funktioniert wollte ich das Fenster wohl erstellen, aber noch nicht anzeigen --> setVisible(false) beim Erstellen des gamePanels. Darum plante ich im Hauptthread ein gamePanel.start() welche ein setVisible auf das JFrame ausfÜhrt. Nur leider funktioniert das Spiel in meiner so gestalteten Konstelation nicht, wenn ich bei der Initialisierung von JFrame setVisible(false) mache, da dann Höhe und Breite den Wert 0 haben.

Darum habe ich das nun so gelöst, dass das Fenster wohl sichtbar ist, aber eine progressbar dargestellt wird, bis die Initialisierung abgeschlossen ist.

Das klingt nun vielcht extrem kompliziert, aber leider ist es nun so gestaltet.

Erste Initialisierung vor dem eigentlichen Spielstart:

Java:
public class PlayGrouse extends Thread{

           private SpielfeldGui gamePanel;
 
           private void initializeFirstUse() {

		setPicLib(new PictureLibrary());
		setSoundLib(new SoundLibrary());
		gamePanel = new SpielfeldGui(this, getSoundLib());
		setRoundFinished(false);
	}

Erstellung der Instanz von SpielfeldGui:

Java:
public SpielfeldGui(PlayGrouse newGame, SoundLibrary soundLib){

		// Menuebar Verursacht Offset von 22 pt
		this.currentGame = newGame;
		this.soundLib = soundLib;
		roundFinished = false;

		amountOfMunition = maxAmountOfMunition;
		getMenuBar();

		// Positionierung
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		int top = (screenSize.height - mainWindow.getSize().height)/2;
		int left = (screenSize.width - mainWindow.getSize().width)/2;

		// Mauszeiger ausblenden auf JPanel
		setCursor(java.awt.Toolkit.getDefaultToolkit().createCustomCursor(new BufferedImage(1,1,BufferedImage.TYPE_4BYTE_ABGR),new java.awt.Point(0,0),"NOCURSOR"));
		
		// Hauptfenster
		mainWindow = new JFrame(PlayGrouse.version);
		mainWindow.setLayout(new BorderLayout());
		mainWindow.add(menuBar, BorderLayout.PAGE_START);
		mainWindow.setSize(1150,800);
		mainWindow.add(this);				//	Als JPanel darf nicht irgendein JPanel verwendet werden sonder NUR eine Instanz von SpielfeldGui!!!
		mainWindow.addKeyListener(this);
		mainWindow.addWindowListener(this);
		mainWindow.addMouseListener(this);
		mainWindow.setLocation(left, top);
		mainWindow.setResizable(true);
		
		// Initialisierungsbildschirm anzeigen
		getStartView();		
		
		mainWindow.setVisible(true);
	}

Da das Platzieren der Moorhühner von der Breite des Spielfelds abhängig ist, darf diese eben nicht 0 sein.

Ich hoffe, es ist so etwas verständlicher erklärt worden ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JFrame#setSize trotz maximiert AWT, Swing, JavaFX & SWT 4
K Bekomme (u.a) javafx.fxml.LoadException trotz "korrektem" Code AWT, Swing, JavaFX & SWT 8
M editorPane bleibt zu klein trotz setPage AWT, Swing, JavaFX & SWT 6
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
T Flackern trotz DoubleBuffering AWT, Swing, JavaFX & SWT 8
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
G Komponenten vergrößern sich nicht trotz Layoutmanager AWT, Swing, JavaFX & SWT 24
U Swing NullPointerException trotz Referenz auf Textfield & Button AWT, Swing, JavaFX & SWT 6
K JavaFX Tableview mit fxml ohne Aktualiserung trotz Thread AWT, Swing, JavaFX & SWT 13
K AWT flackern trotz buffering AWT, Swing, JavaFX & SWT 4
Z Flackern trotz Offscreen Image / Doublebuffer, (+ Frage zu Pixelvergleich) AWT, Swing, JavaFX & SWT 25
M Trotz richtiger Daten, falsches Bild wird gezeichnet?! AWT, Swing, JavaFX & SWT 4
0 JTextPane copy/paste trotz editable(false) ? AWT, Swing, JavaFX & SWT 10
C Applet java.security.AccessControlException trotz signierten Jar AWT, Swing, JavaFX & SWT 7
J Swing JWindow flackert trotz Doppelpufferung AWT, Swing, JavaFX & SWT 2
B Swing JButton flackert trotz DoubleBufferings AWT, Swing, JavaFX & SWT 11
K Flackern trotz Double-Buffering AWT, Swing, JavaFX & SWT 10
S Swing JTable RowSorter trotz RowFilter abschalten? AWT, Swing, JavaFX & SWT 2
T Fenster wird trotz repaint() und revalidate() nicht sofort neu gezeichnet AWT, Swing, JavaFX & SWT 6
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
B JProgressbar wird nicht aktualisert, trotz Threads AWT, Swing, JavaFX & SWT 6
F Java heap space error trotz -Xmx512m AWT, Swing, JavaFX & SWT 9
O JFrame permanet im Vordergrund trotz Alt+Tab AWT, Swing, JavaFX & SWT 2
@ JPanel: kein paintComponent() trotz repaint() AWT, Swing, JavaFX & SWT 4
G Tabellenköpfe trotz Scrollpane ausschalten AWT, Swing, JavaFX & SWT 5
T Animation will nicht trotz Thread. AWT, Swing, JavaFX & SWT 14
S JFrame trotz undecorated vergroessern AWT, Swing, JavaFX & SWT 3
N Trotz richtiger ListSelectionMode kann ich keine Zeile sel? AWT, Swing, JavaFX & SWT 4
S Unterschiedliche Optik trotz gleicher Look and Feel Code? AWT, Swing, JavaFX & SWT 11
T repaint wird trotz Thread nicht ausgeführt AWT, Swing, JavaFX & SWT 5
G Leider trotz allem kein Icon :( Brauche Hilfe AWT, Swing, JavaFX & SWT 3
S animation Flackern trotz doppelpufferung wieso? AWT, Swing, JavaFX & SWT 2
P LayoutManager TextField.setSize(); in einem FlowLayout AWT, Swing, JavaFX & SWT 3
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 7
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 2
H AWT setSize()/setBounds() und pack() kombinieren!? AWT, Swing, JavaFX & SWT 3
B setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 2
T AWT - setSize(..) AWT, Swing, JavaFX & SWT 18
ABstraCT JOptionPane setSize ? AWT, Swing, JavaFX & SWT 6
B setSize() AWT, Swing, JavaFX & SWT 2
P Ignoriert mein setSize()? AWT, Swing, JavaFX & SWT 2
B JFrame flackern durch setSize() AWT, Swing, JavaFX & SWT 8
T setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 5
G tree.setSize tut nicht AWT, Swing, JavaFX & SWT 5
K setSize und setLocation geht nicht AWT, Swing, JavaFX & SWT 8
M Layout / setSize Problem AWT, Swing, JavaFX & SWT 15
A setSize nötig um Elemente sichtbar zu machen? AWT, Swing, JavaFX & SWT 3
T setSize() fertig AWT, Swing, JavaFX & SWT 5
T setSize-Problem in FileDialog AWT, Swing, JavaFX & SWT 4
W JFrame setSize() und setBounds() AWT, Swing, JavaFX & SWT 2
D JSPinner Größe verändern - setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 7
R nach setSize() wird JLabel nicht dargestellt AWT, Swing, JavaFX & SWT 3
Y JTree setSize() AWT, Swing, JavaFX & SWT 5
J setSize von Panelklasse aufrufen AWT, Swing, JavaFX & SWT 9
A JTabbedPane setSize funktioniert nicht ! AWT, Swing, JavaFX & SWT 4
ExceptionOfExpectation JMenu, setMnemonic(Char k) bringt keine Wirkung AWT, Swing, JavaFX & SWT 8
V JavaFX Bild leer und keine Fehlermeldung AWT, Swing, JavaFX & SWT 21
S JavaFX WebView zeigt keine Animation AWT, Swing, JavaFX & SWT 5
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
D Swing Warum erhalte ich keine Ausgabe? Funktioniert der equals-vergleich in actionPeformed nicht richtig? AWT, Swing, JavaFX & SWT 3
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
P Swing JTable keine Markierung nach Button klick AWT, Swing, JavaFX & SWT 0
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
H RCP(SWT) Browser-Widget zeigt keine locale HTML-Dateien an AWT, Swing, JavaFX & SWT 1
N JavaFX Keine Dynamic AWT, Swing, JavaFX & SWT 2
W Swing Ausführung einer .jar zeigt keine Reaktion AWT, Swing, JavaFX & SWT 4
D Swing JList keine Selektionsänderung bei "dragged-Maus" AWT, Swing, JavaFX & SWT 4
N Swing JTable mit Sorter: Keine Sortierung bei Klick in Header AWT, Swing, JavaFX & SWT 3
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
Q JTable - Keine Spaltennamen AWT, Swing, JavaFX & SWT 3
H Swing Keine Rückmeldung (freeze) bei setVisible(false) oder dispose() AWT, Swing, JavaFX & SWT 4
B JEditorPane lädt keine Schriftfarbe in HTML AWT, Swing, JavaFX & SWT 2
dzim TableView - keine Aktualisierung geänderter Items AWT, Swing, JavaFX & SWT 5
E Keine Ausgabe auf Console und List AWT, Swing, JavaFX & SWT 13
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
N Swing Netbeans 7.1 keine DesktopApplication mehr möglich ? AWT, Swing, JavaFX & SWT 15
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
C Swing JFrame nimmt keine anderen Elemente auf AWT, Swing, JavaFX & SWT 13
K Applet Wieso kann ich keine Array im Applet initialisieren AWT, Swing, JavaFX & SWT 13
A Swing JTable benutzt keine Checkbox für Booleans AWT, Swing, JavaFX & SWT 9
M Swing Focus für Buttons deaktiviert --> keine Reaktion mehr auf Tastendrücke AWT, Swing, JavaFX & SWT 5
E Keine Ausgabe von JList bei drücken von Button auf die Konsole AWT, Swing, JavaFX & SWT 7
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
D Fenster will keine Ausgabe geben>:( AWT, Swing, JavaFX & SWT 3
K Applet erkennt keine Frameverkleinerung AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben