如何在JFrame上指定组件(特定于JLabel)的位置?我创建了一个JFrame对象,并在框架中添加了一个JLabel和一个JList,但是两个对象都被放置在彼此之上。我一直在使用jframe组件布局
label.setBounds(10,10,10,10);
list.setBounds(20,20,100,100);
和
label.setLocation(10,10);
list.setLocation(10, 50);
的这些工作都没有尝试过。任何帮助表示赞赏!谢谢。
如何在JFrame上指定组件(特定于JLabel)的位置?我创建了一个JFrame对象,并在框架中添加了一个JLabel和一个JList,但是两个对象都被放置在彼此之上。我一直在使用jframe组件布局
label.setBounds(10,10,10,10);
list.setBounds(20,20,100,100);
和
label.setLocation(10,10);
list.setLocation(10, 50);
的这些工作都没有尝试过。任何帮助表示赞赏!谢谢。
在Java中,布局管理器使用其确定的组件将被放置的方式。您可以找到有关布局管理器这里的更多信息:http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html
如果一定要使用的坐标把你的组件,你可以尝试:
JFrame frame = new JFrame();
frame.setLayout(null);
否则,对于Java的一个非常不错的图形用户界面编辑器是NetBeans的哪个默认情况下使用GroupLayout。
将布局管理器设置为空是在布置组件时使用绝对定位的首选方式。然而IMO,NetBeans的GUI编辑器是一个真正的痛苦,我发现它不容易使用它。 – ChadNC 2010-01-11 18:05:59
NetBeans UI编辑器非常出色,现在是免费提供的最佳选择之一。了解不同LayoutManagers的工作方式可能很困难,但最终它将非常值得。 – willcodejavaforfood 2010-01-12 08:21:15
Layout Managers将为您做到这一点。
使用默认布局BorderLayout
,尝试
setLayout(new BorderLayout());
getContentPane().add(yourLabel, BorderLayout.NORTH);
getContentPane().add(yourList, BorderLayout.CENTER);
你能提供你创建'JFrame','JLabel'和'JList'的代码吗? – 2010-01-11 17:23:27