Button: Event auslösen

Status
Nicht offen für weitere Antworten.

e9926044

Bekanntes Mitglied
Hallo,

ich habe im Konstruktor der main- Klasse einen Button wie unten in Code angegeben.
Ich möchte jetzt aus einer anderen Klasse einen Event auslösen. Aus einer Methode der main- Klasse gehts mit "addButton.doClick();", aber meine Frage wäre, wie kann ich einen Event aus einer anderen Klasse auf diesen Button auslösen? In der anderen Klasse ein Objekt der main- Klasse machen und mit ObjektmainKlasse.addButton.doClick() funktioniert leider nicht (den addButton habe ich zum Ausprobieren public static gemacht).

Vielen DANK für eure Antworten.

lg
Hannes


Code:
addButton.addActionListener(new ActionListener()                                           
            {
            public void actionPerformed(ActionEvent e) {   
		try {
                     }
               catch (...
 
das es von main aus geht und von woanders nicht, erscheint sehr merkwürdig,
hat das vielleicht auch was mit dem Zeitpuntk zu tun?
(main = direkt beim Programmstart, woandes = später?)

aber allgemein lohnt es sich für den Anfang auch gar nicht darüber nachzudenken,
programmiere
Code:
public void actionPerformed(ActionEvent e) { 
   logicObject.doActionXY();
}
dann kannst du von woanders genausogut
logicObject.doActionXY();
aufrufen, unabhängig vom ActionListener
 
Code:
package gui;
/*
 * ButtonClickDemo.java
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonClickDemo extends JFrame {
    private JButton btTest;
    public ButtonClickDemo() {
        initComponents();
        AndereKlasse andereKlasse = new AndereKlasse(btTest);
    }
    private void initComponents() {
        btTest = new JButton();
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        btTest.setText("Test");
        btTest.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent evt) {
                btTestActionPerformed(evt);
            }
        });
        getContentPane().add(btTest, BorderLayout.NORTH);
        pack();
    }
    private void btTestActionPerformed(final ActionEvent evt) {
        System.out.println("btTestActionPerformed");
    }
    public static void main(final String args[]) {
        new ButtonClickDemo().setVisible(true);
    }
}
class AndereKlasse{
    private JButton btTest;
    public AndereKlasse(JButton btTest){
        this.btTest = btTest;
        doIt();
    }
    private void doIt(){
        this.btTest.doClick();
    }
}
 
Hallo,

eine Frage hätte ich noch und zwar wenn ich "this.btTest.doClick();" nicht im Konstruktor auslösen möchte sondern in einer Methode der Klasse AndereKlasse, dann bekomme ich einen Fehler: java.lang.NullPointerException.
Wie kann ich das machen, dass ich "this.btTest.doClick();" in einer Methode der Klasse AndereKlasse auslöse?

Vielen DANK!!

lg
Hannes



Code:
class AndereKlasse{
    private JButton btTest;
    public AndereKlasse(JButton btTest){
        this.btTest = btTest;
        this.btTest.doClick();
    }
}
 
na indem du im Konstruktor den Button in der Exemplarvariable speicherst,
steht doch im Beispiel schon da, hast du das etwa rausgelöscht?

Code:
class AndereKlasse{ 
    private JButton btTest; 
    public AndereKlasse(JButton btTest){ 
        this.btTest = btTest; 
    }
    public void test()
        this.btTest.doClick(); 
    } 
}
 
e9926044 hat gesagt.:
..Wie kann ich das machen, dass ich "this.btTest.doClick();" in einer Methode der Klasse AndereKlasse auslöse?..
Ich habe den Code jetzt oben in diesem Sinn angepasst.
Aber da ist eigentlich nix Besonderes zu beachten :shock:

EDIT: Upps! Zu spät 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben