2010-07-06 6 views
3

Я хочу, чтобы кнопка на клике никогда не меняла цвет фона, по умолчанию цвет будет меняться до голубого серого цвета.Swing JButton не меняет цвет фона onclick

Так что это мой код

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

Я хочу кнопку, когда на кнопку она никогда не изменит цвет фона.

+2

Без кода никто не сможет вам помочь. – Ham

ответ

2

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

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

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

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

Смежные вопросы