PerformanceProbleme(Beim Scrollen ruckelt es)

Status
Nicht offen für weitere Antworten.

MisterDan

Mitglied
Hi Leute,

mein Programm hat ein DrawPanel wo eine große (2000x2000 Pixel) Grafik drauf liegt.
Wenn ich jetzt mit den Scrollbalken scrolle, dann ruckt das Bild total.

Hier sind die Methoden die ich zum zeichnen verwende.

Code:
/*
*
*Wir aufgerufen sobald, irgendwas neu gezeichnet werden muss. Z.B. wenn man mit der Maus ins DrawPanel klickt *(um einen Waypoint zu setzen)
*
*/
	public void updateUserInterface(){
		Graphics g = getGraphics();
		if (g != null)
			redrawGraphics(g);
	}
	
	public void paint(Graphics g){
		//g = this.bi.createGraphics();
		redrawGraphics(g);
	}
	
/*
*
* Hier wird alles gezeichnet. Ich vermute das dass Performance Problem hier liegt.
*
*/
	private void redrawGraphics(Graphics g){
		//initialize Antialiasing
		Graphics2D g2d = this.bi.createGraphics();
		//Graphics2D g2d = (Graphics2D) g;
		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		
		if(!mouseEvent){
			//Screen erneuern
			if(!mapLoaded){
				g2d.setColor(Color.gray);
				g2d.fillRect(0,0,getWidth(), getHeight());
			}
			
			//Map neu zeichnen
			if(mapLoaded){
				tileMap.draw(g2d);
				//Graphics graphics = this.buffer.getDrawGraphics(); 
				//graphics.drawImage(this.bi, 0, 0, null);
//				if(!this.buffer.contentsLost()){
//					this.buffer.show();
//				}
			}
		}
		
		Iterator<Connection> cIter = wpController.getCList().values().iterator();
		while(cIter.hasNext()){
			Connection c = cIter.next();
			
			g2d.setColor(connectionColor);
			g2d.setStroke(new BasicStroke(4.0f));
			g2d.drawLine(c.getStartX(), c.getStartY(), c.getEndX(), c.getEndY());
			
			int middleX = calculateMiddlePointX(c.getStartX(), c.getEndX());
			int middleY = calculateMiddlePointY(c.getStartY(), c.getEndY());
			
			g2d.setColor(connectionColor);
			g2d.fillOval(middleX-5, middleY-15, 30, 40);
			g2d.setColor(Color.white);
			g2d.setFont(cFont);
			g2d.drawString(""+c.getConnectionID(), middleX+6, middleY);
			g2d.drawString(""+c.getWeight(), middleX+2, middleY+17);
		}
		
		Iterator<Waypoint> wIter = wpController.getWpList().values().iterator();
		while(wIter.hasNext()){
			Waypoint wp = wIter.next();
			
			int xcoord = wp.getXPos();
			int ycoord = wp.getYPos();
			
			g2d.setColor(waypointColor);
			g2d.setStroke(new BasicStroke(4.0f));
			g2d.fillOval(xcoord-25, ycoord-25, 50, 50);
			
			if(wp.getWaypointID()<10){
				g2d.setFont(wpInnerFont);
				g2d.setColor(wpInnerFontColor);
				g2d.drawString(""+wp.getWaypointID(), xcoord-2, ycoord+5);
				g2d.setFont(wpOuterFont);
				g2d.setColor(wpOuterFontColor);
				g2d.drawString(wp.getName(), xcoord-30, ycoord-25);
			} else {
				g2d.setFont(wpInnerFont);
				g2d.setColor(wpInnerFontColor);
				g2d.drawString(""+wp.getWaypointID(), xcoord-6, ycoord+5);
				g2d.setFont(wpOuterFont);
				g2d.setColor(wpOuterFontColor);
				g2d.drawString(wp.getName(), xcoord-30, ycoord-30);
			}
		}
		mouseEvent = false;
		
		//double buffering
		  Graphics graphics = this.buffer.getDrawGraphics();
		  graphics.drawImage(this.bi, 0, 0, null);
		  if (!this.buffer.contentsLost()) {
		   this.buffer.show();
		  }

		  if (graphics != null) {
		   graphics.dispose();
		  }
		  if (g2d != null) {
		   g2d.dispose();
		  }
		
	}

