我遇到了这段代码的问题:
package shapes;
import java.awt.Graphics2D;
import javax.swing.JFrame;
public class Shapes extends JFrame {
public static void main(String[] args) {
doDrawing();
}
private static void doDrawing() {
Graphics2D g = null;
// TODO Auto-generated method stub
Graphics2D g2d = (Graphics2D) g;
g2d.drawLine(20, 20, 100, 100);
}
}
但是,当我运行它时,我得到:
Exception in thread "main" java.lang.NullPointerException
at shapes.Shapes.doDrawing(Shapes.java:17)
at shapes.Shapes.main(Shapes.java:10)
我该如何解决这个问题?
答案 0 :(得分:3)
您将g
设置为null
:
Graphics2D g = null;
然后将此null转换为g2d
Graphics2D g2d = (Graphics2D) g;
然后调用null
对象实例的方法。
答案 1 :(得分:0)
您正在尝试访问null
元素:
Graphics2D g = null;
然后你试图做这样的事情:
Graphics2D g2d = (Graphics2D) null;
这就是你获得NullPointerException
的原因。
我不是真正进入Graphics
课程,但是,根据文档中的example,我制作了此代码
import java.awt.*;
import java.applet.Applet;
import java.awt.geom.Rectangle2D;
import javax.swing.*;
public class Shapes extends JApplet {
public static void main(String[] args) {
JApplet app = new Shapes();
JFrame f = new JFrame("Example");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.init();
app.start();
f.add("Center", app);
f.pack();
f.setVisible(true);
}
Shapes() {
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawLine(20, 20, 100, 100);
}
}
它绘制了您在代码中提供的行。
我希望它有所帮助