Java Swing:设置JButton';背景
我想设置JButton的背景色。为此,我使用 setBackground()方法 此方法jsut设置按钮的边框颜色,而不是指定颜色的整个按钮。为什么会这样?这是设置按钮背景色的唯一方法。我在哪里犯了一个错误,因为它只设置了指定颜色的按钮的边框,而不是实际的按钮 代码: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
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的障碍,但我妻子说这是因为我昨晚吃的豆子。