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;
}
} }以上是我的一个拆数字程序,就是不知道错哪,哪位帮下忙,谢谢了
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;
}
} }以上是我的一个拆数字程序,就是不知道错哪,哪位帮下忙,谢谢了
你那x 每次都被重新赋值为25 x+10不起作用
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 要不可能会有数组越界的异常
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;
}
}
}