Здравствуйте. Есть одно окно 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
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости