gpt4 book ai didi

Java Applet 错误,NullPointerException

转载 作者:行者123 更新时间:2023-11-29 03:21:07 25 4
gpt4 key购买 nike

我刚开始学习 Java 小程序,就遇到了这个错误。有人可以帮助我吗?

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;


public class MakeDots extends Applet implements MouseListener{

private Graphics graphics = null;

public void init() {
this.addMouseListener(this);
}

public void paint(Graphics g) {
this.setSize(800, 600);
g.create();
}
public void drawDot(int x, int y) {
int r = (int)(Math.random()*256);
int b = (int)(Math.random()*256);
int g = (int)(Math.random()*256);
Color color = new Color(r, g, b);
graphics.setColor(color);
graphics.fillOval(x, y, 3, 3);
}

@Override
public void mouseClicked(MouseEvent e) {
int mouseX = e.getX();
int mouseY = e.getY();
drawDot(mouseX, mouseY);
}

@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub

}

}

出现此错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at MakeDots.drawDot(MakeDots.java:26)
at MakeDots.mouseClicked(MakeDots.java:34)
at java.awt.Component.processMouseEvent(Component.java:6417)
at java.awt.Component.processEvent(Component.java:6179)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

我不知道为什么!

最佳答案

这不是您进行 Swing 或 AWT 绘图的方式:

private Graphics graphics = null;

相反,如果是 AWT 应用程序,您应该在组件或此类的子组件的 paint 方法中绘制)并使用 JVM 提供的 Graphics 对象。

更好的方法是创建一个 Swing 应用程序并在 JComponent 或其子组件的 paintComponent(Graphics g) 方法中绘制,再次使用 JVM 提供的 Graphics 对象。最重要的是,谷歌并阅读教程。我可以根据经验告诉你,你不应该猜测这些东西,因为你总是会猜错。

关于Java Applet 错误,NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23585107/

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