Изменение прозрачности/прозрачности jButton/alpha

66
4

У меня есть пользовательский класс в Java, который расширяет JButton и имеет фоновый рисунок. Я могу установить alpha с этой функцией в классе:

@Override
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D) g.create();
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) 0.5));
super.paint(g2);
g2.dispose();
}

Как настроить getter и setter для этой функции, чтобы я мог управлять непрозрачностью из класса, который создает кнопку? Мне нужно что-то вроде этого:

MyJButton myJbtn = new MyJButton();
myJbtn.setOpacity(0.5);

спросил(а) 2013-08-04T14:45:00+04:00 6 лет, 11 месяцев назад
1
Решение
77

Создайте opacity поля экземпляра в классе кнопок, затем создайте сеттер и геттеры:

private float opacity;
//......
public setOpacity(float opacity) {
this.opacity = opacity;
}

public void getOpacity(){
return this.opacity
}

Затем пересканирование класса после установки непрозрачности кнопки:

MyJButton myJbtn = new MyJButton();
myJbtn.setOpacity(0.5);
myJbtn.repaint();

ответил(а) 2013-08-04T14:51:00+04:00 6 лет, 11 месяцев назад
78

Метод setOpacity может быть реализован следующим образом:

public void setOpacity(float opacity) {
this.opacity = opacity;
repaint();
}

opacity - поле экземпляра, в котором сохраняется текущая непрозрачность. Он используется paint для значения непрозрачности.

Вам также может понадобиться метод getOpacity, который строго не требуется.

ответил(а) 2013-08-04T14:52:00+04:00 6 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема