我正在使用 JPanel 的自定义子类来让我更好地控制某些图像的显示。它的代码如下。
但是,在 Netbeans 中,在设计模式下,我希望能够看到我正在使用的图像,而不是简单地查看对象的轮廓。
有一个图像属性,但我目前可以设置图像的唯一方法是将自定义代码注入(inject)图像属性。 但是,我不确定我需要包含哪些代码才能查看图像,或者是否有更简单的方法。
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
最佳答案
改变:
public void setImage(String img) {
收件人:
public void setImageName( String img ) {
重新构建,并在设计器中设置 ImageName 属性。在原始代码中,设计者认为bean 属性Image 是java.awt.Image 类型,而不是String。它不知道如何在设计时为您的 bean 指定 java.awt.Image。但是它可以轻松地将字符串传递给您的 bean,您只需要给它一个明确的字符串 bean 属性 (ImageName)。
关于Java Netbeans 在设计模式下简单显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1968411/