-2

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

这是我的代码片段

    JCalendar dob=new JCalendar();

    raillabel. add(dob);

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

2 回答 2

5

首先,你为什么要添加JCalendar到一个JLabel?您可以轻松地将其添加到JPanel

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

如果您仍想将其添加JCalendar到 aJLabel那么您需要为最后一个提供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 在他的评论中所说,您不应该使用NullLayoutandsetBounds()方法来设置组件位置/大小。这是任务布局管理器的用途。

最后:

我想使用JCalendar.

您可能想尝试一下JDateChooser,它允许选择日期或手动输入:

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

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

图片

在此处输入图像描述

于 2013-12-22T19:12:46.103 回答
0

使用 swing,只需将 jDateChooser 控件放在您的表单上就可以了

于 2017-04-26T01:57:53.987 回答