Java:单击按钮时的 JDBC 连接问题
Posted
技术标签:
【中文标题】Java:单击按钮时的 JDBC 连接问题【英文标题】:Java : JDBC Connection Issue When Click On Button 【发布时间】:2015-12-19 17:11:38 【问题描述】:我在这个程序中遇到了一个问题,有两个GUI's
。当用户单击按钮时,它会在连接成功时检查数据库连接,然后出现第二个GUI
,其中有JComboBox
。但问题是它没有在JComboBox
中显示mysql
的目录。
主要方法:
public class Main
public static void main(String[] args)
Gui obj = new Gui();
第一桂
public class Gui extends JFrame
Connector c = new Connector();
private JButton b1;
public Gui()
b1 = new JButton("Click To Connect");
b1.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent arg0)
if (c.getConnect() == true)
dispose();
new Gui2();
);
add(b1);
setLayout(new FlowLayout());
setSize(300, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
连接类
public class Connector
private Connection conn;
public boolean getConnect()
try
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/", "john", "root");
catch (Exception e)
JOptionPane.showMessageDialog(null, e.getMessage());
if (conn == null)
System.out.println("Connection Failed");
return false;
System.out.println("Connection Success");
return true;
组合框图形用户界面
public class Gui2 extends JFrame
private JComboBox box;
Connection connection;
public Gui2()
box = new JComboBox();
opencatalog();
add(box);
setLayout(new FlowLayout());
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
private void opencatalog()
try
DatabaseMetaData meta = connection.getMetaData();
ResultSet rs = meta.getCatalogs();
List ct = new ArrayList();
while (rs.next())
ct.add(rs.getString(1));
rs.close();
box.setModel(new DefaultComboBoxModel(ct.toArray()));
box.setSelectedItem(connection.getCatalog());
box.setEnabled(ct.size() > 0);
catch (Exception e)
System.out.println(e.toString());
box.setEnabled(false);
【问题讨论】:
你从哪里得到Gui2
的连接。
既然你总是打电话给box.setEnabled(false)
,那你怎么知道JComboBox里面有什么?
@Satya 我从连接器类获得连接
我在Gui2
课堂上提问。
@VGR 我想说连接没有连接到JComboBox
【参考方案1】:
Connector
类
将return
类型更改为Connection
和return
conn
。
public Connection getConnect()
....
return conn
Gui
类,改变条件
public void actionPerformed(ActionEvent arg0)
Connection conn= c.getConnect();
if (conn!=null)
new Gui2(conn);//pass connection object here
dispose();
Gui2
类,构造函数应该是
public Gui2(Connection conn)
connection=conn;
box = new JComboBox();
.................
Gui2
类,
box.setEnabled(true);//should be enabled,
【讨论】:
连接=c.getConnect();给出错误,因为 getConnect() 方法 Return boolean 所以将return
类型更改为Connection
和return conn
。
删除那个条件c.getConnect()
但是框架会打开我希望当按钮点击连接变为真时它会自动打开
感谢您的帮助我理解以上是关于Java:单击按钮时的 JDBC 连接问题的主要内容,如果未能解决你的问题,请参考以下文章