java问题,各位大虾帮帮忙

下面这个类的功能是:在小程序上实现用随机颜色显示出指定的字符串的每一个字符(即每个字符都用随机数产生的颜色显示)但不知道为什么,编译没错,但用appletviewer命令... 下面这个类的功能是:在小程序上实现用随机颜色显示出指定的字符串的每一个字符(即每个字符都用随机数产生的颜色显示)
但不知道为什么,编译没错,但用appletviewer命令调用小程序查看器查看时,没有显示任何字符,在提示符下提示NullPointerException,但我找不出哪里有错,各位大虾帮帮忙,指点一下

import java.awt.Color;
import java.awt.Graphics;
import java.applet.Applet;
import java.util.Random;
public class E6_2and6_3 extends Applet
{
Random random;
int x,y;
Graphics g;
String str;
public void paint(Graphics g)
{
this.g=g;
str="给定一个字符串,用随机颜色显示字符串中的每一个字符";
E6_2();//调用随机颜色显示字符串
E6_3();//调用随机灰色显示字符串

}

/*给定一个字符串,用随机颜色显示字符串中的每一个字符*/
public void E6_2()
{
x=5;y=20;
for(int i=0;i<str.length();i++)
{
this.g.setColor(new Color(random.nextInt(255),random.nextInt(255),random.nextInt(255)));
this.g.drawString(""+str.charAt(i),x,y);
x+=15;
if((i+1)%5==0)
{ x=5;y+=20; }
}
}/////////////////////第一个方法结束

/*给定一个字符串,用不同的灰度颜色显示字符串中的第一个字符*/
public void E6_3()
{
x=85;y=20;
for(int i=0;i<str.length();i++)
{
int rgb=random.nextInt(255);
this.g.setColor(new Color(rgb,rgb,rgb));
this.g.drawString(""+str.charAt(i),x,y);
x+=15;
if((i+1)%5==0)
{ x=5;y+=20; }
}
}///////////////第二个方法结束
}
展开
 我来答
love__shuai
推荐于2016-01-28 · TA获得超过563个赞
知道小有建树答主
回答量:875
采纳率:0%
帮助的人:0
展开全部
当然会报错误,Random random,String str,Graphics g都必须要申请内存空间进行创建对象,我做了些调整,应该能运行出来
import java.awt.Color;
import java.awt.Graphics;
import java.applet.Applet;
import java.util.Random;
public class Text1 extends Applet
{
Random random;
int x,y;

String str;
public void paint(Graphics g)
{
super.paint(g);
Random random=new Random();

str=new String("给定一个字符串,用随机颜色显示字符串中的每一个字符");

x=5;y=20;
for(int i=0;i<str.length();i++)
{
g.setColor(new Color(random.nextInt(255),random.nextInt(255),random.nextInt(255)));
g.drawString(""+str.charAt(i),x,y);
x+=15;
if((i+1)%5==0)
{ x=5;y+=20; }
}
/////////////////

x=85;y=20;
for(int i=0;i<str.length();i++)
{
int rgb=random.nextInt(255);
g.setColor(new Color(rgb,rgb,rgb));
g.drawString(""+str.charAt(i),x,y);
x+=15;
if((i+1)%5==0)
{ x=5;y+=20; }
}
////////

/*给定一个字符串,用不同的灰度颜色显示字符串中的第一个字符*/

x=85;y=20;
for(int i=0;i<str.length();i++)
{
int rgb=random.nextInt(255);
g.setColor(new Color(rgb,rgb,rgb));
g.drawString(""+str.charAt(i),x,y);
x+=15;
if((i+1)%5==0)
{ x=5;y+=20; }
}
}///////////////第二个方法结束
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式