[英]Java 2D NullPointerException
最近,我开始对Java 2D进行编码。
我做的:
public void paintComponent(Graphics comp) {
Graphics2D comp2D = (Graphics2D) comp;
Font fontx = new Font("Verdana", Font.BOLD, 5);
comp2D.setFont(fontx);
comp2D.drawString("Hello World!", 5, 50);
}
我确实导入了JFrame和java.awt。*,但是仍然存在问题。
运行它时,我得到以下信息:
Exception in thread "main" java.lang.NullPointerException
at game.Game.paintComponent(Game.java:41) - comp2D.setFont(fontx); - Sets Font
at game.Game.next(Game.java:36) - paintComponent(null); - calls the paintComponent public void from the next() public void
at game.Game.main(Game.java:26) - next.next(); - calls a public void called "next" using an object called "next" (this public void throws InterruptedException)
Java Result: 1
我该如何解决?
您声明:
Exception in thread "main" java.lang.NullPointerException
at game.Game.paintComponent(Game.java:41) -
comp2D.setFont(fontx); - Sets Font
这意味着comp2D为null,并且您试图在null变量上调用方法。
at game.Game.next(Game.java:36) - paintComponent(null);
- calls the paintComponent public void from the next() public void
这意味着您要直接调用paintComponent并传递null!
因此,您要直接调用paintComponent并传递null! 毫不奇怪,Graphics对象为null,如果您尝试在其上调用方法,它将抛出NPE。
解:
@Override
批注,确保您的替代有效。 super.paintComponent(...)
方法。 repaint()
,然后让paintComponent(...)
方法使用该文本字段在屏幕上打印文本JPanel的。 这只是一个例子。 您可以更改任何图形组件的字段,然后在paintComponent(...)
内部使用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.