"Link" am Bild

Status
Nicht offen für weitere Antworten.

Verändert

Mitglied
Ich habe ein Bild:

Code:
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());
URL resource1 = null;
try {
   resource1 = new URL("http://www.battleofkings.de/game/img/gr_1.gif");
} catch (MalformedURLException e1) {
   e1.printStackTrace();
}
final Icon Feld = new ImageIcon(resource1);
final JLabel label1 = new JLabel(Feld);
frame.add(label1);
frame.pack();
frame.setVisible(true);
frame.setBounds(0, 0, 220, 265);

Und ich will dass WENN ich acuh dem BILD KLICKE, etwas passiert.
Was muss ich hinzufügen? und wie springe ich? (in Ansi C mit goto a;)
 

L-ectron-X

Gesperrter Benutzer
Wenn du JLabels benutzt, musst du daran jeweils einen MouseListener registrieren und die mousePressed() oder mouseClicked()-Methode überschreiben. Bei Verwendung eines MouseAdapters brauchst du nicht alle Methoden des Listeners überschreiben, nur die, die dich interessieren.
 

Verändert

Mitglied
Hmm ja aber wenn ich sehr viele Bilder hab und jeder klick auf ein Bild was anderes macht wie kann ich sagen wer wo was machen sol?
 

Wildcard

Top Contributor
Wenn du etwas sehr gleichartiges tun möchtest bietet sich eine eigene Klasse an. Entsprechent parametrisierte Instanzen dieser Klasse setzt du dann als Listener.
Bei völlig unterschiedlichen Aufgaben kannst du anonyme innere Klassen als Listener einhängen.
 

L-ectron-X

Gesperrter Benutzer
Du kannst das MouseEvent nach seiner Quelle (in deinem Fall JLabel) fragen. Du bekommst dann die Referenz auf die Instanz zurück, die das Ereignis ausgelöst hat. Damit ist eine klare Unterscheidung möglich.
 

Verändert

Mitglied
Ich programmiere ein Spiel als einführung in Java (hab FR begonnen) und benutzte dummerweise nur eine Klasse weil ichz net kapier wie man es amchen sol und was es bringt und vor allem wie man die zusammenhängend zusammenbringt usw..

Kann mir einer genauer sagen wie ich MouseListener und so machen soll?

frame.addMouseListener();

Was muss ich noch alles machen?
 
G

goldyone

Gast
Alex schon wieder hat gesagt.:
Ich programmiere ein Spiel als einführung in Java (hab FR begonnen) ...

Okay - also einfach drauf losprogrammieren ist mit Sicherheit das fälscheste was du machen kannst. Vor allem gleich mit Oberflächen anfangen, wo du noch nicht einmal das Grundlegendste beherrscht. Ich rate dir: verwerfe all deine Pläne, fange mal mit einem ganz einfach (um bei deinem Genre zu bleiben - auch wenn ich nix davon halte, Geschmackssache) mit einem Konsolenspiel an. Also Terminal - textbasierend.

fG


Sebastian
 

Wildcard

Top Contributor
Alex schon wieder hat gesagt.:
Ich habe C programmiert und kenn daher die grundlegenden Sachen
Du scheinst aber das OOP Konzept noch nicht zu verstehen und GUI Programme (insbesondere Spiele) sind nicht geeignet um die essentiellen Konzepte zu erlernen.
 

L-ectron-X

Gesperrter Benutzer
Wenn du einem Frame einen MouseListener verpasst, lauscht nur der Frame, wenn auf ihm herumgeklickt wird. Die Labels bekommen davon nichts mit. In deinen anderen Threads hast du ja gesagt, dass du JLabels verwendest, um die Bilder anzuzeigen.
Hier mal ein möglicher Quelltext für alle deine bisherigen Fragen:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestGUI extends JFrame {
   private JLabel[] labels;

   public TestGUI(String title) {
      super(title);
      setSize(500, 500);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      MyMouseListener listener = new MyMouseListener();
      
      JPanel labelPanel = new JPanel(new GridLayout(11, 0));
      add(labelPanel, BorderLayout.CENTER);
      
      labels = new JLabel[121];
      for(int i = 0; i < labels.length; i++) {
         labels[i] = new JLabel(String.valueOf(i+1));
         labels[i].setHorizontalAlignment(SwingConstants.CENTER);
         labels[i].addMouseListener(listener);
         labelPanel.add(labels[i]);
      }
   }
   
   class MyMouseListener extends MouseAdapter {
   // Beispiel für die erste Reihe (1 - 11)
   
      public void mouseClicked(MouseEvent e) {
         Object source = e.getSource();
         
         if(source == labels[0]) {
            System.out.println(labels[0].getText());
         }
         
         else if(source == labels[1]) {
            System.out.println(labels[1].getText());
         }
         
         else if(source == labels[2]) {
            System.out.println(labels[2].getText());
         }
         
         else if(source == labels[3]) {
            System.out.println(labels[3].getText());
         }

         else if(source == labels[4]) {
            System.out.println(labels[4].getText());
         }
         
         else if(source == labels[5]) {
            System.out.println(labels[5].getText());
         }

         else if(source == labels[6]) {
            System.out.println(labels[6].getText());
         }

         else if(source == labels[7]) {
            System.out.println(labels[7].getText());
         }

         else if(source == labels[8]) {
            System.out.println(labels[8].getText());
         }
         
         else if(source == labels[9]) {
            System.out.println(labels[9].getText());
         }

         else if(source == labels[10]) {
            System.out.println(labels[10].getText());
         }
      }
   }

   public static void main(String[] args) {
      try {
         UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      }
      catch(Exception e) {
         e.printStackTrace();
      }
      new TestGUI("TestGUI").setVisible(true);
   }
}

