0

だから私がやろうとしているのは、プライマリIDJTextFieldを入力して続行をクリックすると、そのプライマリ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);
    }
}
4

1 に答える 1

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");
于 2013-06-05T17:03:49.447 に答える