Wenn ihr den ganzen Programmcode benötigt um mir auf die Sprünge zu helfen stell ich den gerne auch zu Verfügung. Mein Programm ist schon echt weit (fast fertig), nur noch dieses nicht-lösbare-Performance-Problem.

Achja ich hab ein Intel2CoreDuo Notebook, mit ner GeForce 7300Go(512Mb), 2GB Ram und WindowsXP, falls das irgendwie weiter hilft.


Habt jetzt schonmal tausend Dank! Ich steck total in der Klemme, denn am Dienstag ist Projektabgabe^^

Mfg

MisterDan
 

Marco13

Top Contributor
Wenn die Tiles nur ein Hintergrundbild sind, solltest du vmtl. das AntiAliasing erst einschalten, NACHDEM du die Tiles gezeichnet hast. (Wie auch immer man es macht: AntiAlisaing fißt unglaublich viel Rechenleistung :shock: )

Ansonsten wäre noch ganz interessant, um wie viele "Waypoints" es in der while-Schleife geht.... Viele drawStrings können auch sehr teuer ein.

Dass man solche Sachen wie
Code:
g2d.setColor(connectionColor);
g2d.setStroke(new BasicStroke(4.0f)); 

// Wurde - ohne dass zwischendurch die Farbe geändert wurde! - nochmal aufgerufen:
g2d.setColor(connectionColor);
nur EIN mal (VOR der Schleife) machen sollte, sollte klar sein, aber bei "wenigen" Waypoints kann man damit wohl nicht sooo viel rausreißen....

EDIT: Nachtrag: Bei Swing brauchst du kein DoubleBuffering per Hand zu implementieren - sowas wie "getGraphics" ist auf Components fast(!) immer falsch, poste ggf. mal die vollständige Klasse oder mehr Infos dazu...
 

Wildcard

Top Contributor
Marco13 hat gesagt.:
Wenn die Tiles nur ein Hintergrundbild sind, solltest du vmtl. das AntiAliasing erst einschalten, NACHDEM du die Tiles gezeichnet hast. (Wie auch immer man es macht: AntiAlisaing fißt unglaublich viel Rechenleistung :shock: )
Darum sollte sich doch eigentlich die GPU kümmern ???:L
 

Marco13

Top Contributor
Was genau von der GPU und was von der CPU übernommen wird, ist schwer zu sagen, aber... ein einfaches Bild mit Antialiasing zu zeichnen macht IMHO i.a. keinen Sinn - also kann man ja den Rechner (egal ob GPU oder CPU) ein bißchen entlasten. Spart auch Strom, und verhindert somit die anstehende Klimakatastrophe :wink:
 

MisterDan

Mitglied
Hallo, danke erstmal für die schnellen Antworten.
Hab es grade komplett ohne Anti Aliasing ausprobiert und das Rucken ist nicht besser geworden.

Also, ich hab jetzt das DoubleBuffering komplett rausgenommen.

Ich würde auch gerne das komplette Programm zur Verfügung stellen, wenn es gewünscht wird :)
Hier nochmal die Komplette DrawPanel.java

Code:
package local.gui;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Iterator;

import javax.swing.JPanel;

import local.persistance.mapLoader.TileMap;

@SuppressWarnings("serial")
public class DrawPanel extends JPanel {

	
    private boolean mouseEvent;
    private boolean mapLoaded;
    private int x;
    private int y;
    
    private Font wpOuterFont;
    private Font wpInnerFont;
    private Font cFont;
    private Color wpInnerFontColor;
    private Color wpOuterFontColor;
    private Color waypointColor;
    private Color connectionColor;
    
