gpt4 book ai didi

java - 在 Java Swing 中重置微调器值

转载 作者:行者123 更新时间:2023-11-30 08:14:41 25 4
gpt4 key购买 nike

我了解 C 编程,但我是 Java 程序员新手,我想向您请教一个问题。如果两个微调器值都小于“1”,我会尝试将它们设置为 null,但我做不到。我正在等待您的帮助,谢谢。

Spinner spinnermin = new JSpinner();
spinnermin.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
valuemin =(Integer) spinnermin.getValue();
if(valuemin<0){
spinnermin.setValue(null);

}
}
});
spinnermin.setBounds(478, 215, 76, 20);
frame.getContentPane().add(spinnermin);

JSpinner spinnerhour = new JSpinner();
spinnerhour.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
valuehour = (Integer) spinnerhour.getValue();
if(valuehour<1){
spinnerhour.setValue(null);

}
}
});
spinnerhour.setBounds(362, 215, 86, 20);
frame.getContentPane().add(spinnerhour);

最佳答案

你声明:

I try to set both spinners values null if they are less then "1" but I couldn't do it.

使用不允许负值的 SpinnerNumberModel 会好得多。例如,

JSpinner hourSpinner = new JSpinner(new SpinnerNumberModel(1, 1, 24, 1));

这将创建一个 JSpinner,它允许从 1 到 24 的 int 值,并且从 1 开始。

将 null 分配给期望保存数值的组件确实没有意义,与其尝试这样做,不如限制用户输入 Not Acceptable 值的能力。另请查看 JSpinner Tutorial .

作为附带建议,虽然空布局和 setBounds() 对 Swing 新手来说似乎是创建复杂 GUI 的最简单和最好的方法,但您创建的 Swing GUI 越多,您遇到的困难就越严重使用它们时遇到。当 GUI 调整大小时,它们不会调整组件的大小,它们是增强或维护的皇家女巫,当放置在滚动 Pane 中时它们会完全失败,当在所有平台或与原始屏幕分辨率不同的屏幕分辨率上查看时,它们看起来很糟糕.

关于java - 在 Java Swing 中重置微调器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29330814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com