gpt4 book ai didi

java - JSpinner:当我使用方法 "getValue()"时,它返回 1974 年 1 月 1 日的日期

转载 作者:行者123 更新时间:2023-12-01 06:16:41 25 4
gpt4 key购买 nike

我遇到了 Java JSpinner 问题。如果我不修改微调器中显示的值,则一切正常。但是,如果我使用箭头更改值(日期),我的程序将返回 1970 年 1 月 1 日的日期。

这是代码片段:

package main;

import java.awt.FlowLayout;
import java.util.Calendar;
import java.util.Date;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class GUI {

JSpinner mySpinner;



public void createGUI(){
JFrame frame=new JFrame();
JPanel panel=new JPanel(new FlowLayout());

panel.setSize(300,100);
mySpinner=new JSpinner();
mySpinner.setModel(new SpinnerDateModel(new Date(), null, null, Calendar.MINUTE));
mySpinner.setEditor(new JSpinner.DateEditor(mySpinner, "HH:mm"));
mySpinner.setBounds(0, 0, 71, 28);

final JLabel myLabel=new JLabel();
panel.add(myLabel);

mySpinner.addChangeListener(new ChangeListener(){

@Override
public void stateChanged(ChangeEvent e) {
System.out.println("JSpinner: "+mySpinner.getValue());

}

});


frame.add(panel);
panel.add(mySpinner);
frame.setVisible(true);

}

}

这是主要的:

public static void main(String[] args) {
// TODO Auto-generated method stub
GUI myGUI=new GUI();
myGUI.createGUI();
}

这是控制台打印的内容:

JSpinner: Thu Jan 01 23:03:00 CET 1970
JSpinner: Thu Jan 01 22:03:00 CET 1970

最佳答案

您需要将今天的日期设置为DateEditor。尝试以下代码片段。

Date today = new Date();
JSpinner s = new JSpinner(new SpinnerDateModel(today, null, null,
Calendar.MINUTE));
JSpinner.DateEditor de = new JSpinner.DateEditor(s, "HH:mm");
s.setEditor(de);

希望有帮助。

关于java - JSpinner:当我使用方法 "getValue()"时,它返回 1974 年 1 月 1 日的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23045337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com