2014-05-15 17 views
-1

我正在研究java來實現一個包含圖像作爲背景的窗口。在java中使用圖像作爲背景

這裏是我做了

import java.awt.*; 
import javax.swing.*; 
public class FenImage extends JFrame { 

private JLabel question ; 
private JButton valider ; 
private JPanel pan ; 


public FenImage() 
{ 
    this.setTitle("Image"); 
    this.setBounds(200, 500,600,450); 
    this.setLayout(new BorderLayout()); 
    JLabel question = new JLabel(" \t \t L'image qu'on peux utiliser pour présenter ce mot est : "); 
    //this.add(question); 
    this.getContentPane().add(question,BorderLayout.NORTH); 
    JPanel pan = new JPanel() 
    { 
     protected void paintComponent(Graphics g) 
     { 
      super.paintComponent(g); 

      ImageIcon m = new ImageIcon("1.jpg"); 
      Image monImage = m.getImage(); 
      g.drawImage(monImage, 0, 0,this); 

     } 
    }; 
    this.getContentPane().add(pan); 

的代碼,但是當我跑我得到我只加了標籤。

有什麼問題?我如何才能增加它正確

+0

一種方法的[添加背景圖像](http://stackoverflow.com/a/23459402/300257)到Swing GUI。 –

回答

1

標籤添加到面板,而不是框架

JLabel question = new JLabel(" \t \t L'image qu'on peux utiliser pour présenter ce mot est : "); 
JPanel pan = new JPanel() 
{ 
     protected void paintComponent(Graphics g) 
     { 
      super.paintComponent(g); 

      ImageIcon m = new ImageIcon("1.jpg"); 
      Image monImage = m.getImage(); 
      g.drawImage(monImage, 0, 0,this); 

     } 
}; 
pane.setLayout(new BorderLayout()); 
pane.add(question, BorderLayout.NORTH); 
this.getContentPane().add(pan); 

應該避免油漆方法中加載資源,因爲這可以增加你的內存使用量的緩慢你的畫

更新

ImageIcon(String)假定字符串值是參考文件系統上的文件。存儲在您的src目錄中的內容將被構建到您的jar中,從而將其轉換爲嵌入式資源。

爲了加載這些資源,你需要使用Class#getResource,例如

ImageIcon m = new ImageIcon(getClass().getResource("/1.jpg")); 

這是假定資源是在默認目錄(頂級目錄)下你的src目錄

+0

我添加它,但圖像仍然不變 –

+0

圖像存儲在哪裏? – MadProgrammer

+0

它們存儲在.src文件夾中 –