gpt4 book ai didi

java - 如何使用通用枚举实现 Action 监听器?

转载 作者:行者123 更新时间:2023-12-02 09:51:08 25 4
gpt4 key购买 nike

我正在重构我的应用程序,我的老师建议我用更通用的代码替换 GUI 构建器生成的代码。

现在,每个 JMenuItem 都有自己的操作监听器。我想要实现的是通过在单个操作监听器中使用枚举来为每个菜单项提供一种通用控制功能。下面的代码应该可以让您有一个大概的了解。 clE 是枚举键,我相信枚举应该实现一个用于读取其标签的接口(interface)。

我做了一些研究,我确信这很简单,但我还不能完全掌握它。提前致谢!

public class JECheckBox<E extends ENUM_Label_INTF<?>> extends JCheckBox {

private final E clE;

// +++++++ CONSTRUCTOR +++++++++
public JECheckBox(final E clE) {
super( ((GetLabelINTF) clE).GetLabel() );
this.clE = clE;
}

public E GetKey() {
return clE;
}
}

最佳答案

I believe the enum should implement an interface for reading its label.

如果您想读取复选框的文本,则可以通过执行以下操作来创建通用监听器:

Action action = new AbstractAction()
{
@Override
public void actionPerformed(ActionEvent e)
{
JCheckBox checkbox = (JCheckBox)e.getSource();
System.out.println( checkbox.getText() );
}
};

现在您可以将操作添加到每个复选框。

请注意,Action 是一种更通用的 ActionListener。阅读 Swing 教程中关于 How to Use Actions 的部分了解更多信息和示例。

关于java - 如何使用通用枚举实现 Action 监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56319172/

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