gpt4 book ai didi

java - 不断收到 nullpointerException?我正在尝试打印图像

转载 作者:行者123 更新时间:2023-11-30 07:14:39 25 4
gpt4 key购买 nike

这是主类

public class Testing extends JFrame{

private static final long serialVersionUID = 1L;

public Testing(){
setContentPane(new Canvas());
setVisible(true);
setLocationRelativeTo(null);

}
public static void main(String[] args0){
new Testing();
}

而错误发生在Canvas类的drawImage方法中。我制作了一个 res 文件夹,我将图像放在其中并将其用作源文件夹。

public class Canvas extends JPanel{
Graphics g;
Graphics2D g2 = (Graphics2D)g;
BufferedImage image;
private static final long serialVersionUID = 1L;
public Canvas(){
setPreferredSize(new Dimension(800,600));
loadImage("/space.png");
draw(g2);
}
public void draw(Graphics2D g2){
g2.drawImage(image, 0,0,this);
}
public void loadImage(String path){
try {
image = ImageIO.read(
getClass().getResourceAsStream(path)
);
}
catch(Exception e) {
e.printStackTrace();
System.out.println("image loading error");
}

}

谢谢你的帮助。

以及我在运行程序时遇到的错误。

Exception in thread "main" java.lang.NullPointerException
at Canvas.draw(Canvas.java:21)
at Canvas.<init>(Canvas.java:18)
at Testing.<init>(Testing.java:11)
at Testing.main(Testing.java:17)

最佳答案

  • 不需要调用像PaintComponents(g);这样的东西,去掉这行代码,没用

  • Swing 中绘制是在 paintComponent() 中完成的,而不是在 PaintComponents() 中完成的 Oracle tutorial Working with Images , 在此处搜索由 paintComponent()

  • 标记的问题
  • JPanelImageObserver 然后 g.drawImage(image, 0,0,null); 应该是 g .drawImage(图像, 0, 0, 这个);

  • new testing(); 应该被包裹在invokeLater中,更多见Oracle tutorial Initial Thread

  • 不要在 public class Canvas extends JPanel {

    中为 JFrame setSize(800,600); 覆盖 getPreferredSize
  • 公共(public)类测试扩展 JFrame{

    1. 应该是public class Testing {

    2. 创建JFrame作为局部变量(类似于BufferedImage image;)

编辑。像这样的东西

JPanel panel = new JPanel() {
private static final long serialVersionUID = 1L;
private Image image = new ImageIcon("Images/mong.jpg").getImage();

@Override
public Dimension getPreferredSize() {
return new Dimension(800, 600);
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
};

关于java - 不断收到 nullpointerException?我正在尝试打印图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com