Невозможно изменить цвет текста JMenu в macOS в приложении SwingJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно изменить цвет текста JMenu в macOS в приложении Swing

Сообщение Anonymous »

Я разрабатываю приложение Java Swing для macOS, используя JMenuBar и JMenu. Я пытаюсь изменить цвет текста пункта меню на красный с помощью метода setForeground(Color.RED), но он не работает. Текст меню всегда отображается в цвете по умолчанию, даже после применения изменений.
Я подозреваю, что это может быть связано с встроенной интеграцией Look and Feel в macOS, которая переопределяет некоторые настройки. Вот код, который я использую:

Код: Выделить всё

package university.management.system;

import java.awt.*;
import javax.swing.*;

public class Project extends JFrame {

Project() {
setSize(1440, 900);

ImageIcon i1 = new ImageIcon(ClassLoader.getSystemResource("icons/third.jpg"));
Image i2 = i1.getImage().getScaledInstance(2250, 1500, Image.SCALE_DEFAULT);
ImageIcon i3 = new ImageIcon(i2);
JLabel image = new JLabel(i3);
add(image);

JMenuBar mb = new JMenuBar();

JMenu newInfo = new JMenu("New Information");
newInfo.setForeground(Color.RED); // Trying to set text color to red
mb.add(newInfo);

setJMenuBar(mb);
setVisible(true);
}

public static void main(String[] args) {
// Disable macOS native menu bar integration
System.setProperty("apple.laf.useScreenMenuBar", "false");

new Project();
}
}

Использован setForeground(Color.RED) для объекта JMenu.
Отключена интеграция встроенной строки меню macOS с System.setProperty("apple.laf.useScreenMenuBar", "false") ;
Поэкспериментировал со свойствами UIManager:

Код: Выделить всё

UIManager.put("Menu.foreground", Color.RED);
UIManager.put("Menu.selectionBackground", Color.LIGHT_GRAY);
Попробовал использовать собственный внешний вид (

Код: Выделить всё

CrossPlatformLookAndFeel
).
Несмотря на эти попытки, цвет текста меню в macOS остается неизменным. Тот же код работает, как и ожидалось, в Windows.
Почему метод setForeground не работает в macOS?
Как я могу применить пользовательские цвета текста меню в приложениях macOS Swing?
Есть ли обходной путь или альтернативный подход для достижения этой цели?

Подробнее здесь: https://stackoverflow.com/questions/792 ... pplication
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
    Anonymous » » в форуме JAVA
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Я пытался изменить внешний вид jmenu и всей панели инструментов в Java Swing
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»