2016-11-25 20 views
0

現在、Javaを使用して簡単なCRUDを作成しようとしています。私は、Connect to mySQL Databaseという別のクラスを作った。私はJFrameを作成し、そのクラスを私のJFrameにバインドするためにextendsを使いました。私はまたのいくつかの機能を選択したときに開く "FormCadastro"と呼ばれるJDialogを作成しました。この時点ですべてが正常に機能しています。JDialogJFrameから出てきますが、JDialogクラスは "ConnectDataBase"ユーザーが「登録」をクリックしてJDialog TextFieldsから私のデータベースにデータを送信するときにアクセスする必要があります。JDIALOG他のクラスが表示されない

のJDialogクラス

JButton OkBtn = new JButton("Cadastrar"); 

OkBtn.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) 
    { 
     String query = "INSERT INTO dados_pessoais(Codigo, Nome, SobreNome, Endereco, Numero, Bairro, Cidade, UF, Email, Celular, Telefone) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
     PreparedStatement stmt = con.prepareStatement(query); 
     //JDialog does not see "con" variable and PreparedStatement class even if i import it using import Classes.ConnectDataBase, 
    } 
}  

私は

public class FormCadastro extends JDialog 

JDialogの代わりにextends ConnectDataBaseを使用している場合、私は、エラーの多くを得るので、私は、そのデータベースにアクセスするために何をすべきか分かりません私のJDialogの クラス。

ConnectDataBaseクラス

public class ConnectDataBase 
{ 
    private Connection con = null; 
    private ResultSet rs = null; 

    public void ConnectDataBase() throws ClassNotFoundException 
    { 
     try 
     { 
      Class.forName("com.mysql.jdbc.Driver"); 
      this.con = DriverManager.getConnection("jdbc:mysql://localhost:3306/usuarios", "root", "admin"); 
      JOptionPane.showMessageDialog(null, "Conexão com o Banco de Dados bem sucedida"); 
     } 
     catch(Exception e) 
     { 
      JOptionPane.showMessageDialog(null, "Erro ao tentar conectar ao Banco de Dados", "Erro de Conexão", JOptionPane.ERROR_MESSAGE); 
     } 
    } 
} 

答えて

1

あなたがConnectDataBaseの機能を使用するようにJDialogの-拡張クラスをしたい場合は、おそらくそのコンストラクタやセッターを経て、JDialogのクラスに生きConnectDataBaseを渡す必要があります方法。輸入を使用しても、魔法のように能力を与えることはありません。 の構成を使用する必要があります。例えば

public class FormCadastro extends JDialog { 
    private ConnectDataBase connectDataBase; 

    public FormCadastro(ConnectDataBase connectDataBase) { 
     this.connectDataBase = connectDataBase; 

     JButton OkBtn = new JButton("Cadastrar"); 
     OkBtn.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       String query = "INSERT INTO dados_pessoais (Codigo,Nome,SobreNome,Endereco,Numero,Bairro,Cidade,UF,Email,Celular,Telefone) VALUES (?,?,?,?,?,?,?,?,?,?,?)"; 

       // use public methods of your connectDataBase object here 
      } 
     }); 
    } 
} 
+0

おかげでこれではまだ立ち往生イム; / –

関連する問題