我正在构建一个GUI应用程序,在JFrame中我有2个jcombobox和一个JPanel来查看某些数据。现在,当我在主类中调用pack()方法时,它将两个jcombobox'放在我的JPanel旁边,我不想要,因为我想要它们是North。当然,我试图在我的代码中对其进行硬编码,但在我调用pack()方法之后它不起作用。 这种方法还有其他选择吗?
答案 0 :(得分:2)
只有一个组件可以是NORTH,因此如果您希望两个ComboBox都是NORTH,则必须将它们添加到单独的容器中。然后可以将这个单独的容器放在NORTH。
(发布消息来源以获得更精确的帮助。)
答案 1 :(得分:0)
所有pack
会将Window
(在本例中为JFrame
)的大小调整为其首选大小及其子组件的首选大小。要控制子组件相对于彼此的实际位置,您需要使用适当的LayoutManager
。
您可能需要查看Using Layout Managers教程。
答案 2 :(得分:0)
pack()
方法只会导致布局发生,它绝对与放在哪里无关。
您很可能没有正确使用布局管理器。向我们展示您的代码,我们可以告诉您确切的错误。
答案 3 :(得分:0)
您可以通过使用setSize和setBounds显式设置帧大小来避免使用pack。但是,使用pack通常是首选方式,因为它让帧布局管理器负责帧大小。
话虽如此,您所描述的问题似乎与布局管理器的正确使用有关,而不是框架的大小调整。看看Swing的各种布局管理器以及如何使用它们:http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/layout/using.html。