Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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 Swing:设置JButton';背景_Java_Swing_Background Color_Jbutton - Fatal编程技术网

Java Swing:设置JButton';背景

Java Swing:设置JButton';背景,java,swing,background-color,jbutton,Java,Swing,Background Color,Jbutton,我想设置JButton的背景色。为此,我使用 setBackground()方法 此方法jsut设置按钮的边框颜色,而不是指定颜色的整个按钮。为什么会这样?这是设置按钮背景色的唯一方法。我在哪里犯了一个错误,因为它只设置了指定颜色的按钮的边框,而不是实际的按钮 代码: account_btn.setAction(actionMap.get("AccountingClicked")); // NOI18N account_btn.setBackground(Utility.getB

我想设置JButton的背景色。为此,我使用 setBackground()方法

此方法jsut设置按钮的边框颜色,而不是指定颜色的整个按钮。为什么会这样?这是设置按钮背景色的唯一方法。我在哪里犯了一个错误,因为它只设置了指定颜色的按钮的边框,而不是实际的按钮

代码:

    account_btn.setAction(actionMap.get("AccountingClicked")); // NOI18N
    account_btn.setBackground(Utility.getBackgroundColor());
    account_btn.setFont(Utility.getButtonFont());
    account_btn.setForeground(Utility.getTextColor());
    org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(cashaccountingapp.CashAccountingApp.class).getContext().getResourceMap(MainPanel.class);
    account_btn.setText(resourceMap.getString("account_btn.text")); // NOI18N
    account_btn.setBorderPainted(false);
    account_btn.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    account_btn.setName("account_btn"); // NOI18N
    account_btn.setOpaque(true);
    add(account_btn);
结果:

也尝试过设置setOpaque(true)。但你可以看到会计的结果,即“会计”。Set不透明似乎没有效果

任何想法

解决方案:

设置L&F

    private void initLookandFeel() {
    try {
        System.out.println("DEFAULT Look & Feel = " + UIManager.getLookAndFeelDefaults().toString());
        UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
        javax.swing.SwingUtilities.updateComponentTreeUI(this.mainPanel);
        System.out.println("Look & Feel = " + UIManager.getLookAndFeel().toString());
    } catch(Exception e) { ..... }
    }

我在initComponents()之后调用initLookandFeel(),并更新我的主面板。还需要在初始阶段更新我动态添加的面板,然后无需再进行任何设置。

尝试将绘制的边框设置为false和不透明true

account_btn.setBorderPainted(false);
account_btn.setOpaque(true);

尝试将绘制的边框设置为false和不透明true

account_btn.setBorderPainted(false);
account_btn.setOpaque(true);


这是我的SSCCE。按钮是红色的。这个格子是金属的

这让我想到:你的SSCCE在哪里?您使用的是什么PLAF?


这是我的SSCCE。按钮是红色的。这个格子是金属的


这让我想到:你的SSCCE在哪里?您使用的是什么PLAF?

我相信
Jbutton
背景由您使用的特定外观和感觉控制。要更改背景,您可能需要修改

setUI(ComponentUI newUI)

使用您自己的。

我相信
Jbutton
背景由您使用的特定外观和感觉控制。要更改背景,您可能需要修改

setUI(ComponentUI newUI)

用你自己的。

什么PLAF?你的问题在哪里?我不确定对你问题的编辑是否是为了回应我的评论。如果是这样的话,你似乎没有领会我的意思。什么PLAF?你的问题在哪里?我不确定对你问题的编辑是否是为了回应我的评论。如果是这样的话,你似乎没有领会我的意思。安德鲁,我使用NetBeans,没有设置任何PLAF。在文件中搜索,但找不到任何此类文件。我是否缺少要搜索的位置。“我是否缺少要搜索的位置。”我怎么知道,我不使用Netbeans。IDE中发布的代码的确切行为是什么?@Tvd:在NetBeans中,只需查看它生成的GUI代码。在源代码视图中,搜索LookAndFeel,您可能会找到所有需要的信息,以便Andrew更好地帮助您。1+感谢安德鲁(总是)提出了有益的建议,并祝贺他打破了20K的障碍。@HovercraftFullOfEels“祝贺你打破了20K的障碍。”我觉得我应该扫一下翅膀之类的东西确切地我发现,无论我在房子里走到哪里,都会发生轰隆声,房间也会有点摇晃。我想这是因为我打破了20K的门槛,但我妻子说这是因为我昨晚吃的豆子。安德鲁,我用的是上网本,没有设置任何PLAF。在文件中搜索,但找不到任何此类文件。我是否缺少要搜索的位置。“我是否缺少要搜索的位置。”我怎么知道,我不使用Netbeans。IDE中发布的代码的确切行为是什么?@Tvd:在NetBeans中,只需查看它生成的GUI代码。在源代码视图中,搜索LookAndFeel,您可能会找到所有需要的信息,以便Andrew更好地帮助您。1+感谢安德鲁(总是)提出了有益的建议,并祝贺他打破了20K的障碍。@HovercraftFullOfEels“祝贺你打破了20K的障碍。”我觉得我应该扫一下翅膀之类的东西确切地我发现,无论我在房子里走到哪里,都会发生轰隆声,房间也会有点摇晃。我想这是因为我打破了20K的障碍,但我妻子说这是因为我昨晚吃的豆子。