2012-02-23 3 views
0

私がやっていることは、既にバッファリングされたイメージをJFrameに描画することです。バッファリングされたイメージをアプレットに描画する

JFrame p1=new JFrame(); 
p1.getContentPane(); 
p1.setSize(new Dimension(h,w)); 
p1.setVisible(true); 
p1.update(bufferedImage.getGraphics()); 

これまでのコードです。 bufferedImageはバッファリングされたイメージですが、このコードはJFrameを開き、イメージをペイントしません。私は以前はグラフィックスを扱ったことがありません。おかげ

答えて

1

この作業コードを参照してください:

public static void main(String[] args) throws Exception { 
    BufferedImage buf=null; 
    try { 
     buf = ImageIO.read(new File("estbest.jpg")); 
    } catch (Exception e) { 
     System.out.println(e.getMessage()); 
    } 
    new ImageFrame(buf, "Input Image "); 
} 

をImageFrameクラス:

public class ImageFrame extends JFrame { 
    BufferedImage image; 

    public ImageFrame(final BufferedImage image) { 
     this(image, "No Title"); 
    } 

    public ImageFrame(final BufferedImage image, final String title) { 
     this.image = image; 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       if (image != null) { 
        setSize(image.getWidth(null), image.getHeight(null)); 
       } else { 
        setSize(250, 90); 
       } 
       setTitle(title); 
       setVisible(true); 
       repaint(); 
      } 
     }); 
    } 

    public void paint(Graphics g) { 
     if (image == null) { 
      g.setColor(Color.BLACK); 
      g.fillRect(0, 0, 250, 90); 
      System.out.println("image null"); 
      g.setFont(new Font("Arial", Font.BOLD, 24)); 
      g.setColor(Color.RED); 
      g.drawString("Invalid or No Image", 10, 50); 
     } else { 
      g.drawImage(image, 0, 0, null); 
     } 
    } 
} 

出典:Java: Loading images in JFrame - Reusable ImageFrame

関連する問題