Настроить стиль JButton - PullRequest
       10

Настроить стиль JButton

0 голосов
/ 06 декабря 2010

Я работаю над проектом. Я хочу добавить панель инструментов к программному обеспечению, чтобы я поместил несколько кнопок на панели. Однако стиль кнопки по умолчанию не отвечает моим потребностям. Я хочу, чтобы кнопка имела следующие эффекты:

  1. Когда мышь не находится над кнопкой, кнопка должна выглядеть как JLabel. Значок на кнопке выглядит как изображение на панели, то есть все, что мы видим, это значок на кнопке, а все остальное прозрачно.
  2. Когда мышь наводит курсор на кнопку, появляется граница кнопки. Похоже на настоящую кнопку.

Пример: точно так же, как кнопки на панели инструментов затмения.

Ответы [ 4 ]

3 голосов
/ 06 декабря 2010

Почему бы не использовать JToolbar вместо JPanel?

1 голос
/ 07 декабря 2010

Я понял. Ответ на мой вопрос - метод setContentAreaFilled (). Когда курсор мыши находится над кнопкой, вызовите setContentAreaFilled (true). В противном случае вызовите setContentAreaFilled (false). Вот относительный код: текст ссылки

1 голос
/ 06 декабря 2010

Расширьте JButton и:

  • Просто добавьте значок вместо текста в кнопка.
  • Добавьте MouseMotionListener для захвата зависание, чтобы показать / скрыть границу.
1 голос
/ 06 декабря 2010

Итак, вы хотите настроить визуализацию JButton?

Во-первых, для комплексного решения вы можете взглянуть на существующий LnF, такой как Вещество (очевидно, это слишком мощное решение для ваших нужд, однако оно может дать вам вдохновение).

Тогда, если вы хотите решить это самостоятельно, вам придется переопределить метод paintComponent.

Для этого первым ходом является подкласс JButton.

Затем в своем подклассе начните с переопределения метода paintComponent(Graphics).

Обратите внимание, что если все, что вам слишком сложно, вы также можете взглянуть на метод setBorderPainted(boolean).

...