2016-11-25 59 views
0

我目前正在尝试使用Java编写一个简单的CRUD。我已经创建了一个单独的类来连接到mySQL数据库。然后,我创建了一个JFrame,我用这个扩展将该类绑定到了我的JFrame。我还创建了一个名为“FormCadastro”的JDialog,当用户在JMenu中选择某个函数时打开,此时一切工作正常,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, 
    } 
}  

如果我在JDialog的地方在

public class FormCadastro extends 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

如果你希望你的JDialog,继承类使用ConnectDataBase的功能,那么你有一个可行ConnectDataBase传递到JDialog类的,也许在它的构造函数或通过一个setter方法。使用导入不会神奇地授予能力。您需要使用构图

例如,

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

谢谢,但尚未即时卡住在此; / –