Я использую JSpinner
для выбора времени в формате ЧЧ: ММ: СС. Когда я открываю графический интерфейс, счетчик автоматически настраивается на текущее системное время, Что мне нужно, например, если я нажму «Сохранить», добавив некоторое значение для счетчика, а когда снова открою его, то должны быть показаны старые значения.Использование JSpinner для получения значений
Я попытался следующий код, но его не работает,
if(Stime != null){
Date time = new SimpleDateFormat("HHMMSS", Locale.ENGLISH).parse(Stime);
StarttimeSpinner.setValue(time);
}
где STIME является ранее сэкономленное время в формате HHMMSS например (142030)
это правильно? или как я могу это сделать? Пожалуйста помоги!
РЕДАКТИРОВАТЬ:
SpinnerModel Startmodel = new SpinnerDateModel();
StarttimeSpinner = new JSpinner();
StarttimeSpinner = new JSpinner(Startmodel);
JComponent editor = new JSpinner.DateEditor(StarttimeSpinner, "HH:mm:ss");
StarttimeSpinner.setEditor(editor);
try{
if(!(Stime.equalsIgnoreCase("")))
{
Date time = new SimpleDateFormat("HH:mm:ss", Locale.ENGLISH).parse(Stime);
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
String dateString = formatter.format(time);
StarttimeSpinner.setModel(new SpinnerListModel(new String[]{dateString}));
}
}
}catch(Exception ie){
System.err.println("in time panel");
}
формат STIME является ЧЧММСС и сво string.In DateString (переменной) я получить предыдущее значение в HH: сс, но его не устанавливается в Spinner вместо того, чтобы показывать систему: мм время.
EDIT 2: Я Узнал решение, но с ошибкой,
Если мой код, как это (1),
StarttimeSpinner = new JSpinner();
SpinnerModel Startmodel = new SpinnerDateModel();
StarttimeSpinner = new JSpinner(Startmodel);
JComponent editor = new JSpinner.DateEditor(StarttimeSpinner, "HH:mm:ss");
StarttimeSpinner.setEditor(editor);
Ниже кусок кода работает отлично,
Date starttime = new Date();
starttime = (Date)StarttimeSpinner.getValue();
, если я изменить код, как показано ниже (2),
Date time = new SimpleDateFormat("HHmmss", Locale.ENGLISH).parse(Stime);
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
String dateString = formatter.format(time);
StarttimeSpinner.setModel(new SpinnerListModel(new String[]{dateString}));
где STIME есть (например) 120011
Ниже фрагмент кода не работает нормально,
Date starttime = new Date();
starttime = (Date)StarttimeSpinner.getValue();
и бросать исключение, как java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
при постановке значения прибудете.
1) Для лучшей помощи раньше, опубликовать [SSCCE] (Http: // sscce. орг /). 2) Изучите общие [Соглашения о присвоении имен Java] (http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307) (в частности, используемый для имен) для класса , методы и имена атрибутов и использовать их последовательно. –
Когда вы говорите, что вы сохранили, вы имеете в виду, что вы закрываете всю программу, и когда вы ее снова открываете, вы хотите, чтобы это время отображалось? Если это так, вам нужно сохранить его в текстовый файл или что-то в этом роде. и загружать файл при открытии программы –
Итак, что-то не так? – MadProgrammer