используя JOptionPane для получения ввода пользователя - PullRequest
1 голос
/ 17 апреля 2011

Это мой оригинальный код, который предлагает пользователю ввести имя файла. Тем не менее, пользователь должен написать внутри консоли, чтобы работать.

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 Ответ

2 голосов
/ 17 апреля 2011

Вы перезаписываете значение после его прочтения.

    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.

...