错哪了~~

cf527085608 2009-10-13 10:25:59
import java.applet.Applet;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextField;

public class SeparateNum extends Applet{
Label lab; //定义一个标签
TextField tf; //定义一个文本
long a[];//用于存在拆分的数字
int i=0;

public void init(){ //初始方法
lab=new Label("输入一个人人任意长度的整数");
tf=new TextField(19);

add(lab); //添加一个
add(tf); //再来一个
}



public boolean action(Event e,Object o){ //事件监听器

if(e.target==tf){
long num=Integer.parseInt(tf.getText()); //取出写入的数字

while(num>0){
a[i]=num%10;
num=num/10;
i++;
}


}
repaint();
return true;

}

public void paint(Graphics g){
int x=25,y=25;
for(int j=i-1;j>=0;j--){
g.drawString(a[j]+"", x, y);
x+=10;
}
}

}


以上是我的一个拆数字程序,就是不知道错哪,哪位帮下忙,谢谢了
...全文
154 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
downice 2009-10-14
  • 打赏
  • 举报
回复
long a[] 问题。 赋值,长度问题。参考下面的写法。

package com.jwh.cn;
import java.applet.Applet;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextField;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class SeperateNum extends Applet{
Label lab; //定义一个标签
TextField tf; //定义一个文本
List list = new ArrayList();//用于存在拆分的数字
int i=0;

public void init(){ //初始方法
lab=new Label("输入一个人人任意长度的整数");
tf=new TextField(19);

add(lab); //添加一个
add(tf); //再来一个
}



public boolean action(Event e,Object o){ //事件监听器

if(e.target==tf){
long num=Long.parseLong(tf.getText()); //取出写入的数字
System.out.println(num);
while(num>0){
list.add(num%10);
num=num/10;
i++;
}


}
repaint();
return true;

}

public void paint(Graphics g){
int x=25,y=25;
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
long type = (Long) iterator.next();

g.drawString(type+"", x, y);
x+=10;
}
}
}
zk20052009 2009-10-13
  • 打赏
  • 举报
回复

import java.applet.Applet;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextField;

public class SeparateNum extends Applet {
Label lab; //定义一个标签
TextField tf; //定义一个文本
long a[];//用于存在拆分的数字
int i=0;

public void init() { //初始方法
lab=new Label("输入一个人人任意长度的整数");
tf=new TextField(19);
add(lab); //添加一个
add(tf); //再来一个
}

public boolean action(Event e,Object o) { //事件监听器
if(e.target==tf) {
long num=Integer.parseInt(tf.getText()); //取出写入的数字
i = 0;//care
a = new long[tf.getText().trim().length()];//care
while(num>0) {
a[i]=num%10;
num=num/10;
i++;
}
}
repaint();
return true;
}

public void paint(Graphics g) {
int x=25,y=25;
for(int j=i-1;j>=0;j--) {
g.drawString(a[j]+"", x, y);
x+=10;
}
}
}

报空指针异常了
数组a没初始化
按你的意思 i应该每次执行完后应该重新赋0 要不可能会有数组越界的异常
lz12366007 2009-10-13
  • 打赏
  • 举报
回复
你应该把 x设为 全局变量!!
你那x 每次都被重新赋值为25 x+10不起作用

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