我尝试在图像上制作半透明JTextArea
,但是当文字写在上面时,有时我会在最后一个字母后面出现恼人的矩形,如果我用鼠标点击文字,这个矩形会出现。
我试图以这种方式提高透明度:
textArea.setBackground(new Color(0, 0, 0, 200));
我也试过setOpaque(false)
,这不是我想要的,但矩形不会出现。
这里是工件的例子:
答案 0 :(得分:3)
Swing只知道如何绘制完全不透明或完全透明的组件,当Swing遇到半透明颜色的组件时,它不知道它需要在其下面绘制组件,你必须作弊。
首先将颜色设置为完全不透明的值(Color.BLACK
)。创建一个从JTextArea
延伸的新类,将其不透明属性设置为false
,覆盖它的paintComponent
方法,使用AlphaComposite
填充JTextArea
后台,使用Graphics#fillRect
,然后致电super.paintComponent
,确保首先重置AlphaComposite
例如JTextArea not selectable, but still showing a "ghost" cursor