1

所以我有一个图像分割项目要完成,第一阶段是让Java显示图像。

我遇到的问题是我可以显示一个窗口,但是我加载的图像没有被渲染。

如果我这样做完全错误,那么请让我知道。我花了一个下午寻找有关使用 Java 处理图像的清晰解释,但是我没有找到任何好的、清晰的资源。

我现在有两个类:主类和图像加载类。

这是我的主要课程:

import javax.swing.*;

public class LoadImageMain extends JFrame {

public static void main(String[] args) {            
    displayImage("HelloWorld.png");
}

public static void displayImage(String path) {
    JFrame frame = new JFrame("Display Image");
    LoadImage panel = new LoadImage(path);

    frame.setSize(1200, 800);
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frame.setContentPane(panel);
    frame.setVisible(true);
}   
}

我的第二个课程旨在渲染图像:

public class LoadImage extends JPanel {
   private Image img;

public LoadImage(String path) {
    img = getImage(path);       
}

@Override
public void paintComponent(Graphics g) {    
    super.paintComponent(g);
    g.drawImage(img, 0, 0, null);       
}

public Image getImage(String path) {
    Image tempImg = null;

    try {
        tempImg = Toolkit.getDefaultToolkit().getImage(path);
    }
    catch (Exception e) {
        System.out.println("Image not found. Error: " + e.getMessage());
    }

    return tempImg;
}
}
4

2 回答 2

4

如我所见,您没有为drawImage.

反而:

g.drawImage(img, 0, 0, null);  

g.drawImage(img, 0, 0, this);
于 2013-10-11T13:36:47.017 回答
2

我认为图像未加载。检查 tempImg 的宽度/高度。猜他们是0。

于 2013-10-11T13:40:04.890 回答