仅调整Java Swing组件的一部分大小

仅调整Java Swing组件的一部分大小,java,swing,user-interface,Java,Swing,User Interface,在我的JavaSwing应用程序中,我有两个组件。左侧是导航(JList),右侧是JTable。我想保留增加窗口大小的可能性,而不增加两个组件的大小 在整个上浆过程中,保持50/50的比例。我使用网格布局。这种行为是源于LayoutManager还是必须设置的属性?建议:不要使用GridLayout。而是使用其他布局,如Borderlayout或GridBagLayout或布局组合。例如,如果使用BorderLayout,则可以将JTable BorderLayout.CENTER和JList放

在我的JavaSwing应用程序中,我有两个组件。左侧是导航(JList),右侧是JTable。我想保留增加窗口大小的可能性,而不增加两个组件的大小


在整个上浆过程中,保持50/50的比例。我使用网格布局。这种行为是源于LayoutManager还是必须设置的属性?

建议:不要使用GridLayout。而是使用其他布局,如Borderlayout或GridBagLayout或布局组合。例如,如果使用BorderLayout,则可以将JTable BorderLayout.CENTER和JList放在其他位置之一。或者,如果您使用GridBagLayout,则通过正确设置GridBagConstraint weightx和weighty值以及填充值(只有您知道当前需要什么),将允许选择性地放大添加到容器中的组件。

建议:不要使用GridBagLayout。而是使用其他布局,如Borderlayout或GridBagLayout或布局组合。例如,如果使用BorderLayout,则可以将JTable BorderLayout.CENTER和JList放在其他位置之一。或者,如果使用GridBagLayout,则通过正确设置GridBagConstraint weightx和weighty值以及填充值(只有您知道当前需要什么),将允许选择性地放大添加到容器中的组件。

据我所知,GridBagLayout管理器将所有单元格调整为相同大小。知道了这一点,您可能会使用它,只需将您希望保持不变的组件添加到面板中,然后将此面板添加到单元格中即可

或者使用不同的布局管理器。我最喜欢的是TableLayout,您可以在其中设置哪些列/行应填充空白空间,其他列/行将保持其首选大小


祝你好运,Boro

据我所知,GridLayout管理器将所有单元格调整为相同大小。知道了这一点,您可能会使用它,只需将您希望保持不变的组件添加到面板中,然后将此面板添加到单元格中即可

或者使用不同的布局管理器。我最喜欢的是TableLayout,您可以在其中设置哪些列/行应填充空白空间,其他列/行将保持其首选大小


祝你好运,Boro将允许你实现这一点。但是,您是否也考虑过使用
JSplitPane
,其中左侧包含导航面板,右侧包含表格?您可以通过调用
setResizeWeight(0.0)
对其进行配置,以便将所有附加空间分配给右侧。但是,如果需要,您仍然可以灵活地允许用户手动调整导航区域的大小。您还可以通过在拆分窗格上调用
setOneTouchExpandable(true)
来完全隐藏导航面板。

GridbagLayout
将允许您实现这一点。但是,您是否也考虑过使用
JSplitPane
,其中左侧包含导航面板,右侧包含表格?您可以通过调用
setResizeWeight(0.0)
对其进行配置,以便将所有附加空间分配给右侧。但是,如果需要,您仍然可以灵活地允许用户手动调整导航区域的大小。您还可以通过在拆分窗格上调用
setOneTouchExpandable(true)
完全隐藏导航面板