在Java中使用BorderLayout进行比例调整

时间:2014-07-22 18:54:55

标签: java user-interface border-layout

我正在尝试创建一个GUI,其中有三个主要面板用于基于文本的游戏:最左侧的统计/库存面板,中间面板将用于显示故事的文本窗格和文本字段键入您的命令,最右侧的窗格包含任务和任务信息。我将主内容窗格设置为具有BorderLayout并将JPanel添加到西部,中间和东部位置(尚未向面板添加任何组件)。中心面板占据了大部分空间,因此我将东西面板的preferredSize宽度设置为200,这与JFrame(800x500)的大小成比例。然而,当最大化窗口时,东西面板保持在200而不是按比例放大,使得它与中心面板相比看起来很小。当将窗口的宽度调整为小于800时,东西面板保持200而中心面板变小,直到东西面板重叠的点。我想知道是否可以使用BorderLayout的西,中,东位置在调整大小时按比例缩放,而不是仅仅调整中心的大小调整。 非常感谢你的时间!

编辑: 以下是一些显示GUI的快照。这是说我没有足够的声誉在我的帖子中包含图像,所以我只能包含它们的超链接。 第一张图像显示800x500的帧,默认大小(中心面板左侧和右侧的空白区域为空JPanels)。第二张图像显示GUI最大化(左侧和右侧面板保持在200)。

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

  

在调整大小时按比例缩放,而不仅仅是中心调整大小。

我建议您使用GridBagLayout,您可以在其中设置组件的宽度和高度,以百分比定义GridBagConstraints的不同约束

请参阅How to Use GridBagLayout

上的 Swing Tutorial