使用JOptionPane接收用户的输入

时间:2011-04-17 17:28:12

标签: java joptionpane

这是我的原始代码,提示用户输入文件名。但是,用户必须在控制台内写入才能工作。

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter file name: ");
        String filename = bf.readLine();
        File file = new File(filename);
        if (!filename.endsWith(".txt")) {
            System.out.println("Usage: This is not a text file!");
            System.exit(0);
        } else if (!file.exists()) {
            System.out.println("File not found!");
            System.exit(0);
        }

现在我想创建一个JOptionPane来提示用户在窗格内输入。 这是我的代码。

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        JFrame frame = new JFrame();
        Object result = JOptionPane.showInputDialog(frame, "Enter a blog website");
        String word2 = (String) result;
        word2 = bf.readLine();
        File file = new File(word2);
        if (!word2.endsWith(".txt")) {
            System.out.println("Usage: This is not a text file!");
            System.exit(0);
        } else if (!file.exists()) {
            System.out.println("File not found!");
            System.exit(0);
        }

有一些进一步的编码接收用户的输入并处理它们。然而,在创建了joptionpane后,没有任何反应。 joptionpane出来了,但在输入后输入,没有任何反应。记住我的错误在哪里?

1 个答案:

答案 0 :(得分:2)

您在阅读后会覆盖该值。

    Object result = JOptionPane.showInputDialog(null, "Enter a blog website");
    String word2 = (String) result;

    File file = new File(word2);
    if (!word2.endsWith(".txt")) {
        System.out.println("Usage: This is not a text file!");
        System.exit(0);
    } else if (!file.exists()) {
        System.out.println("File not found!");
        System.exit(0);
    }

如果您使用的是JOptionPane,那么您不需要BufferedReader。