有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中使用BorderLayout按比例调整用户界面大小

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

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

enter image description here

enter image description here

enter image description here


共 (1) 个答案

  1. # 1 楼答案

    scale proportionally upon resizing rather than just the center resizing up and down.

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

    请参见How to Use GridBagLayout上的Swing教程