gpt4 book ai didi

java - 调整包含具有 JTable 的 JscrollPane 的 JPanel 的大小

转载 作者:行者123 更新时间:2023-12-01 12:40:06 24 4
gpt4 key购买 nike

enter image description here

我有一个 JPanel(名为 mainJP),其中有一些按钮和标签(使用 BorderLayout)。接下来,它添加另一个 JPanel(名为 JP1),并在其中添加一个带有 JTableScrollPane。我希望能够调整 JP2 及其所有子组件(ScrollPaneJTable)的大小。这样我就可以看到 JTable 的更多行,而无需滚动。另外,为了调整 JP1 的大小,JP1 的其他兄弟应该自行调整。不知道如何实现这一目标。

如图所示,我已经实现了一些功能 - 完全删除 JP1、展开/折叠 JP1 View 、删除和添加 JTable 中的行。

所以基本上我希望能够在 JP1 的底部边框上拖动鼠标来垂直增加 JP1 及其子组件(ScrollPaneJTable)的大小。

正如下面一些解决方案中所述,我仍然很困惑应该在哪个级别合并 JSpiltPane - 因为它只允许添加 2 个组件。我认为所有的 JP1 都应该在 JSplitPane 中。然而,可以有多个 JP1 组件,并且它们是动态添加的。

最佳答案

向 JSplitPane 添加额外的组件很容易。在您想要显示组件的每个 Pane 中放置一个 JPanel,然后将组件添加到此面板 - 您可以根据需要自定义布局。

类似这样的事情会将 JSplitPane 放入已创建的 JFrame 中,向每个 Pane 添加一个 JPanel,然后在左侧添加一些 JLabels,在右侧添加一个 JTextField。分割 Pane 将扩展到其所在 JFrame 的大小。

JSplitPane splitPane = new JSplitPane();
JPanel leftPanel = new JPanel();
JPanel rightPanel = new JPanel();
JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JTextField textField = new JTextField();
GridBagConstraints gBC = new GridBagConstraints();

getContentPane().setLayout(new GridBagLayout());
leftPanel.setLayout(new GridBagLayout());
rightPanel.setLayout(new GridBagLayout());

// I'm not going to bother doing any layout of the label or textfield here
leftPanel.add(label1, new GridBagConstraints());
leftPanel.add(label2, new GridBagConstraints());
rightPanel.add(textField, new GridBagConstraints());

splitPane.setLeftComponent(leftPanel);
splitPane.setRightComponent(rightPanel);

gBC.fill = GridBagConstraints.BOTH;
gBC.weightx = 1.0;
gBC.weighty = 1.0;
getContentPane().add(splitPane, gBC);

pack();

关于java - 调整包含具有 JTable 的 JscrollPane 的 JPanel 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25192135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com