Я хочу установить цвет фона 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).Но вы можете увидеть результаты account_btn т.е. "Бухгалтерский учет".setOpaque, похоже, не имеет никаких эффектов.
Любая идея.
РЕШЕНИЕ:
Установка 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) { ..... }
}
Я вызываю initLookandFeel () после initComponents ()а также обновить мою главную панель.Также необходимо обновить динамически добавляемую панель на начальном этапе, после чего больше не нужно ничего настраивать.