Individueller MouseListener ?

ahunzs

Mitglied
Hallo Alle zusammen!
Ich habe ein Problem mit meinem MouseListener:
Kann ich in der Methode MouseClicked Individuell zu jedem Komponenten
eine eigene Anweisung ausführen lassen oder ist das nicht möglich?
falls es euch hilft, hier noch den Code:

Java:
public GUI() {

        super("Währungsrechner");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        setSize(250, 400);
        setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getSize().width) / 2, (Toolkit
            .getDefaultToolkit().getScreenSize().height - getSize().height) / 2);
        setVisible(true);
        Container c = getContentPane();
        c.setLayout(null);

        btn_go = new JButton("Rechnen");
        btn_go.setToolTipText("Test");
        btn_go.addMouseListener(this);
        btn_go.setBounds(150, 337, 90, 30);
        c.add(btn_go);

        String[] items = { "Franken(CHF)", "Euro(EU)", "Bath(TH)", "dollar(GB)" };
        cbx_währung = new JComboBox(items);
        cbx_währung.addMouseListener(this);
        cbx_währung.setSelectedIndex(0);
        cbx_währung.setBounds(150, 280, 90, 30);
        cbx_währung.setVisible(true);
        c.add(cbx_währung);

    }

    public void mouseClicked(MouseEvent arg0) {

    }

    public void mouseEntered(MouseEvent arg0) {
        // TODO Auto-generated method stub

    }

    public void mouseExited(MouseEvent arg0) {
        // TODO Auto-generated method stub

    }

    public void mousePressed(MouseEvent arg0) {
        // TODO Auto-generated method stub

    }

    public void mouseReleased(MouseEvent arg0) {
        // TODO Auto-generated method stub

    }

Gruss aus Belp
 
Ich tendiere meistens eher dazu jeder Komponente einen eigenen Listener zu zuweisen.
Bei einem Listener für mehrere Kompnenten kann man über das Event die auslösende Komponente erfragen: EventObject (Java Platform SE 7 )

Speziell für Buttons und - wenn ich mich nicht irre - für ComboBoxes gibt es übrigens ActionListener.
 
Ich würde eher nach MVC programmieren und ne neue Klasse schreiben, die alle EventListener implementiert und dann jeweils über evt.getSource() die Aktionen speziell ausführen und nicht laufter innere oder gar anonyme Klassen erstellen.
 
Hallo
Danke schon mal für die Antworten! 🙂
ich stehe ein bisschen auf dem Schlauch... :bahnhof:
wie kann ich nun mehrere MouseListener verwenden?
 
Ich würde eher nach MVC programmieren und ne neue Klasse schreiben, die alle EventListener implementiert und dann jeweils über evt.getSource() die Aktionen speziell ausführen und nicht laufter innere oder gar anonyme Klassen erstellen.
Weiß nicht, ob MVC bei einem Währungsrechner nicht ein bisschen übertrieben ist...

Allerdings ist mir auch nicht klar, wo in diesem Fall die Klasse mit den EventListenern zugeordnet werden soll, wenn diese über evt.getSource() auch die auslösenden Komponenten kennen muss?
 
Hallo
Danke schon mal für die Antworten! 🙂
ich stehe ein bisschen auf dem Schlauch... :bahnhof:
wie kann ich nun mehrere MouseListener verwenden?
Wie gesagt gibt es für Buttons ActionListener, die das vom Anwender gewohnte Verhalten bereits implementieren.

Hier eine Möglichkeit, um an einem (J)Button einen anonymen Listener zu registrieren:
Java:
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvt evt) {
        //zu implementieren...
    }
}
 

Zurück
Oben