私は書籍、本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();
}
}
}
私は混乱しているから書籍を削除するには、親から火メソッドを削除することができます。削除する行を入力するようにユーザーに依頼する方法を知っています。だから、メッセージを変更し、削除する書籍のタイトルを入力するように頼んでください。それから2番目のtipeをして、彼/彼女に本IDを入力するように頼んでください。 –
私はちょうどそれを2回することができますが、私は1ペインでそれを行うことができればそれは良いと思う。 – jkjk
次に、あなたはJOptionPaneよりも何かが必要です。実際のJDialogは自分で設計する必要があります。 –