Mit dabei ist die Auswertung der Mausereignisse für die Label 1 - 11. In der Konsole wird der Text des geklickten Labels ausgegeben. Am einfachsten ist für diesen Lösungsvorschlag, wenn deine Bilder nur Nummern als Namen tragen und dem jeweiligen Label aus dem Array als Icon zugewiesen werden.
Statt String.valueOf(i+1) müsste dann etwas in der Art geschrieben werden:
Code:
labels[i] = new JLabel(new ImageIcon(String.valueOf(i)+".jpg"));
 

Marco13

Top Contributor
Wildcard hat gesagt.:
...GUI Programme (insbesondere Spiele) sind nicht geeignet um die essentiellen Konzepte zu erlernen.
Da kann man getielter Meinung sein. Vielleicht ist es für einen Anfänger ein "Overkill", aber Swing verwendet ja Vererbung, Polymorphie und Interfaces bis zum Erbrechen ... da stellt sich dann wenigstens nicht die Frage, wofür man das alles braucht :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Falscher Link zum Path? Unterschiedliche Antworten bei Eclipse und VisualStudiocode Java Basics - Anfänger-Themen 5
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
N Eclipse Source importieren ohne Link Java Basics - Anfänger-Themen 3
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
B Wer kennt einen Link für vollständiges, leichtverständliches "Game of Life"? Java Basics - Anfänger-Themen 1
A Link in der Eingabeleiste nichr anzeigen Java Basics - Anfänger-Themen 1
U link erstellen in java Java Basics - Anfänger-Themen 4
F EUI-64 von IPv6 berechnen (local link) Java Basics - Anfänger-Themen 2
S GUI ImageIcon Mouselistener Link Java Basics - Anfänger-Themen 0
J Quellcode von einem Link kriegen? Java Basics - Anfänger-Themen 3
C Link wie bei HTML Java Basics - Anfänger-Themen 7
M Größe einer Datei via. Link ermitteln Java Basics - Anfänger-Themen 9
S Unsatisfied Link Error Java Basics - Anfänger-Themen 5
C einfacher Link zu *.html Datei möglich? Java Basics - Anfänger-Themen 4
E Fragezeichen im Link, was ist das? Java Basics - Anfänger-Themen 10
D Link mit wechselndem Text Java Basics - Anfänger-Themen 2
J showmessageDialog Link öffnen Java Basics - Anfänger-Themen 2
D Link over Buttons Java Basics - Anfänger-Themen 4
D Variable per Link an Java übergeben Java Basics - Anfänger-Themen 8
A Text als Link behandeln Java Basics - Anfänger-Themen 8
G Link Verbindung Java Basics - Anfänger-Themen 2
C einen Link durch einen anderen Lunk ersetzen Java Basics - Anfänger-Themen 8
B Link in JEditorPane eingeben? Java Basics - Anfänger-Themen 3
V Link Error java.library.path Java Basics - Anfänger-Themen 4
M JSP: Problem bei Link ja oder nein? Java Basics - Anfänger-Themen 2
G Webseite aufrufen mit Java (Link artig) Java Basics - Anfänger-Themen 7
G Überprüfen ob es ein Link existiert Java Basics - Anfänger-Themen 3
X WWW-link innerhalb java applet einbinden Java Basics - Anfänger-Themen 5
H Unterbrochener Link im Fomular bei Servlet-Aufruf Java Basics - Anfänger-Themen 4
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
krgewb Bild itextpdf Java Basics - Anfänger-Themen 2
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
B Warum bekomme ich kein Bild. Java Basics - Anfänger-Themen 10
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
N Bild drehen Java Basics - Anfänger-Themen 3
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
N GLOOP Bild nicht ansichtbar Java Basics - Anfänger-Themen 5
M Bild in JFrame Java Basics - Anfänger-Themen 1
B Signatur erstellen - Bild ist nur weiß Java Basics - Anfänger-Themen 0
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 17
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 1
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
S Bild über JButton legen Java Basics - Anfänger-Themen 3
B Bild mit Schrift befüllen / Anpassung bei Wortlänge Java Basics - Anfänger-Themen 2
D Google maps bild mit marker versehen Java Basics - Anfänger-Themen 12
D ImageView mit einfarbigem Bild fuellen Java Basics - Anfänger-Themen 3
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
S Bild einfügen Java Basics - Anfänger-Themen 16
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
D Bild zu Text Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
Anfänger2011 Bild programmieren?! Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
J Bild loopen Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
S Bild bei Kontakt ändern Java Basics - Anfänger-Themen 2
C Erste Schritte Bild holen und speichern Java Basics - Anfänger-Themen 1
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
J Ganzes Bild Java Basics - Anfänger-Themen 4
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
Y Nach Bild-Upload wird Bild nicht angezeigt Java Basics - Anfänger-Themen 1
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben