JSpinner值不更新

时间:2015-11-18 01:01:44

标签: java swing user-interface

我有一个JSpinner,我创建并添加到屏幕,然后我使用setValue更新它的值。如果我然后调用getValue,则重新调整正确的更新值。但它没有显示在用户界面上,当我点击按钮增加时,它变为1而不是31。我已经尝试了一大堆GUI更新想法没有任何作用。

public class test extends JFrame {
private JSpinner jspin;

public test() {
    jspin = new JSpinner();
    this.add(jspin);
    this.setSize(300,300);
    this.setVisible(true);
}

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

public void updateSpin() {
    jspin.setValue(3);
}

}

我想要更新JSpinner的值。基本上在一个类()中,JSpinner被添加到UI,但另一个类调用一个方法(),它使用setValue更新它。根据代码工作,但UI显示不同的故事。

1 个答案:

答案 0 :(得分:3)

我的猜测 - 您正确调用passArgs(...)方法,但在错误的StartUpPane实例上调用它,您可能正在创建一个全新的StartUpPane实例,调用此方法它,并期望完全独立和独特的StartUpPane实例改变,但事实并非如此。如果是这种情况,那么解决方案就是将正确的可视化实例传递到需要它的位置。更好的解决方案是使用MVC或模型 - 视图 - 控制结构,一个可怕的解决方案是使用静态方法和/或字段。

另一种可能性是你可能会隐藏变量,包括StartUpPane的变量 - 但是谁知道。

同样,这只是一个愚蠢的疯狂猜测,或SWAG。请不要让我们猜测 - 显示足够的代码(但不要太多),所以我们知道正在发生的事情。