检测JSpinner何时达到最大限制?

时间:2018-03-30 18:12:04

标签: java swing user-interface jspinner

我目前在我的表单中已经实现了def convert_from_base_10(n,l): import math counter = 0 m=n z=0 string = "" if n<2: return n else: while m>=l: m=m/l counter +=1 while counter >= 0: z= math.floor(n/(l**counter)) string = string + str(z) n = n-z*(l**counter) counter = counter - 1 return string ,其中包含执行任务所需的时间;此旋转器的当前限制为180分钟。我的问题是如何检测微调器当前处于其最大值,以便当用户尝试按下按钮增加分钟数时,我可以输出一条消息,通知他们执行任务的最长时间是180分钟?

2 个答案:

答案 0 :(得分:1)

一旦JSpinner达到极限值,您就不会再收到任何更改事件。

创建一个javax.swing.SpinnerNumberModel的子类,它有一个自定义&#34; setValue(..)&#34;当UI尝试设置太大的值时通知您的代码的方法。然后使用

将其安装在JSpinner对象中
mySpinner.setModel(new MySpinnerModel())

但更大的问题是你是否应该这样做。 JSpinner有一个易于理解的用户界面;人们(意味着)已经习惯了它的表现。获得一个您必须解雇的对话框或其他一些意外行为可能不会让他们感到满意。

答案 1 :(得分:0)

您可以向JSpinner组件添加更改侦听器。在stateChanged方法中,您可以调用getNextValue()方法。如果返回null,则表示您已达到模型的最大值。

查看更多:https://docs.oracle.com/javase/8/docs/api/javax/swing/JSpinner.html#getNextValue--