我正在用Java编写GUI程序。
我有一个叫做jpanel1
的JPanel
,我在它上面插入了一个JSplitpane
(jSplitPane1
)。我设置了jSplitPane1
的左右分量;jpanel2
,jpanel3
。我在向下面板(jpanel1
)上设置了一个背景图像,我想要JSplitPane
,它的右组件和左组件是透明的,这样我就可以看到它们的背景图像。这在Java中可能吗?如果这是可能的,我可以使用该方法透明JTree
作为JSplitpane
吗?
您只需调用:setOpaque(boolean)
。
这取决于L&F。MacOS上的AquaL&F将尊重setOpaque(false),但例如Nimbus似乎并不关心它。要强制使用透明分隔符,您需要在JSplitPane
的UI定义中重写它。 jSplitPane.setUI(new BasicSplitPaneUI(){
@Override
public BasicSplitPaneDivider createDefaultDivider() {
return new BasicSplitPaneDivider(this){
@Override
public void paint(Graphics g) {
}
};
}
});
一个潜在的缺点是,这种方法覆盖了该组件的L&F,因此可能会移除其他的L&F主题元素。