    private TileMap tileMap;
    private WPEditorController wpController;
    
	public DrawPanel(final WPEditorController wpController){
		
		this.wpController = wpController;
//		this.drawPaneDimension = null;
//		this.setBackground(Color.gray);

		
		this.wpOuterFont = new Font("SansSerif", Font.BOLD, 15); 
		this.wpInnerFont = new Font("SansSerif", Font.TYPE1_FONT,  12); 
		this.cFont = new Font("SansSerif", Font.PLAIN, 9);
		this.waypointColor = new Color(51,102,153);
		this.connectionColor = new Color(51,102,153);
		this.wpInnerFontColor = new Color(255, 255, 255);
		this.wpOuterFontColor = new Color(0,0,0);
		this.mouseEvent = false;
		this.mapLoaded = false;
		this.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent event){
						
				x = event.getX();
				y = event.getY();

				mouseEvent = true;
				wpController.doLogic(x, y);
			}
		});
	}
	
	public void updateUserInterface(){
		Graphics g = getGraphics();
		if (g != null)
			redrawGraphics(g);
	}
	
	public void paint(Graphics g){
		//g = this.bi.createGraphics();
		redrawGraphics(g);
	}
	
	private void redrawGraphics(Graphics g){
		//initialize Antialiasing
		Graphics2D g2 = (Graphics2D) g;
		//g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		
		if(!mouseEvent){
			//Screen erneuern
			if(!mapLoaded){
				g2.setColor(Color.gray);
				g2.fillRect(0,0,getWidth(), getHeight());
			}
			
			//Map neu zeichnen
			if(mapLoaded){
				tileMap.draw(g2);
				//Graphics graphics = this.buffer.getDrawGraphics(); 
				//graphics.drawImage(this.bi, 0, 0, null);
//				if(!this.buffer.contentsLost()){
//					this.buffer.show();
//				}
			}
		}
		
		Iterator<Connection> cIter = wpController.getCList().values().iterator();
		while(cIter.hasNext()){
			Connection c = cIter.next();
			
			g2.setColor(connectionColor);
			g2.setStroke(new BasicStroke(4.0f));
			g2.drawLine(c.getStartX(), c.getStartY(), c.getEndX(), c.getEndY());
			
			int middleX = calculateMiddlePointX(c.getStartX(), c.getEndX());
			int middleY = calculateMiddlePointY(c.getStartY(), c.getEndY());
			
			g2.setColor(connectionColor);
			g2.fillOval(middleX-5, middleY-15, 30, 40);
			g2.setColor(Color.white);
			g2.setFont(cFont);
			g2.drawString(""+c.getConnectionID(), middleX+6, middleY);
			g2.drawString(""+c.getWeight(), middleX+2, middleY+17);
		}
		
		Iterator<Waypoint> wIter = wpController.getWpList().values().iterator();
		while(wIter.hasNext()){
			Waypoint wp = wIter.next();
			
			int xcoord = wp.getXPos();
			int ycoord = wp.getYPos();
			
			g2.setColor(waypointColor);
			g2.setStroke(new BasicStroke(4.0f));
			g2.fillOval(xcoord-25, ycoord-25, 50, 50);
			
			if(wp.getWaypointID()<10){
				g2.setFont(wpInnerFont);
				g2.setColor(wpInnerFontColor);
				g2.drawString(""+wp.getWaypointID(), xcoord-2, ycoord+5);
				g2.setFont(wpOuterFont);
				g2.setColor(wpOuterFontColor);
				g2.drawString(wp.getName(), xcoord-30, ycoord-25);
			} else {
				g2.setFont(wpInnerFont);
				g2.setColor(wpInnerFontColor);
				g2.drawString(""+wp.getWaypointID(), xcoord-6, ycoord+5);
				g2.setFont(wpOuterFont);
				g2.setColor(wpOuterFontColor);
				g2.drawString(wp.getName(), xcoord-30, ycoord-30);
			}
		}
		mouseEvent = false;
	}
	
	public int calculateMiddlePointX(int startX, int endX){
		return (startX+endX)/2;
	}
	
	public int calculateMiddlePointY(int startY, int endY){
		return (startY+endY)/2;
	}
	
	/*
	 * SETTER
	 */
	public void setTileMap(TileMap map){
		this.tileMap = map;
	}
	
	public void setMapLoaded(boolean loaded){
		this.mapLoaded = loaded;
	}
}

