Swing Aus verschiedenen Klassen zeichnen.

Chibu

Mitglied
Hej, ich bins wieder^^. ich wollte nochmal genauer Fragen wie man aus anderen Klassen heraus zeichnen kann. Ich habe Folgendes Problem.
Ich will auf ein JPanel zeichnen und habe daher in einer klasse von JPanel abgeleitet und überschreibe die paintcomponent methode.

Java:
public class TDBackground extends JPanel{

	private Tile[][] tile;
	private int rows, cols;
	private Minion m;
	private boolean drawMinion = false;
	
	 TDBackground(Minion m, int rows, int cols, Tile[][] tile) {
		 this.m = m;
		 this.rows = rows;
		 this.cols = cols;
		 this.tile = tile;
	 }
	 
	 public void draw(){
		 
		 this.drawMinion = true;
		 m.move();
		 repaint();
	 }
	  
	 public void paintComponent(Graphics g) {
		 super.paintComponent(g);	
		 
		 for(int i = 0; i < rows; i++)
		 {
			for(int j = 0; j < cols; j++)
			{
				g.drawImage(tile[i][j].getImage(),
							tile[i][j].getX(),
							tile[i][j].getY(),
							tile[i][j].getWidth(),
							tile[i][j].getHeight(),
							null);
				
			}
		 }	 
		 if(drawMinion)
		 {
			 g.drawImage(m.getImage(), m.getX(), m.getY(), null);
			 
		 }
			 
	 }
}

public class MyThread extends Thread{
	
	TDBackground back;
	
	MyThread(TDBackground back){
		this.back = back;
	}	
	
	public void run(){

		while(true){
			back.draw();
			try{
				Thread.sleep(20);
			}catch(InterruptedException e){
				System.out.println(e);
			}

		}
	}
}

Das Problem ist, das ich die paintcomponent methode nicht verstehe. Ich weiß, das sie vom system selbst aufgerufen wird und daraufhin selber neuzeichnet. Man kan sie auch durch repaint(); aufrufen lassen.
Das problem ist, ich kriege es nicht hin aus einer anderen Klasse heraus irgendwas zu zeichnen. Ich habe gehört man soll zeichnungen wie z.b Minions die sich auf der Karte bewegen nicht in paintComponents zeichnen lassen. Das Problem ist ja offensichtlich, da es die ganze zeit zeichnen würde. Selbst wenn ich noch nicht will das sie geizchnet werden.
Ich verstehe aber auch überhaupt nicht, was das Graphics g sein soll, welches paint Component erwartet. Wocher kommt es? was ist es? wieso läuft es nur in paintcomponent, und wenn ich es in andere Klassen zum zeichnen gebe passiert nichts?
Ich versuche nun seit einer weile aus irgendeiner Klasse zu zeichnen, indem ich diesen Klassen getGraphics() oder auf dem zu zeichnenden JPanel übergebe. Es geht aber nie.
Kann mir jemand erklären was diese Graphics g ist, und wie ich es selber erzeugen um aus anderen Klassen zu zeichnen? z.. durch draw() aufrufe und nicht durch das überschreiben von paintcomponent.
 

turtle

Top Contributor
Da rate ich zum Studium des Graphics-Tutorial.

Da erkennst du, das Graphics ein Objekt ist mit dem du via verschiedener Methoden "zeichnen" kannst.

Swing erzeugt beispielsweise für jedes JPanel ein solches Objekt, so dass Swing selbst oder du in deiner paintComponents malen kannst was du möchtest. Das kannst du dir quasi als Malstaffette für eine Leinwand vorstellen. Das Objekt welches du bei paintComponents als Parameter erhältst ist also eine initialiserte "Staffette" für die Leinwand (dein Panel). Also alles was du via Graphics zeichnet wird auf dem Panel gemalt.

Du kannst aber auch in ein BufferedImage malen. Dazu erzeugst du selbst ein BufferedImage, fragst den Graphics ab und alles was du nun darüber "malst" wird in das Image gezeichnet. Dies wird oft verwendet, wenn du komplizierte Dinge zeichnen möchtest und das von Swing entkoppeln möchtest, denn in deinem paintComponent malst du "nur" das Image und wie das aussieht...
Java:
BufferedImage bufferedImage = new    BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
      Graphics g = bufferedImage.getGraphics();
 
Zuletzt bearbeitet:

Chibu

