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) + "项被选择了") ;
}
}
} 展开
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) + "项被选择了") ;
}
}
} 展开
4个回答
展开全部
你好,虽然我没看到你的错误,也没仔细读你的代码。但却对你的问题有一种亲切感,因为在我们刚学java的时候也是一样,照到书打下来,可为什么会错呢,最后发现其实书上的代码有的并不是全的。而最重要的都不是这些,而是看报的什么错误,预估哪里会出现这个错误,或者打断点调试,一步一步看程序的执行。那样找到错误的原因,同时提升自己解决错误的能力。如果很不错的话,还可以帮助其他同学哦! 祝你学业有成。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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个参数的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在取argv[]这个数组里面的参数
而这个参数是在执行此类的时候添加的,若未添加数组会越界
如果用CMD的JAVA命令:java OptionsSelect 1 1
如果用ECLIPSE:打开运行配置对话框,在arguments-program arguments 里面输入1 1就可以了
而这个参数是在执行此类的时候添加的,若未添加数组会越界
如果用CMD的JAVA命令:java OptionsSelect 1 1
如果用ECLIPSE:打开运行配置对话框,在arguments-program arguments 里面输入1 1就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
报什么错?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询