0
我使用当前时间使用datemodel设置JSpinner。JSpinner崩溃setStartDate
startDateModel = new SpinnerDateModel(Calendar.getInstance().getTime(),null,null,Calendar.YEAR);
startDateSpinner = new JSpinner(startDateModel);
JSpinner.DateEditor startEditor = new JSpinner.DateEditor(startDateSpinner,"yyyy.MM.dd. HH:mm");
startDateSpinner.setEditor(startEditor);
我有一个按钮,启动一个线程,我希望在 用户按下按钮来设置的JSpinner的startDate。但是,在设置startDate后,JSpinner停止工作。
Start.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
startDateModel.setValue(Calendar.getInstance().getTime());
startDateModel.setStart(Calendar.getInstance().getTime());
//do some stuff
//start thread
}
});
与此同时,我设法找到一个解决方案,它使用的ChangeListener。
startDateSpinner.addChangeListener(new ChangeListener()
{
@Override
public void stateChanged(ChangeEvent e)
{
if(startDateModel.getDate().before(startDate))
{
startDateModel.setValue(startDate);
}
if(startDateModel.getDate().after(endDate))
{
startDateModel.setValue(endDate);
}
}
});
感谢您的帮助。
1.我与[SpinnerDateModel]被启动(http://docs.oracle.com/javase/7/docs/api/javax/swing/SpinnerDateModel.html),2。然后,以搜寻这里是关于可能的变化,3.在没有成功的情况下发布SSCCE/MCVE,前面的选项都失败 – mKorbel
请确保'//启动线程代码(不管它是什么)不阻塞[Event Dispatch Thread](http: //docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html)导致您的GUI无响应。 – dic19
您的actionPerformed(..)代码正在Event Dispatch Thread上运行。你的//启动线程代码可能会阻塞某些东西。你也可以粘贴线程代码吗? –