从文本域中输入一个数据比如说10(用a表示)
接下来用到这个数据a时,比如(for(int i=0;i<a;i++)),为什么会报错

解决方案 »

  1.   

    a 是字符串类型,JAVA“<”没有重载int 和String比较。
      

  2.   

    private int popsize;
    ...
    ......
    JPanel panel= new JPanel();
    panel.add(new JLabel("群体大小:"));
    popSizeField= new JTextField(" ",6);
    panel.add(popSizeField);
    popSizeField.getDocument().addDocumentListener(listener);
    ......
    ......
    popsize= Integer.parseInt(popSizeField.getText().trim());
    ......
    ......
    private String[] initialPops() {
    String[] ipop = new String[100];
    for (int i = 0; i < popsize; i++) {
    ipop[i] = initialPop();
    }
    return ipop;
    }异常
    Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Integer.java:417)
    at ch8.SGAFrame.calculatefitnessvalue(SGATool2.java:176)
    at ch8.SGAFrame.select(SGATool2.java:200)
    at ch8.SGAFrame.process(SGATool2.java:328)
    at ch8.SGAFrame$1.actionPerformed(SGATool2.java:90)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6263)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6028)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
      

  3.   

    转型错误JTextField。。你都设成空,怎么转数字啊???
      

  4.   

    popsize是不是 作为参数传给private String[] initialPops() 这个方法啊
      

  5.   

    你输入的内容是String s,而循环里面的是int类型的,所以就会错了。
    从输入框中拿到这个值之后,首先用int i =Integer.parseInt(s);
      

  6.   

    popSizeField= new JTextField(" ",6);
    改成:
    popSizeField= new JTextField(6);
    这样就可以得到里面的值,如果为数字的话,就可以用Integer.parseInt转换成int型的。
      

  7.   

    JTextField获取里面的值是String类型的,
    在处理的时候要  int temp=Integer.parseInt(从JTextField获得的值);
    再使用for语句做循环
      

  8.   

    java.lang.NumberFormatException: nullphraseInt()参数格式错误.
      

  9.   

    java.lang.NumberFormatException数据格式错误
      

  10.   


    1、保证文本框中只有数字2、转换:  int b = Integer.parseInt(a);
      

  11.   

    呵呵,要通过事件处理,如
    button.addActionListener(new ActionListener() {
        public void proformAction(..evnt e) {
            //这里处理你的逻辑
            int popsize= Integer.parseInt(popSizeField.getText().trim());//读信息
             
        }
    })