2016-04-05 11 views
0

私は書籍、本ID、および書籍のジャンルを格納するプログラムを作成しています。 入力に基づいてファイルから行を削除することはできますが、ユーザーが書籍の全ジャンルを削除してしまい、書籍タイトルと書籍IDの両方を入力する必要があります。 JamesandtheGiantPeach#01#Familyのような#で区切られた同じ行にあります。複数の入力を使用する方法はありますか?JOptionPane.showInputDialogこれは、ユーザーが書籍のタイトルとIDの両方を入力する必要があり、その両方の行を削除する必要があるためですか?JAVAは2つの入力に基づいてファイルから行を削除します

私は周りを見回しましたが、スキャナクラスを使用して回答が見つかりましたが、JOptionPaneを使用してそれを行う方法はわかりません。しかし、私はマルチ入力ペインを作成する方法を知っています。

static void removeMovie() throws IOException { 
try { 

    File inFile = new File("books.txt"); 

    if (!inFile.isFile()) { 
    System.out.println("Parameter is not an existing file"); 
    return; 
    } 


    File tempFile = new File("books.txt" + "1"); 

    BufferedReader br = new BufferedReader(new FileReader(inFile)); 
    PrintWriter pw = new PrintWriter(new FileWriter(tempFile)); 

    String line = null; 

    String removeLine = JOptionPane.showInputDialog("Enter line to remove"); 


    while ((line = br.readLine()) != null) { 
    if (!line.trim().contains(removeLine)) { 
    pw.println(line); 
    pw.flush(); 
    } 
    } 

    pw.close(); 
    br.close(); 

    //Delete the original file 
    if (!inFile.delete()) { 
    System.out.println("Could not delete file"); 
    return; 
    } 


    if (!tempFile.renameTo(inFile)) { 
    System.out.println("Could not rename file"); 
    } 

} catch (FileNotFoundException ex) { 
    ex.printStackTrace(); 
} catch (IOException ex) { 
    ex.printStackTrace(); 
} 
} 
} 
+0

私は混乱しているから書籍を削除するには、親から火メソッドを削除することができます。削除する行を入力するようにユーザーに依頼する方法を知っています。だから、メッセージを変更し、削除する書籍のタイトルを入力するように頼んでください。それから2番目のtipeをして、彼/彼女に本IDを入力するように頼んでください。 –

+0

私はちょうどそれを2回することができますが、私は1ペインでそれを行うことができればそれは良いと思う。 – jkjk

+0

次に、あなたはJOptionPaneよりも何かが必要です。実際のJDialogは自分で設計する必要があります。 –

答えて

2

JDialogを使用することをお勧めします。 JDialogを拡張するクラスを作成します。このクラスでは、必要なものを作成できます。 JDialogのはのJFrameやJDialogの持つコンストラクタを持っているので、あなたは親として、あなたのフレームを入れて、確認した後、ファイル

+0

私は 'JOptionPane'を使用して、何かについてユーザに知らせるメッセージを表示するだけです – Victor1125

関連する問題