【问题标题】:How do I make separate buttons do separate things?如何让单独的按钮做单独的事情?
【发布时间】:2020-06-19 17:05:31
【问题描述】:

我正在制作的一个简单应用程序中有一个按钮,一旦按下它就会将变量加一。这是它的代码:

public class GUI implements ActionListener {
    int clicks = 0;
    int autoClickLevel = 0;
    JLabel label;
    JFrame frame;
    JPanel panel;

    public GUI() {
        JButton button = new JButton("Click me!");
        button.addActionListener(this);

        panel = new JPanel();
        panel.setBorder(BorderFactory.createEmptyBorder(60, 100, 30, 100));
        panel.setLayout(new GridLayout(0, 1));
        panel.add(button);

        frame.add(panel, BorderLayout.CENTER);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

public static void main(String[] args) {
    new GUI();
}

@Override
public void actionPerformed(ActionEvent e) {
    clicks++;
}

我想知道如何制作一个单独的按钮(我已经制作了它,它会显示出来;JButton button2 = new JButton("Click me too!");),它会改变一个单独的变量。 button2.addActionListener(this); [加上不同的做法,] 而是递增 clicks 变量而不是单独的 clicks2 变量。

我的代码对此有点混乱,第二个按钮的脚本根本不起作用。我对 Java 也很陌生,所以我也不太擅长弄清楚这一点。让第二个按钮增加另一个变量的好方法是什么?

【问题讨论】:

  • 虽然,下面的答案很适合您的问题,但您也可以像使用当前按钮一样使用以下版本的每个按钮,甚至无需实现ActionListener。您还可以将每个按钮设置为与当前按钮相同,并且可以通过关注this answer 来区分按下了哪个按钮。您可以选择您喜欢的方式。

标签: java


【解决方案1】:

有不同的 ActionListener。你可以这样做:

button2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // do something
    }
});

或者您可以将 ActionListener 定义为它自己的类。

【讨论】:

  • 谢谢!发挥了魅力。
猜你喜欢
  • 2013-07-19
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
相关资源
最近更新 更多