2012-09-10 59 views
0

我有一個有兩層的JLayeredPane。頂層是完全透明的,並充當捕獲鼠標事件的玻璃窗格,然後將它們分派到其下面的窗格。由於未知原因,底層無法正確繪製。我是否必須派發繪畫事件或其他東西?順便說一句,我會使用框架的玻璃窗格,但我無法得到它。我堅持使用由Swing頂部構建的GUI框架提供的JPanel。我嘗試使用SwingUtilities來獲取父框架,但它總是返回null。帶透明層的JLayeredPane導致不正確的繪圖

+3

,原因未知和未知代碼,我只能提供一個未知的答案... –

回答

0

我同意Guillaune的一個非常模糊的問題。所以你可能有一個非常好的理由按照你的方式去做。但是,如果它可以幫助你,也許可以與透明層共處置和乾脆直接附上您的鼠標監聽到的JLayeredPane:

JPanel jP = new JPanel(); 
JLayeredPane jLP = new JLayeredPane(); 
MouseAdapter mouse = new MouseAdapter(); 
jLP.addMouseListener(mouse); 

然後一個MouseAdapter類:

public class MouseAdapter{ 
    //Make sure you override the methods 
} 

的另一種方式,和一個我用很經常,是簡單地延長的JLayeredPane和實施的MouseListener:

public class MyLayers extends JLayeredPane implements MouseListener 
{ 
    public MyLayers(){ 
    addMouseListener(this); 
    } 
//again make sure you override the methods 
} 

這將引發在NetBeans「在構造函數中泄漏這個」,但其ignor能夠。

相關問題