P.S.:Auf einem MacBook läuft es problemlos. - Keine Ruckler, einwandfrei!
Liegt wahrscheinlich daran das Mac, Java-Dateien automatisch in OpenGL (um)rendert. Windows macht das nicht. Vll. muss man Java auch sagen, das es die Grafikartenbeschleuniger ansprechen soll oder und das ganze quasi gar nicht programmier-technisch lösen, sondern Einstellungen im System oder sonst wo durchführen. (Wahrscheinlich ne Schnapsidee^^)

Vielen Dank und Grüße

MisterDan
 

Wildcard

Top Contributor
Auf Bilder wird Antialiasing doch auch nicht angewendet, das ist doch nur stumpfes Pixel kopieren
 

MisterDan

Mitglied
Wildcard hat gesagt.:
Auf Bilder wird Antialiasing doch auch nicht angewendet, das ist doch nur stumpfes Pixel kopieren

ne damit hat es auch offensichtlich nichts zu tun.
Gibt es nicht irgendwie die Möglichkeit Java zu sagen, dass er beim Zeichnen auf Direct3D bzw. auf den Grafikkartenbeschleuniger zugreifen soll?
 

Wildcard

Top Contributor
MisterDan hat gesagt.:
Gibt es nicht irgendwie die Möglichkeit Java zu sagen, dass er beim Zeichnen auf Direct3D bzw. auf den Grafikkartenbeschleuniger zugreifen soll?
Das passiert automatisch. Ich würde den Fehler eher in zB deinem Buffering vermuten.
Benutz doch Swing und lass es den JFrame selbst erledigen.
 

MisterDan

Mitglied
Wildcard hat gesagt.:
MisterDan hat gesagt.:
Benutz doch Swing und lass es den JFrame selbst erledigen.

Ja, du sagst das so einfach.
Also ich habe einen JFrame wo zwei Panels drauf liegen. Das eine ist ein ConfigPanel, das andere das DrawPanel zum setzen/darstellen der Waypoints und laden/darstellen der Map.

Mein DrawPanel erbt logischerweise von JPanel. Und hier überschreibe ich die Paint-Methode und sage, dass meine "tolle" redrawGraphics-Methode aufgerufen werden soll.

Ich muss doch irgendwie programmieren, das auch gezeichnet werden soll. Weiss Swing denn automatisch wann es zeichnen muss? - Ja? - aber ja nicht was es zeichnen soll, und das sage ich ja mit meiner redrawGraphics-Methode.

Wie genau meinst du das jetzt, das ich das den JFrame selbst erledigen lassen soll.

Schonmal Danke für die Tips!
Mfg
MisterDan
 

Wildcard

Top Contributor
Zunächst mal wird in Swing nicht paint, sondern paintComponent überschrieben.
getGraphics ist verboten. Neu gezeichnet wird mit repaint.
 

MisterDan

Mitglied
Wildcard hat gesagt.:
Zunächst mal wird in Swing nicht paint, sondern paintComponent überschrieben.
ok ich überschreibe nun paintComponent anstatt paint.

getGraphics ist verboten. Neu gezeichnet wird mit repaint.

was heisst getGraphics ist verboten? Wenn du mal in meine Methode updateUserInterface schaust. Dann muss ich doch sowas wie getGraphics machen, ich meine sonst hab ich ja gar kein Graphics-Objekt was ich an meine "redrawGraphics"-Methode übergeben kann.

