gpt4 book ai didi

Java 独立的 ActionListener 和一个总体的 ActionListener

转载 作者:行者123 更新时间:2023-11-29 09:41:39 27 4
gpt4 key购买 nike

也许我做错了。让我知道使用 Swing 和 AWT,我在框架上设置了几个按钮,每个按钮都有一个与其特定功能 I.E 相对应的 ActionListener。

JButton foo_button = new JButton("Foo-Me");
foo_button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//Fancy schmancy code work
}
})
JButton bar_button = new JButton("Bar None");
bar_button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//Fancy schmancy code work
}
})

所以这些按钮中的每一个都有自己的作用。但是,如果我希望所有按钮都做某件事(每个按钮都使用完全相同的方法)怎么办?在我的例子中,在它们做自己的事情之前清除标签。

显然,我可以将 whatever_label.setText("") 添加到每个 actionPerformed() 中,但这需要大量重复,我不太喜欢。

噢,Java 和 Swing 大师们来帮我了。

最佳答案

您可以子类化您自己的 ActionListener 实现:

private static abstract class MyListener implements ActionListener {

@Override
final public void actionPerformed(ActionEvent evt) {
theSameTask();
uniqueTask(evt);
}
private void theSameTask() {
// the identical task
}
public abstract void uniqueTask(ActionEvent evt);
}

然后,新的监听器将如下所示:

JButton bar_button = new JButton("Bar None");
bar_button.addActionListener(new MyListener() {
@Override public void uniqueTask(ActionEvent evt) {
//Fancy schmancy code work
}
});

关于Java 独立的 ActionListener 和一个总体的 ActionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11521435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com