gpt4 book ai didi

java - Graphics2D 对象总是给出 NullPointerException

转载 作者:行者123 更新时间:2023-12-02 00:36:13 25 4
gpt4 key购买 nike

我想创建简单的绘图程序;

这里是我的程序的 mousePressed 和 mouseDragged 事件:

private void mousePressed(java.awt.event.MouseEvent evt) {
touch = evt.getPoint();
pressed = true;
}


private void mouseDragged(java.awt.event.MouseEvent evt) {
Point p = evt.getPoint();
if(pressed){
graphics2D.drawLine(touch.x, touch.y, p.x, p.y);
}
repaint();
}

但是当我尝试画一些东西时,它总是给出 "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException"在这一行graphics2D.drawLine(touch.x, touch.y, p.x, p.y);

我还重写了paintComponent方法

public void paintComponent(Graphics g){
if(image == null){
image = createImage(getSize().width, getSize().height);
graphics2D = (Graphics2D)image.getGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
clear();
}
g.drawImage(image, 0, 0, null);
}

我明确的方法是:

public void clear(){
graphics2D.setPaint(Color.white);
graphics2D.fillRect(0, 0, getSize().width, getSize().height);
graphics2D.setPaint(Color.black);
repaint();
}

我应该做什么?

谢谢

最佳答案

您需要阅读如何用 Java 绘制内容: Painting in AWT and Swing

如果您使用 Swing 进行自定义绘制,则应重写要为其执行自定义绘制的组件上的 paintComponent(Graphics g) 方法,并在该重写的内部进行绘制方法。您将始终在该方法中获得已初始化的 Graphics 对象。

关于java - Graphics2D 对象总是给出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7759666/

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