小程序
class IsOdd 
{
public static void main(String[] args) 
{
int num = Integer.parseInt(args[0]);
String isodd = "输入的是";
if (num%2==0)
{isodd += "偶数";
}
else
{isodd += "奇数";}
System.out.println(isodd);
}
}这是在editplus中按书本上一个个敲上去的,编译没有错 运行时提示
---------- java ----------
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at IsOdd.main(IsOdd.java:5)
输出完成 (耗时: 0 秒)
但书上说运行后会弹出一个参数对话框的 然后再往里头输入参数 就可以了  我希望有人能把以上的小程序改成能实现这个功能 而不是在网上告诉我“下标越界 ,要设置参数,没有传参数”但是又不在程序中加以改正555555555    希望能帮我把程序改成能运行  弹出个 像书上说的弹出个参数对话框然后让我输入参数。鞠躬谢过!

解决方案 »

  1.   

    你是用java IsOdd运行的么?如果是的话,在后边加个参数就可以了:java IsOdd 6
      

  2.   

    要带参数运行~~~或者这样:
    class IsOdd 

    public static void main(String[] args) throws IOException{ 
    BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
    int num = Integer.parseInt(wt.readLine()); 
    String isodd = "输入的是"; 
    if (num%2==0) 
    {isodd += "偶数"; 

    else 
    {isodd += "奇数";} 
    System.out.println(isodd); 


      

  3.   

    没人回答我就试试下,我也刚学不久,我就做一个框输参数import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;public class IsOdd {
    private JFrame jf;
    JPanel jp;
    JLabel jl;
    private JTextField jt;
    private JButton jb;
    int num=0;

    public void parameterFrame(){
              //创建一个框
    jf=new JFrame();
     jp=new JPanel();
    jp.setLayout(null);
     jl=new JLabel("输入参数");
     jt=new JTextField();
     jb=new JButton("确定");
     jp.add(jl);
     jl.setBounds(10,10,80,20);
     jp.add(jt);
     jt.setBounds(85, 10, 100, 20);
     jp.add(jb);
     jb.setBounds(60, 50, 70, 20);
     jf.add(jp);
     jf.setBounds(100,100,200,120);
     jf.setVisible(true);
     //按钮监听事件
     jb.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent e){
     try{
                                              //获取文本框的值并进行判断是否为数字
       num=Integer.parseInt(jt.getText()); 
     }catch(Exception e1){
     System.out.println("请输入数字");
     }
     String isodd = "输入的是"; 
     if (num%2==0) 
     {isodd += "偶数"; 
     } 
     else 
     {isodd += "奇数";} 
     System.out.println(isodd); 
     } 
     
     });
    }

    public static void main(String[] args){
    new IsOdd ().parameterFrame();
    }
    }
      

  4.   

    非常谢谢你抽空帮我解答
    我是直接在 editplus中运行的 不是用java IsOdd运行的  "后边加个参数就可以了:java IsOdd 6"这个是可以的 但我希望的是 达到 书本上说的 运行后会弹出一个参数对话框的 然后让我往里写 数字的  因为书后面好多例子 都有“int num = Integer.parseInt(args[0]);”这个语句 但都不能在运行时弹出对话框 但书本上每个例子都说只要点运行 就会弹出参数对话框  希望能帮我分析出为什么 不弹出对话框  哦 可能大家还不清楚 是在 EditPlus中  EditPlus中  帮我分析 下为什么不能像书上说的弹出参数对话框 谢谢啊 
      

  5.   

    ---------- javac ----------
    IsOdd.java:3: 找不到符号
    符号: 类 IOException
    位置: 类 IsOdd
    public static void main(String[] args) throws IOException{ 
                                                  ^
    IsOdd.java:4: 找不到符号
    符号: 类 BufferedReader
    位置: 类 IsOdd
    BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
    ^
    IsOdd.java:4: 找不到符号
    符号: 类 BufferedReader
    位置: 类 IsOdd
    BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
                          ^
    IsOdd.java:4: 找不到符号
    符号: 类 InputStreamReader
    位置: 类 IsOdd
    BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));
                                             ^
    4 错误输出完成 (耗时: 0 秒)
    这是我把你的程序 放在editplus中编译出来提示的东西 同样谢谢你为我的帖子费心 
      

  6.   

    四楼 pplong130 (龙猫) 大哥是 到目前出现的最牛的人了 用editplus 运行后出现了“对话框”出现了“对话框” 完全符合我帖子中说的目的 非常感谢  我学书本后面的例子时不想每次 都自己做个框输参数吧   希望能帮我分析下 为什么 我完全按书本上的程序 敲进去的  按道理 运行它 按书本所述 它自己会蹦出个 对话框 但实际却没有 是editplus设置的问题吗? 焦躁中 !!  另外 前面几楼的回复中 都说 了 “要带参数”这个我是知道的 当然用其他方法如2楼所说是可以的    但实际上 按书上说 的意思  是要先弹出这个参数对话框 然后我再输入参数啊  这个框不出现  我无法输参数  所以 我现在想搞清楚的是 为什么 它不弹出“参数”对话框 因为书本后面20来个程序讲解 都是“按快捷键ctrl+2运行,弹出如图所示的“参数”对话框”,而且每个程序还重复搞遍图上来 搞的我就很郁闷 咋我的就弹不出对话框呢 如果也有在用 EditPlus的可以把程序在自己的机器上运行下 看看情况是否和我的一样  不甚感激
      

  7.   


    你的程序里如果压根就没有让对话框弹出的代码,那对话框如何能自己弹出来?
    也许某些ide会提供这一功能,如果你和书上所说是用的同一个ide,且版本相同,且书上没说要其他插件
    那么很遗憾,这本书在胡扯
      

  8.   

    public static void main(String[] args) 应该是public static void main(String args[]) 
      

  9.   

    eclipse:运行-->运行(N)-->双击 Java应用程序-->自变量-->在"程序自变量"输入你的参数,以空格分隔.-->运行(R)
      

  10.   

    这Java中,这两种写法都是可以的.
      

  11.   

    import java.io.*;
    class IsOdd 

    public static void main(String[] args)throws IOException  

    BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
    int num = Integer.parseInt(keyin.readLine()); 
    String isodd = "输入的是"; 
    if (num%2==0) 
    {
    isodd += "偶数"; 

    else 
    {
    isodd += "奇数";

    System.out.println(isodd); 

      

  12.   

    IsOdd.java:3: 找不到符号 
    符号: 类 IOException 
    位置: 类 IsOdd 
    public static void main(String[] args) throws IOException{ 
                                                  ^ 
    IsOdd.java:4: 找不到符号 
    符号: 类 BufferedReader 
    位置: 类 IsOdd 
    BufferedReader wt=new BufferedReader(new InputStreamReader(System.in)); 

    -------------
    这些找不到符号,是因为你没有引入相应的包
      

  13.   

    看看这个行不?
    import javax.swing.JOptionPane;class IsOdd {
    public static void main(String[] args) {
    String numStr = JOptionPane.showInputDialog("请输入:");

    if(numStr != null){
    int a;
    try {
    a = Integer.parseInt(numStr);
    String isodd = "输入的是";
    if (a % 2 == 0) {
    isodd += "偶数";
    } else {
    isodd += "奇数";
    }
    System.out.println(isodd);
    } catch (NumberFormatException e) {
    // TODO Auto-generated catch block
    System.out.println(e.getMessage());
    }

    }

    }
    }
      

  14.   

    EditPlus里面用快捷键运行?
    那样不能传值给args,只能进DOS窗口手动java IsOdd 加上你要测试的数字才行啊
      

  15.   

    要引用一个输出流的包,在前面加上import java.io.*
      

  16.   

    这个就可以,也很好!
     另外你还可以用什么 scanner Buffer等等来接收!