mausklick

Status
Nicht offen für weitere Antworten.

SBehnen27

Aktives Mitglied
keine ahnung, ob das vielleicht sogar ne anfängerfrage ist... wenn ja, bitte verschieben...

ich habe einen jPanel. in diesem JPanel zeige ich eine Grafik an.
ich habe jetzt dem jpanel einen mouselistener MouseClicked gegeben.

wie man sicherlich vermuten kann, möchte ich mein bild anklicken und damit eine aktion auslösen. Leider muss ich feststellen, dass offensichtlich das panel von der grafik überdeckt wird. Somit wird der klick auf das bild nicht wahrgenommen.
wenn ich genau neben mein bild klicke (das jpanel ist ein wenig grösser als das bild) wird der klick registriert...


was mache ich falsch, wie kann ich das besser machen?
 
R

Roar

Gast
:? meine kristallkugel bleibt grau :-/ komm morgen nochmal wieder oder gib mir n bisschen code
 

Campino

Top Contributor
Roar hat gesagt.:
:? meine kristallkugel bleibt grau :-/ komm morgen nochmal wieder oder gib mir n bisschen code
Ich stimme nicht mit dir überein. Meine Kristallkugel zeigt Nebelschwaden. Ich denke er sollt Morgen wiederkommen und uns ein bisschen Code zeigen...
 

SBehnen27

Aktives Mitglied
hm. wusste nich, dass code benötigt wird ;) hatte das für nen einfaches prob gehalten ^^ sorry...

grudlage ist ein jframe. darauf liegt ein 800x600 jpanel. auf dem wiederum liegt der jpanel agg1.
auf dem jpanel agg1 liegt dann folgender:

jpanel:
Code:
agg1_1 = new javax.swing.JPanel();

der klick:
Code:
private void agg1_1MouseClicked(java.awt.event.MouseEvent evt) {
        click();
    }

funktion click:
Code:
public void click(){
        jTextArea1.setText("es wurde geklickt");
    }

hier adde ich eine grafik in mein panel:

Code:
agg1_1.add(meineHelden[1]); 
meineHelden[1].setBounds(0,0,52,66);

der held wird erstemal nur so erstellt:
Code:
Held meineHelden[] = new Held[16];
               for (int i = 0; i<16; i++){
                   meineHelden[i] = new Held("images/null.png");
               }

hier das zeichnen des bildes(dieser code liegt in der klasse Karte, von der Held erbt):

Code:
public void paint(Graphics g){
        bild = Toolkit.getDefaultToolkit().getImage(imgPath);
        float i = 0;
        
        if(imgPath=="images/null.png"){ i=5;} else{i=20;};
        render(bild, (Graphics2D) this.getGraphics(), i/20);
            
    } 
    
    public void render(Image img, Graphics2D g2,float trans){
      
        AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, trans);
      g2.clearRect(0, 0, 52, 66);
      g2.setComposite(ac);
      g2.drawImage(bild, 0, 0, this); 
      
   }


naja. das problem ist ja einfach, dass des panel anscheinend vom bild überdeckt wird und somit nicht mehr auf klicks reagiert... zumindest nicht auf klicks auf das bild
 
R

Roar

Gast
dein panel wird nicht vom bild überdenkt sondern von deiner Held komponente. füg den listener an deine Held instanz hinzu.
 

SBehnen27

Aktives Mitglied
Code:
public void mouseClicked(MouseEvent me){
        //funktioniert??
    }

das hab ich jetzt in meine held klasse geschrieben...


aber nun frage ich mich, wie ich jetzt erkenne, ob was geklickt wurde.
wie kann ich nun aus dieser klasse heraus beispielsweise ein textfeld in meinem spielfeld (klasse spielfeld, objektname: meinFrame) mit einem text füllen?

ich bin grad echt durcheinander...
 

phillli

Mitglied
Ich blick noch nicht ganz durch, was das Bild für eine Klasse ist. Aber dem solltest du einen MouseListener hinzufügen, nicht dem JPanel.

Das sollte kein Problem sein, wenn es irgendwie von der Klasse Component abstammt.
 

SBehnen27

Aktives Mitglied
harr harr...

astrein. hab n bissi rumgefummelt und habs jetzt tatsächlich geschafft. dankean alle für denkanstösse und hilfen...
bin jetzt auch nicht mehr verwirrt =D
 

Xeyth

Mitglied
mich würde mal der quelltext für das anklickbare bild interessieren,

ich habe mehrere bilder die per doublebuffering auf ein panel geschmiert werden und ich versuche grad verzweifelt die bilder auswählbar zu machen mit nem mausklick
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
R Scenenwechel per Mausklick AWT, Swing, JavaFX & SWT 1
A Swing Fenster ändert Position bei Mausklick nicht AWT, Swing, JavaFX & SWT 2
Q-bert JTextField per Mausklick einfügen AWT, Swing, JavaFX & SWT 3
K Swing GridLayout - x und y bei Mausklick ausgeben AWT, Swing, JavaFX & SWT 4
J 2D-Grafik Linie wird nach Mausklick nicht am richtigen Ort gezeichnet AWT, Swing, JavaFX & SWT 11
L Tabelle reagiert ungewollt auf Mausklick AWT, Swing, JavaFX & SWT 6
J Labelicon bei Mausklick an den Zeiger pinnen AWT, Swing, JavaFX & SWT 7
C Schleife auf Mausklick warten lassen AWT, Swing, JavaFX & SWT 6
M Mausklick an darunterliegende Komponente weiterleiten AWT, Swing, JavaFX & SWT 9
Semox Swing Kreis löschen durch Mausklick in der Nähe AWT, Swing, JavaFX & SWT 2
N Defaulttext per Mausklick auswählen AWT, Swing, JavaFX & SWT 4
P JTextArea text verschwindet bei mausklick AWT, Swing, JavaFX & SWT 5
M File-Chooser Problem (2 X Mausklick öffnen) AWT, Swing, JavaFX & SWT 11
G JTree und Mausklick? AWT, Swing, JavaFX & SWT 2
R doppelte Ausführung bei einfachem Mausklick! AWT, Swing, JavaFX & SWT 12
G Mausklick event? BITTE HELFT MIR! :( AWT, Swing, JavaFX & SWT 8
B Thumbnail-Position per Mausklick ändern AWT, Swing, JavaFX & SWT 3
S Graph zeichnen bei Mausklick AWT, Swing, JavaFX & SWT 4
F Ignoriere Mausklick falls erster Klick von Doppelklick . AWT, Swing, JavaFX & SWT 4
G JTree soll nur auf Mausklick reagieren AWT, Swing, JavaFX & SWT 10
F Mausklick AWT, Swing, JavaFX & SWT 2
M Mausklick in nicht angezeigtes JTextField simulieren AWT, Swing, JavaFX & SWT 4
C [JTable] Mausklick. AWT, Swing, JavaFX & SWT 5
M JTree Elemete zeigen nach 2. Mausklick Object an. Warum? AWT, Swing, JavaFX & SWT 2
T JTextPane, Mausklick, aktives Wort AWT, Swing, JavaFX & SWT 2
S Mausklick reagiert nicht im JMenuBar AWT, Swing, JavaFX & SWT 4
M Mausklick verzögern AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben