【问题标题】:Artifacts with semitransparent JTextArea具有半透明 JTextArea 的工件
【发布时间】:2014-10-11 08:45:59
【问题描述】:

我尝试在图像上使JTextArea 半透明,但是当在其上写入文本时,有时我会在最后一个字母后面出现烦人的矩形,如果我用鼠标单击文本就会出现这个矩形。

我正在尝试以这种方式使透明度:

textArea.setBackground(new Color(0, 0, 0, 200));

我也试过setOpaque(false),不是我想要的而是矩形没有出现。

这里是工件的例子:

【问题讨论】:

    标签: java swing transparency jtextarea


    【解决方案1】:

    Swing 只知道如何绘制完全不透明或完全透明的组件,当 Swing 遇到具有半透明颜色的组件时,它不知道它需要绘制它下面的组件,你必须作弊。

    首先将颜色设置为完全不透明的值 (Color.BLACK)。创建一个从JTextArea 扩展的新类,将其不透明属性设置为false,覆盖它的paintComponent 方法,使用AlphaComposite,填充JTextArea 的背景,使用Graphics#fillRect,然后调用@ 987654329@,确保先重置AlphaComposite

    例如JTextArea not selectable, but still showing a "ghost" cursor

    【讨论】:

    • 我想过,但希望 Swing 可以自己做。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多