Я хочу получить JButton с белым фоном в Windows 10 для приложения Java Swing.
Я пробовал следующее. Я включил функциональный базовый пример с двумя фреймами, у обоих есть панель и кнопка, первый не включает никаких настроек. Кнопки и панели имеют светло-синий / серый цвет (фактический воспринимаемый цвет зависит от экрана). Для второго кадра я пытаюсь явно нарисовать белые панели и кнопки.
package com.example.test2;
import java.awt.Color;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class Test2 {
public Test2() {
// Frame 1, standard background
JFrame frame1 = new JFrame();
JPanel panel1 = new JPanel();
JButton button1 = new JButton("Button 1");
// Frame 2, white background
JFrame frame2 = new JFrame();
JPanel panel2 = new JPanel();
JButton button2 = new JButton("Button 2");
panel2.setBackground(Color.WHITE);
button2.setBackground(Color.WHITE);
// Add Components for Frame1 and show it
frame1.add(panel1);
panel1.add(button1);
frame1.setSize(300, 200);
frame1.setVisible(true);
// Add Components for Frame2 and show it
frame2.add(panel2);
panel2.add(button2);
frame2.setSize(300, 200);
frame2.setLocation(250,150);
frame2.setVisible(true);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
} catch (ClassNotFoundException ex) {
Logger.getLogger(Test2.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(Test2.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(Test2.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(Test2.class.getName()).log(Level.SEVERE, null, ex);
}
Test2 t = new Test2();
}
}
Это результат для обоих кадров:
Как сделать, чтобы у button2 был белый фон?
Примечание. Я пробовал это решение ( Изменение цвета фона JButton всегда отображается серым ), и оно не работает при использовании Windows 10 и настройке L & F UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
.