java - 如何在java中一行创建一个自存在的按钮?

标签 java jbutton

如何创建:

JButton b = new JButton("text").addActionListener(e -> classX.addNewTest()));
buttons.add(b);

在一行中?我试过这个:

panel.add(b = new JButton("text").addActionListener(e -> classX.addNewTest()));

但是如果不创建“b”我怎么能做到呢?

最佳答案

如果你真的想在一行中做到这一点,你可以扩展 JButton 类并在实例初始化器中添加监听器:

    panel.add(new JButton("text") {{ addActionListener(e -> classX.addNewTest()); }} );

不推荐这样做:它很难理解,几乎是代码混淆,而且它创建了 JButton 的子类,但根本没有真正扩展其功能。参见 What is Double Brace initialization .

更好的方法可能是编写一个方法来创建按钮 - 我对大多数组件都这样做:

    panel.add(createJButton("test", e -> classX.addNewTest()));

...

private JButton createJButton(String text, ActionListener listener) {
    JButton button = new JButton(text);
    button.addActionListener(listener);
    // more customization if needed
    return button;
}

关于java - 如何在java中一行创建一个自存在的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41909025/

相关文章:

java - 如何更改JButton?

java - 与数据库无关的数据库加密

java - 如何在 Java 中处理时间

java - 在 Eclipse 中失去焦点时,如何阻止 TreeView 展开/折叠图标褪色?

java - JButton 和 JField 标签/文本?

java - 位于 ButtonGroup 中的 JradioButton 要 setSelected

java - 为什么将 volatile 与同步块(synchronized block)一起使用?

java - 使用 java 的 JSON 模式验证

java - 让按钮保持点击状态

java - 如何根据登录的用户设置可见的 JButton?