Oder nicht??

Wie oder wann würdest du denn repaint aufrufen bzw. überschreiben?
Wir repaint nicht automatisch von Swing aufgerufen?
 

Wildcard

Top Contributor
Man zeichnet in paintComponent. Wenn deine Anwendung der Meinung ist das sich etwas geändert hat rufst du repaint auf, der EDT wird dann deine paintComponent aufrufen.
In Swing zeichnet man passiv, daher verbietet sich auch getGraphics
 

MisterDan

Mitglied
Wildcard hat gesagt.:
Man zeichnet in paintComponent. Wenn deine Anwendung der Meinung ist das sich etwas geändert hat rufst du repaint auf, der EDT wird dann deine paintComponent aufrufen.
In Swing zeichnet man passiv, daher verbietet sich auch getGraphics

ok wenn der Nutzer also den Scrollbalken bewegt ist mein Programm der Meinung, dass sich etwas geändert hat.
Darauf soll ich als Programmier mit repaint reagieren?
Nur woher weiss weiß repaint WAS genau es (neu) zeichnen soll?

Sorry, aber was meinst du mit EDT?

Langsam versteh ich aber was du damit meinst das getGraphics verboten ist, nur ich weiss immernoch nicht wie ich es anders machen sollte...


danke
mfg
MisterDan
 

anfänger15

Bekanntes Mitglied
Wenn du den scrollbalken bewegst zeichnet Swing normal automatisch neu da musst du gar nichts machen.

In Swing wird in der paintComponent methode gezeichnet, das heißt du schreibst alles was etwas zeichnet in diese methode und löscht deine andere. In der paintComponent methode hast du dann bereits ein Graphics Objekt welches du wenn du Graphics2D benötigst nur noch in ein Graphics2D Objekt casten musst. Du musst also nie createGraphics/getGraphics oder so aufrufen.
 

MisterDan

Mitglied
jaa ich verstehe was du meinst.

macht auch sinn ;)

Ich habe jetzt quasi nur noch meine paintComponent-Methode in meiner Klasse "DrawPanel", soweit sogut.
Leider ruckt es beim Scrollen immer noch. (zwar nicht mehr ganz so extrem aber immer noch sehr unschön & inakzeptabel)
Zum anderen merkt mein Programm jetzt nicht mehr wenn ich Waypoints setze.
Also wenn ich ins DrawPanel klicke wird normalerweise ein Waypoint in eine Hashtable geschrieben und dann wird
Code:
drawPanel.updateUserInterface();

aufgerufen.

Da ich ja jetzt nur noch die paintComponent-Methode habe, muss ich ja

Code:
drawPanel.repaint();
aufrufen? Richtig? - Das klappt auch.

Nur wenn ich im FileChooser meine Map ausgewählt habe und auf öffnen klicke, wird die map quasi auch geöffnet, nur nicht mehr angezeigt. Ich muss jetzt erst mein Fenster verkleinern oder vergrößern damit ein entsprechendes Event ausgelöst wird, was meinem DrawPanel de repaint-Befehl gibt.

Aber das Problem ist eigentlich nur noch, das es trotz alldem immernoch ruckt.

Aber ich glaube ich / wir sind kurz vorm Ziel.

Hat jemand noch ne idee, wie man es irgendwie besser hinkriegen kann?

Tausend Dank, viel Grüße
MisterDan
 

MisterDan

Mitglied
ähh ja moin,

also ein Kommilitone hat mir jetzt geholfen. Und das Problem lag ganz woanders.

Die ganzen Tile-Grafiken (ca. 4000 Stück), werden halt 20 mal pro Sekunde neu gezeichnet wenn man die Scrollbar bewegt.
Er lässt einfach alle 4000 Bilder in mehrere 500x500 Pixel grosse Bilder zeichnen.
Nun müssen nur noch ca. 10 Bilder so oft neu gezeichnet werden und nicht 4000.

