gpt4 book ai didi

java - JTextArea 的前景色没有改变

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:38 24 4
gpt4 key购买 nike

我试图将这个半透明的JTextArea的前景字体颜色更改为黑色,但它仍然是蓝灰色的。我做错了什么?

    // [8]*HELP TEXTAREA
JTextArea help_text = new JTextArea () {
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
Insets insets = getInsets();
int x = insets.left;
int y = insets.top;
int width = getWidth() - (insets.left + insets.right);
int height = getHeight() - (insets.top + insets.bottom);
g2d.setColor(new Color(255, 0, 0, 70));
g2d.fillRect(x, y, width, height);
super.paintComponent(g);
}
};
help_text.setFont(new Font(Font.MONOSPACED,Font.BOLD, 70));
help_text.setForeground(Color.black);
help_text.setOpaque(false);
help_text.setLineWrap(true);
help_text.setWrapStyleWord(true);
help_text.setEditable(false);
help_text.setEnabled(false);
help_text.setHighlighter(null);
help_text.setText("Some help text . ..");
// [8]*HELP PANE
JScrollPane help_pane = new JScrollPane(help_text);
help_pane.setOpaque(false);
help_pane.getViewport().setOpaque(false);

最佳答案

更改:

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
Insets insets = getInsets();
int x = insets.left;
int y = insets.top;
int width = getWidth() - (insets.left + insets.right);
int height = getHeight() - (insets.top + insets.bottom);
g2d.setColor(new Color(255, 0, 0, 70));
g2d.fillRect(x, y, width, height);
super.paintComponent(g);
}

进入:

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);

Graphics2D g2d = (Graphics2D) g.create();

Insets insets = getInsets();
int x = insets.left;
int y = insets.top;
int width = getWidth() - (insets.left + insets.right);
int height = getHeight() - (insets.top + insets.bottom);
g2d.setColor(new Color(255, 0, 0, 70));
g2d.fillRect(x, y, width, height);

g2d.dispose();
}

我相信这应该可以解决您的问题,因为从您的代码看来,它有两个潜在的问题:

  • 您将通过调用 super.paintComponent(g) 作为最后一行代码来取消正在进行的所有绘制
  • 您正在更改收到的 Graphics 对象的状态,该对象由整个组件层次结构使用,以及应保留哪个状态

关于java - JTextArea 的前景色没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23508816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com