CheckBox监听器

时间:2011-09-22 12:34:56

标签: java sql checkbox

我有一些CheckBoxes,它们由我的数据库表名

组成
    if(event.getSource()==connect){
        CheckBox check;
        Connection connection = null;
        try {
            Class.forName("org.postgresql.Driver");
            String url = "jdbc:postgresql://localhost:5432/db";
            String username = "username";
            String password = "password";
            connection = DriverManager.getConnection(url, username, password);

            // Gets the metadata of the database
            DatabaseMetaData dbmd = connection.getMetaData();
            String[] types = {"TABLE"};

            ResultSet rs = dbmd.getTables(null, null, "%", types);
            while (rs.next()) {

                String tableCatalog = rs.getString(1);
                String tableSchema = rs.getString(2);
                String tableName = rs.getString(3);
                check = new CheckBox(tableName);
                Tables.addComponent(check);
            }
        } catch (SQLException e) {
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Tables.addComponent(generate);
    }

现在让我说我得到10个复选框(使用不同的名称)。我怎么知道它们被检查了?

e.g。我复选框1.5r并点击“打印”按钮如何打印出来?

System.out.println("Checked items : " +check);

2 个答案:

答案 0 :(得分:3)

你需要一个像Map这样的数据结构来映射你的复选框和表格......我通常使用SWT,你在每个GUI组件中都有一个地图来存储你想要的东西,但据我所知,你没有这个在awt中,所以你需要手动执行...(我假设你使用的是awt,虽然awt中的CheckBox类实际上是Checkbox而不是CheckBox !!!) 最重要的是,您需要将一些数据绑定到GUI组件,以便稍后在代码中识别它们... 我会用地图:

Map<Checkbox, String> checkToTableId;
Map<String, Checkbox> tableIdToCheck;

在创建支票时建立它们......

答案 1 :(得分:2)

使用CheckboxGroup

CheckboxGroup cbg=new CheckboxGroup();

按如下方式添加CheckboxGroup

while (rs.next()) {
   String tableCatalog = rs.getString(1);
   String tableSchema = rs.getString(2);
   String tableName = rs.getString(3);
   Tables.addComponent(new Checkbox(tableName,cbg,false););
}

,您将获得所选的值。

String value = cbg.getSelectedCheckbox().getLabel();