我有一些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);
?
答案 0 :(得分:3)
你需要一个像Map这样的数据结构来映射你的复选框和表格......我通常使用SWT,你在每个GUI组件中都有一个地图来存储你想要的东西,但据我所知,你没有这个在awt中,所以你需要手动执行...(我假设你使用的是awt,虽然awt中的CheckBox类实际上是Checkbox而不是CheckBox !!!) 最重要的是,您需要将一些数据绑定到GUI组件,以便稍后在代码中识别它们... 我会用地图:
Map<Checkbox, String> checkToTableId;
Map<String, Checkbox> tableIdToCheck;
在创建支票时建立它们......
答案 1 :(得分:2)
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();