首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Nimbus外观和感觉RSyntaxTextArea背景颜色

Java Nimbus外观和感觉RSyntaxTextArea背景颜色
EN

Stack Overflow用户
提问于 2018-01-05 07:35:30
回答 1查看 586关注 0票数 1

我使用的是最终从JTextArea扩展而来的RSyntaxTextArea。当我将外观更改为Nimbus时,文本区域不会像图形用户界面的其余部分那样受到影响,这看起来不太好。

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

代码语言:javascript
复制
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中的紫色设置为背景色而不是白色?

Here是我找到的一个UIManager密钥列表,但它们中有没有对这种情况有帮助的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-06 23:26:41

Here描述了如何使用专门针对RSyntaxTextArea的主题。使用提供的dark.xml可以很好地工作:

代码语言:javascript
复制
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();
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48105130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档