Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数据库中的所有记录显示到JTable?_Java_Mysql_Swing_Jtable - Fatal编程技术网

Java 如何将数据库中的所有记录显示到JTable?

Java 如何将数据库中的所有记录显示到JTable?,java,mysql,swing,jtable,Java,Mysql,Swing,Jtable,对不起。我想在JTable中显示所有记录。但是我很困惑,因为我的代码只显示了一条记录。当我再次单击它时,它只显示相同的记录。 你能帮我怎么得到所有的记录吗 try { Statement stmt; stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM menu"); if (rs.next())

对不起。我想在JTable中显示所有记录。但是我很困惑,因为我的代码只显示了一条记录。当我再次单击它时,它只显示相同的记录。 你能帮我怎么得到所有的记录吗

try {

            Statement stmt;
            stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM menu");

            if (rs.next()) {
                String menu_id = rs.getString("menu_id");
                String menu_type = rs.getString("menu_type");
                String menu_cat = rs.getString("menu_cat");
                String menu_name = rs.getString("menu_name");
                String menu_price = rs.getString("menu_price");

                DefaultTableModel model = (DefaultTableModel) tblMenu.getModel();
                model.addRow(new Object[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
            }

        } catch (Exception e) {
            System.out.println("Failed " + e);
        }
        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
我不知道怎么编码。谢谢你的改变

if (rs.next())
        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
不只是运行一次代码块,而是一直运行到结果集的末尾

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
实际上应该是这样的

DefaultTableModel model = (DefaultTableModel) tblMenu.getModel();
while (rs.next()) {
    String menu_id = rs.getString("menu_id");
    String menu_type = rs.getString("menu_type");
    String menu_cat = rs.getString("menu_cat");
    String menu_name = rs.getString("menu_name");
    String menu_price = rs.getString("menu_price");

    model.addRow(new Object[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
}
        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
改变

if (rs.next())
        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
不只是运行一次代码块,而是一直运行到结果集的末尾

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
实际上应该是这样的

DefaultTableModel model = (DefaultTableModel) tblMenu.getModel();
while (rs.next()) {
    String menu_id = rs.getString("menu_id");
    String menu_type = rs.getString("menu_type");
    String menu_cat = rs.getString("menu_cat");
    String menu_name = rs.getString("menu_name");
    String menu_price = rs.getString("menu_price");

    model.addRow(new Object[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
}
        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
试试这个

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
试试这个

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
您已经使用了ifrs。接下来,您知道如果条件已检查,那么它是否为真

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
下一站

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
将光标从数据库移到结果集的下一行,如果有行,则返回true,否则返回false。结合if语句而不是while,这意味着您只需要一行。简单地说

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
下一站

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
如果条件已通过,则检查下一行是否存在,并执行代码块并从该块中退出运行其余代码

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
关于遍历数据库表并将所有内容添加到jTable的具体问题。您只需更改一个关键字

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
如果要

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
如果使用while关键字,则会发生什么情况?如果关键字为rs.next,则检查下一行;如果为true,则while循环的条件为true,并遍历代码块;当代码块完成时,再次检查下一行。同样地,检查表中的所有行,条件将在最后一行之后失败。

您已经使用了ifrs。接下来,您知道如果条件已检查,则它是真还是假

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
下一站

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
将光标从数据库移到结果集的下一行,如果有行,则返回true,否则返回false。结合if语句而不是while,这意味着您只需要一行。简单地说

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
下一站

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
如果条件已通过,则检查下一行是否存在,并执行代码块并从该块中退出运行其余代码

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
关于遍历数据库表并将所有内容添加到jTable的具体问题。您只需更改一个关键字

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);
如果要

        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);

如果使用while关键字,则会发生什么情况?如果关键字为rs.next,则检查下一行;如果为true,则while循环的条件为true,并遍历代码块;当代码块完成时,再次检查下一行。同样,检查表中的所有行,条件将在最后一行之后失败。

并且不要使用while循环创建新的DefaultTableModel如果我删除它,代码将要求我创建字段/类模型@MadProgrammer@enjeru是的,但不需要在循环的每次迭代中创建新的DefaultTableModel,如果您只是简单地将if替换为'while',就会发生这种情况。答案的更新说明了正确的想法。我明白了。抱歉,我忘记了如果我将它放在循环语句--@madprogrammer中,并且不使用while循环创建新的DefaultTableModel。如果我删除它,代码将要求我创建字段/类模型@MadProgrammer@enjeru是的,但不需要在循环的每次迭代中创建新的DefaultTableModel,如果您只是简单地将if替换为'while',就会发生这种情况。答案的更新说明了正确的想法。我明白了。抱歉,我忘记了我是否将它放在循环语句--@madprogrammer中,但我感到困惑,因为我的代码只显示了一条记录,为什么您认为您的代码应该将所有记录放在表中?您认为代码的哪一部分应该确保这一点?因为我想显示菜单,所以必须全部显示。因此,收银员将更容易做到这一点@但是我很困惑,因为我的代码只显示了一条记录,为什么你们认为你们的代码应该把所有记录都放在表中?您认为代码的哪一部分应该确保这一点?因为我想显示菜单,所以必须全部显示。因此,收银员将更容易做到这一点@我必须对数据库做同样的事情,这就是我所做的。主要的优点是,您可以在表的顶部看到列名。我必须对数据库执行相同的操作,这就是我所做的。主要优点是可以在表的顶部看到列名
        String[] cols={"id","type","cat","name","price"};
        ArrayList<String[]> list = new ArrayList<String[]>();
        while (rs.next()) {
            String menu_id = rs.getString("menu_id");
            String menu_type = rs.getString("menu_type");
            String menu_cat = rs.getString("menu_cat");
            String menu_name = rs.getString("menu_name");
            String menu_price = rs.getString("menu_price");
            list.add(new String[]{menu_id, menu_type, menu_cat, menu_name, menu_price});
        }

        String[][] elts= new String[list.size()][];
        elts = list.toArray(elts);
        JTable table = new JTable(elts,cols);
        JScrollPane pane = new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,  JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        frame.getContentPane().add(pane);