Ответ 1
Вы пытались установить JButton.setOpaque(true)?
JButton button = new JButton("test");
button.setBackground(Color.RED);
button.setOpaque(true);
Обычно с Java Swing вы можете установить цвет фона кнопки:
myJButton.setBackground(Color.RED);
что приведет к красной кнопке. Но на Mac OS этот метод, кажется, игнорируется. Кнопка просто сохраняет цвет по умолчанию.
Как можно установить цвет JButton на Mac OS?
Вы пытались установить JButton.setOpaque(true)?
JButton button = new JButton("test");
button.setBackground(Color.RED);
button.setOpaque(true);
Пробовали ли вы установить окрашенную границу false?
JButton button = new JButton();
button.setBackground(Color.red);
button.setOpaque(true);
button.setBorderPainted(false);
Он работает на моем mac:)
Если вам не требуется использовать внешний вид Apple, просто исправить это, чтобы добавить следующий код в приложение или апплет, прежде чем добавлять какие-либо компоненты графического интерфейса в JFrame или JApplet:
try {
UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName() );
} catch (Exception e) {
e.printStackTrace();
}
Это придаст внешний вид и внешний вид кросс-платформенного интерфейса, и затем метод setBackground() будет работать, чтобы изменить цвет фона JButton.
У меня тоже есть mac! вот код, который будет работать:
myButton.setBackground(Color.RED);
myButton.setOpaque(true); //Sets Button Opaque so it works
прежде чем что-либо делать или добавить какие-либо компоненты, установите внешний вид, чтобы он выглядел лучше:
try{
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}catch(Exception e){
e.printStackTrace();
}
Предположим, что вы изменили внешний вид и внешний вид кросс-платформы, надеюсь, что я помог!:)
В соответствии с вашими собственными целями вы можете сделать это на основе setOpaque (true/false) и setBorderPainted (true/false); попытайтесь объединить их в соответствии с вашими задачами