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

爪哇光环外观

申屠秦斩
2023-03-14

我使用的是RSyntaxTextArea,它最终扩展自JTextArea。当我将look and feel更改为Nimbus时,文本区域不会像GUI的其他部分那样受到影响,这看起来不太好。

这是我使用的Nimbus主题代码:

import javax.swing.*;
import java.awt.*;

import static javax.swing.SwingUtilities.updateComponentTreeUI;
import static javax.swing.UIManager.*;

public class SwingLookAndFeel
{
    static void setDarkNimbusLookAndFeel(JFrame frame) throws Exception
    {
        put("control", new Color(128, 128, 128));
        put("info", new Color(128, 128, 128));
        put("nimbusBase", new Color(18, 30, 49));
        put("nimbusAlertYellow", new Color(248, 187, 0));
        put("nimbusDisabledText", new Color(128, 128, 128));
        put("nimbusFocus", new Color(115, 164, 209));
        put("nimbusGreen", new Color(176, 179, 50));
        put("nimbusInfoBlue", new Color(66, 139, 221));
        put("nimbusLightBackground", new Color(18, 30, 49));
        put("nimbusOrange", new Color(191, 98, 4));
        put("nimbusRed", new Color(169, 46, 34));
        put("nimbusSelectedText", new Color(255, 255, 255));
        put("nimbusSelectionBackground", new Color(104, 93, 156));
        put("text", new Color(230, 230, 230));

        for (LookAndFeelInfo[] info : getInstalledLookAndFeels())
        {
            if ("Nimbus".equals(info.getName()))
            {
                setLookAndFeel(info.getClassName());
                break;
            }
        }

        refreshFrame(frame);
    }

    private static void refreshFrame(JFrame frame)
    {
        if (frame != null)
        {
            updateComponentTreeUI(frame);
            // frame.pack();
        }
    }
}

我想知道需要哪个UIManager键来修改文本区域的背景色,例如,将左侧JTree中的紫色设置为背景色,而不是白色?

下面是我找到的UIManager键的列表,但在这种情况下,它们中有没有哪一个有用?

共有1个答案

李成礼
2023-03-14

下面介绍了如何专门为RSyntaxTextArea使用主题。使用提供的暗色。xml很好用:

private void changeStyleViaThemeXml() {
  try {
     Theme theme = Theme.load(getClass().getResourceAsStream(
           "/org/fife/ui/rsyntaxtextarea/themes/dark.xml"));
     theme.apply(textArea);
  } catch (IOException ioe) { // Never happens
     ioe.printStackTrace();
  }
}
 类似资料:
  • 问题内容: 我有这个Java代码段。我是Java的菜鸟。 错误: 码: 问题答案: 是的,这是问题所在: 在课程的最高级别,您只能拥有: 实例初始化程序块() 静态初始值设定块() 变量声明 构造函数声明 方法声明 嵌套类型声明 终结器声明 这些都不是。如果你 的意思 来声明一个变量,你应该这样做: 如果这 不是 您想要的,则应解释您的意图。 编辑:修复此问题后,此编译器错误似乎很明显: Conf

  • 我已经红色了多篇文章和讨论,但我仍然有一些不确定性:我不确定是否应该使用或任何其他类型来存储预订-在“在线预订”的意义上(因此来自不同国家/时区的参与者需要在时间线上的同一时刻会面)。我倾向于使用,因为DB和Backend设置为UTC,并且由于传入的“创建预订”json消息包含ISO 8601(带偏移量)start DateTime 让我们采用以下设置:1.数据库(UTC、Oracle、MSSQL

  • 我的问题是关于cucumber特性文件的并行执行。在Selenium Java中,可以通过一个runner类并行运行多个cucumber特性文件吗? 我尝试过不同的方法,但都没有成功。

  • 当我运行程序而不是找到骑士之旅时,我收到了一个StackOverflow错误。任何想法是什么导致了这一点,以及我如何改变我的代码,实际上找到骑士之旅,并摆脱这个错误。项目是为我的CS280课程,并在周五到期,请帮助。谢谢!!

  • 一个能够让程序猿快速开发的炒鸡脚手架,核心技术Spring、JPA、Shiro。 基础环境 JDK1.8、Maven、Mysql、Redis、IntelliJ IDEA、minio、fastdfs 相关组件 - ok-admin - vue - iView - echarts - clipboard - cropperjs - lightbox - nprogress - webuploader

  • 嗨,我正在编写一个井字游戏。我已经在代码中的注释中详细说明了我需要什么。我现在遇到的问题是制作一个getMobile方法。我想我需要在按下行和列后的if/else语句中调用getMobile方法? 我不确定如何从获取行/列编号并将其放入我的板上以获取用户输入的内容。 以下是我的代码: