2011-04-17 72 views
0

我想通过JDialog看到GlassPane,但我没有看到它。为什么会发生?如何通过JDialog看到GlassPaneGlassPane在JDialog上不可见

下面是我在做什么:

public class New_Window extends JDialog { 

    public New_Window(int Screen_Index, int Start_Panel, int Length) { 
     super(new Frame(Monitors.getInstance().getNextDevice() 
       .getDefaultConfiguration()), Title, false); 
     setLayout(new BorderLayout()); 
     setGlassPane(glassPane); 
     getGlassPane().setVisible(true); 
     getContentPane().setBackground(Color.black); 
     JPanel Container = new JPanel(new FlowLayout(FlowLayout.CENTER, 2, 2)); 
     Container.setOpaque(false); 
     getContentPane().add(Container, BorderLayout.CENTER); 
     [...] 
    } 

} 

注:我使用的Java版本6更新24.我使用一个自定义GlassPane其设置为falseopaque值。

+0

java哪个版本? – mdma 2011-04-17 09:45:29

+1

请给我们更完整的代码。玻璃窗格将其不透明值设置为false。如果您使用的是默认的问题。但我很明显地猜测。 – Boro 2011-04-17 09:49:06

+0

即时通讯使用版本6更新24和Im使用自定义glassPane并将其不透明值设置为false – ama 2011-04-17 09:52:38

回答

1

阅读Swing教程中有关Using a Glass Pane的部分以获得工作示例。从示例代码开始,删除不需要的代码。

+0

在我的项目中,我可以成功使用GlassPane,但我的程序分布在多个显示器上,主显示器有JFrame,我可以看到GlassPane,但其他显示器包含JDialog,我看不到在GlassPane上面,我认为问题可能出在Graphics对象的paintComponent函数上,你怎么看? – ama 2011-04-18 06:41:28