Java Netbeans在设计模式下简单显示图像

时间:2009-12-28 07:37:09

标签: java user-interface image netbeans

我正在使用JPanel的自定义子类来为我提供对某些图像显示的更多控制。它的代码如下。

然而,在Netbeans中,在设计模式下,我希望能够看到我正在使用的图像,而不是简单地查看对象的轮廓。

有一个图像属性,但我目前设置图像的唯一方法是将自定义代码注入图像属性。 但是,我不确定我需要包含哪些代码才能查看图像,或者是否有更简单的方法。

import javax.swing.*;
import java.awt.*;

public class ImagePanel extends JPanel {

  private Image img;

  public void setImage(String img) {
    this.img = new ImageIcon(img).getImage();//setImage(new ImageIcon(img).getImage());
  }

  public void setImage(Image img) {
    int width = this.getWidth();
    int height = (int) (((double) img.getHeight(null) / img.getWidth(null)) * width);
    this.img = img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
  }

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

alt text http://img691.imageshack.us/img691/2128/tempscreen.png

3 个答案:

答案 0 :(得分:1)

变化:

public void setImage(String img) {

要:

public void setImageName( String img ) {

重建,并在设计器中设置ImageName属性。在原始代码中,设计者认为bean属性Image的类型是java.awt.Image,而不是String。它不知道如何在设计时为bean指定java.awt.Image。但是它可以很容易地将Strings传递给你的bean,你只需要给它一个明确的String bean属性(ImageName)。

答案 1 :(得分:0)

new ImageIcon("/path/to/your/image.jpg").getImage();

答案 2 :(得分:0)

另一种方法是使用工具包,但当然你正在做一个应用程序,而不是applet,对吗?

URL url = new URL(this.getCodeBase(), "/path/to/image/here.gif");
temp = ImageIO.read(url);

我也遇到了ImageIcon的问题。