2012-05-01 31 views
0

我想保存我在文本框中寫入的任何內容,並在單擊搜索按鈕後刪除程序找到的行。爲什麼它不起作用?這裏是我的兩個按鈕:保存並刪除按鈕不起作用

private class dDelete implements ActionListener { 
    public void actionPerformed (ActionEvent e) { 
     HM.remove((String)result.getText()); 
    } 
} 

private class sSave implements ActionListener { 
    public void actionPerformed (ActionEvent e) {  
    Set <String> ISet = HM.keySet(); 
    Iterator itr = ISet.iterator(); 
    String tuple = ""; 

    java.io.File iwrite = new java.io.File("c:\\temp\\savetest.txt"); 
    if (iwrite.exists()){ 
     System.out.println("The file exists"); 
     System.exit(0); 
    } 
    java.io.PrintWriter output = null; 
    try { 
     output = new java.io.PrintWriter(iwrite); 
    } catch(Exception ex) { 
     ex.printStackTrace(); 
    } 

    while (itr.hasNext()) { 
     String Keys = (String)itr.next(); 
     String val = HM.get(Keys); 
     tuple = Keys + " " + val; 

     output.print(tuple); 
    } 
    } 
} 

回答

3

應關閉輸出作家output.close()這可能是爲什麼。

你沒有顯示你正在添加到設置HM,所以很難判斷刪除是否有效。檢查HM.remove調用的返回值,你會看到它是否成功,否則你使用錯誤的鍵(當添加爲刪除時不使用相同/相等的鍵)。

除此之外,我會建議迭代entrySet,當你需要密鑰和值(HM.entrySet())。

也根據Java命名約定(類以大寫字母開頭,實例變量不應該等)重命名您的類和變量。欲瞭解更多信息。請參閱Java naming conventions

+1

+1 - 我添加了一個鏈接到命名約定的細節。 (好編輯 - 希望有人會很快批准它。) –