zooming-Framework und doubleBuffering

Status
Nicht offen für weitere Antworten.

mseele

Mitglied
hi,

ich entwickel grad ein programm das viele verscheidene rechtecke auf dem bildschirm darstellt. die rechtecke können per dragAndDrop verschoben werden und das programm unterstützt zooming.
jetzt hab ich das problem das die preformance sehr schlecht ist, da die rechtecke viel text... als inhalt haben. deswegen wollte ich die rechtecke mit doubleBuffering umsetzten, damit ich mehr geschwindigkeit raushole.
das funktioniert auch ganz tool, allerdings wird der inhalt der rechtecke im gezoomten modus recht pixelig dargestellt. leider bin ich noch nicht auf eine lösung gekommen. ich hab aber ein beispiel programm und wär dankbar wenn sich das jemand mal anschauen würde.
hier kann man leider keine dateien an ein posting dranhängen, ich würd das programm aber per mail weiterleiten, wenn jemand interesse daran hätte, mir zu helfen! :lol:

thx mseele
 

Illuvatar

Top Contributor
Vielleicht nützt Antialiasing was, bin mir aber nicht sicher, ob ich dich richtig verstehe.
Bei dem, was ich aktuell programmiere (mit Zoomfunktion) (hallo, Beni), hats was genützt:

Code:
graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 

mseele

Mitglied
nein! das hat nix mit antialaising zu tun! durch das zoomen wird der buffer, also das bild einfach groß gezeichnet! ich weiß wo das problem liegt, bekomm es nur nicht behoben! soll ich dir mal mein beispielprogramm schicken?
 

Illuvatar

Top Contributor
Also, ich verstehe jetzt das Problem.
Und: Ich habe keine Ahnung.

Aber :!: : Wenn du die Buttons doppelbufferst, wird die Performance eher schlechter, dadurch wird nur das Flackern verhindert, außerdem sind deine JComponents sowieso doppelgebuffert. Desegen ist das ganze ewas unnötig. Trotzdem interessiert es mich.

Nochmal zur Erklärung an alle:
Er hat in den Buttons folgende Methode (ich darf das doch posten, oder?) zum Zeichnen, mit Unterscheidung zwischen doppelgebuffert und nicht-doppelgebuffert.
Code:
protected void paintComponent(Graphics g) {
		if (buffered) {
			//buffered painting
			Graphics2D g2d = (Graphics2D) g;
			//g2d.setRenderingHint(java.awt.RenderingHints.KEY_ANTIALIASING, java.awt.RenderingHints.VALUE_ANTIALIAS_ON);
			if (bufferedImage == null) {
				bufferedImage = (BufferedImage) createImage(this.getWidth(), this.getHeight());
				Graphics2D bufferedGraphics = (Graphics2D) bufferedImage.getGraphics();
				bufferedGraphics.setColor(this.getBackground());
				bufferedGraphics.fillRect(0, 0, this.getWidth(), this.getHeight());
				bufferedGraphics.setColor(Color.GREEN);
				bufferedGraphics.drawString("jTEST", 10, 30);
				bufferedGraphics.drawRect(0, 0, this.getWidth() - 1, this.getHeight() - 1);
			}
			g2d.drawImage(bufferedImage, 0, 0, this.getWidth(), this.getHeight(), this);
		} else {
			//unbuffered painting
			Color defaultColor = g.getColor();
			g.setColor(this.getBackground());
			g.fillRect(0, 0, this.getWidth(), this.getHeight());
			g.setColor(Color.GREEN);
			g.drawString("jTEST", 10, 30);
			g.drawRect(0, 0, this.getWidth() - 1, this.getHeight() - 1);
			g.setColor(defaultColor);
		}
	}

In einem Testframe hat er dann zwei solche Buttons, und der Frame hat ein zoombares Component, hier das JPanel, das die Buttons beinhaltet, und bevor das gezeichnet wird, wird das Graphics2D-Object skaliert.

Das doppelgebufferte Image ist verpixelt, das andere nicht.

Vielleicht weiß wer, woran das liegen könnte?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Ein Patten für das Gluon Mobile Framework AWT, Swing, JavaFX & SWT 7
C JavaFX GUI - Entscheidung über Framework AWT, Swing, JavaFX & SWT 4
G JavaFX "Framework" zur View Ersellung AWT, Swing, JavaFX & SWT 0
W JavaFX GUI Test Framework AWT, Swing, JavaFX & SWT 4
G UI Framework AWT, Swing, JavaFX & SWT 10
windl Variables Framework AWT, Swing, JavaFX & SWT 6
J 2D-Grafik Simulationssoftware-Grafikf-Framework AWT, Swing, JavaFX & SWT 3
2 Modernes GUI Framework in JAVA vergleicbar mit WPF/Qt AWT, Swing, JavaFX & SWT 21
M GUI Framework? AWT, Swing, JavaFX & SWT 5
I GUI Builder? Framework? Per Hand? AWT, Swing, JavaFX & SWT 9
DEvent Swing Framework? AWT, Swing, JavaFX & SWT 8
F Swing Framework gesucht (Swing, Chart, "Scheduling" Grafik) AWT, Swing, JavaFX & SWT 2
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
borobudur SWT SWT-Framework und Threads AWT, Swing, JavaFX & SWT 12
C Problem mit Swing Application Framework - Projekt beim AWT, Swing, JavaFX & SWT 2
D Suche Framework um Grafikprogramm zu schreiben. AWT, Swing, JavaFX & SWT 36
O Framework für SWT? AWT, Swing, JavaFX & SWT 2
V Framework zum Zeichnen/Malen? AWT, Swing, JavaFX & SWT 7
R Erfahrungen, Forum zu JSR 296 - Swing Application Framework AWT, Swing, JavaFX & SWT 5
P in Java Hilfeintrag erstellen - mit Framework? AWT, Swing, JavaFX & SWT 2
T Flackern trotz DoubleBuffering AWT, Swing, JavaFX & SWT 8
L DoubleBuffering unter Swing AWT, Swing, JavaFX & SWT 0
T 2D-Grafik Slideshow (DoubleBuffering und Image transformieren/bewegen) AWT, Swing, JavaFX & SWT 6
B Doublebuffering korrekt anwenden AWT, Swing, JavaFX & SWT 2
Dreamy Swing Mehrfaches DoubleBuffering in Swing? AWT, Swing, JavaFX & SWT 10
R noch ein DoubleBuffering Noob AWT, Swing, JavaFX & SWT 10
W DoubleBuffering nutzung? AWT, Swing, JavaFX & SWT 5
J Manual-DoubleBuffering im JPanel AWT, Swing, JavaFX & SWT 19

Ähnliche Java Themen

Neue Themen


Oben