我正在尝试制作一个GUI,在其中我使用了一个SplitPane,内容在左边,主要内容在右边。我意识到当SplitPane调整大小时,右面板中的内容会相应地移动以适应新的大小,这不是我要寻找的行为,我希望在调整大小时右侧的主要内容保持原样。因此,我使用layeredPane将主要内容添加到一个拆分窗格后面,该窗格左侧有内容,右侧有一个透明面板来显示其后面的主要内容。
下面是我的代码片段
JPanel phantomPanel = new JPanel();
phantomPanel.setOpaque(false);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, phantomPanel);
JLayeredPane layeredPane = new JLayeredPane();
rightPanel.setBounds(0,0,900,600);
splitPane.setBounds(0,0,900,600);
layeredPane.add(rightPanel,0,0); //Main Content is behind the split pane
layeredPane.add(splitPane, 1,0);
我看到了左面板的splitPane,但右面板是白色的,切换layeredPane上的层,我确实看到了我的(非白色)主面板。
改变了右边面板的背景颜色,我意识到白色确实是透明面板,问题是它后面的面板没有显示。我错过了什么?
The split Pane with the non transparent right panelWhat should show behind it
1条答案
按热度按时间eagi6jfj1#
感谢@VGR,因为我正在制作一个最小的可重复示例,我找到了解决方案,透明面板和SplitPane都需要是透明的,以便后面的面板显示
现在,理论上,当调整SplitPane的大小时,右侧面板(红色)不应该四处移动,因为这会影响左侧面板和透明面板