swing Java透明JScrollPane
我有一个JTextArea,它位于JScrollPane的顶部。无论如何,我知道我可以使用getViewPort()
方法设置视口的不透明属性,但我似乎找不到任何迹象表明如何在任何地方这样做
以下是我到目前为止的情况:
if (e.getKeyCode() == KeyEvent.VK_F)
{
if (sp.isVisible())
{
sp.setVisible(false);
}
else
{
sp.setVisible(true);
}
}
# 1 楼答案
您与@Serplat的讨论表明您可能混淆了不透明度和透明度
Opacity是用于优化图形的Swing组件的布尔属性:
true
:组件同意绘制其矩形边界内包含的所有位李>false
:组件不保证在其矩形边界内绘制所有位李>Transparency是一种合成数字图像的方法,如图example所示
考虑这一区别可能有助于澄清您的问题或集中搜索更多信息
附录:基于@camickr的example,下面的示例显示了一个蓝色正方形,它“粘”在视口上,而灰色棋盘可以在其上滚动
# 2 楼答案
JScrollpane透明背景的代码强>
# 3 楼答案
您需要使用
setOpaque(false)
使其透明。在JScrollPane和它的视口中调用它如果您希望JTextArea也是透明的,那么还必须在JTextArea上调用
setOpaque(false)