java - JSpinner 值未更新

标签 java swing user-interface

我有一个 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/

相关文章:

java - "Ambiguous mapping found"当一个@Controller 扩展另一个@Controller

java - GridBagLayout 元素不移动

java - 更改 JPanel Graphics g 颜色绘图线

java - 如何让一个点上下移动

javascript - 与 Backbone 配合良好的 UI 移动框架?

java - 从apache tomcat API调用获取时间

java - GWT Cell 树,如何使用?

java - 我厌倦了 JButtons,如何在 java 中制作更好的 GUI?

user-interface - 从 Controller 内关闭阶段

java - Vaadin 按钮操作和消息框需要执行 2 个操作