gpt4 book ai didi

java - 从 JDateChooser 获取日期并将其显示在 JTextField 中

转载 作者:行者123 更新时间:2023-12-01 17:00:02 25 4
gpt4 key购买 nike

我构建了以下 JDateChooser:

availFromDate = new JDateChooser();
availFromDate.setDateFormatString("dd/MM/yyyy");
JTextFieldDateEditor dateEditor = (JTextFieldDateEditor)availFromDate.getComponent(1);
dateEditor.setHorizontalAlignment(JTextField.RIGHT);
availFromDate.setSize(new Dimension(50, 0));
availFromDate.add(availablefromT);
calendarP.add(availFromDate);
contentPane.add(calendarP);
frame1.add(contentPane);
frame1.setVisible(true);

但是,我需要从 JDateChooser 选择的日期出现在它所在的 JTextField 中。我意识到必须涉及 getDate() 方法,尽管我不确定如何实现它。

如何获取日期并将其以 dd/MM/yyyy 格式显示在文本字段中?

编辑:

看到建议后我尝试了以下方法:

  SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
String date = sdf.format(availFromDate.getDate());
availablefromT.setText(date);

不过,现在我收到了 NullPointerException。有人知道为什么吗?似乎与此有关:String date = sdf.format(availFromDate.getDate());

错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1770)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:943)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)
at java.text.DateFormat.format(DateFormat.java:345)
at Controller.makeCustEnquiryGUI(Controller.java:2061)

示例:

import com.toedter.calendar.JDateChooser;
import com.toedter.calendar.JTextFieldDateEditor;
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import javax.swing.*;
import java.util.*;

public class CalendarTest {

private JFrame chooseCruiseFrame;
private JDateChooser availFromDate;
private JTextField availablefromT;
private JPanel contentPane;
private JPanel centerP;

public static void main(String[] args) {
new CalendarTest();
}

public CalendarTest() {

//////////// Creating Frame
chooseCruiseFrame = new JFrame("");
chooseCruiseFrame.setSize(300, 200);
chooseCruiseFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
chooseCruiseFrame.setVisible(true);

//////////// Creating contentPane
contentPane = new JPanel(new GridLayout(0, 1));
contentPane.setBackground(new java.awt.Color(255, 255, 255));
chooseCruiseFrame.add(contentPane);
chooseCruiseFrame.setVisible(true);

//////////// Creating CenterP
centerP = new JPanel();
centerP.setBackground(new java.awt.Color(255, 255, 255));
contentPane.add(centerP);
chooseCruiseFrame.add(contentPane);
chooseCruiseFrame.setVisible(true);

// Available From Calendar
JLabel availF = new JLabel("Available From:");
centerP.add(availF);
contentPane.add(centerP);
availablefromT = new JTextField(11);
centerP.add(availablefromT);
contentPane.add(centerP);
chooseCruiseFrame.add(contentPane);
chooseCruiseFrame.setVisible(true);

availFromDate = new JDateChooser();
JTextFieldDateEditor dateEditor = (JTextFieldDateEditor) availFromDate.getComponent(1);
dateEditor.setHorizontalAlignment(JTextField.RIGHT);
availFromDate.add(availablefromT);
centerP.add(availFromDate);
contentPane.add(centerP);
chooseCruiseFrame.add(contentPane);
chooseCruiseFrame.setVisible(true);

// Converting Date to String
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
String date = sdf.format(availFromDate.getDate());
availablefromT.setText(date);
}
}

最佳答案

相同的代码在这里工作

   //button    

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

DateFormat fmt = new SimpleDateFormat("dd/MM/yyyy");
String date = fmt.format(this.txt_data_ini.getDate()); //jdatechooser
this.teste.setText(date);

}

关于java - 从 JDateChooser 获取日期并将其显示在 JTextField 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28377318/

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