已有101人关注
<Java从入门到精通>第3版/18.4.1线程的休眠/实例18.03
发表在Java图书答疑 2017-03-02
是否精华
版块置顶:

项目创建SleepMethodTest类,完全照书打的,后来复制实例的编码也运行错误

下面控制台显示的错误意思是27行的代码设置绘图颜色内个有问题吗?原代码错哪儿了?

另外碰到这种错误一般怎么解决啊?

请老师指点,谢谢!


分享到:
精彩评论 4
David
学分:914 LV7
TA的每日心情
最后的冲刺
2017-07-15 10:46:08
2017-03-02
沙发

由于getC()方法没有得到返回值,所以发生了空指针异常(NullPointerException)。另外经测试,光盘中的源码没有问题,读者可以尝试一下将源码导入eclipse后再运行,然后前后比对一下,检查一下哪里出的错误。

incredibleje
学分:10 LV2
2017-03-06
板凳

从光碟实例里导的也是这样……

import java.awt.*;

import java.util.*;

import javax.swing.*;


public class SleepMethodTest extends JFrame {

private static final long serialVersionUID = 1L;

private Thread t;

private static Color[] color = {

Color.BLACK,Color.BLUE,Color.CYAN,Color.GREEN,Color.ORANGE,Color.YELLOW,Color.RED,Color.PINK,Color.LIGHT_GRAY

};

private static final Random rand = new Random();

private static Color getC(){

return color[rand.nextInt(color.length)];

}

public SleepMethodTest(){

t= new Thread(new Runnable(){

int x = 30;

int y = 50;

public void run(){

while(true){

try{

Thread.sleep(100);

}catch(InterruptedException e){

e.printStackTrace();

}

Graphics graphics = getGraphics();

graphics.setColor(getC());

graphics.drawLine(x, y, 100, y++);

if(y>=80){

y= 50;

}

}

}

});

t.start();

}

public static void main(String[] args) {

init(new SleepMethodTest(),100,100);

}

public static void init(JFrame frame,int width,int height){

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(width,height);

frame.setVisible(true);

}

}


真找不出哪里有不一样诶


根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2017-03-06
地板

运行你给出的代码,没发生你说的问题。

结合日志看,你这的问题应该在这一句上:

Graphics graphics = getGraphics();

获取窗体绘图对象,结果获取的是个空值,你改成这样试一下:

Graphics graphics = SleepMethodTest.this.getGraphics();

incredibleje
学分:10 LV2
2017-03-07
4L

怎么会这样……

改了,但是还是不行。

看控制台显示的似乎是27行graphics.setColor(getC());的问题吧?

1.png

为啥同样的代码在不同的eclipse运行结果不同的?我的eclipse跟书上装的一样啊

首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照