Ich möchte mich trotzdem herzlich für eure nette Unterstützung bedanken.

Mfg

MisterDan
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Performanceprobleme mit WritableImage | Pixelbuffer AWT, Swing, JavaFX & SWT 3
B Performanceprobleme meines Spiels AWT, Swing, JavaFX & SWT 5
N Performanceprobleme mit JLabel und HTML content AWT, Swing, JavaFX & SWT 5
M Image-Preview im Öffnen-Dialog: Performanceprobleme AWT, Swing, JavaFX & SWT 2
Juelin Problem beim Laden Controller AWT, Swing, JavaFX & SWT 2
O Swing Icon verschwindet beim Verschieben eines JLabels AWT, Swing, JavaFX & SWT 8
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
B Output GUI funktioniert nur beim ersten Mal richtig. AWT, Swing, JavaFX & SWT 4
A JavaFX exportierte Jar ohne beim starten die Libs hinzufügen? AWT, Swing, JavaFX & SWT 2
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
G Gui updated beim zweiten Aufruf nicht mehr AWT, Swing, JavaFX & SWT 15
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J Kann mir jemand beim MediaPlayer helfen ? AWT, Swing, JavaFX & SWT 2
S JavaFx Zufallsfarbe beim Button-Klick AWT, Swing, JavaFX & SWT 22
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
ruutaiokwu Swing windowStateChanged macht exakt das Gegenteil beim Verändern der Fenstergrösse AWT, Swing, JavaFX & SWT 3
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
steven789hjk543 Swing Verstehe etwas beim GUI nicht AWT, Swing, JavaFX & SWT 3
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
J Hilfe beim tablevies AWT, Swing, JavaFX & SWT 2
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
L JSplitPane Divider Location beim Maximieren AWT, Swing, JavaFX & SWT 6
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
emma_louisa JavaFX Werte beim Aufrufen des Fensters übernehmen (SceneBuilder) AWT, Swing, JavaFX & SWT 3
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
L JavaFX LoadException beim Laden von JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
N Eclipse - GUI - MacBook - Buttonsichtbarkeit beim Anlegen/Erstellen AWT, Swing, JavaFX & SWT 14
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
L Charset beim Drucken falsch AWT, Swing, JavaFX & SWT 2
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
R Swing Programm läuft nur beim Debuggen korrekt ab AWT, Swing, JavaFX & SWT 4
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
W Kodierung (CharSet) beim Schreiben ändern AWT, Swing, JavaFX & SWT 1
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
Thallius Swing "..." beim JLabel verhindern? AWT, Swing, JavaFX & SWT 3
P Scrollbalken verschwinden beim Zoomen AWT, Swing, JavaFX & SWT 4
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
D JavaFX (WebStart) Graues Fenster beim Start AWT, Swing, JavaFX & SWT 4
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
I JavaFX Speichern der eingefügten Einträge beim Neustart des Programms AWT, Swing, JavaFX & SWT 2
J JavaFx/SceneBuilder/Felder beim verlassen prüfen AWT, Swing, JavaFX & SWT 1
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
C Gesucht: Hilfe beim programmieren. AWT, Swing, JavaFX & SWT 1
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
H JavaFX Freezes beim Zeichnen mit Canvas AWT, Swing, JavaFX & SWT 3
D JavaFX build.fxbuild error beim Erstellen einer exe AWT, Swing, JavaFX & SWT 2
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
F Breite beim GridBagLayout festlegen AWT, Swing, JavaFX & SWT 2
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
R TriangleMesh verschwindet teilweise beim resizen des Frames, sowie beim rotieren? AWT, Swing, JavaFX & SWT 1
S Swing Warum funktioniert der automatische Zeilenumbruch mit arabischen Zeichen beim JTextPane nicht AWT, Swing, JavaFX & SWT 3
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben