import javax.swing.*;
import java.util.*;public class Infinity {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("输入你的名字:");
        String nameA = in.next();
        System.out.println(nameA);
//第二种输入
        String nameB = JOptionPane.showInputDialog("输入你的名字:");
        System.out.println(nameB);
    }
}
为什么第二种输入无法正常执行下去,而将两段顺序换一下,就可以正常执行?
import javax.swing.*;
import java.util.*;public class Infinity {
    public static void main(String[] args) {
        String nameB = JOptionPane.showInputDialog("输入你的名字:");
        System.out.println(nameB);
    }
}

解决方案 »

  1.   

    import javax.swing.*; 
    import java.util.*; public class Infinity { 
        public static void main(String[] args) { 
             //这样可以正常执行
             String nameB = JOptionPane.showInputDialog("输入你的名字:"); 
            System.out.println(nameB);         Scanner in = new Scanner(System.in); 
            System.out.println("输入你的名字:"); 
            String nameA = in.next(); 
            System.out.println(nameA);
        } 
    }
      

  2.   

    是哦,我改成:
    public static void main(String[] args) {
    String a = "aa";
    Scanner in = new Scanner(a);
    System.out.println("1:");
    String nameA = in.nextLine();
    in.close();
    System.out.println(nameA); String nameB = JOptionPane.showInputDialog("2:");
    System.out.println(nameB); }
    就运行下去了 用system.in的话貌似我加了in.close(); 它还是出于可以输入状态一直在等待输入。但它确实是close了,因为执行其他方法它就报Scanner close。但close了为什么还出入等待输入状态呢?这我就不知道了。HOHO。
      

  3.   

    io和sql大多数都需要close()掉的