Paint-Methode Überschreiben macht Refresh-Fehler ?

Status
Nicht offen für weitere Antworten.

FinalbrainXP

Aktives Mitglied
Hi :)

Habe nen kleines Problem mit dem Überschreiben der Paint-Methode. Und zwar wird mein Hintergrundbild nicht wirklich
gezeichnet. Das bedeutet es wird zwar gezeichnet..doch mit dem Refreshen..da summt mein Monitor und es flackert EXTREM. Ich weiss, das Thema mit der Paint-Methode ist überall durchgekaut, doch ich finde keine Lösung woran es liegen kann. In anderen Anwendnungen klappt sowas auch ganz ohne Probs..doch meine nun spezielle Konstellation will irgendwie nicht. Wo ist da mein Fehler ?


Vorgeschichte:

Ich benutze NUR AWT, keine SWING-Komponente, da ich später mit OPENGL aufsetzen will.

1.) Ich habe nen einfaches Frame OHNE Layout-Manager.

2.) Dann Habe ich ein Panel (Kein JPanel) auch OHNE Layout-Manager. In diesem Panel überschreibe ich die
Paint-Methode und lass ein Hintergrundbild zeichnen. Das Überschreiben der PaintComponent-Methode funzt hier
irgendiwe überhaupt nicht. Nur Das Überschreiben der Paint-Methode klappt.

3.) Diesem Panel adde ich dann ne TextArea und adde dann das Panel zum Frame. also eigentlich ne simple
Konstellation.

4.) Es wird auch alles korrekt gezeichnet, NUR wenn ich dann zum Beispiel Text markiere im TextArea, dann summt der
Monitor und es flackert alles wie verrückt. (NICHT nur die Java-applikation..ganz windows samt Desktop)
Ich weiss, Paint-Methode überschreiben gehört verboten, aber PaintComponent klappt hier nicht.

Hier mal die relevanten Code-Auszüge:


DAS PANEL
Code:
import java.awt.*;

class PropertyBackground extends Panel
{
	private Image image;
	
	public PropertyBackground(Image image, int width, int height)
	{
		super();
		
		this.setBackground(Color.BLACK);
		this.image = image;
		this.setLayout(null);
		this.setBounds(0,0,width,height);
	}
	
	public void paint(Graphics g)
	{
		super.paint(g);
		g.drawImage(image,0,0,image.getWidth(this), image.getHeight(this),this);	
	}
}

AUSZÜGE AUS DEM FRAME
Code:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.*; //Nur für ImageIcon

public class PropertyFrame extends Frame
{
   	private final int WIDTH = 512;
   	private final int HEIGHT = 400;
   	
