我有一个带有jpanel和paintcomponent()的类。我还拥有一个可以实现可运行的类,并且我计划在线程启动后将图像绘制到油漆component上。我的构造函数接收jpanel,然后从那里称为getGraphics()。但是,通过测试和搜索此问题似乎总是返回null。
System.err.println("Thread Started");
isRunning = true;
System.err.println(pap.getGraphics());
Graphics g = pap.getGraphics(); //pap is the name of the JPanel
while (isRunning)
{
while(xPos <= pap.getWidth() + 1)
{
xPos+=horizontalDirection;
System.err.println(xPos);
drawImage(upImgs[1], xPos, yPos, g);
pap.repaint();
pause();
//g.drawOval(xPos, 10, 10, 10);
if(xPos >= pap.getWidth())
horizontalDirection = -horizontalDirection;
if(xPos < 1)
horizontalDirection = 1;
}
//pap.repaint();
//pause(); // let this thread sleep a bit
}
System.err.println("Thread Ended");
返回 线程开始 2 无效的 线程" thread-1" java.lang.nullpointerexception
中的异常我如何才能正确地使PaintComponent从这个单独的类中绘制它?
您不能做到这一点。AWT/秋千不是线程的安全,因此只能从GUI线程中进行绘图。