JSplitPanel 中 Jpanel 的大小

SIze of Jpanel inside JSplitPanel

我试图将 JsplitPane 添加到我的 project.Requirement 中,我需要在 JSplitPane 的右面板中添加两个 Jpanel

所以我所做的是首先将 Jpanel say it panel1 添加到右侧面板并设置 BoxLayout.Y-AXIS 然后在 panel1.[=19 中添加两个面板=]

现在两个面板的第一个面板有 BoxLayout,我希望这个面板的宽度为 panel1,但我做不到。

有人知道怎么做吗?

I was trying to add JsplitPane into my project.Requirement is i need to add two Jpanel inside right panel of JSplitPane.

当使用 JSplitPane 时,我们应该记住它只将窗格分成两个部分,比如 Left 和 RightTop 和 Bottom。因此,当我们再次想要在 JSplitPane 的一侧添加多个组件时,比如在我们的例子中 Right,最好使用 Nesting拆分窗格。这意味着在拆分窗格内创建拆分窗格。

so what i had done is first add Jpanel say it panel1 to right panel and set BoxLayout.Y-AXIS and than add two panel inside panel1.

now in that two panel first panel have BoxLayout and i want the width of this panel to be of size of panel1 but i am not able to do it.

如果您使用嵌套拆分窗格,您可能不必创建额外的父项JPanel,如您所说panel1。实际上,Split Pane 用于将 Pane 分成两部分。因此,通过使用 Nesting Split Panes,您正在创建另一个拆分窗格,而不是您创建的 panel1,然后将您的两个子面板放入由 new 创建的两个窗格中JSplitPane 这是嵌套的。所以,你也不必考虑尺寸问题。我希望我能让你清楚,它解决了你的问题。

实现该目标的简单方法是:

声明:

private JSplitPane jSplitPane1;
private JSplitPane jSplitPane2;
private JPanel jPanel1;
private JPanel jPanel2;

在构造函数中:

 jSplitPane1 = new JSplitPane();
 jSplitPane2 = new JSplitPane();

 jSplitPane1.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
 jSplitPane1.setRightComponent(jSplitPane2);
 jSplitPane2.setOrientation(JSplitPane.VERTICAL_SPLIT);

 jSplitPane1.setTopComponent(jPanel1);
 jSplitPane1.setBottomComponent(jPanel2);

上面描述的方法是最简单的实现你想要的。但是,如果不嵌套拆分窗格,则可以使用可能不太方便的多拆分窗格。不过你可以看看 Oracle 上的这篇旧文章:

https://community.oracle.com/docs/DOC-983539