gpt4 book ai didi

java - 在 java 中使用 Graphics 类时出现 NullPointerException 错误

转载 作者:行者123 更新时间:2023-11-29 06:59:15 24 4
gpt4 key购买 nike

我是 java 的新手。我正在尝试编写一个简单的 java 程序,它接受坐标和高度的输入,矩形的宽度并绘制它。但我收到 NullPointerException 错误。这是我的代码:

import javax.swing.JFrame;
import java.util.Scanner;
import java.awt.*;
public class shape extends JFrame{
public int x,y,width, height;
public void setxyhw(int f, int g, int h, int i){
this.x = f;
this.y = g;
this.width =h;
this.height = i;
}

public shape(){
setTitle("frame1");
setSize(960,960);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void paint(Graphics g){

g.drawRect(x,y,height,width);

}


public static void main(String[] args) {
int a,b,c,d ;
Scanner in = new Scanner(System.in);
System.out.println("Input Co-ordinates and widh & height for rectangle");
a= in.nextInt();
b=in.nextInt();
c=in.nextInt();
d=in.nextInt();

shape s=new shape();

s.setxyhw(a,b,c,d);

s.paint(null);
}

}

最佳答案

哎呀:

s.paint(null);

您直接调用 paint,传入一个 null 参数,然后想知道为什么该方法会抛出 NullPointerException!

解决方法:

  • 不要这样做。永远不要直接调用 paint。这是 JVM 要做的。
  • 在 JPanel 的 paintComponent 方法中绘制,而不是直接在 JFrame 中绘制。直接在 JFrame 中绘制可能会在绘制边框和子组件时产生不需要的副作用,并且稍后在您尝试制作动画时无法顺利制作动画。
  • 当您想重新绘制 GUI 时调用 repaint()
  • 阅读 Swing 图形教程。您可以在此处找到 Swing 教程和其他 Swing 资源的链接:Swing Info .

关于java - 在 java 中使用 Graphics 类时出现 NullPointerException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28920528/

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