Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从属性改变jDesktopPane的颜色_Java_Swing_Colors_Jdesktoppane - Fatal编程技术网

Java 如何从属性改变jDesktopPane的颜色

Java 如何从属性改变jDesktopPane的颜色,java,swing,colors,jdesktoppane,Java,Swing,Colors,Jdesktoppane,我正在创建一个需要使用多个内部框架并通过桌面窗格将其互连的项目 我尝试过更改桌面窗格的颜色(来自属性->背景),但运行时仍然是默认的蓝色 检查附加的快照链接,也许你会更好地理解我的问题,我想要什么 框架蓝色: 属性集颜色: 看来您正在使用Nimbus L&F?JDesktopPane和其他组件的背景色由L&F处理。您可以覆盖背景,如下所示: desktop = new JDesktopPane() { @Override public void updateU

我正在创建一个需要使用多个内部框架并通过桌面窗格将其互连的项目

我尝试过更改桌面窗格的颜色(来自属性->背景),但运行时仍然是默认的蓝色

检查附加的快照链接,也许你会更好地理解我的问题,我想要什么

框架蓝色:

属性集颜色:


看来您正在使用Nimbus L&F?JDesktopPane和其他组件的背景色由L&F处理。您可以覆盖背景,如下所示:

desktop = new JDesktopPane() {

        @Override
        public void updateUI() {
            if ("Nimbus".equals(UIManager.getLookAndFeel().getName())) {
                UIDefaults map = new UIDefaults();
                Painter<JComponent> painter = new Painter<JComponent>() {

                    @Override
                    public void paint(Graphics2D g, JComponent c, int w,
                            int h) {
                        g.setColor(Color.white); //background color
                        g.fillRect(0, 0, w, h);
                    }
                };
                map.put("DesktopPane[Enabled].backgroundPainter", painter);
                putClientProperty("Nimbus.Overrides", map);
            }
            super.updateUI();
        }
};
desktop=newjdesktoppane(){
@凌驾
公共void updateUI(){
if(“Nimbus”.equals(UIManager.getLookAndFeel().getName())){
UIDefaults映射=新的UIDefaults();
油漆工=新油漆工(){
@凌驾
公共空隙涂料(图形2D g、J组件c、int w、,
int(h){
g、 setColor(Color.white);//背景色
g、 fillRect(0,0,w,h);
}
};
map.put(“DesktopPane[Enabled].backgroundPainter”,painter);
putClientProperty(“Nimbus.Overrides”,map);
}
super.updateUI();
}
};

我不太清楚您想要更改桌面窗格的哪个部分的颜色
我尝试过更改桌面窗格的颜色
-在哪里?您的代码应该是这样的:
JDesktopPane desktop=newjdesktop();桌面。背景(颜色为红色)首先让它工作,然后如果您想让它更具动态性,请使用JColorChooser。如果你有问题,那就反驳你的问题,因为我们猜不到你在做什么。不要使用IDE更改颜色。学习如何编写自己的代码来设置组件的属性,以便学习Swing,而不是IDE。@Donatic我对java有点陌生,所以我尽量不使用代码。我想改变的部分是你在图中看到的浅蓝色。我想将它设置为我在面板中使用的紫色。@camirk我对java有点陌生。。所以我只知道基本的密码。我需要在28号之前提交,所以我尽量不使用太多的代码。“我试过改变桌面窗格的颜色”-我的意思是我试过上面显示的属性。还有,我该怎么向你展示我选择的颜色?我不知道什么是灵光或L&F。我正在使用JavaNetBeans8.2。你能告诉我如何在没有任何编码的情况下改变背景颜色吗?(就像它的属性一样。)