Управление внешним видом JButtons на Mac - PullRequest
3 голосов
/ 22 ноября 2011

Для моего назначения мне нужен 2-мерный массив JButtons в сетке JPanel в JFrame. Кнопки J должны менять цвет при нажатии. Я не могу заставить их держать любой цвет.

Я реализовал решения, предложенные в предыдущем потоке , и обнаружил, что обходной путь создает только цвет границы:

JButton button = new JButton("test");
button.setBackground(Color.RED);
button.setOpaque(true);

неокрашивание границы:

button.setBorderPainted(false);

просто заставляет весь JFrame быть красным.

Эта проблема касается только компьютеров MAC, а не предполагаемой проблемы назначения.

Есть мысли?

1 Ответ

5 голосов
/ 22 ноября 2011

Помните: инструментарий Swing довольно хорош для того, чтобы система выглядела «почти правильно». Однако если вам действительно нужно чувствовать себя в системе, есть и другие варианты, такие как SWT, которые немного лучше подходят.

Если вам нужна согласованность, то Swing всегда может по умолчанию использовать внешний вид апплета старой школы, который, хотя и немного скучный, довольно надежный. Глядя на инструментарий графического интерфейса, причудливые причудливые особенности платформы исчезают.

Я думаю, что вы могли бы решить свою проблему довольно легко , если бы вы просто настроили внешний вид и стиль стандартного стиля свинга.

Решение

Я бы предложил позвонить на

    UIManager.setLookAndFeel(
        UIManager.getCrossPlatformLookAndFeelClassName());

В блоке статического кода, где вы инициализируете свое приложение.

...