Swing JButton не меняет цвет фона на клик - PullRequest
4 голосов
/ 06 июля 2010

Я хочу, чтобы кнопка при нажатии никогда не меняла цвет фона, по умолчанию цвет меняется на светло-голубой, серый.

Так вот мой код

JButton b = new JButton();
b.setBackground(SystemColor.control);

Мне нужна кнопка, когда при нажатии она никогда не изменит цвет фона.

Ответы [ 2 ]

2 голосов
/ 06 июля 2010

Картина кнопки зависит от LAF.Вы можете выполнить одно из следующих действий:

  1. Определить свой собственный делегат пользовательского интерфейса и назначить его кнопке. Недостатки : сложный, ломает LAF.
  2. Расширьте JButton и внедрите paintComponent(). Недостатки : Вам нужно будет самостоятельно нарисовать метку кнопки.
  3. Удалить фоновый рисунок кнопки, вызвав setContentAreaFilled(false), а затем добавить кнопку на непрозрачной панели с нужным цветом фона. Преимущества : кнопка не изменена, LAF не сломан. Недостатки : вам нужно создать панель для каждой кнопки и настроить ее так, чтобы она точно подходила кнопке, что может быть довольно сложно, в зависимости от макета.
1 голос
/ 06 июля 2010

Вы можете изменить цвета, используемые для фона и переднего плана.То, как вы это сделаете, зависит от того, какой внешний вид вы используете.

Если вы используете Nimbus, список цветов здесь и здесь статья о том, как вы меняете цвета.И здесь - еще одна статья, которая может быть полезна.

...