java - 更改 JTextArea 的背景颜色时的工件

标签 java swing transparency background-color jtextarea

我在设置文本后设置 JTextArea 的背景颜色时遇到问题。代码如下:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class Test extends JFrame {

    private JTextArea area;

    public Test() {
        this.setLayout(new BorderLayout());
        this.add(this.area = new JTextArea(), BorderLayout.CENTER);
        this.add(new JButton(clickAction), BorderLayout.SOUTH);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setPreferredSize(new Dimension(500, 200));
        this.pack();
        this.area.setText("this is just a test");
        this.setVisible(true);
    }

    Action clickAction = new AbstractAction("Click") {
        @Override
        public void actionPerformed(ActionEvent e) {
            area.setBackground(new Color(0, 0, 123, 138));
            // repaint();
        }
    };

    public static void main(String[] args) {
        new Test();
    }
}

如果我单击该按钮,JTextArea 的背景会发生变化,但我还会在文本区域中得到一些瑕疵。 “重绘”似乎修复了它,但在我的应用示例中,它没有帮助,所以我想知道是否有更好的解决方案。

example image

最佳答案

我认为你只是漏掉了一段文字

Action clickAction = new AbstractAction("Click") {
    @Override
    public void actionPerformed(ActionEvent e) {
        area.setBackground(new Color(0, 0, 123, 138));
        area.repaint();
    }
};

关于java - 更改 JTextArea 的背景颜色时的工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7719941/

相关文章:

java - 通过执行器和可运行访问时,Tomcat 上下文为空

java - 如何使按钮展开Java

java - 将一个字符追加到 JTextArea

css - 如何使图标内的背景透明但周围的框不透明?

java - 为什么这不能编译?无法为匿名类的 String 成员分配新值

java - 如何在java中替换json文件的值

java - JCheckBox 未出现

delphi - Delphi 7 笔记本电脑上的 Timage 透明胶片

windows - 使用 Qt 显示半透明/不规则形状的窗口

java - JPanel:实现我自己的 PaintComponent() 和渲染子项都不起作用