Mitglied
hmm ok. hab mir schonmal etwas angeschaut und ich probiere das später mal umzusetzen. Die Methode wo ich ein BufferedImage erstelle und darauf zeiche indem ich getGraphics() aufrufe sieht schon vielversprechend aus^^
da im moment alles noch läuft lasse ich es bis zum ende so, und bau dann das neuzeichnen mal anders auf.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JavaJakob22 ButtonGroups in verschiedenen Packages AWT, Swing, JavaFX & SWT 2
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
P Zwischen verschiedenen Panels wechseln AWT, Swing, JavaFX & SWT 3
N JavaFX TreeView mit verschiedenen Datentypen AWT, Swing, JavaFX & SWT 8
B Java FX TableView Zeilen mit verschiedenen Typen AWT, Swing, JavaFX & SWT 15
R JTextArea mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 6
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
F Swing Drag and Drop in JTree aus verschiedenen Listen AWT, Swing, JavaFX & SWT 6
HaukeG Swing Drag & Drop in verschiedenen Varianten AWT, Swing, JavaFX & SWT 4
X JTable mit verschiedenen Objekten füllen AWT, Swing, JavaFX & SWT 14
F jTable mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 4
MQue JTable mit verschiedenen Models AWT, Swing, JavaFX & SWT 4
K Design von verschiedenen Rechnern AWT, Swing, JavaFX & SWT 13
dzim JFace TableViewer mit verschiedenen Inhalten AWT, Swing, JavaFX & SWT 4
A Verständnissproblem bei verschiedenen GUI's AWT, Swing, JavaFX & SWT 6
A Design Problem bei verschiedenen Oberflächen AWT, Swing, JavaFX & SWT 3
S [SWT] Toogle Button 2 verschiedenen images? AWT, Swing, JavaFX & SWT 6
S Starten von verschiedenen JFrames AWT, Swing, JavaFX & SWT 11
C Verschachtelung von JPanels mit verschiedenen LayoutManager AWT, Swing, JavaFX & SWT 4
B Auto. anpassen bei verschiedenen Aulösungen AWT, Swing, JavaFX & SWT 9
T Die Schrift in verschiedenen Farben blinken zu lassen AWT, Swing, JavaFX & SWT 2
D Textzeielen mit verschiedenen Textfarben in JList? AWT, Swing, JavaFX & SWT 6
P in JFrame zwischen verschiedenen JPanels wechseln AWT, Swing, JavaFX & SWT 7
N Zufallszahlen in verschiedenen Bereichen. AWT, Swing, JavaFX & SWT 4
B JList Zeilen in verschiedenen Farben markieren. AWT, Swing, JavaFX & SWT 3
K JTextArea mit verschiedenen Farben betreiben [Chat] AWT, Swing, JavaFX & SWT 3
G JTextArea.append() in verschiedenen Farben AWT, Swing, JavaFX & SWT 2
J Daten in verschiedenen JTables AWT, Swing, JavaFX & SWT 5
K JFrames in verschiedenen Fenstern AWT, Swing, JavaFX & SWT 2
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
Ø Swing Button in anderer Klassen ausführen AWT, Swing, JavaFX & SWT 6
H Swing Frame an andere Klassen weitergeben AWT, Swing, JavaFX & SWT 4
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
D Zwei getrennte Java Klassen verbinden. Wie ? AWT, Swing, JavaFX & SWT 2
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
Soloeco Swing JTextField auslesen Klassen übergreifend AWT, Swing, JavaFX & SWT 16
K Wie kann ich eine Variable zwischen Tab Klassen weitergeben ? AWT, Swing, JavaFX & SWT 7
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
B Pong Projekt mit LWJGL Klassen exportieren AWT, Swing, JavaFX & SWT 14
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
D JavaFX @FXML Annotation mit Klassen und Instanzen verbinden? AWT, Swing, JavaFX & SWT 5
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
M Swing MVC mit mehreren Klassen AWT, Swing, JavaFX & SWT 2
C Thread in Klassen starten AWT, Swing, JavaFX & SWT 4
M Innere Klassen, ZugriffsProbleme AWT, Swing, JavaFX & SWT 4
V kann ich in einer Klasse stage und scene deklarieren, aber in anderen Klassen Inhalte hinzufügen ? AWT, Swing, JavaFX & SWT 5
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
D SWT SWT Elemente aus anderen Klassen aufrufen - Invalid thread access AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
Z Swing Von vielen Klassen auf ein GUI-Element zugreifen AWT, Swing, JavaFX & SWT 10
F Swing JAVA GUI Übergabe von Werten zwischen mehreren Fenstern/Klassen AWT, Swing, JavaFX & SWT 10
C In Hauptfenster Programm-Klassen implementieren AWT, Swing, JavaFX & SWT 9
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
B 2 Klassen Kommunikation AWT, Swing, JavaFX & SWT 4
P versch. JPanel Klassen über Menü öffnen AWT, Swing, JavaFX & SWT 12
E Swing auf klassen zugreifen AWT, Swing, JavaFX & SWT 2
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
H Verschiedene JPanels aus eigenen Klassen in JFrame einfügen, nur ein Panel sichtbar AWT, Swing, JavaFX & SWT 4
Zettelkasten repaint() von anderen Klassen aufrufen AWT, Swing, JavaFX & SWT 4
3 JFrame in Klassen aufrufen AWT, Swing, JavaFX & SWT 2
P Swing Beziehungen zwischen 3 Klassen AWT, Swing, JavaFX & SWT 4
Luk10 repaint() auch in anderen Klassen! AWT, Swing, JavaFX & SWT 6
L innere klassen AWT, Swing, JavaFX & SWT 3
lumo SWT Table und Klassen AWT, Swing, JavaFX & SWT 14
S import von Klassen (zwei Panels eine Form) AWT, Swing, JavaFX & SWT 39
B abstrakte klassen / anonyme klassen AWT, Swing, JavaFX & SWT 4
B Swing Passendes Layout finden: Welche Klassen muss ich wie anwenden? AWT, Swing, JavaFX & SWT 8
H Swing Prog in mehrere Klassen zerlegen AWT, Swing, JavaFX & SWT 13
G Variblenwert zwischen zwei Klassen übergeben AWT, Swing, JavaFX & SWT 3
G Prinzipelles zum Umgang von Klassen untereinander AWT, Swing, JavaFX & SWT 4
M JTree und TreeModel mit 2 Klassen AWT, Swing, JavaFX & SWT 3
T Kommunikation zwischen Zwei GUI-Klassen AWT, Swing, JavaFX & SWT 2
J Unterschied zwischen nicht-statischen und statischen Klassen AWT, Swing, JavaFX & SWT 5
H jar-archive mit mehreren Klassen erstellen AWT, Swing, JavaFX & SWT 3
G Grafik auf mehrere Methoden/Klassen zerlegen AWT, Swing, JavaFX & SWT 2
D Event Klassen AWT, Swing, JavaFX & SWT 2
A JTextArea-Problem in Inneren Klassen und Packages AWT, Swing, JavaFX & SWT 3
G Klassen übergreifen AWT, Swing, JavaFX & SWT 4
G ActionListener und Methoden-Aufruf aus anderen Klassen AWT, Swing, JavaFX & SWT 3
G Prob mit 2 Klassen und set Methode AWT, Swing, JavaFX & SWT 6
G externe klassen auf gui objekte zugreifen lassen AWT, Swing, JavaFX & SWT 11
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX Canvas neu zeichnen anstoßen AWT, Swing, JavaFX & SWT 34
H Transparent zeichnen mit drawImage in paintComponent Methode AWT, Swing, JavaFX & SWT 3
N JavaFX Unicode zeichnen in javafx Label verwenden AWT, Swing, JavaFX & SWT 2
S Event Handling Neu zeichnen nur wenn Berechnung fertig ist AWT, Swing, JavaFX & SWT 4
W JavaFX Ich kann keinen Kreis richtig zeichnen AWT, Swing, JavaFX & SWT 8
CptK Funktionsgraphen effizient zeichnen und nur Teile von JPanel erneuern AWT, Swing, JavaFX & SWT 2
G Dreieck aus Pixeln zeichnen AWT, Swing, JavaFX & SWT 8
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
Z Swing Graph zeichnen lassen AWT, Swing, JavaFX & SWT 16
O Kann kei neues Panel zum zeichnen aufrufen... AWT, Swing, JavaFX & SWT 4
L Swing zeichnen AWT, Swing, JavaFX & SWT 14
S GUI Kreuz zeichnen und Position ausgeben AWT, Swing, JavaFX & SWT 3
S GUI Kreis zeichnen AWT, Swing, JavaFX & SWT 13

Ähnliche Java Themen

Neue Themen


Oben