2016-11-25 3 views
0

В настоящее время я пытаюсь написать простой CRUD с использованием Java. Я создал отдельный класс для подключения к базе данных mySQL. Затем я создал JFrame, и я использовал расширения для привязки этого класса к моему JFrame. Я также создал JDialog под названием «FormCadastro», который открывается, когда пользователь выбирает какую-либо функцию в JMenu, на этом этапе все работает нормально, JDialog появляется от JFrame, но проблема в том, что класс 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, 
    } 
}  

Если я использую extends ConnectDataBase в месте JDialog на

public class FormCadastro extends JDialog 

Я получаю много ошибок, поэтому я не знаю, что нужно сделать, чтобы получить доступ к этой базе данных класс в моем 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

Спасибо, но им все же застряли в этом; / –

Смежные вопросы