2016-11-25 1 views
0

현재 Java를 사용하여 간단한 CRUD를 작성하려고합니다. mySQL 데이터베이스에 연결하는 별도의 클래스를 만들었습니다. 그런 다음 JFrame을 만들고 확장을 사용하여 해당 클래스를 내 JFrame에 바인딩합니다. 또한 JDialog "FormCadastro"라는 사용자가 JMenu에서 일부 기능을 선택했을 때 열립니다.이 시점에서 모든 것이 정상적으로 작동하고 있습니다. JDialogJFrame에서 나타납니다. 그러나 문제는 JDialog 클래스가 내 "ConnectDataBase"클래스를보고 있지 않다는 것입니다. 사용자가 "등록"을 클릭하여 데이터를 JDialog TextFields에서 내 데이터베이스로 보낼 때 액세스해야합니다. 내가JDIALOG 다른 클래스가 표시되지 않습니다.

public class FormCadastro extends JDialog 

에서 JDialog의 장소에서 extends ConnectDataBase를 사용하는 경우

되는 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, 
    } 
}  

나는 많은 오류를 얻을, 그래서 나는 그 데이터베이스에 액세스하기 위해 무엇을 해야할지하지 않습니다 내 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

당신은 당신이 아마 생성자 또는 세터를 통해, JDialog의 클래스로 실행 가능한 ConnectDataBase을 통과해야의 ConnectDataBase의 기능을 사용하는 클래스를 JDialog를 연장하려면 방법. 수입품을 사용하는 것은 마술처럼 능력을 부여하지 않습니다. 구성을 사용해야합니다. 예를 들어,

,

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

감사하지만,이에 아직 붙어 메신저 / –

관련 문제