Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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 测试Set和Get方法,但它不起作用_Java - Fatal编程技术网

Java 测试Set和Get方法,但它不起作用

Java 测试Set和Get方法,但它不起作用,java,Java,我正在尝试测试Set-and-Get方法,但它似乎不起作用 我在按钮中添加了ActionListener,然后在单击按钮时执行它。但是它没有起作用。在一个更大的项目中,我也使用了这种方法,但由于它不起作用,我不得不将它简化为一个更小的程序,以便更容易理解。然而,我还是不明白。你们能帮我指出问题所在吗 代码如下: public class SetAndGet extends JPanel { private int index = 3500; private JButton btPrev; pr

我正在尝试测试Set-and-Get方法,但它似乎不起作用

我在按钮中添加了
ActionListener
,然后在单击按钮时执行它。但是它没有起作用。在一个更大的项目中,我也使用了这种方法,但由于它不起作用,我不得不将它简化为一个更小的程序,以便更容易理解。然而,我还是不明白。你们能帮我指出问题所在吗

代码如下:

public class SetAndGet extends JPanel {
private int index = 3500;

private JButton btPrev;
private JLabel lbIndex;

public SetAndGet() {
    init();
}

public int getIndex() {
    return index;
}

public void setIndex(int index) {
    this.index = index;
}

private void init() {
    setLayout(null);
    setBackground(Color.WHITE);

    lbIndex = new JLabel(index + "");
    lbIndex.setBounds(10, 10, 50, 30);
    add(lbIndex);

    btPrev = new JButton("Previous");
    btPrev.setBounds(100, 10, 80, 30);
    btPrev.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // index--;       THIS ONE WORKED, OF COURSE
            // lbIndex.setText(index + "");

            // BUT THIS ONE DIDNT, PLEASE EXPLAIN FOR ME
            int i = getIndex();
            setIndex(i--);
            lbIndex.setText(index + "");
        }
    });
    add(btPrev);
}

public static void main(String[] args) {
    JFrame f = new JFrame("Test");

    f.setSize(200, 200);
    f.setLocationRelativeTo(null);
    f.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });
    f.add(new SetAndGet());
    f.setVisible(true);
}
}

您的getter和setter正在工作,您只是没有更改值。
i--
分配给设定器后,将从
i
中减去一

如果要在设置值之前减去一,请使用
--i

public void actionPerformed(ActionEvent e) {
        // index--;       THIS ONE WORKED, OF COURSE
        // lbIndex.setText(index + "");

        // BUT THIS ONE DIDNT, PLEASE EXPLAIN FOR ME
        int i = getIndex();
        setIndex(--i);
        lbIndex.setText(index + "");
    }

您的getter和setter正在工作,您只是没有更改值。
i--
分配给设定器后,将从
i
中减去一

如果要在设置值之前减去一,请使用
--i

public void actionPerformed(ActionEvent e) {
        // index--;       THIS ONE WORKED, OF COURSE
        // lbIndex.setText(index + "");

        // BUT THIS ONE DIDNT, PLEASE EXPLAIN FOR ME
        int i = getIndex();
        setIndex(--i);
        lbIndex.setText(index + "");
    }