这个问题在这里已有答案:
有人可以帮帮我吗?我做到了这一点
在sun.awt.RepaintArea的sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)的Frame.Painter.paint(Main.java:399)中的线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常.paint(RepaintArea.java:240)位于java.awt.Component.dispatchEvent的java.awt.Component.dispatchEventImpl(Component.java:4965)的sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:358) Component.java:4711)位于java.awt.EventQueue.access的java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)$ 500(EventQueue.java:97)java.awt.EventQueue $ 3.run(EventQueue.java) :709)java.awt.EventQueue $ 3.run(EventQueue.java:703)at java.security.AccessController.doPrivileged(Native Method)at java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)at java .security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)at java.awt.EventQueue $ 4.run(EventQueue.java:731)at java.awt.EventQueue $ 4.run(EventQueue.java:729 )java.security.Protevows上的java.security.AccessController.doPrivileged(Native Method),Java.awt上的java.awt.EventQueue.dispatchEvent(EventQueue.java:728)中的JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) . 位于java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)的java.awt.EventDispatchThread.pumpEvents(EventDispatchThread)java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)中的EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) .java:101)at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
第399行的代码是:
class Painter extends Canvas{
Image image;
private URL url;
public void setImage(String file) {
url = null;
try {
url = new File(file).toURI().toURL();
} catch (MalformedURLException ex) {
System.out.println(ex.toString());
}
image = getToolkit().getImage(url);
repaint();
}
public void paint(Graphics g) {
double d = image.getHeight(this) / this.getHeight();
double w = image.getWidth(this) / d;
double x = this.getWidth() / 2 - w / 2;
g.drawImage(image, (int) x, 0, (int) (w), this.getHeight(), this);
}
}
我不确切知道那里发生了什么 . 我的程序工作正常,但每次运行都会对此错误感到不安 . 请告诉我该怎么办 .
1 回答
我假设你有以下代码:
那么你只需要调用setImage(“c:/ yourfilepath / yourfilename”)