Input/Output Eingabensteuerung einer GUI

Reggie()

Bekanntes Mitglied
mal ne ganz blöde Frage. Bei meinem Lernprojekt habe ich eine Menge "Dinge", die der Benutzer (Spieler) anklicken kann und es gibt viele Bedingungen zu prüfen, ob er das anklicken darf, was passiert wenn usw.
Sollte ich alles anklickbare mit JButtons lösen und mit ActionListenern prüfen und reagieren?
Oder sollte ich MouseListener benutzen, um zu prüfen wo er geklickt hat oder kann man das Klicken auf images auch abfangen?
Apropos ActionListener. Da habe ich 3 Möglichkeiten zu gelesen: Ananyme AL, innerclass AL und normal definierte AL. Ich glaube für viel und komplexe Prüfungen wird wohl die normale die übersichtlichste sein, oder?
 
Da habe ich 3 Möglichkeiten zu gelesen: Ananyme AL, innerclass AL und normal definierte AL. Ich glaube für viel und komplexe Prüfungen wird wohl die normale die übersichtlichste sein, oder?
Es gibt noch eine vierte Möglichkeit. Bei ActionListener können inzwischen auch Lambdas verwendet werden (weil ActionListener nur eine einzige Methode hat!).
 
Oder sollte ich MouseListener benutzen, um zu prüfen wo er geklickt hat oder kann man das Klicken auf images auch abfangen?

Ich habe in einem Spiel eine Klasse erstellt die von MouseAdapter erbt. Wenn dein Bild in einem JLabel ist kannst du getLocationOnScreen() verwenden. Innerhalb von mouseReleased() also:

Java:
// Die Koordinaten der oberen linken Ecke des Labels.
int xAnfangSpielfeld = (int) meinJLabel.getLocationOnScreen().x;
int yAnfangSpielfeld = (int) meinJLabel.getLocationOnScreen().y;

// Die Koordinaten der unteren rechten Ecke des Labels.
int xEndeSpielfeld = xAnfangSpielfeld + (labelBreite - 1);
int yEndeSpielfeld = yAnfangSpielfeld + (labelHoehe - 1);

// Die Koordinaten auf dem Bildschirm, die der Mauszeiger hat, wenn die Maustaste wieder losgelassen wird.
int xMaus = event.getXOnScreen();
int yMaus = event.getYOnScreen();

Und dann mit if abfragen...
 
Zuletzt bearbeitet:

Zurück
Oben