Java Swing自定义组件

Java Swing自定义组件,java,database,swing,data-binding,Java,Database,Swing,Data Binding,我想使用swing创建自定义组件。我还想将数据库连接到该组件 我想做的事 我想创建一个自定义的JComboBox。该组合框名称为仓库。此外,数据库中的所有仓库都应该绑定到该组合框 当我设计表单时,我可以将该组合框用于仓库。当我运行该程序时,所有仓库将自动加载到combo。因为该组合具有装载仓库的内部机制。(我怎么写那东西?) 如何做到这一点?我在使用SQL数据库时也做过类似的事情。 使用数据库时,需要使用ResultSet接口运行查询,并使用Statement类创建语句 public void

我想使用swing创建自定义组件。我还想将数据库连接到该组件

我想做的事

我想创建一个自定义的
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组件。两者都不是一个好主意。我发现这是一个学习的好起点。但我明白你的意思。只是分享我的经验。