java - 使用 SQL 表中的值创建 JButton 面板;

标签 java mysql

我想做的是从我的 SQL 表中的列中获取值,特别是名为 SubjectName 的列。获得这些值后,我想创建以 ResultSet 中的每个值命名的 JButton。我当前的代码连接到我的数据库,据我所知,对表的查询也有效,但是当我尝试生成这些按钮并将其添加到我的显示时,try/catch 仅返回我的语句失败。导致问题的代码位于此处:

try
    (
        Statement initializeDisplay = connect.createStatement()
    ){

    ArrayList<String> buttonList = new ArrayList<String>();
    try
    {
        ResultSet rs = initializeDisplay.executeQuery("SELECT SubjectName from subjectpacktable order by SubjectID");
        buttonList = new ArrayList<String>();

        while(rs.next())
        {
            buttonList.add(rs.getString(1));
        }

        ArrayList<JButton> listOfButtons = new ArrayList<JButton>();
        for (int i=0; i < 10; i++) 
        {
            String temp2 = rs.getString(l);
            JButton button1 = new JButton(temp2);
            listOfButtons.add(button1);
            l++;
        }
        l = 0;
        while(listOfButtons.get(l) != null)
        {
            JButton tempButton = listOfButtons.get(l);
            AddCardPanel1.add(tempButton);
            l++;
        }
        while(buttonList.get(l) != null)
        {
            System.out.println(buttonList.get(l));
            l++;
        }
        l = 0;
    }
    catch(SQLException e1)
    {
        System.err.println("Initial Display Failed");
    }} catch (SQLException e2) 
    {
        System.err.println("Initial Display Failed");
    }

我想知道问题是否出在实际从表中检索值或代码中的其他地方是否没有正确分配值。感谢您的帮助。

最佳答案

代替 while 循环,做

for(int i=0;i<buttonList.size();i++)
{
    System.out.println(listOfButtons.get(i).getText());
}

这应该使您的索引保持在数组边界内

关于java - 使用 SQL 表中的值创建 JButton 面板;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26818959/

相关文章:

python - Flask Web 应用程序 : Filter table view by button

java - Jdbc 检查功能 - 保存点释放

java - MVC 多 View 和一个 Controller

java - 调用带有返回通用列表的方法的类型化列表的列表?

MySQL If 条件在 where 子句查询中

当其中一个值等于指定值时,PHP 显示关联数组的值

mysql - 如何同步两个MySQL表?

java - Android ListView 适配器无法与 Parse SDK 一起使用

java - 如何使特定的 header 元素出现在 Java XML 中

php mysql 非平凡表是什么意思?