Zum Inhalt springen

paint(Graphics g) und JMenuBar für JFrame


Empfohlene Beiträge

Geschrieben

Hi,

ich hab nen JFrame mit ner JMenuBar und wenn ich jetzt die Methode paint hinzufüge verschwindet die JMenuBar wie kann ich das verhindern damit ich die Zeichenfläche und die JMenuBar habe ????

Gruß Scratch

Geschrieben

Moin,

reicht es wenn du in paint


super(g);

aufrufst?

Ansonsten könntest du ja ein gesonderes Panel auf ne Frame legen und dessen Paint - Methode überschreiben, damit sich das nicht ins Gehege kommt. Geht das?

gruß, Peter

Geschrieben

werd ich mal probieren !

wird aber etwas dauern :-)

mache noch nicht lange Java und werd deshalb viel probieren müssen.

ich hab aber jetzt einfach mal neue Klasse angelegt mit extends JPanel und probier mal was ich damit anfangen kann !

Danköööö für den Tipp :-) !!!

Geschrieben

Moin,

lass dir Zeit! ;-)

Also, mit super() rufst du innerhalb einer Klasse immer etwas aus der Basisklasse auf, jenachdem wo und in welchem Zusammenhang du es schreibst.

In deinem Fall (paint-Methode überschrieben) würdest du also die Paint-Methode von JFrame aufrufen und danach könntest du weitere Sachen hinzuzeichnen.

Oft sieht man auch, dass innerhalb eines Konstruktors super() aufgerufen wird, einfach um somit den Konstruktor der Basisklasse aufzurufen.

Das mit dem JPanel war nur so ne Idee. Das Panel kannst Du auf das ContentPane des Frames klatschen und kannst dann die Paint-Methode des Panels überschreiben, wodurch halt die Paint-Methode vom Frame nicht direkt verändert wird und der MenuBar erhalten bleibt.

Gruß, Peter

(Der nie weiß ob er überhaupt was richtiges erzält ^_^)

Geschrieben

also ich hab jetzt einfach ein JPanel angelegt und übergebe dem die sachen die es malen soll ;-)

ich hab eigentlich nur noch Probleme mit dem anpassen der Fenstergröße des Frames .... die Funktion

Image.getWidth(this)

und

Image.getHeight(this)

liefern nachdem das Bild mit

map = Toolkit.getDefaultToolkit().getImage(myImage);

geladen wurde beide -1 statt de eigentlich größe, erst beim zweiten Klick auf meinen Button erkennt der die größe des Bildes :-(

Geschrieben

Bei Klick auf den Button -->



paintPanel.setBackgroundImage(image);

System.out.println(paintPanel.getPaintAreaWidth()); // Beim ersten mal -1

System.out.println(paintPanel.getPaintAreaHeight()); // Beim ersten mal -1


setSize(paintPanel.getPaintAreaWidth(),paintPanel.getPaintAreaHeight());


// PaintPanel.class

public void setBackgroundImage(String image)

{

	map = Toolkit.getDefaultToolkit().getImage(image);

	repaint();

	mapWidth = map.getWidth(this);

	mapHeight = map.getHeight(this);

}


als Ergebnis wie schon erwähnt

Klick 1: -1 -1

Klick 2: 300 200

Geschrieben

Ja das Bild kommt.



public int getPaintAreaWidth()

{

	return image.getWidth();

}


das sollte richtig sein. aber ich glaub ich hab was gefunden ... in den google.de Newsgroups !!
Images take some time to load. They load in another thread and the main thread continues. So, when you try to get info. about the image the first time, the image is not ready so you do not get the information. To get around this, you can use a MediaTracker object to track the image and tell you when it is loaded.
Jetzt hab ichs abgeändert zu


	public void setBackgroundImage(String image)

	{

		MediaTracker tracker = new MediaTracker(this);

		map = Toolkit.getDefaultToolkit().getImage(image);

		tracker.addImage(map,0);

		try

		{

			tracker.waitForID(0);

		}

		catch (Exception e){}

		mapWidth = map.getWidth(this);

		mapHeight = map.getHeight(this);

	}

und es geht ... jetzt fehlt nur noch das er das Bild gleich aktualisiert !!!

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...