我的程序怎么回事,为什么不能编译通过?错在哪里?各位大侠帮帮忙啊! a.clone()返回的还是一个LinkedList,不能赋给Enumeration! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、如楼上所说,应该至少这样:Enumeration e=(Enumeration)a.clone();2、i是个Integer对象,a.indexOf(a)是个整数,不可用equals比较,需要将a.indexOf(a)也转为Integer对象。i.equals(new Integer(a.indexOf(a)))或者取i的值和a.indexOf(a)比较i.intValue()==a.indexOf(a)3、x没有初始化,需要有x=0;这样只是编译通过,有没有逻辑错误就不知道了。 import java.util.*;import java.awt.*;public class ListTest extends Frame{ public ListTest() { Panel p=new Panel(); p.setLayout(new FlowLayout()); p.add(new Button("Insert")); p.add(new Button("Append")); p.add(new Button("Remove")); p.add(new Button("Reset")); p.add(new Button("Next")); add("South",p); add("Center",canvas=new ListCanvas()); canvas.redraw(a); } public boolean handlEvent(Event e) { if (e.id==Event.WINDOW_DESTROY) System.exit(0); return super.handleEvent(e); } public boolean action(Event evn,Object o) { if (o.equals("Insert")) { a.add(new Integer(m)); m++; } else if (o.equals("Append")) { a.add(new Integer(m)); m++; } else if (o.equals("Remove")) { a.remove(m); m--; } else if (o.equals("Next")) { a.get(m++); } else if (o.equals("Reset")) { a.getFirst(); } else return super.action(evn,o); canvas.redraw(a); return true; } public static void main(String args[]) { Frame f=new ListTest(); f.resize(200,300); f.show(); } private LinkedList a=new LinkedList(); private ListCanvas canvas; private int m=1;}class ListCanvas extends Canvas{ public void redraw(LinkedList new_a) { a=new_a; repaint(); } public void paint(Graphics g) { Iterator e=a.iterator(); int x,y,cx=0; x=0; y=0; while(e.hasNext()) { g.drawRect(x,y,30,20); Integer i=(Integer)e.next(); if(e.hasNext() && i.intValue()==a.indexOf(a)) { cx=x; } g.drawString(i.toString(),x+1,y+19); g.drawLine(x+30,y+10,x+45,y+10); g.drawLine(x+45,y+10,x+40,y+5); g.drawLine(x+45,y+10,x+40,y+15); x+=45; } if(!a.isEmpty()) cx=x; g.drawLine(cx+15,25,cx+15,40); g.drawLine(cx+15,25,cx+10,30); g.drawLine(cx+15,25,cx+20,30); } private LinkedList a; }这样,用Iterator 几道java的改错题 Java中的那些技术比较实用! StringBuffer对象为什么不能转换成String类对象呢? java 关于二进制数据的处理 急啊 还是输入输出流的问题 读大文本数据中的问题 关于日期的一个问题,请各位帮忙 在java中怎样判断文件名是否相等? 小问题,100分,来者有分 有两个JTextField,当在其中一个JTextField输入字符串时,另一个JTextField里也出现相同字符串,能给出代码吗,一定给分!!! getInstance()后一个还是多个实例问题 请教,用swing类编写的界面如何在网页上显示运行?
Enumeration e=(Enumeration)a.clone();2、i是个Integer对象,a.indexOf(a)是个整数,不可用equals比较,需要将a.indexOf(a)也转为Integer对象。
i.equals(new Integer(a.indexOf(a)))或者取i的值和a.indexOf(a)比较
i.intValue()==a.indexOf(a)3、x没有初始化,需要有
x=0;这样只是编译通过,有没有逻辑错误就不知道了。
import java.awt.*;
public class ListTest extends Frame
{
public ListTest()
{
Panel p=new Panel();
p.setLayout(new FlowLayout());
p.add(new Button("Insert"));
p.add(new Button("Append"));
p.add(new Button("Remove"));
p.add(new Button("Reset"));
p.add(new Button("Next"));
add("South",p);
add("Center",canvas=new ListCanvas());
canvas.redraw(a);
}
public boolean handlEvent(Event e)
{
if (e.id==Event.WINDOW_DESTROY) System.exit(0);
return super.handleEvent(e);
}
public boolean action(Event evn,Object o)
{
if (o.equals("Insert"))
{
a.add(new Integer(m));
m++;
}
else
if (o.equals("Append"))
{
a.add(new Integer(m));
m++;
}
else
if (o.equals("Remove"))
{
a.remove(m);
m--;
}
else
if (o.equals("Next"))
{
a.get(m++);
}
else
if (o.equals("Reset"))
{
a.getFirst();
}
else
return super.action(evn,o);
canvas.redraw(a);
return true;
}
public static void main(String args[])
{
Frame f=new ListTest();
f.resize(200,300);
f.show();
}
private LinkedList a=new LinkedList();
private ListCanvas canvas;
private int m=1;
}
class ListCanvas extends Canvas
{
public void redraw(LinkedList new_a)
{
a=new_a;
repaint();
}
public void paint(Graphics g)
{
Iterator e=a.iterator();
int x,y,cx=0;
x=0;
y=0;
while(e.hasNext())
{
g.drawRect(x,y,30,20);
Integer i=(Integer)e.next();
if(e.hasNext() && i.intValue()==a.indexOf(a))
{
cx=x;
}
g.drawString(i.toString(),x+1,y+19);
g.drawLine(x+30,y+10,x+45,y+10);
g.drawLine(x+45,y+10,x+40,y+5);
g.drawLine(x+45,y+10,x+40,y+15);
x+=45;
}
if(!a.isEmpty()) cx=x;
g.drawLine(cx+15,25,cx+15,40);
g.drawLine(cx+15,25,cx+10,30);
g.drawLine(cx+15,25,cx+20,30);
}
private LinkedList a;
}
这样,用Iterator