2013-11-24 65 views
0

我使用NetBeans IDE創建使用java的應用程序。我想包含一個JButtonJLabel和圖像。實際上,當我在JLabel上添加JButton時,它會插入,但它會透明,名稱和按鈕不顯示。它似乎是在JLabel下添加的按鈕。我怎樣才能克服這個問題?如何將JButton放置在帶圖像的JLabel上?

+1

那麼,你真的想在這裏完成什麼?在Swing中,分層組件並不那麼容易。有關更多信息,請參閱[如何使用分層窗格](http://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html)。 – mre

+2

**第一**,告訴我們你已經嘗試了什麼**第二**製作描述你的需求的圖像,上傳到一些圖像託管網站,並將它鏈接到你的問題。 – Sage

+0

如果你想保持簡單,我使用JLayeredPane :) –

回答

4

有兩種方式

通過覆蓋 paintComponent(標準方式)

  • JLabel

    1. 放圖像JPanel還沒有API的任何LayoutManager,你必須設置LayoutManager,然後JLabel會貨櫃

  • +0

    +1的建議。我認爲OP面臨的問題是缺少'JLabel'的佈局管理器。 – dic19

    0
    ImageIcon img = null; 
    class Panel extends JPanel{ 
        @Override 
        protected void paintComponent(Graphics g) { 
         super.paintComponent(g); 
         if (img == null){ 
          img = new ImageIcon("d:\\picture.jpg"); 
          g.drawImage(img.getImage(), 0, 0, null); 
         }    
        } 
    } 
    
    //in the constructor 
    JButton button = new JButton("OK"); 
    Panel panel = new Panel(); 
    panel.add(button); 
    add(panel);