JButton action在另一个类中执行

时间:2017-05-13 06:27:51

标签: java button jframe jbutton

假设我有一个具有Client.Function1()函数的类Client。如何让我的JButton在LoginGUI类中让它在Client类中执行Function1?

我不想在LoginGUI类中初始化Client实例。

1 个答案:

答案 0 :(得分:1)

我将演示如何在单例类中使用动作侦听器。

class Client implements ActionListener {
    private static Client instance = new Client();
    public static Client getInstance() { return instance; }

    public void actionPerformed(ActionEvent e) {
        // do the thing you want to do here.
    }
}

当您创建JButton

JButton b = new JButton();
// configure your button here...
b.addActionListener(Client.getInstance());

就这么简单。

如果您还想在按下按钮时更改UI和内容,该怎么办?

只需添加另一个动作侦听器!

首先,在GUI类中编写一个方法,并在按下按钮时写下你想用UI做的任何事情:

public void actionPerformed(ActionEvent e) {
    // do stuff
}

之后,使GUI类实现ActionListener

然后,只需添加另一个动作侦听器:

b.addActionListener(this);