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



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

整个施胶过程保持50/50的比例。我使用GridLayout。这种行为是植根于LayoutManager还是必须设置的属性?

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

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

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

祝你好运,Boro

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

相关内容

  • 没有找到相关文章

最新更新