Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(家庭作业)Java GUI:按钮增加/减少2,而不是1_Java - Fatal编程技术网

(家庭作业)Java GUI:按钮增加/减少2,而不是1

(家庭作业)Java GUI:按钮增加/减少2,而不是1,java,Java,我正在开发一个简单的JavaGUI程序,它有两个按钮和一个显示的变量(num)。按钮名为“递增”和“递减”,其功能是递增或递减显示的变量num,该变量最初设置为50 虽然程序将编译,但递增和递减按钮将num的值增加/减少两个,而不是一个。我尝试过将代码'num++'更改为'num=num+1',但这仍然会导致按钮增加2 这是我的密码: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class A

我正在开发一个简单的JavaGUI程序,它有两个按钮和一个显示的变量(num)。按钮名为“递增”和“递减”,其功能是递增或递减显示的变量num,该变量最初设置为50

虽然程序将编译,但递增和递减按钮将num的值增加/减少两个,而不是一个。我尝试过将代码'num++'更改为'num=num+1',但这仍然会导致按钮增加2

这是我的密码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Assignment_4 extends JFrame {
    private int num = 50;
    private JButton increment;
    private JButton decrement;
    private JLabel label;
    private JPanel buttonPanel;
    private JPanel displayPanel;

    public Assignment_4() {
        increment = new JButton ("Increment");
        decrement = new JButton ("Decrement");
        increment.addActionListener (new incListener());
        decrement.addActionListener (new decListener());
        increment.addActionListener (new incListener());
        decrement.addActionListener (new decListener());

        num = 50;
        label = new JLabel ("" + num);

        buttonPanel = new JPanel();
        displayPanel = new JPanel();

        buttonPanel.add(increment);
        buttonPanel.add(decrement);
        displayPanel.add(label);

        setLayout(new BorderLayout());
        add(buttonPanel, BorderLayout.CENTER);
        add(displayPanel, BorderLayout.NORTH);
    }

    private class incListener implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            num++;
            label.setText("" + num);
        }
    }

    private class decListener implements ActionListener {
        public void actionPerformed (ActionEvent event) {
            num--;
            label.setText("" + num);
        }
    }

    public static void main(String[] args) {
        Assignment_4 win = new Assignment_4();
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        win.pack();
        win.setVisible(true);
    }
}

非常感谢您提供的任何帮助。

您已经为这两个示例附加了两个action listeners实例,您只需要每个实例中的一个即可

increment.addActionListener (new incListener()); 
decrement.addActionListener (new decListener()); 
//Remove the extra ones
//increment.addActionListener (new incListener()); 
//decrement.addActionListener (new decListener()); 

您已经为这两个附加了两个动作侦听器实例,每个实例只需要一个

increment.addActionListener (new incListener()); 
decrement.addActionListener (new decListener()); 
//Remove the extra ones
//increment.addActionListener (new incListener()); 
//decrement.addActionListener (new decListener()); 

您已将递增和递减侦听器添加到每个按钮两次。

您已将递增和递减侦听器添加到每个按钮两次。

我真不敢相信我错过了这一点。谢谢,我真不敢相信我错过了。非常感谢。