2013-06-05 41 views
0

那麼我現在要做的是進入一個JTextField,當我在一個JTextField進入主ID,點擊繼續,它會採取主ID並將其存儲爲一個新的記錄在另一張桌子。 單擊繼續時發生的情況是,它會將您帶到另一個應用程序,其中主要ID是將顯示在上一個應用程序中。如何從另一個類

我的問題在於它不會讓我顯示文本。我的錯誤說:

non-static variable pat_id cannot be referenced from a static context 

如何繞過這個?

這裏是我的代碼:

private void proceedActionPerformed(java.awt.event.ActionEvent evt) {           
    try { 

     String sql = "Insert into medicalRec (patient_id)" + " values (?)"; 

     pst = conn.prepareStatement(sql); 
     pst.setInt(1, Integer.parseInt(pat_id.getText())); 
     pst.execute(); 
     new medRec().setVisible(true); 

     String sql2 = "select * from PATIENT where patient_id=?"; 
     pst = conn.prepareStatement(sql2); 
     rs = pst.executeQuery(); 
     rs = pst.executeQuery(); 
     if (rs.next()) { 

      String add0 = rs.getString("patient_id"); 
      medRec.pat_id.setText(add0); 
     } 

    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
    } 
} 
+0

什麼行號是您的例外呢? – cogsmos

+0

看看下面的問題可以通過你自己解決你的問題。 [非靜態變量不能從靜態上下文中引用](http://stackoverflow.com/questions/2559527/non-static-variable-cannot-be-referenced-from-a-static-context) – Smit

+1

也是什麼這個'new medRec()。setVisible(true);'看起來像是在創建一個'medRec'的實例,並立即將其設置爲可見而不會保留對該記錄的任何引用。 – cogsmos

回答

0

混亂這裏似乎​​與你的MedRec類。如果沒有看到所有的代碼,我可以打賭,MedRec的是一個類名和pat_id是一個實例變量,它看起來是這樣的:

public class medRec { 
    ... 
    public JTextField pat_id = new JTextField(); 
    ... 
    public void setVisible(boolean b){ ... } 
} 

這意味着你應該先獲取類的一個實例,將其保存爲變量和操作調用setVisible和pat_id上像這樣的:

medRec mr = new medRec(); 
mr.setVisible(true); 
mr.pat_id.setText("abc");