2015-08-16 7 views
1

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

Примечание: Я собираюсь скрыть все компоненты и добавить JPanel сверху, который быстро теряет прозрачность, но это не кажется правильным (и я хотел бы видеть компоненты за белой вспышкой как он переходит от непрозрачного к прозрачному).

+0

добавить новый 'jpanel' поверх компонентов и изменить его цвет от непрозрачного белого до прозрачного. – Blip

+1

Цвет стекла JFrame и сделать его видимым. Использование таймера Swing изменяет его непрозрачность. –

+0

как бы добавить его поверх всех компонентов? – platelminto

ответ

0

Вы можете использовать затухающее изображение для достижения того же. AlphaComposite используется для эффекта замирания.

Graphics2D g2d = (Graphics2D) g; 

g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); 

См. Fade Out Image для доступа к образцу кода.

1

Возможно, вы можете использовать класс JLayer. Взгляните на раздел из учебника Swing по телефону How to Decorate Components with the JLayer Class.

В учебнике есть примеры, которые:

  1. краски прозрачные слои
  2. сделать анимацию

Положите примеры вместе, и вы должны иметь решение.

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