Guten Abend
Ich habe eine Klasse Grafik (extends JPanel) welche x- und y-Koordinaten hält.
Bei Mouseklick, werden die Koordinaten gespeichert.
Die Klasse Fenster (extends JFrame) hält eine Instanz der Klasse Grafik sowie ein JLabel.
Mein Problem:
Aus der Klasse Fenster kann ich die x- und y-Koordinaten aus der grafik holen und in den JLabel schreiben.
Ich weiss aber nicht wann dort vom User geklickt wurde und wann es neue Koordinaten gibt zum holen.
Ich habe mir 3 Wege überlegt (die ich aber nicht umzusetzen weiss):
- gibt es die Möglichkeit, die grafik nach Änderungen zu überwachen ?
- muss das fenster z.B. jede Sekunde die Koordinaten aus der grafik lesen gehen ?
- kann die grafik der Klasse die sie hält "nach oben" eine Rückmeldung geben ?
Danke für eure Tipps.
Ich habe eine Klasse Grafik (extends JPanel) welche x- und y-Koordinaten hält.
Bei Mouseklick, werden die Koordinaten gespeichert.
Java:
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;
public class Grafik extends JPanel {
int xCoord;
int yCoord;
Grafik() {
setBounds(0,0,500,500);
setBackground(Color.GRAY);
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
xCoord = (int)e.getX();
yCoord = (int)e.getY();
System.out.println("("+getXCoord() + ","+getYCoord()+")");
}
});
}
public int getXCoord() {
return xCoord;
}
public int getYCoord() {
return yCoord;
}
}
Die Klasse Fenster (extends JFrame) hält eine Instanz der Klasse Grafik sowie ein JLabel.
Java:
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Fenster extends JFrame {
private JLabel lblKoordinaten;
private Grafik grafik;
Fenster() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0, 0, 750,500);
setLocationRelativeTo(null);
setLayout(null);
lblKoordinaten = new JLabel();
lblKoordinaten.setBounds(550,100,150,100);
lblKoordinaten.setText("(?,?)");
add(lblKoordinaten);
grafik = new Grafik();
add(grafik);
}
public static void main(String[] args) {
Fenster myFenster = new Fenster();
myFenster.setVisible(true);
}
}
Mein Problem:
Aus der Klasse Fenster kann ich die x- und y-Koordinaten aus der grafik holen und in den JLabel schreiben.
Ich weiss aber nicht wann dort vom User geklickt wurde und wann es neue Koordinaten gibt zum holen.
Ich habe mir 3 Wege überlegt (die ich aber nicht umzusetzen weiss):
- gibt es die Möglichkeit, die grafik nach Änderungen zu überwachen ?
- muss das fenster z.B. jede Sekunde die Koordinaten aus der grafik lesen gehen ?
- kann die grafik der Klasse die sie hält "nach oben" eine Rückmeldung geben ?
Danke für eure Tipps.