2016-04-05 13 views
0

Kitapları depolayan, kitap kimliği yazan ve Kitapla ilgili bir program oluşturuyorum. Bir girdiden yola çıkarak bir dosyadaki satırları kaldırabiliyorum, ancak kullanıcının bir kitap türünü silmesine neden olabileceğinden, kullanıcının hem kitap başlığını hem de kitap kimliğini girmesi gerekir. JamesandtheGiantPeach # 01 # Family gibi # ile sınırlandırılmış aynı satırda olun. Birden çok giriş JOptionPane.showInputDialog kullanmam için bir yol var mı, böylece kullanıcının hem kitap başlığını hem de kimliğini girmesini ve ardından her ikisinin satırını bir satırda olmasını gerektiriyor mu?JAVA, 2 girişe dayalı dosyadan satırı kaldırma

Etrafa baktım ve tarayıcı sınıfını kullanarak bir yanıt buldum ancak JOptionPane'u kullanarak nasıl yapılacağını bilmiyorum. Bununla birlikte, çok girişli bir panelin nasıl oluşturulacağını biliyorum.

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

dosyamdan kafam karıştı. Kullanıcının kaldırılacak bir satır girmesini nasıl isteyeceğinizi biliyorsunuz. Bu yüzden, sadece mesajı değiştirin ve kaldırılması için bir kitap başlığı girmesini isteyin. Sonra bunu ikinci bir tipe yapın ve kitap kimliğine girmesini isteyin. –

+0

Biliyorum, iki kere yapabilirim, ama 1 bölmede yapabiliyorsam daha iyi görünüyor. – jkjk

+0

O zaman JOptionPane'den daha önemli bir şeye ihtiyacınız var: kendiniz tasarlamanız gereken gerçek bir JDialog. –

cevap

2

JDialog'u kullanmanızı öneririz. JDialog'u genişleten sınıf oluşturun. Bu sınıfta ne istersen yaratabilirsiniz. JDialog JFrame ve JDialog ile kurucuya sahiptir, böylece çerçevenizi ebeveyne atabilirsiniz ve onayladıktan sonra ebeveynden yangın yöntemini silme onaylamak için

+0

Ben sadece bir şey hakkında kullanıcıyı bilgilendirmek için mesaj göstermek için 'JOptionPane' kullanıyorum – Victor1125

İlgili konular