使用Java中的JCalendar选择出生日期

时间:2013-12-22 15:28:28

标签: java swing jcalendar

我正在开发一个java桌面应用程序。我想用JCalendar实现出生日期选择。我有一个JLabel,这个jCalendar被添加到JLabel。并使用setBounds()设置位置。但是日历与其他组件重叠,我无法选择日期 那我该怎么办?enter image description here

这是我的代码段

    JCalendar dob=new JCalendar();

    raillabel. add(dob);

    dob.setBounds(250, 186, 320, 330);

2 个答案:

答案 0 :(得分:5)

首先,您为什么要尝试将JCalendar添加到JLabel?您可以轻松将其添加到JPanel

JPanel panel = new JPanel();
panel.add(new JCalendar());

如果您仍想将此JCalendar添加到JLabel,那么您需要为最后一个提供LayoutManager,以便向其中正确添加组件:

JCalendar calendar = new JCalendar();        
JLabel label = new JLabel("Select date of birth:");
label.setLayout(new BorderLayout());
label.add(calendar, BorderLayout.EAST);

看看A Visual Guide to Layout Managers

正如@mKorbel在评论中所说,您不应该使用NullLayoutsetBounds()方法来设置组件的位置/大小。这是管理员用于的任务布局。

最后:

  

我想使用JCalendar来实现出生日期。

您可能需要尝试使用JDateChooser,这样可以选择日期或手动输入日期:

JDateChooser chooser = new JDateChooser();
chooser.setLocale(Locale.US);

JPanel panel = new JPanel();
panel.add(new JLabel("Date of Birth:"));
panel.add(chooser);

图片

enter image description here

答案 1 :(得分:0)

使用swing,只需将jDateChooser控件放在表单上即可。