JLayeredPane - setBounds mit getWidth/getHeight?

JavaOHJA

Mitglied
hey

ich benutze zum ersten Mal die jayeredPane.
habe herausgefunden, dass Objekte erst sichtbar werden, wenn man setBounds macht.
Ich möchte, dass wenn ich das Panel größer/kleiner ziehe, auch die Objekte die Größe ändern.
daher getWidth()getHeight() für width und height in setBounds.

allerdings sind diese immer = 0.

hat jemand eine Idee, wie ich das machen könnte?

hier ist mal der Code:





Code:
package mädn;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;

public class TestZeichnen extends JFrame {

	//------------------------------------
	//Programm starten
	//------------------------------------
	public static void main(String[] args) {
		
		
		
		new TestZeichnen();

	}

	//------------------------------------
	//Dialogelemente erzeugen
	//------------------------------------	
//	int width = 600;
//	int height = 600;
	Spielfeld feld = new Spielfeld();
	Spielfigur spieler = new Spielfigur();
	JLayeredPane lp = new JLayeredPane();
	//------------------------------------
	//Konstruktor (baut GUI auf)
	//------------------------------------

	public TestZeichnen() {

		//------------------------------------
		//Listener-Methoden (Reaktion auf Benutzereingaben)
		//------------------------------------

		//------------------------------------
		//Dialogelemente konfigurieren
		//------------------------------------	
		
			
		spieler.setBounds(0,0,getWidth(),getHeight() );
		feld.setBounds(0,0,getWidth(),getHeight());
		
		lp.add(feld, new Integer(0));
		lp.add(spieler, new Integer(1));
		
		//------------------------------------
		//Dialogelemente platzieren
		//------------------------------------	
		JPanel mainPanel = new JPanel(new BorderLayout());
		mainPanel.setBorder(new EmptyBorder(20, 20, 20, 20));
		
		
		mainPanel.add(lp);
		add(mainPanel);
		
		
		//------------------------------------
		//Fenster konfigurieren
		//------------------------------------
		//pack();
		setSize(600, 600);
		System.out.println(getWidth());
		setDefaultCloseOperation(EXIT_ON_CLOSE);//damit mit close von fenster auch in konsole terminiert wird/Programm ende sonst läufts im hintergrund noch weiter im speicher
		setTitle("TestZeichnen :D");
		setVisible(true); // ist letze anweisung im Konstruktor

	}

}//class
 

eMmiE

Bekanntes Mitglied
Deine Hauptklasse erbt von JFrame und du hast die Variablen height und width, aber du sagst nicht, wie groß dein JFrame sein soll, bzw tust das erst, nachdem du schon getWidth(), getHeight() abgefragt hast

In dem Moment, wo du abfragst hat dein JFrame noch die Werte (0,0,0,0)
Entweder du sagst vorher, wie groß dein Fenster sein soll oder du nimmst statt getWidth() einfach nur die Variable

Gruß eMmiE
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Ähnliche Java Themen

Neue Themen


Oben