gpt4 book ai didi

java - 使用 3 个面板创建 JSplitPane

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:42 24 4
gpt4 key购买 nike

我想创建一个窗口,其中包含 3 个 jPanel,由 splitPane-s 分隔。左侧和右侧应由用户调整大小,中间的应填充剩余空间。

我已经创建了它,但是如果我移动第一个 splitPane,那么第二个也会移动。而且我不确定我是否使用了我想要的最佳方法。

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;

public class MyWindow extends JFrame {

public MyWindow() {
this.setLayout(new BorderLayout());

JPanel leftPanel = new JPanel();
JPanel centerPanel = new JPanel();
JPanel centerPanel2 = new JPanel();
JPanel rightPanel = new JPanel();

JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, centerPanel);
JSplitPane sp2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centerPanel2, rightPanel);

centerPanel.setLayout(new BorderLayout());
this.add(sp, BorderLayout.CENTER);
centerPanel.add(sp2, BorderLayout.CENTER);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setSize(500, 500);
this.setVisible(true);
}

}

最佳答案

我觉得您所做的事情很奇怪,即将 centerPanel 添加到拆分 Pane ,然后将拆分 Pane 添加到 centerPane。不确定,但我认为后者否定了前者。

您需要做的就是将第一个拆分 Pane 添加到第二个拆分 Pane 。

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.SwingUtilities;

public class MyWindow extends JFrame {

public MyWindow() {
this.setLayout(new BorderLayout());

JPanel leftPanel = new JPanel();
leftPanel.setBackground(Color.BLUE);
JPanel centerPanel = new JPanel();
centerPanel.setBackground(Color.CYAN);
JPanel rightPanel = new JPanel();
rightPanel.setBackground(Color.GREEN);

JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, centerPanel);
JSplitPane sp2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, sp, rightPanel);

this.add(sp2, BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setSize(500, 500);
this.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
new MyWindow();
}
});
}
}

关于java - 使用 3 个面板创建 JSplitPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593672/

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