java 按照书上一句一顿的写的,可是为什么报错呢?

importjava.awt.event.ItemEvent;importjava.awt.event.ItemListener;importjava.awt.Borde... import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.List ;
import java.awt.Choice ;

public class OptionsSelect implements ItemListener {
Frame f ;
List ls ;
Choice ch ;
public static void main(String argv[]) {
new OptionsSelect(argv) ;
}

public OptionsSelect(String argv[]) {
f = new Frame("选项组件") ;
ls = new List(Integer.parseInt(argv[0]) , Boolean.valueOf(argv[1]).booleanValue()) ;
ls.addItemListener(this) ;
for(int i = 2 ; i < argv.length ; i ++)
ls.add(argv[i]) ;
ch = new Choice() ;
ch.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
Choice c = (Choice) e.getSource() ;
System.out.println("下拉菜单中" + c.getSelectedItem() + "选项的编号为:" + c.getSelectedIndex()) ;
System.out.println("下拉菜单中" + (c.getSelectedIndex()+1) + "项被选中了") ;
}
}) ;
for(int i = 2 ; i <argv.length ; i ++)
ch.add(argv[i]) ;
f.add(ls , BorderLayout.SOUTH) ;
f.add(ch , BorderLayout.NORTH) ;
f.pack() ;
f.setVisible(true) ;
System.out.println("下拉菜单一共有" + ch.getItemCount() + " 项") ;
System.out.println("列表一共有" + ls.getItemCount() + " 项") ;
}
public void itemStateChanged(ItemEvent e) {
List l = (List) e.getSource() ;
int index[] = l.getSelectedIndexes() ;
String str[] = l.getSelectedItems() ;
for(int i = 0 ; i < index.length ; i ++) {
System.out.println("列表" + str[i] + "的编号为" + index[i]) ;
System.out.println("列表第" + (index[i]+1) + "项被选择了") ;
}
}
}
展开
 我来答
514667671
2013-09-01 · 超过11用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:27万
展开全部
你好,虽然我没看到你的错误,也没仔细读你的代码。但却对你的问题有一种亲切感,因为在我们刚学java的时候也是一样,照到书打下来,可为什么会错呢,最后发现其实书上的代码有的并不是全的。而最重要的都不是这些,而是看报的什么错误,预估哪里会出现这个错误,或者打断点调试,一步一步看程序的执行。那样找到错误的原因,同时提升自己解决错误的能力。如果很不错的话,还可以帮助其他同学哦! 祝你学业有成。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
截竹为萧
2013-09-01 · TA获得超过155个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:194万
展开全部
public static void main(String argv[]) {
new OptionsSelect(argv) ;
}
 new OptionsSelect(argv) ;
 你的主方法传递的是argv,这是命令行参数赋值啊,
 你需要在命令行运行赋值参数的, 
  比如你 在命令行 

例如 java OptionSelect  12   34 

 这样,12为args[0],34为args[1]。

如果你用eclipse直接运行,肯定会报告 数组下标越界 异常啊,
  ls = new List(Integer.parseInt(argv[0]) , Boolean.valueOf(argv[1]).booleanValue()) ; 这句话要2个参数的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qrqhuang
2013-09-01 · TA获得超过1176个赞
知道小有建树答主
回答量:608
采纳率:0%
帮助的人:190万
展开全部
你在取argv[]这个数组里面的参数
而这个参数是在执行此类的时候添加的,若未添加数组会越界

如果用CMD的JAVA命令:java OptionsSelect 1 1
如果用ECLIPSE:打开运行配置对话框,在arguments-program arguments 里面输入1 1就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangmalongwxt
2013-09-01 · 超过20用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:52.3万
展开全部
报什么错?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式