Mit Graphics g ins Fenster zeichnen

Status
Nicht offen für weitere Antworten.

Sqwan

Mitglied
Also ich habe ein problem. Und zwar will ich einen String in mein Fenster zeichnen.
Dazu habe ich folgende Methode:

Code:
public void paint(Graphics g)
{
  	 g.setColor(Color.white);

  	 g.setFont(new Font("Arial", Font.PLAIN, 50));
  	 g.drawString("Haushaltsplaner",50,50);  
}


Naja... das Zeichnet aber nicht in mein Fenster, sondern einfach auf den Bildschirm. Egal was da drunter ist oder so.
Ich denke mal das mein Fenster aus irgendeinem Grund Unsichtbar wird.

Wenn ich die methode auskommentiere dann sehe ich das Fenster und es hat dann auch einen Gelben hintergrund.
Hat jemand eine Ahnung woran das leigen kann?
Hier mal der Quellcode:

Code:
class hplaner extends JFrame
{
	hplaner()
	{
		GraphicsEnvironment s_graphicsEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
		GraphicsDevice s_graphicsDev = s_graphicsEnv.getDefaultScreenDevice(); 
		
		setUndecorated(true);
		
		JPanel p = new JPanel();
		p.setBackground(new Color(255,255,0));
		p.setLayout(new BorderLayout());
		add(p);
		
		s_graphicsDev.setFullScreenWindow(this);
		
		sleep s = new sleep();
		s.sleep(2000);
		dispose();
	}
	
	public void paint(Graphics g)
  	{
  	 g.setColor(Color.white);

  	 g.setFont(new Font("Arial", Font.PLAIN, 50));
  	 g.drawString("Haushaltsplaner",50,50);
  	  
  	}

	class sleep
	{
		public void sleep(int time)
		{
			try{Thread.sleep(time);}
			catch (InterruptedException e){}
		}
	}
}

und in meiner zweiten Klasse wird diese dann aufgerufen:
Code:
	public static void main(String args[])
	{
		new hplaner().setVisible(true);
		//final haushaltsplaner hl = new haushaltsplaner();
	}

Was mache ich falsch?

MFG Sqwan
 

Marco13

Top Contributor
Man sollte i.a. nicht die paint-Methode eines JFrames überschreiben. Wenn man sie überschreibt, muss man schon SEHR genau wissen, was man da tut (ich würde es, nach >10 Jahren Swing-Erfahrung, nicht machen :wink: ), und in den meisten Fällen wäre die 1. Zeile der überschriebenen Methode dann
super.paint(g);

In den allermeisten Fällen sollte man das, was man Zeichnen will, in einer Klasse Zeichnen, die z.B. von JPanel abgeleitet ist, und dieses JPanel dann (ggf. als einzige Component) mit
frame.getContentPane().add(dasPanel);
in den Frame legen.

In dem JPanel würde man dann aber paintComponent(Graphics g) überschreiben. Und dort wäre die 1. Zeile entsprechend
super.paintComponent(g);
 

Sqwan

Mitglied
Hm... Ich verstehe nicht was du meinst. Ich habe doch 2 klassen.
Und ich kenne es auch nur so, das man die Paint-methode überschreibt.
Ich habe auch schon versucht @Override davor zu schreiben, was ich erstens auch nicht verstanden habe und zweitens nicht geklappt hat.

Bis her habe ich immer nach den Beispielen aus Java ist eine Insel6 gearbeitet. Auch diesmal. Aber iwie funktioniert es diesmal nicht. Kann es daran liegen das das Fenster Vollbild ist?
Aber angezeigt werden sollte es schon. Das kann ja nicht einfach durchsichtig wirden.

Naja... Jedenfalls kenne ich das nicht, das man sich eine Klasse zu zeichnen schreibt. Sowas habe ich noch nie gesehen.
Ich habe eigendlich aber auch noch nie ein Projekt gehabt, das die Paint-methode braucht.
Naja nun schreibe ich das Haushaltsprogramm einer schule um, das Vorher in Pascal geschrieben war, und da wird erst eine Fenster geöffnet in der Ganz groß "Haushaltsplaner" geschrieben wird mit nem Balken drunter und drüber. Das eione Fenster soll nach 2000 (ich glaube milisekunden) geschlossen werden und ein neues Fenster geöffnet werden.

Vllt gibts da ja ne andere möglichkeit.

MFG Sqwan
 

Tobias

Top Contributor
Bei Swing macht paint() sehr viel mehr als nur die Komponente neuzeichnen. Überschreibe statt paint() paintComponent() und alles wird gut.

mpG
Tobias
 

Sqwan

Mitglied
Code:
	public void paintComponent(Graphics g)
  	{
  	 //g.setColor(new Color(0,0,0));

  	 g.setFont(new Font("Arial", Font.PLAIN, 50));
  	 g.drawString("Haushaltsplaner",100,100);
  	  
  	}

