Java
swing使用MVC模式,因此在JSpinner中相同。如果查看JSpinner源代码,您会发现getValue()方法实际上是调用getModel()。getValue(),因此它正在调用模型的getValue。并且您使用的模型是SpinnerDateModel,其值将为Date
Object,当您打印Date对象时,如果要获取,它将显示默认格式,例如“ Thu Jan 01 11:18:00 IST 1970”例如“
11:18”,则需要自行格式化。
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm"); System.out.println(sdf.format(spinner.getValue()) );您可能想知道为什么tf.getText()仅获得旧值,因为在微调器上发生ChangeEvent之后,将在tf上发生PropertyChangeEvent,将为其设置新值。当然,您可以像tf.addPropertyChangeListener一样收听tf。但我建议使用上面的解决方案。



