您的位置:首页 > 编程语言 > Java开发

java那位大神告诉我为什么我用这个画图会报错??

2019-04-20 19:31 706 查看

那位大神来解答一下,谢谢!!!
编译无错误,图片放置位置正确,运行时出现以下内容,并没有显示图片,只显示了窗体。
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at java.desktop/sun.awt.SunToolkit.getImageFromHash(SunToolkit.java:653)
at java.desktop/sun.awt.SunToolkit.getImage(SunToolkit.java:689)
at com.day1.MyPanel.paint(Picture_1.java:71)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:590)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5262)
at java.desktop/javax.swing.RepaintManagerPaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643)atjava.desktop/javax.swing.RepaintManagerPaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643) at java.desktop/javax.swing.RepaintManagerPaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643)atjava.desktop/javax.swing.RepaintManagerPaintManager.paintDoubleBuffered(RepaintManager.java:1618)
at java.desktop/javax.swing.RepaintManagerPaintManager.paint(RepaintManager.java:1556)atjava.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)atjava.desktop/javax.swing.JComponent.paint(JComponent.java:1060)atjava.desktop/java.awt.GraphicsCallbackPaintManager.paint(RepaintManager.java:1556) at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323) at java.desktop/javax.swing.JComponent.paint(JComponent.java:1060) at java.desktop/java.awt.GraphicsCallbackPaintManager.paint(RepaintManager.java:1556)atjava.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)atjava.desktop/javax.swing.JComponent.paint(JComponent.java:1060)atjava.desktop/java.awt.GraphicsCallbackPaintCallback.run(GraphicsCallback.java:39)
at java.desktop/sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at java.desktop/sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.desktop/java.awt.Container.paint(Container.java:2002)
at java.desktop/java.awt.Window.paint(Window.java:3926)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:876)
at java.desktop/javax.swing.RepaintManager4.run(RepaintManager.java:848)atjava.base/java.security.AccessController.doPrivileged(AccessController.java:389)atjava.base/java.security.ProtectionDomain4.run(RepaintManager.java:848) at java.base/java.security.AccessController.doPrivileged(AccessController.java:389) at java.base/java.security.ProtectionDomain4.run(RepaintManager.java:848)atjava.base/java.security.AccessController.doPrivileged(AccessController.java:389)atjava.base/java.security.ProtectionDomainJavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1884)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue4.run(EventQueue.java:715)atjava.base/java.security.AccessController.doPrivileged(AccessController.java:389)atjava.base/java.security.ProtectionDomain4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(AccessController.java:389) at java.base/java.security.ProtectionDomain4.run(EventQueue.java:715)atjava.base/java.security.AccessController.doPrivileged(AccessController.java:389)atjava.base/java.security.ProtectionDomainJavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

package com.day1;
import java.awt.*;
import javax.swing.*;

public class Picture_1 extends JFrame{
MyPanel mp=null;//创建mypanel

public static void main(String[] args) {
Picture_1 pt=new Picture_1();//创建并初始化picture_1,将自动调用paint方法。

}
public Picture_1()
{
mp=new MyPanel();//初始化panel
this.add(mp);//加入JFrame
this.setSize(600,300);//JFrame尺寸
this.setTitle("画图片");//标题
//关闭时关闭虚拟机
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);//显示窗体
//this.setLocation(200,200);//窗体初始位置
//this.setResizable(false);//不能改变大小

}

}
class MyPanel extends JPanel//创建一个MyPanel类,继承JPanel
{

//Graphics是绘图的重要类,它可以理解成一支画笔,用它画图按
public void paint(Graphics g)//覆盖JPanel的paint方法
{

super.paint(g);//调用父类函数,完成初始化,这句话不能少

//画一个图片,

Image im=Toolkit.getDefaultToolkit().getImage
(Panel.class.getResource("/j0384862.jpg"));
//实现图片
g.drawImage(im, 10, 10, 100 , 150, this);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