【发布时间】:2014-10-06 12:19:48
【问题描述】:
我正在创建一个项目,我应该在其中获取任何人的出生日期。因此,为此我采用了 3 个组合框:日期、月份和年份。但是我怎么知道要插入的Date是valid,因为天数不同——不同的月份和年份不同。
有没有现成的GUI component 可以从用户那里获取日期?
我正在使用 Swing 包进行设计。
我的示例代码是
import java.awt.*;
import javax.swing.*;
public class Pro1 extends JFrame
{
JComboBox dd, mm, yy;
JLabel doblbl;
Container con;
public Pro1()
{
con = getContentPane();
doblbl = new JLabel("Date of Birth :-");
doblbl.setHorizontalAlignment(SwingConstants.CENTER);
doblbl.setFont(new Font("Arial",Font.BOLD,17));
doblbl.setForeground(Color.blue);
doblbl.setOpaque(true);
doblbl.setBackground(new Color(230,180,230));
dd = new JComboBox();
mm = new JComboBox();
yy = new JComboBox();
for(int i = 1; i<=31; i++)
dd.addItem("" + i);
for(int i = 1; i<=12; i++)
mm.addItem("" + i);
for(int i = 1960; i<=2014; i++)
yy.addItem("" + i);
con.setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
int i = 120;
doblbl.setBounds(30,i+=40,270,30);
int j = 120;
dd.setBounds(350,j+=40,50,30);
mm.setBounds(420,j,50,30);
yy.setBounds(480,j,70,30);
con.add(doblbl);
con.add(dd);
con.add(mm);
con.add(yy);
setSize(1500,800);
setVisible(true);
con.setBackground(new Color(125,80,140));
}
public static void main(String s[])
{
Pro1 p1 = new Pro1();
}
}
【问题讨论】:
-
使用
SimpleDateFormat创建Date对象,并确保首先使用simpleDateFormat.setLenient(false)。 -
我建议使用 datepicker 组件之一,例如在这个问题中建议:stackoverflow.com/questions/9368450/…
-
@Yura 那是一个更好的答案:D
标签: java swing validation date