JDIALOG没有看到其他类
问题描述:
我目前正在尝试使用Java编写一个简单的CRUD。我已经创建了一个单独的类来连接到mySQL数据库。然后,我创建了一个JFrame
,我用这个扩展将该类绑定到了我的JFrame
。我还创建了一个名为“FormCadastro”的JDialog
,当用户在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,
}
}
如果我在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);
}
}
}
答
如果你希望你的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
}
});
}
}
谢谢,但尚未即时卡住在此; / –