我想设置JButton的背景颜色。为此,我使用了 setBackground()方法。Swing:设置JButton的背景
这种方法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(真)也。但是你可以看到account_btn的结果,即“Accounting”。 setOpaque似乎没有效果。
任何想法。
SOLUTION:
设定为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()(),并更新我的mainPanel。还需要在初始阶段更新我的动态添加的面板,然后不需要再设置任何东西。
什么PLAF?你的[SSCCE](http://sscce.org/)在哪里? –
我不确定编辑您的问题是否是为了解决我的意见。如果是这样,你似乎错过了我的观点。 –