Hallo liebe Community,
ich bin recht neu in Jave und programmiere ein kleines Spiel. Da Java ja Objekorientiert ist, will ich mehrere Klassen verwenden und diese miteinander verbinden. Ich weiss aber nicht genau, wei ich die PaintComponent Methode richtig einbinde und arin gezeichente Elemente mit MouseListener ansteuere...
Das ist Starte_Anwendung Klasse. Hier wird bei mir das JFrame gebildet und es enthält eine main-Methode.
Das ist die GUI Klasse, wo bei mir JButtons, JLabel usw. sich befinden werden. Ich habe hier das unnötige gelöscht. (Hier im Forum). Hier auf JPanel will ich später meine Objekte zeichen.
Hier ist mein Bauplan für den Kreis. Der Name der Klasse isttwas seltsam, hat aber seine Gründe.
Nun, wo muss ich denn eigentlich die PaintComponent reinmachen? Es sollen später mehrere Objekte (Kreise, Dreiecke...) gezeichnet und mit der Maus angesprochen werden. Muss ich dafür eine eigene Klasse erstellen, oder kann ich das irgendwie in die GUI reinmachen (Paint-methode)? Wenn es möglich ist, dann wie?
Mein nächstes Problem ist der Mouselistener. Ich weiss nichtgenau wohin ich diesen Implemintieren muss, damit ich diese gezeichneten Objekte ansprechen kann. Später soll eine Klasse "Steuerung" dazukommen, damit ich dort diese MouseListener Befehle bestimmen kann.
Das ist ein Spiel, womit ich haupsächlich meine Java Kenntnisse erweiter will um später besser zu werden. Ich hoffe ihr könnt mir etwas helfen!
ich bin recht neu in Jave und programmiere ein kleines Spiel. Da Java ja Objekorientiert ist, will ich mehrere Klassen verwenden und diese miteinander verbinden. Ich weiss aber nicht genau, wei ich die PaintComponent Methode richtig einbinde und arin gezeichente Elemente mit MouseListener ansteuere...
Java:
import javax.swing.JFrame;
public class Starte_Anwendung {
public static void main(String args[]){
JFrame frame = new GUI();
frame.setTitle("Mensch ärger dich nicht - Digital Deluxe Edition");
frame.setVisible(true);
frame.setSize(660, 750);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
}
}
Das ist Starte_Anwendung Klasse. Hier wird bei mir das JFrame gebildet und es enthält eine main-Methode.
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class GUI extends JFrame {
private JPanel panel_haupt;
public GUI(){
super();
panel_haupt = new JPanel(new BorderLayout());
add(panel_haupt);
panel_leiste.add(wuerfeln);
panel_leiste.add(label);
}
public void paintComponent(Graphics g){
g.fillRect(10, 10, 100, 100);
}
}
Das ist die GUI Klasse, wo bei mir JButtons, JLabel usw. sich befinden werden. Ich habe hier das unnötige gelöscht. (Hier im Forum). Hier auf JPanel will ich später meine Objekte zeichen.
Java:
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
public class Feld_StartHome {
Color farbe;
public Feld_StartHome(Color cfarbe){
cfarbe = farbe;
}
public void male_feldStartHome(Graphics fsh){
Graphics2D g2d = (Graphics2D) fsh;
g2d.setStroke(new BasicStroke(3));
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
fsh.setColor(farbe);
fsh.fillOval(3, 3, 44, 44);
fsh.setColor(Color.black);
fsh.drawOval(3, 3, 44, 44);
}
}
Hier ist mein Bauplan für den Kreis. Der Name der Klasse isttwas seltsam, hat aber seine Gründe.
Nun, wo muss ich denn eigentlich die PaintComponent reinmachen? Es sollen später mehrere Objekte (Kreise, Dreiecke...) gezeichnet und mit der Maus angesprochen werden. Muss ich dafür eine eigene Klasse erstellen, oder kann ich das irgendwie in die GUI reinmachen (Paint-methode)? Wenn es möglich ist, dann wie?
Mein nächstes Problem ist der Mouselistener. Ich weiss nichtgenau wohin ich diesen Implemintieren muss, damit ich diese gezeichneten Objekte ansprechen kann. Später soll eine Klasse "Steuerung" dazukommen, damit ich dort diese MouseListener Befehle bestimmen kann.
Das ist ein Spiel, womit ich haupsächlich meine Java Kenntnisse erweiter will um später besser zu werden. Ich hoffe ihr könnt mir etwas helfen!