java - 测试 Set 和 Get 方法但不起作用

标签 java

我正在尝试测试 Set 和 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 分配给 setter 后将其减一。

如果您想在设置值之前减一,请使用--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 + "");
    }

关于java - 测试 Set 和 Get 方法但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50114035/

相关文章:

java - Android View 不会用滑动手势滚动,也不会滚动。将 ListView 与 ArrayAdapter 一起使用

java - 如何在 Angularjs 中隐藏哈希路由

java - 在加载时要在属性文件中放入哪些值才能获取 IOException?

java - 如何从 1 个公钥生成多个比特币地址?

java - ConcurrentHashMap jdk 8 使用 TreeNodes 而不是 List .. 为什么?

java - 通过运行对象的同步方法来获取对象的锁

java - 这个 lambda 表达式是什么意思?

Java 深度克隆 - 如果可克隆,则克隆 ArrayList 中的每个元素,无论类型如何

Java : Replacing Last character of a String and First character of the String

java - 简单的 Google App Engine 数据存储操作耗时过长 : causing DeadlineExceededException/DatastoreTimeoutException