2012-09-19 61 views
1

我有一個在屏幕上繪製一個矩形的一個問題。我在我的jpanel類中有paintComponent方法,我想在其中繪製一個矩形。它看起來像這樣:fillRect沒有顯示出來

public void paintComponent(Graphics g) { 

    super.paintComponent(g); 

    g.setColor(Color.yellow); 
    g.fillRect(0, 140, 100, 100); 

} 

的問題是,我有一對夫婦加一個,我在我畫圖板的子面板總是顯示在頂部和矩形繪製在他們之下。我怎樣才能做到這一點,以便在正面繪製矩形?

回答

4

如果得出的JPanel是容器,那麼有沒有辦法,它可以在「前」。你可以通過調用setOpaque(false)來讓子組件不透明,但容器仍然會在子組件後面。

如果你絕對要在另一個之上的一個組成部分,考慮使用的JLayeredPane或考慮在頂層窗口的玻璃面板繪製。

3

無意冒犯,但我覺得這是一個糟糕的主意......

public void paint(Graphics g) { 

    super.paint(g); 

    g.setColor(Color.yellow); 
    g.fillRect(0, 140, 100, 100); 

} 

由於氣墊船指出,更好的方法是使用一個GlassPaneHow to use RootPanes)或JLayeredPaneJLayer(AKA JXLayer如果你不使用Java 7)