【问题标题】:number of check boxes depending on number of columns复选框的数量取决于列数
【发布时间】:2018-11-13 16:15:01
【问题描述】:

如何根据表格的列数添加复选框?

我有一个组合框,我可以在其中从数据库中选择一个表,程序将根据您选中的复选框进行选择。 我知道如何获取列数,但我不知道如何制作与该数字一样多的复选框。 数字因组合框(表格)上选择的项目而异 使用 JFrame 的复选框:

JComboBox<String> tabla = new JComboBox();
tabla.setBounds(10, 650, 200, 25);

    tabla.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            if (tabla.countComponents() > 0) {
                item_sel = tabla.getSelectedItem().toString();
                try {
                    ResultSet rs1 = stmt.executeQuery("select * from "+item_sel);
                    ResultSetMetaData rsmd = (ResultSetMetaData) rs1.getMetaData();
                    int columnsNumber = rsmd.getColumnCount();
                    for(int i = 0; i<= columnsNumber-1; i++) {
                        //here I add comboBox
                    }
                } catch (SQLException e2) {
                    // TODO Auto-generated catch block
                    System.out.println(e2);
                }


            }

        }
    });

另外:如何在每个组合框中设置不同的边界?

【问题讨论】:

  • 为什么不像for(int i = 0; i &lt; numberOfColumns; ++i) // create a checkbox这样简单?
  • 好的,我知道如何使用 sql 知道列数,但是...如何将该数字保存到变量中?我的意思是:ResultSet rs1 = stmt.executeQuery("select count(*) from Information_Schema.Columns where Table_Name = '" + item_sel +"'");但现在如何保存该结果集? int number = rs1.getInt(Something);?
  • 所以你的问题更多是关于如何从数据库中获取行数或列数?
  • 不,我的意思是我知道如何获得那个号码,但我不知道如何创建与那个号码一样多的复选框

标签: java checkbox


【解决方案1】:

如果是oracle,您可以通过在where 子句中传递table_name 从user_tab_columns 表中获取列名列表。遍历列表,可以使用列名创建您的复选框。

对于独立于数据库的解决方案,您可以使用 JDBC ResultSet 来获取列数。参考get columns number from ResultSetMetaData

希望对你有帮助

【讨论】:

  • 好的,我明白了,现在.. 使用 Marlin 所说的 for 循环.. 如何为每个复选框设置不同的名称?或者我真的不需要不同的名字?
  • 这完全取决于您的需求。如果要针对每个复选框显示列的名称,只需在循环内使用列的名称初始化新的 JCheckbox。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 2019-01-19
  • 1970-01-01
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 2020-08-25
相关资源
最近更新 更多