Прозрачная стеклянная панель: проблема с перекрытием
Я хотел бы показать GlassPane
с неким эффектом размытия. В общих чертах, примерно так:
Я пытался использовать как GlassPane
JPanel
с прозрачным фоном. Вот код моей пользовательской панели.
JPanel glassPane = new JPanel(){
@Override
public void paint(java.awt.Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.setRenderingHint(java.awt.RenderingHints.KEY_ANTIALIASING,java.awt.RenderingHints.VALUE_ANTIALIAS_ON);
g2.setComposite(java.awt.AlphaComposite.SrcOver.derive(0.5f));
g2.setPaint(myColor);
g2.fillRect(0,0,this.getWidth(),this.getHeight());
g2.dispose();
};
}
Проблема в том, что когда я загружаю GlassPane
У меня есть своего рода пересекающаяся проблема. Т.е. кажется, что все элементы нижеследующего пользовательского интерфейса (те, что отображаются на панели под только что загруженной стеклянной панелью) случайно отображаются на GlassPane
, Это происходит не только в GlassPane
, но каждый раз, когда я пытаюсь использовать trnsparent цвета с Graphics2d
, Вот что я получаю:
Любая идея о том, как создать прозрачный GlassPane
избежать этой проблемы аннотирования?