当前位置: 首页 > 知识库问答 >
问题:

如何设置JTextPane的默认背景颜色

叶翰林
2023-03-14

我已经搜索了整个网络,并尝试了几种方法,试图为JTextPane设置默认背景色,但它仍然显示默认的白色。

我试图模拟控制台输出,我需要整个背景为黑色,即使没有文本。

看起来像set特征属性()setPF raphAtinites()只处理任何插入的文本,但背景的其余部分仍然是默认的白色。

我看到了一些关于设置背景颜色的错误。

我怎么能做到呢?

它是纯文本,不是任何HTML。

谢谢

更新:

我终于找到了一些有效的方法。

使用setBackground(Color.BLACK)只会在任何插入的文本下设置背景,但在我的Windows计算机上,JTextPane的其余背景仍然是默认的白色。

我开始考虑改变UIDefault,做到了!这是我用的:

UIDefaults defs = UIManager.getDefaults();
defs.put("TextPane.background", new ColorUIResource(Color.BLACK));
defs.put("TextPane.inactiveBackground", new ColorUIResource(Color.BLACK));

当它启动时,没有文本,整个JTextPane现在按照我想要的方式是黑色的,任何插入的文本都是我需要的方式。

我尝试的其他方法都将JTextPane的其余部分保留为白色,我尝试了许多不同的“解决方案”。

谢谢你的回复。

共有2个答案

饶明亮
2023-03-14

不使用系统默认值,也可以按特定项目执行。以下是我使用的代码,主要基于你的笔记:

        Color bgColor = Color.BLACK;
        UIDefaults defaults = new UIDefaults();
        defaults.put("TextPane.background", new ColorUIResource(bgColor));
        defaults.put("TextPane[Enabled].backgroundPainter", bgColor);
        out.putClientProperty("Nimbus.Overrides", defaults);
        out.putClientProperty("Nimbus.Overrides.InheritDefaults", true);
        out.setBackground(bgColor);

宗政洋
2023-03-14

试试这个。它演示如何在JTextPane上设置背景色。

import java.awt.Component;
import java.awt.Container;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

/**
 * http://stackoverflow.com/questions/19435181/how-to-set-default-background-color-for-jtextpane
 */
public class Q19435181 {
  public static void main(String... args) {
    SwingUtilities.invokeLater(new Runnable() {
      @Override
      public void run() {
        JFrame frame = new JFrame("Example setting background color on JTextPane");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        Container pane = frame.getContentPane();
        pane.add(blackJTextPane());
        frame.setSize(800, 600);
        frame.setVisible(true);
      }

      private Component blackJTextPane() {
        JTextPane pane = new JTextPane();
        pane.setBackground(Color.BLACK);
        pane.setForeground(Color.WHITE);
        pane.setText("Here is example text");
        return pane;
      }
    });
  }
}
 类似资料:
  • 我正在制作一个基于文本的游戏,用户输入文本来解决游戏。我决定使用JavaSwing来显示文本,我希望文本窗格的背景为黑色。我已经尝试了所有我发现的东西(注释掉了),但是没有一个看起来有效。 这里没有显示导入的图片,但是当我使用任何被注释掉的部分运行游戏时,游戏中没有错误。

  • 通过RGB值设置背景的颜色。 默认的颜色是 0x000000: // 颜色的参数可以是字符串 "#530000" 或者是十六进制数值 0x530000 controller.setBackgroundColor("#530000); //controller.setBackgroundColor(0x530000);

  • 因此,我尝试使用getContentPane().setBackground(color.white)并尝试将table和scrollpane设置为白色。 这是唯一一个我不能改变颜色的框架,它是在另一个类中创建的- 通过这样做,我得到了另一个面板来成功地改变颜色

  • 问题内容: 当我尝试使用以下命令在Vim 中或直接在Vim中更改背景色时: …完全不影响我的背景。该选项也没有。但是,当我运行gvim时看起来还可以。 有没有一种方法可以在Vim中更改背景而不更改我的Konsole设置? 编辑 好的,guifg / guibg和ctermfg / ctermbg之间是有区别的。虽然GUI接受许多不同的颜色组合,但是cterm仅允许很少的标准颜色组合。 问题答案:

  • 本文向大家介绍如何在HTML中设置背景颜色?,包括了如何在HTML中设置背景颜色?的使用技巧和注意事项,需要的朋友参考一下 要在HTML中设置背景颜色,请使用style属性。style属性指定元素的内联样式。该属性与HTML <body>标记以及CSS属性background-color一起使用。HTML5不支持<body>标记的bgcolor属性,因此CSS样式用于添加背景色。HTML5中不推荐

  • 问题内容: 我有一个我想将背景颜色更改为白色的。使用“金属外观”时,我可以通过以下方式实现所需的效果setBackground: 具有白色背景的金属外观风格的JButton 不幸的是,使用Windows LAF时,“背景色”的概念有所不同。背景颜色是按钮周围绘制的颜色: Windows外观风格的JButton,带有白色背景 我想使用Windows LAF,但允许将此按钮的颜色JButton更改为白