如何从我的 JSpinner 获取日期?
How to get Date from my JSpinner?
这是 Spinner 的代码
Hini = new javax.swing.JSpinner();
Date date = new Date();
SpinnerDateModel sm = new SpinnerDateModel(date, null, null, Calendar.MINUTE);
JSpinner Hini = new JSpinner(sm);
JSpinner.DateEditor de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( true );
Hini.setEditor(de);
这就是我希望它获取值的方式,但它始终显示“00:00”
`SimpleDateFormat formater = new SimpleDateFormat("HH/mm");
String spinnerValue = formater.format(Hini.getValue());
System.out.println(spinnerValue);`
我也试过了,但它总是显示实际时间,而不是我选择的时间
Hini = new JSpinner(sm);
de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( false );
Hini.setEditor(de);
System.out.println("Spinner: "+de.getFormat().format(Hini.getValue()));
您似乎正在创建 JSpinner
的两个实例
// Instance(?) field here...
Hini = new javax.swing.JSpinner();
Date date = new Date();
SpinnerDateModel sm = new SpinnerDateModel(date, null, null, Calendar.MINUTE);
// Local field here
JSpinner Hini = new JSpinner(sm);
JSpinner.DateEditor de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( true );
Hini.setEditor(de);
所以我只能猜测本地字段是添加到 UI 的内容,而实例字段被忽略了,这意味着用户在该字段中输入的任何内容都没有设置为实例字段。
放弃第二个字段的创建,将其替换为Hini.setModel(sm);
与其直接从 JSpinner
格式化值,您应该简单地获取对 Date
值的引用,并且只在真正需要时才格式化。这为您提供了更灵活的解决方案
这是 Spinner 的代码
Hini = new javax.swing.JSpinner();
Date date = new Date();
SpinnerDateModel sm = new SpinnerDateModel(date, null, null, Calendar.MINUTE);
JSpinner Hini = new JSpinner(sm);
JSpinner.DateEditor de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( true );
Hini.setEditor(de);
这就是我希望它获取值的方式,但它始终显示“00:00”
`SimpleDateFormat formater = new SimpleDateFormat("HH/mm");
String spinnerValue = formater.format(Hini.getValue());
System.out.println(spinnerValue);`
我也试过了,但它总是显示实际时间,而不是我选择的时间
Hini = new JSpinner(sm);
de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( false );
Hini.setEditor(de);
System.out.println("Spinner: "+de.getFormat().format(Hini.getValue()));
您似乎正在创建 JSpinner
// Instance(?) field here...
Hini = new javax.swing.JSpinner();
Date date = new Date();
SpinnerDateModel sm = new SpinnerDateModel(date, null, null, Calendar.MINUTE);
// Local field here
JSpinner Hini = new JSpinner(sm);
JSpinner.DateEditor de = new JSpinner.DateEditor(Hini, "hh:mm a");
de.getTextField().setEditable( true );
Hini.setEditor(de);
所以我只能猜测本地字段是添加到 UI 的内容,而实例字段被忽略了,这意味着用户在该字段中输入的任何内容都没有设置为实例字段。
放弃第二个字段的创建,将其替换为Hini.setModel(sm);
与其直接从 JSpinner
格式化值,您应该简单地获取对 Date
值的引用,并且只在真正需要时才格式化。这为您提供了更灵活的解决方案