我正在开发一个java桌面应用程序。我想用JCalendar实现出生日期选择。我有一个JLabel,这个jCalendar被添加到JLabel。并使用setBounds()设置位置。但是日历与其他组件重叠,我无法选择日期 那我该怎么办?
这是我的代码段
JCalendar dob=new JCalendar();
raillabel. add(dob);
dob.setBounds(250, 186, 320, 330);
答案 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在评论中所说,您不应该使用NullLayout
和setBounds()
方法来设置组件的位置/大小。这是管理员用于的任务布局。
最后:
我想使用
JCalendar
来实现出生日期。
您可能需要尝试使用JDateChooser
,这样可以选择日期或手动输入日期:
JDateChooser chooser = new JDateChooser();
chooser.setLocale(Locale.US);
JPanel panel = new JPanel();
panel.add(new JLabel("Date of Birth:"));
panel.add(chooser);
答案 1 :(得分:0)
使用swing,只需将jDateChooser控件放在表单上即可。