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 !!!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...