我有一个 JSpinner,我创建它并将其添加到屏幕上,然后使用 setValue 更新它的值。如果我随后调用 getValue,则会返回正确的更新值。但它没有显示在 UI 上,当我单击按钮递增时,它会变为 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 显示了不同的情况。
最佳答案
我的猜测 - 您正确地调用了 passArgs(...)
方法,但在错误的 StartUpPane 实例上调用它,您可能正在创建一个完全新的 StartUpPane 实例,对其调用此方法,并期望完全独立且唯一的 StartUpPane 实例发生更改,但事实并非如此。如果是这种情况,解决方案是将正确的可视化实例传递到需要的地方。更好的解决方案是使用 MVC 或模型- View -控制结构,而糟糕的解决方案是使用静态方法和/或字段。
另一种可能性是您可能隐藏了变量,包括 StartUpPane 的变量 - 但谁知道呢。
再说一遍,这只不过是一个愚蠢的疯狂猜测,或者说 SWAG。请不要让我们猜测 - 显示足够的代码(但不要太多),以便我们知道发生了什么。
关于java - JSpinner 值未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33770007/