Danke. Jetzt ist mein Fenster wieder da. Jedoch ist der Text wieder Weg.
Da steige ich nicht so ganz durch. Wo kann ich denn nachlesen was paint() und was painComponent() genau macht?
In der mitinstallierten Hilfe versteht man ja nichts, mal abgesehen davon wie die methoden funktionieren.

Naja.. Wäre erstmal noch super wenn mir jemand sagen könnte woran es liegt, dass nun der text weg ist.

MFG und Danke schon mal
Sqwan
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Graphics Objekte scalen mit Veränderung des Bildschirms AWT, Swing, JavaFX & SWT 19
T Bild in ein graphics füllen AWT, Swing, JavaFX & SWT 2
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
DonBronson Java Graphics bewegbar machen (Drag&Drop) AWT, Swing, JavaFX & SWT 3
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
R AWT Graphics initialisieren AWT, Swing, JavaFX & SWT 15
P JPanle, JFrame und Graphics AWT, Swing, JavaFX & SWT 2
R 2D-Grafik PNG Bild per Graphics auf JPanel AWT, Swing, JavaFX & SWT 9
B Graphics to Image AWT, Swing, JavaFX & SWT 3
T Swing Graphics auf Panel AWT, Swing, JavaFX & SWT 2
B Graphics -> Graphics2D etwas zu beachten? AWT, Swing, JavaFX & SWT 8
P ActionListener Graphics Einbauen AWT, Swing, JavaFX & SWT 0
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
R Swing Bewegung eines Graphics Objektes innerhalb eines JPanels funktioniert nicht richtig AWT, Swing, JavaFX & SWT 2
V Netbeans: TabbedPane, ScrollPane und Graphics AWT, Swing, JavaFX & SWT 4
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
M Graphics.fillOval AWT, Swing, JavaFX & SWT 1
javampir Sauberes Faden mit awt Graphics AWT, Swing, JavaFX & SWT 6
D 2D-Grafik Inhalt eines Graphics in anderes Graphics zeichnen.... AWT, Swing, JavaFX & SWT 3
X AWT Text der mit Graphics "drawString(...)" geschreiben wurde wieder löschen. AWT, Swing, JavaFX & SWT 6
C Zwei Ebenen in Graphics ? AWT, Swing, JavaFX & SWT 0
C Graphics Objekt in Zeitschleife zeichnen AWT, Swing, JavaFX & SWT 4
D Frage zu JFrame und Graphics AWT, Swing, JavaFX & SWT 4
I JavaFX Graphics Performance AWT, Swing, JavaFX & SWT 2
vodkaz Graphics aufrufen AWT, Swing, JavaFX & SWT 4
V 2D-Grafik Frage zum Graphics Objekt AWT, Swing, JavaFX & SWT 2
P 2D-Grafik NPE beim Zeichnen auf Graphics g AWT, Swing, JavaFX & SWT 8
M Graphics.drawImage von unten nach oben abbilden lassen AWT, Swing, JavaFX & SWT 6
F Probleme mit (Graphics g) II AWT, Swing, JavaFX & SWT 4
F Probleme mit (Graphics g) AWT, Swing, JavaFX & SWT 3
M JFrame Graphics.drawString Problem AWT, Swing, JavaFX & SWT 11
I Rechteck eines Graphics eines JPanels in einem anderen JPanel anzeigen AWT, Swing, JavaFX & SWT 7
antonbracke Multiplayer Shooter- Wie geht das mit Canvas & Graphics AWT, Swing, JavaFX & SWT 6
R Ankerpunkt bei Graphics AWT, Swing, JavaFX & SWT 3
R Fließende Bewegung von Graphics AWT, Swing, JavaFX & SWT 6
T AWT Graphics G Kein Text erscheint warum? AWT, Swing, JavaFX & SWT 12
L Graphics.drawImage() - Output-Größe entspricht nicht Parametern AWT, Swing, JavaFX & SWT 10
L Border verschwindet durch Graphics.drawImage() AWT, Swing, JavaFX & SWT 4
Furtano AWT paint braucht ein Graphics Objekt ? AWT, Swing, JavaFX & SWT 2
P "Graphics" wird nicht angezeigt AWT, Swing, JavaFX & SWT 11
L Graphics Objekt - aus anderer Klasse aufrufen / übergeben AWT, Swing, JavaFX & SWT 5
B Swing Zeilenumbruch in Graphics AWT, Swing, JavaFX & SWT 20
T Graphics zeichnet nicht AWT, Swing, JavaFX & SWT 2
T Applet graphics - zeichnen funktioniert nicht AWT, Swing, JavaFX & SWT 14
R Graphics-Object speichern AWT, Swing, JavaFX & SWT 4
S Zeichnen mit java.awt.Graphics AWT, Swing, JavaFX & SWT 6
D Graphics zeichnen AWT, Swing, JavaFX & SWT 6
M Graphics auf JFrame Koordinatensystem AWT, Swing, JavaFX & SWT 3
T Graphics Ersetzend Zeichnen AWT, Swing, JavaFX & SWT 6
S Unterscheiden ob ein Graphics-Objekt von einer JComponent oder einem BufferedImage kommt..? AWT, Swing, JavaFX & SWT 4
Developer_X Swing Auf ein BufferedImage mit Graphics/Graphics2D zeichnen AWT, Swing, JavaFX & SWT 6
D Erzeugen eines leeren Graphics-Objektes AWT, Swing, JavaFX & SWT 7
B Anzeigefehler in GridBagLayout durch paintComponent(Graphics g) AWT, Swing, JavaFX & SWT 3
A AWT AWT Panelfenster mit Graphics kombinieren AWT, Swing, JavaFX & SWT 7
T Graphics Parameterübergabe AWT, Swing, JavaFX & SWT 3
K Graphics.drawImage() sehr schnell AWT, Swing, JavaFX & SWT 5
M Graphics-Objekt aktualisiert sich nicht AWT, Swing, JavaFX & SWT 2
N paintComponent für Graphics ansprechen AWT, Swing, JavaFX & SWT 2
M Graphics.drawImage verlangsamt sich plötzlich AWT, Swing, JavaFX & SWT 15
S Swing AWT (graphics (g)) AWT, Swing, JavaFX & SWT 27
E einfache Frage zu paintComponent und Graphics AWT, Swing, JavaFX & SWT 7
B Swing Tooltips auf Graphics AWT, Swing, JavaFX & SWT 8
Ä Graphics-Komponente auf JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Applet mit Graphics dynamisch vergrößern AWT, Swing, JavaFX & SWT 3
T Dialog ohne Frame, direktes paint in graphics AWT, Swing, JavaFX & SWT 5
T Swing Component in Graphics zeichnen AWT, Swing, JavaFX & SWT 4
J getFontMetrics außerhalb von paint(Graphics g) AWT, Swing, JavaFX & SWT 8
E Problem bzw. Sinn von Graphics / Graphics Context AWT, Swing, JavaFX & SWT 21
S Weder ActionListener noch Graphics wollen so recht AWT, Swing, JavaFX & SWT 3
F Methode drawOval(int,int,int,int) von graphics AWT, Swing, JavaFX & SWT 4
G Graphics Objekte in AWT Container einfügen AWT, Swing, JavaFX & SWT 2
G Graphics - Raute AWT, Swing, JavaFX & SWT 3
G "pinseldicke" bei Graphics? AWT, Swing, JavaFX & SWT 2
G Graphics.drawImage() AWT, Swing, JavaFX & SWT 6
D Methode Graphics g klassenübergreifend nutzen. AWT, Swing, JavaFX & SWT 3
W java.lang.NoClassDefFoundError: org/eclipse/swt/graphics/Dev AWT, Swing, JavaFX & SWT 1
B Graphics und Canvas - Problem AWT, Swing, JavaFX & SWT 2
H eigene paintComponent(Graphics) kommt mit rezise nicht klar AWT, Swing, JavaFX & SWT 6
T Transparenz bei Graphics AWT, Swing, JavaFX & SWT 9
L Graphics AWT, Swing, JavaFX & SWT 37
B JPanel#paintComponent(Graphics g) << flackert oO AWT, Swing, JavaFX & SWT 3
Y Problem mit der Referenz eines Graphics-Objekts AWT, Swing, JavaFX & SWT 5
O Graphics erstellt Componente scheinbar nicht richtig AWT, Swing, JavaFX & SWT 23
G 2x Graphics in einer paint() miteinander verbinden AWT, Swing, JavaFX & SWT 11
K Gutes Buch gesucht (Graphics Only) Kennt jemand eins? AWT, Swing, JavaFX & SWT 5
K Graphics-Objekt zeichnet nicht alle Bilder AWT, Swing, JavaFX & SWT 3
J Einmal gleichzeitig auf zwei Graphics malen? AWT, Swing, JavaFX & SWT 5
E Image, Graphics, verzögert zeichnen AWT, Swing, JavaFX & SWT 2
N Graphics Objekt "puffern" AWT, Swing, JavaFX & SWT 7
H neuzeichnen von graphics nach minimierung oder ähnlichem AWT, Swing, JavaFX & SWT 10
G SWT Graphics Zeichnung neu laden AWT, Swing, JavaFX & SWT 13
G SWT Graphics GC Problem AWT, Swing, JavaFX & SWT 6
M Abstrakte Graphics Klasse erzeugen AWT, Swing, JavaFX & SWT 2
H awt Graphics und Image selbermachen ? AWT, Swing, JavaFX & SWT 12
D Image aus Graphics erstellen? AWT, Swing, JavaFX & SWT 2
R Graphics Objekt ändern AWT, Swing, JavaFX & SWT 11
raptorrs J2D graphics, sind 500px immer 500 px AWT, Swing, JavaFX & SWT 2
G Graphics AWT, Swing, JavaFX & SWT 2
H Graphics: Schriftgröße ändern AWT, Swing, JavaFX & SWT 4
X Problem mit Image und Graphics AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben