2011-04-17 101 views
1

這是我的原始代碼,提示用戶輸入文件名。但是,用戶必須在控制檯內寫入才能工作。使用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出來了,但是在輸入之後,沒有任何反應。介意我的錯誤在哪裏?

回答

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。