2014-05-21 53 views
0

所以基本上來自數據庫的值都是在JTable中獲取並顯示的。如果其中一個字段包含值,我希望彈出窗口出現。例如,我希望如果JTable中的section_name是「Executive Summary」,那麼應該出現一個彈出窗口。但我發現的是,在第12行中,如果條件即使SECTION_NAME不被執行「摘要」。這是如果塊我指的是: -如果if塊中沒有檢查條件

if (section_name.equals("Executive Summary")); 
       { 

        JOptionPane.showMessageDialog(null, "it works", "Error", JOptionPane.ERROR_MESSAGE);  
       } 

每次彈出式窗口。錯誤在哪裏,如何糾正。

ResultSet rs = pst.executeQuery(); 
      int i = 0; 
      while (rs.next()) { 
       section_name = rs.getString("Section_Name"); 
       report_name = rs.getString("Report_Name"); 
       contact_name = rs.getString("Contact_Name"); 
       link = rs.getString("Link"); 
       String m="apple"; 
       model.addRow(new Object[]{section_name, report_name, contact_name, link,m}); 
       i++; 
      } 
      if (section_name.equals("Executive Summary")); 
      { 

       JOptionPane.showMessageDialog(null, "it works", "Error", JOptionPane.ERROR_MESSAGE);  
      } 
      if (i < 1) 
      { 
       JOptionPane.showMessageDialog(null, "No Record Found", "Error", JOptionPane.ERROR_MESSAGE); 
      } 
      if (i == 1) 
      { 
       System.out.println(i + " Record Found"); 
      } else { 
       System.out.println(i + " Records Found"); 
      } 
     } 
     catch (Exception ex) 
     { 
      JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 
     } 
+1

第12行在哪裏?我可以算,但如果你明確地在你的問題 – awksp

+0

@ user3580294中明確提出這個問題,那麼回答者可能會更容易:我編輯了我的問題。我希望現在已經清楚了! :-) – user3608233

+0

是的!只是要記住未來的問題。 – awksp

回答

6

您需要在此行的末尾刪除分號:

if (section_name.equals("Executive Summary")); 

讓它:

if (section_name.equals("Executive Summary")) 
{ 
    .... 
} 

通過讓分號中,它使的它相當於:

if (section_name.equals("Executive Summary")) {} 
{ 
    .... /* always executed */ 
} 
+0

哦,我的上帝!我怎麼看不到它!感到很慚愧! :-) – user3608233

+0

我很高興我抓住了它。這些東西通常會超出我的頭:) – AntonH

+1

@ user3608233可能會配置您的IDE來格式化您的代碼,以便捕獲這種類型的東西。我的配置總是在'if'語句之後加上大括號,所以像這樣的東西將被保存爲'if(condition){; },用分號結尾大括號。這種事情真的很難錯過。 – awksp