2012-02-21 29 views
-1

我正在嘗試將圖像添加到我的小應用程序。我搜索了這個,但我沒有找到一個我理解的體面的例子。有沒有人知道我在哪裏可以找到一個很好的添加圖像和小程序的例子?我正在尋找一個將圖像添加到小應用程序的好例子

我得到這個在線,但是當我運行小程序它不顯示我的形象。

public class Lab5 extends JApplet { 
     //Lab5(){} 


     Image img; 

     public void init() { 
       img = getImage(getDocumentBase(), "img\flag0.gif");     
     } 


     public void paintComponent(Graphics g) { 
      g.drawImage(img, 50, 50, this); 
     } 
} 

下面是我的HTML文件

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    </head> 
    <body> 
    <applet code="Lab5.class" width= 250 height = 50></applet> 
    </body> 
</html> 
+1

我確信你已經看到很多很多的例子。我不確定我們如何能夠指出你的「更好」的例子,或給你有用的建議,除非你告訴我們你已經研究過哪些網站,以及關於你不瞭解的當前例子的具體內容,或者什麼代碼不是爲您工作以及您可能會看到哪些錯誤。如果有希望得到一個體面的答案,請考慮在這個問題上付出更多的努力。 – 2012-02-21 00:46:12

+1

首先,您需要閱讀關於如何創建小程序的教程。考慮將圖像放入ImageIcon中並將其放入JLabel中。然後,您可以給JLabel一個體面的佈局管理器,如BorderLayout,使其變得不透明,並使其成爲applet的contentPane。或者,您可以在JPanel的「paintComponent()」方法中繪製圖像,並將其作爲applet的contentPane。 – 2012-02-21 00:49:26

+0

好的,我會再看一遍。我複製了幾乎verbatum出我的課本 – Robert 2012-02-21 00:50:28

回答

5

這裏有一個簡單的例子,顯示了從互聯網URL的圖像。你可能會使用在互聯網網址的地方,資源等應用程序的jar的目錄中保持的圖像:

類SimpleAppletImage.java

import java.awt.image.BufferedImage; 
import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import javax.imageio.ImageIO; 
import javax.swing.*; 

@SuppressWarnings("serial") 
public class SimpleAppletImage extends JApplet { 
    @Override 
    public void init() { 
     try { 
     SwingUtilities.invokeAndWait(new Runnable() { 
      public void run() { 
       try { 
        // you might want to use a file in place of a URL here 
        URL url = new URL("http://duke.kenai.com/gun/Gun.jpg"); 
        BufferedImage img = ImageIO.read(url); 
        MyPanel myPanel = new MyPanel(img); 
        getContentPane().add(myPanel); 
       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
     } catch (Exception e) { 
     e.printStackTrace(); 
     } 
    } 
} 

類MyPanel.java

import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.image.BufferedImage; 

import javax.swing.JPanel; 

@SuppressWarnings("serial") 
class MyPanel extends JPanel { 
    private BufferedImage img; 

    public MyPanel(BufferedImage img) { 
     this.img = img; 
     setPreferredSize(new Dimension(img.getWidth(), img.getHeight())); 
    } 

    @Override 
    protected void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     if (img != null) { 
     g.drawImage(img, 0, 0, this); // corrected 
     } 
    } 
} 
+0

我們還沒有得到異常處理,但我會花幾分鐘來弄清楚這段代碼。 – Robert 2012-02-21 01:34:52

+0

@AndrewThompson:點好好的,謝謝! – 2012-02-21 12:45:28

+0

@Andrew - Hi標準先生 - 湯普森:第二次編輯完成。 – 2012-02-21 13:32:28

相關問題