Java Swing自定义组件
我想使用swing创建自定义组件。我还想将数据库连接到该组件 我想做的事 我想创建一个自定义的Java Swing自定义组件,java,database,swing,data-binding,Java,Database,Swing,Data Binding,我想使用swing创建自定义组件。我还想将数据库连接到该组件 我想做的事 我想创建一个自定义的JComboBox。该组合框名称为仓库。此外,数据库中的所有仓库都应该绑定到该组合框 当我设计表单时,我可以将该组合框用于仓库。当我运行该程序时,所有仓库将自动加载到combo。因为该组合具有装载仓库的内部机制。(我怎么写那东西?) 如何做到这一点?我在使用SQL数据库时也做过类似的事情。 使用数据库时,需要使用ResultSet接口运行查询,并使用Statement类创建语句 public void
JComboBox
。该组合框名称为仓库。此外,数据库中的所有仓库都应该绑定到该组合框
当我设计表单时,我可以将该组合框用于仓库。当我运行该程序时,所有仓库将自动加载到combo。因为该组合具有装载仓库的内部机制。(我怎么写那东西?)
如何做到这一点?我在使用SQL数据库时也做过类似的事情。 使用数据库时,需要使用ResultSet接口运行查询,并使用Statement类创建语句
public void makeCombo() throws SQLException{
public JComboBox warehouse = new JComboBox();
try{
Connection conn = Connect.getConnection();
String query = "Select ?? FROM ??";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
if (rs!=null){
while (rs.next()){
String name = rs.getString(1);
warehouse.addItem(name);
}
}
else{
System.err.println ("Empty combo");
warehouse.addItem("Empty Combo");
}
}
catch(Exception e){
e.printStackTrace();
}
}
这应该使用查询的结果填充仓库组合。不使用自定义的
JComboBox
,而是使用实用程序/工厂方法来构造这样的组合框(或其模型),方法是使用JComboBox
的可用API对其进行自定义。还请注意,数据库连接和Swing组件不应组合在同一个线程上(请参见教程),重点是Swing组件的模型容量。与其说您需要自定义组件,不如说您需要自定义模型。您可能还想看看API,这个示例在EDT上执行数据库查询,或者在工作线程上访问Swing组件。两者都不是一个好主意。我发现这是一个学习的好起点。但我明白你的意思。只是分享我的经验。