2011-10-10 121 views
2

我有一個JPanel(我使用netbeans創建的),我需要根據前一頁的選擇加載圖像。任何人都可以建議如何做到這一點。 JPanel也是做我想做的最好的方法,或者我可以做其他的事情?在JPanel中加載圖像

努力表示感謝!

+0

在每個stackoverflow頁面的右上角是一個文本框,其中灰色提示符表示:'** search **'。這意味着你可以點擊這個框並輸入一些單詞(如'image jpanel'')並按回車鍵。該網頁_magically_重新加載並顯示包含這些單詞的問題列表(和答案!)。我爲你照顧這件事,我很自豪地向你展示第二擊:http://stackoverflow.com/questions/1242581/display-a-jpg-image-on-a-jpanel ;-) – bobndrew

回答

3

Java中有多少種方式可以使用read/load圖像。看看this教程。

+0

嘿!感謝那......但我使用JPanel,並且我已經使用Netbeans中的拖放功能初始化了我的面板...我現在必須弄清楚如何使用Image加載...感謝您的努力+1 – koool

3

這是一個示例代碼,演示如何在JPanel中加載圖像; background.jpg是我們正在加載到JPanel的圖像。還請注意,該圖像應該在源代碼中可用。

import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.Image; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class ImageTest { 

    public static void main(String[] args) { 
     ImagePanel panel = new ImagePanel(
      new ImageIcon("background.jpg").getImage()); 

     JFrame frame = new JFrame(); 
     frame.getContentPane().add(panel); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 

class ImagePanel extends JPanel { 

    private Image img; 

    public ImagePanel(String img) { 
     this(new ImageIcon(img).getImage()); 
    } 

    public ImagePanel(Image img) { 
     this.img = img; 
     Dimension size = new Dimension(img.getWidth(null), img.getHeight(null)); 
     setPreferredSize(size); 
     setMinimumSize(size); 
     setMaximumSize(size); 
     setSize(size); 
     setLayout(null); 
    } 

    public void paintComponent(Graphics g) { 
     g.drawImage(img, 0, 0, null); 
    } 
} 
+0

+1謝謝!!!!!!! – koool