Java 将不同的ActionListener添加到JToolBar中匿名引用的JButtons

Java 将不同的ActionListener添加到JToolBar中匿名引用的JButtons,java,swing,awt,jbutton,jtoolbar,Java,Swing,Awt,Jbutton,Jtoolbar,我正在尝试向JToolBar添加四个JButton,每个按钮都有一个不同的ActionListener 我想知道是否有一种方法可以将ActionListener添加到匿名引用的JButton,或者我是否必须专门定义每个按钮并添加每个侦听器 目前,代码是这样的: JToolBar tools = new JToolBar(); tools.setFloatable(false); gui.add(tools, BorderLayout.PAGE_START);// adds tools to JP

我正在尝试向JToolBar添加四个JButton,每个按钮都有一个不同的ActionListener

我想知道是否有一种方法可以将ActionListener添加到匿名引用的JButton,或者我是否必须专门定义每个按钮并添加每个侦听器

目前,代码是这样的:

JToolBar tools = new JToolBar();
tools.setFloatable(false);
gui.add(tools, BorderLayout.PAGE_START);// adds tools to JPanel gui made in another method

// add buttons to toolbar
tools.add(new JButton("New"));
tools.add(new JButton("Save"));
tools.add(new JButton("Restore"));
tools.addSeparator();
tools.add(new JButton("Quit"));

我想知道是否有一种方法可以将ActionListener添加到
tools.add(newjbutton(“foo”)行的方式与
线程t=new FooRunnableClass().start()相同
或者,如果我必须定义每个按钮,请将ActionListener添加到每个按钮,然后将每个按钮添加到工具。

您可以定义一个
AddButtonToolbar
方法来帮助您(假设您使用的是Java 8或更新版本):


考虑使用ActuditAcaction,而不是ActualListEnter,从而通过<代码> SETAcaction(…)>代码>或通过JButton的构造函数设置JButton的动作。<代码>如果我必须定义每个按钮,将ActualListNead添加到每个按钮,——您需要对该按钮的引用(无论您使用AdActudiListEnter()还是SETAcaction()。方法),所以是的,这将是最简单的方法。同意这里的@hovercraftfullofels。顺便说一句-可以直接执行
操作
JToolBar tools = new JToolBar();
tools.setFloatable(false);
// adds tools to JPanel gui made in another method
gui.add(tools, BorderLayout.PAGE_START);

addButtonToToolbar(tools, "New", e -> System.out.println("Pressed New"));
addButtonToToolbar(tools, "Save", e -> System.out.println("Pressed Save"));
addButtonToToolbar(tools, "Restore", e -> System.out.println("Pressed Restore"));
tools.addSeparator();
addButtonToToolbar(tools, "Quit", e -> System.out.println("Pressed Quit"));


private void addButtonToToolbar(final JToolBar toolBar, final String buttonText,
                                final ActionListener actionListener) {
    final JButton button = new JButton(buttonText);
    button.addActionListener(actionListener);
    toolBar.add(button);
}