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

RAJ*_* KV -2 java swing jcalendar

我正在开发一个Java桌面应用程序.我想用JCalendar实现出生日期选择.我有一个JLabel,这个jCalendar被添加到JLabel.并使用setBounds()设置位置.但日历与其他组件重叠,我无法选择日期,所以我该怎么办?在此输入图像描述

这是我的代码片段

    JCalendar dob=new JCalendar();

    raillabel. add(dob);

    dob.setBounds(250, 186, 320, 330);
Run Code Online (Sandbox Code Playgroud)

dic*_*c19 5

首先,为什么你想添加JCalendarJLabel?您可以轻松地将其添加到JPanel:

JPanel panel = new JPanel();
panel.add(new JCalendar());
Run Code Online (Sandbox Code Playgroud)

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

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

看一下布局管理器的可视指南.

正如@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);
Run Code Online (Sandbox Code Playgroud)

图片

在此输入图像描述