Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Netbeans设计模式下的简单显示图像_Java_User Interface_Image_Netbeans - Fatal编程技术网

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

Java Netbeans设计模式下的简单显示图像,java,user-interface,image,netbeans,Java,User Interface,Image,Netbeans,我正在使用JPanel的一个自定义子类来提供对某些图像显示的更多控制。代码如下 然而,在Netbeans中,在设计模式下,我希望能够看到我正在使用的图像,而不是简单地查看对象的轮廓 有一个图像属性,但是我当前可以设置图像的唯一方法是将自定义代码注入到图像属性中。 但是,我不确定查看图像需要包含哪些代码,或者是否有更简单的方法 import javax.swing.*; import java.awt.*; public class ImagePanel extends JPanel {

我正在使用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);
  }
}

另一种方法是使用工具箱,但您当然是在做应用程序,而不是小程序,对吗

URL url = new URL(this.getCodeBase(), "/path/to/image/here.gif");
temp = ImageIO.read(url);
我对ImageIcon的内容也有问题。

更改:

public void setImage(String img) {
致:


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

我包括了必要的库,但是我得到了一个运行时错误。。。线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中的异常:java.AWT.image.ReplicateScaleFilter中的宽度(0)和高度(0)必须在java.AWT.image.ReplicateScaleFilter中为非零。(ReplicateScaleFilter.java:85)在java.AWT.image.AreaAveragingScaleFilter中。(AreaAveragingScaleFilter.java:60)在java.AWT.image.GetScaleInstance(image.java:154)中为非零在Pokertable.ImagePanel.setImage(ImagePanel.java:17)中,this.img=img.getScaledInstance(width,height,image.SCALE\u SMOOTH)是调用的代码行,显然是在产生问题。您导入了所有内容吗?现在看起来它正确地识别了所有内容,但是新的问题似乎是初始化的问题。我只是想让图像以设计模式显示,但我无法手动编辑代码,所以我必须使用自定义代码,正如您在我附带的图像中看到的那样。到目前为止我收到的答案都不起作用。有什么想法吗?我需要一些东西作为调用setImage的参数放入自定义代码中,正如您在上面的图像中看到的那样,我清理并重建了,但是ImagePanel对象没有ImageName属性,无法在设计视图中进行修改。“image”值仍然具有来自其他人建议的自定义代码,并且有一个“name”属性,设置为null,但没有ImageName属性。
public void setImage(String img) {
public void setImageName( String img ) {