如何创建:
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/