Hallo Zusammen,
ich versuche mit zur Zeit an einem kleinen Spiel und komme bei folgender Aufgabe nicht weiter:
ich würde gerne ein Objekt auf dem Bildschirm mit den swing methoden anzeigen lassen und die Parameter dieses Objekts verändern.
Ich habe für das Objekt (hier ein Rechteckt) eine Klasse gebildet mit den Eigenschaften (im Beispiel nur x und y wert)
und eine Draw Klasse mit der ich das ganze über die paintComponent mehtode aufrufe (code unten und im Bild).
Kann ich mein Objekt irgendwie an die paintComponent methode weitergeben? Da diese methode zum einen überhaupt nur indirekt aufgerufen wird und auch nur das Graphics Objekt erfordert klappt meine übliche "Objekt weitergeb Strategie" hier nicht.
Den einzigen weg den ich gefunden hab ist, das Obejkt statisch zu machen das ich so darauf zugreifen kann.
Zum andern verstehe ich noch nicht genau wie repaint() funktioniert und warum ich das ans ende der paint Component mehtode schreibe (hab den Code etwas zusammen geklaut und versteh ihn noch nicht ganz.)
Falls ihr hilfreiche tutorials o.Ä. kennt zu den Thema bin ich auch dankar
ich versuche mit zur Zeit an einem kleinen Spiel und komme bei folgender Aufgabe nicht weiter:
ich würde gerne ein Objekt auf dem Bildschirm mit den swing methoden anzeigen lassen und die Parameter dieses Objekts verändern.
Ich habe für das Objekt (hier ein Rechteckt) eine Klasse gebildet mit den Eigenschaften (im Beispiel nur x und y wert)
und eine Draw Klasse mit der ich das ganze über die paintComponent mehtode aufrufe (code unten und im Bild).
Kann ich mein Objekt irgendwie an die paintComponent methode weitergeben? Da diese methode zum einen überhaupt nur indirekt aufgerufen wird und auch nur das Graphics Objekt erfordert klappt meine übliche "Objekt weitergeb Strategie" hier nicht.
Den einzigen weg den ich gefunden hab ist, das Obejkt statisch zu machen das ich so darauf zugreifen kann.
Zum andern verstehe ich noch nicht genau wie repaint() funktioniert und warum ich das ans ende der paint Component mehtode schreibe (hab den Code etwas zusammen geklaut und versteh ihn noch nicht ganz.)
Falls ihr hilfreiche tutorials o.Ä. kennt zu den Thema bin ich auch dankar
Code:
package com.javatutorial;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(600,600);
frame.setVisible(true);
Draw d = new Draw();
frame.add(d);
Code:
package com.javatutorial;
public class Rechteck {
int x;
int y;
}
Code:
public class Draw extends JLabel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
// Draw
g.setColor(Color.GRAY);
g.fillRect(100,100,32,32);
repaint();
}