   	public PropertyFrame()
   	{
		
		
		this.setLayout(null);     	
		this.setSize(WIDTH, HEIGHT);
		setBackground(Color.black);		
		centerWindow(this);
		
			
		this.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
						
		PropertyConsole propertyCon = new PropertyConsole(WIDTH-100,HEIGHT-100);
		
		
		PropertyBackground propertyBack = new PropertyBackground(new ImageIcon("c://Test.jpg").getImage(), WIDTH, HEIGHT);
		
		propertyBack.add(propertyCon);
		
		this.add(propertyBack);
					
		this.setVisible(true);

HIER DIE TEXTAREA
Code:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class PropertyConsole extends TextArea
{
	public final boolean LEVEL_OK    = true;
	public final boolean LEVEL_ERROR = false;
	private final String LEVEL_OK_MESSAGE = " [OK]";
	private final String LEVEL_ERROR_MESSAGE = " [FEHLER!]";
	
	public PropertyConsole(int width, int height)
	{
		super("",100,25,TextArea.SCROLLBARS_VERTICAL_ONLY);
		
		this.setBounds(16,32,width, height);
		this.setForeground(Color.yellow);
		this.setVisible(true);
		this.setBackground(Color.black);
		this.setEditable(false);
	}



Ich habe schon rumgedebuggt und festgestellt, das es irgendwie mit den Layoutmanagern festhängen...Habe auch schon das ganze mit Swing ausprobiert..also JPanel benutzt etc. da kommt derselbe fehler...was habe ich dummes vergessen oder falsch gemacht ?

Gruss

Final
 

Wildcard

Top Contributor
AWT hat gar keine paintComponent Methode, klar das die nicht aufgerufen wird :wink:
Installier mal einen anderen Treiber für deine Grafikkarte, oder spiel ein wenig mit den Einstellungen rum, denn mit Java-Mitteln lässt sich das von dir geschilderte Verhalten gar nicht erreichen.
 

FinalbrainXP

Aktives Mitglied
Hmm..ja..du hast Recht, habe nachgeschaut..die PaintComponent-Methode gibt es dort nicht.
Nur habe ich immer noch das Refresh Problem. Das liegt weder an dem Grafikkartentreiber noch an meiner VM..die sind beide 100% in Ordnung. Ich habe sonst auch keine Probleme mit meinen anderen Grafikanwendungen in Java.
Ich vermute mal es liegt irgendwie am Layout-Manager, weil wenn ich ohne den Arbeite..dann kommt das Flackern nicht.
Habe herausgefunden, dass wenn ich mein Fenster mit der Maus ein wenig zur Seite Ziehe, also aufm Desktop Move sind alle Probleme danach beseitigt. Woran kann das Liegen ? Habe ich irgend ne Reihenfolge der Aufrufe falsch oder so etwas ähnliches ? Es liegt nicht an meinem System..andere AWT Anwendungen klappen superb.
 

Wildcard

Top Contributor
Den ganzen Desktop könntest du höchstens mit Fullscreen-Modus zum Flackern bringen, sofern du das nicht benutzt tippe ich eher auf Probleme mit der Graka respektive den Treibern
 

FinalbrainXP

Aktives Mitglied
Hmm...könnte jemand mal das Prog bei sich testen und mir dann bescheid sagen, ob es bei euch Einwandfrei läuft ?
Kann mir das garnet mit den Treibern Vorstellen...habe den neusten NVidea-Detonator und ne Geforce 6800.
Nie Probleme gehabt. Wenns bei euch läuft, dann kann ich Programmierfehler dann endgültig ausschließen :)

Hier die Class-Dateien:

http://rapidshare.de/files/30490523/JOGL_Engine.zip.html


Einfach am win32/Linux Prompt: Java JOGLRun




Gruss

Final
 

FinalbrainXP

Aktives Mitglied
Wo ist das Prob ? Geht ohne JAR und Sourcen sind nicht Sinn dieser Übung. Wenn du Aufmerksam gelesen hättest, dann wäre dir nicht entgangen, das es mir darum geht ob es bei dir läuft, und KEINE Fehler auftreten, wenn du den TExt markierst...naja..vielleicht versteht jemand anders das Problem :(
 

FinalbrainXP

Aktives Mitglied
Hatte den Fehler noch gefunden.

Fürs Archiv:

Es handelte sich um JPG, welches in der Paintmethode mit dem Draw Befehl über den Zeichenbereich von
dem Panel hinausmalte. Habe mit setBounds() das Panel auf die größe des JPG's angeglichen und nun gehts wunderbar.

Also: Kein Treiberproblem, sondern eigene Dummheit ;)


Bitte Thread closen ;)

Thnx@all

Final
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb 2D-Grafik paint-Methode wird zu oft ausgeführt AWT, Swing, JavaFX & SWT 5
S Zeichen ohne paint-Methode AWT, Swing, JavaFX & SWT 2
J Swing Wann brauche ich @Override vor der paint()-Methode? AWT, Swing, JavaFX & SWT 1
G Eine paint-Methode, 2 Welten? AWT, Swing, JavaFX & SWT 3
A paint-Methode aufrufen AWT, Swing, JavaFX & SWT 13
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
W Paint-Methode in anderer Klasse funktioniert nicht AWT, Swing, JavaFX & SWT 7
F 2D-Grafik Was ruft die Paint - Methode auf ? AWT, Swing, JavaFX & SWT 2
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
S Paint Methode ohne implements JPanel AWT, Swing, JavaFX & SWT 1
S Farbe ändern bei der paint-Methode AWT, Swing, JavaFX & SWT 5
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
J Problem mit der paint Methode AWT, Swing, JavaFX & SWT 0
Junb 2D-Grafik paint() Methode bugt? AWT, Swing, JavaFX & SWT 2
I Paint-Methode von nicht statischen Objekten aufrufen AWT, Swing, JavaFX & SWT 3
D JSlider "laggt" nach überschreiben der paint methode AWT, Swing, JavaFX & SWT 2
A Paint Methode externer auruf AWT, Swing, JavaFX & SWT 5
J AWT Methode paint() AWT, Swing, JavaFX & SWT 4
X Bild via FileChooser in paint-Methode laden AWT, Swing, JavaFX & SWT 2
G paint-Methode kopiert GUI AWT, Swing, JavaFX & SWT 14
F AWT Probleme mit der paint() methode AWT, Swing, JavaFX & SWT 2
C Unterschiedlicher Aufruf der paint() Methode ? (AWT/Swing) AWT, Swing, JavaFX & SWT 2
L Problem mit paint Methode und Bild AWT, Swing, JavaFX & SWT 7
F paint-Methode des JComboboxEditorComponent AWT, Swing, JavaFX & SWT 2
hdi Swing JLabel & paint-Methode gemixt - wie schlimm wirklich? AWT, Swing, JavaFX & SWT 5
N Paint methode anhalten und neustarten AWT, Swing, JavaFX & SWT 5
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
M Allgemeines zur paint Methode AWT, Swing, JavaFX & SWT 5
A paint()-Methode für Videoexport nutzen AWT, Swing, JavaFX & SWT 2
D Paint() Methode aus einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 6
L Dynamisches Ändern der Größe in JPanel mit paint()-Methode AWT, Swing, JavaFX & SWT 8
C paint-Methode überschreiben AWT, Swing, JavaFX & SWT 19
hdi meine paint-methode macht faxen? AWT, Swing, JavaFX & SWT 21
G paint() Methode aus anderer klasse aufrufen? AWT, Swing, JavaFX & SWT 6
G Frage zur paint-Methode (AWT) AWT, Swing, JavaFX & SWT 9
N paint Methode im JFrame AWT, Swing, JavaFX & SWT 3
T Paint-Methode geht nicht AWT, Swing, JavaFX & SWT 5
B paint methode wiederholen AWT, Swing, JavaFX & SWT 6
G Problem mit paint Methode und Buttons AWT, Swing, JavaFX & SWT 10
T JPanel - paint Methode?, aber wie AWT, Swing, JavaFX & SWT 13
K paint-Methode überschrieben - trotzdem JComponenten zeichnen AWT, Swing, JavaFX & SWT 5
bummerland paint Methode AWT, Swing, JavaFX & SWT 2
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
frager2345 Warum paintComponent hier und nicht paint AWT, Swing, JavaFX & SWT 2
U Was ist der Unterschied von paint und paincomponent? AWT, Swing, JavaFX & SWT 3
L 2D-Grafik Swing paint|paintComponent AWT, Swing, JavaFX & SWT 2
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
L Berechnungen in paint AWT, Swing, JavaFX & SWT 8
S 2 Paint-Methoden in einer Klasse ? AWT, Swing, JavaFX & SWT 2
J zwei Paint methoden in einer Klasse AWT, Swing, JavaFX & SWT 3
P Paint und paintComponent AWT, Swing, JavaFX & SWT 12
S 2 paint-Methoden in einer Klasse ? AWT, Swing, JavaFX & SWT 2
C JFrame paint ohne hintergrund nutzen AWT, Swing, JavaFX & SWT 6
A Swing Paint mit Button Clear den Hintergrund säubern um wieder zeichnen zu können AWT, Swing, JavaFX & SWT 2
K 2D-Grafik Paint - Wie binde ich repaint ein? AWT, Swing, JavaFX & SWT 8
S paint() verzögern AWT, Swing, JavaFX & SWT 9
K AWT begrenzte anzahl paint aufrufe AWT, Swing, JavaFX & SWT 6
B Infolabel Probleme mit Paint() ? AWT, Swing, JavaFX & SWT 8
L AWT paint mit ArrayList und Iterator AWT, Swing, JavaFX & SWT 3
Furtano AWT paint braucht ein Graphics Objekt ? AWT, Swing, JavaFX & SWT 2
L Swing 64bit Problem mit paint/paintComponent AWT, Swing, JavaFX & SWT 7
T JFrame und paint() AWT, Swing, JavaFX & SWT 5
B Ablauf der paint-Methoden von JComponents AWT, Swing, JavaFX & SWT 20
F 2D-Grafik Hostkomponentengröße in paint AWT, Swing, JavaFX & SWT 2
L JFrame an Paint-Inhalt anpassen AWT, Swing, JavaFX & SWT 6
E Warum übermalt paint das ganze Fenster? AWT, Swing, JavaFX & SWT 15
T paint() wird nicht aufgerufen AWT, Swing, JavaFX & SWT 8
M JMenuBar im Applet und paint AWT, Swing, JavaFX & SWT 9
H paint überlappend AWT, Swing, JavaFX & SWT 5
E paint AWT, Swing, JavaFX & SWT 3
H Swing paint() von JPanel wird nicht aufgerufen AWT, Swing, JavaFX & SWT 10
L AWT Paint(g) im Listener aufrufen AWT, Swing, JavaFX & SWT 2
S JCheckBox Paint AWT, Swing, JavaFX & SWT 7
F Swing Paint mit Canvas Element AWT, Swing, JavaFX & SWT 35
K AWT paint wird nicht aufgerufen AWT, Swing, JavaFX & SWT 7
R LayoutManager Image Paint + Text Panel AWT, Swing, JavaFX & SWT 10
S Threads in einen Frame zeichnen lassen (Paint()?!) AWT, Swing, JavaFX & SWT 5
radiac Swing JFrame - paint(g) - FrameObjects bei activeRendering AWT, Swing, JavaFX & SWT 3
I AWT paint() in MouseEvent aufrufen klappt nicht AWT, Swing, JavaFX & SWT 8
T paint() wird zweimal ausgeführt AWT, Swing, JavaFX & SWT 6
H AWT Wann ist paint() fertig? AWT, Swing, JavaFX & SWT 7
W Steuerelemente und paint() in einem JPanel AWT, Swing, JavaFX & SWT 3
M AWT Component/Canvas erzeugt unerwünschten Rahmen bei paint AWT, Swing, JavaFX & SWT 3
T Dialog ohne Frame, direktes paint in graphics AWT, Swing, JavaFX & SWT 5
G Probleme mit repaint / paint AWT, Swing, JavaFX & SWT 6
K repaint() ruft paint() nicht auf AWT, Swing, JavaFX & SWT 14
J Canvas / paint() AWT, Swing, JavaFX & SWT 2
bugmenot paint() verzögert ausgeführt? AWT, Swing, JavaFX & SWT 4
S paint() in anderen Methoden AWT, Swing, JavaFX & SWT 5
J getFontMetrics außerhalb von paint(Graphics g) AWT, Swing, JavaFX & SWT 8
H paint verwenden AWT, Swing, JavaFX & SWT 3
S java.awt.Component und paint() AWT, Swing, JavaFX & SWT 4
A Paint funktioniert nicht richtig AWT, Swing, JavaFX & SWT 7
G JScrollPane mit "paint" scrollt nicht AWT, Swing, JavaFX & SWT 2
T Variable Menge an Bildern außerhalb paint() zeichnen? AWT, Swing, JavaFX & SWT 2
G Paint und Buttons AWT, Swing, JavaFX & SWT 8
G JFrame JPanel und Paint(Image)? AWT, Swing, JavaFX & SWT 6
S Programm aufgrund von paint() zu langsam AWT, Swing, JavaFX & SWT 18
G paint() wird aufgerufen, aber nicht angezeigt AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben