Здравствуйте. Есть одно окно java GUI-FORM (файлы .java и .form). У этого окна есть rootpanel, на который добавлены необходимые SWING-элементы. Мне нужно сделать, чтобы при нажатии на кнопку rootpanel'а поверх него появлялось темное полупрозрачное окно (другой overpanel) с необходимыми элементами, которые будут заданы позже. Пробовал использовать LayoutManager overlay = new OverlayLayout(JPanel rootpanel); и JLayeredPane, но для них, как понял, нужно эти 2 разноуровневых JPanel вложить в rootpanel, а он у меня уже занят SWING-элементами. Вопрос: можно ли как-то просто поместить над rootpanel overpanel без использования третьего JPanel в качестве контейнера. Надеюсь, понятно выразился. Если можно, пожалуйста, проиллюстрируйте ответ простейшим примером с кодом.
Не уверен, но можете попробовать переопределить paintComponent
у той панели, которая должна быть прозрачной (для неё лучше, конечно, создать свой отдельный класс)
//Полупрозрачная панель
JPanel otherPanel = new JPanel( new BorderLayout() ) {
@Override
public void paintComponent( Graphics g ) {
super.paintComponent( g );
Graphics2D g2d = (Graphics2D) g.create();
//0.5f = 50% прозрачность
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
g2d.setColor(getBackground());
g2d.fillRect( 0, 0, getWidth(), getHeight() );
g2d.dispose();
}
};
Пример взял отсюда: Прозрачность jPanel и jLabel
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нажимаю на commit выдает ошибку
Как можно передать значение String в DoubleUnaryOperator ? Писать парсер не так просто, а использовать сторонние библиотеки и прочее я не могуНапример,...
Андроид приложение содержит несколько модулей, среде них есть Android module и корневой Java moduleКак в последнем получить доступ к Android SDK?
Уверен, что "подтормаживание" не зависит от "железа", значит, можно как-то разрешить программе использовать больше ресурсовЧем больше линий,...