【问题标题】:Refresh JTable after insert插入后刷新 JTable
【发布时间】:2025-11-29 20:35:02
【问题描述】:

我正在编写管理足球运动员和俱乐部的应用程序 在尝试了很多想法之后,我真的停了下来,我找不到任何解决方案。

简单地说:我有一个JTable,我想在完成任何任务(插入、更新或删除)之后刷新它。

这是代码

    //for fill the JTable
    // class controllApp

        class controllApp(){

        public DefaultTableModel getCleubData() {
                Vector<Vector<String>> data = new Vector<Vector<String>>();
                Vector<String> colum = new Vector<String>();
                colum.add("id_c");
                colum.add("coach");
                colum.add("nom_cleub");
                colum.add("DATE_CREATION");
                colum.add("COULEUR_MAILLOT");
                colum.add("COUNTRY");

                String query = "select id_c,coach,nom_cleub,date_creation,couleur_maillot,country from CLEUB ORDER BY ID_C";

                try {
                    Connection conn = ReportDriver.connectDB(DB_CONNECTION, DB_USER,
                            DB_PASSWORD);
                    stmt = conn.createStatement();
                    ResultSet rs = stmt.executeQuery(query);
                    while (rs.next()) {

                        Vector<String> vstring = new Vector<String>();

                        vstring.add(rs.getString("id_c"));
                        vstring.add(rs.getString("coach"));
                        vstring.add(rs.getString("nom_cleub"));
                        java.sql.Date date = rs.getDate("date_creation");
                        java.text.DateFormat df = java.text.DateFormat.getDateInstance();
                        vstring.add(df.format(date));
                        vstring.add(rs.getString("couleur_maillot"));
                        vstring.add(rs.getString("country"));
                        vstring.add("\n\n\n\n\n\n\n");

                        data.add(vstring);
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    if (stmt != null) {
                        try {
                            stmt.close();
                        } catch (SQLException ex) {

                        }
                    }
                }
                DefaultTableModel d = new DefaultTableModel(data, colum);
                return d;
            }

        }




        //fill frame in other class (frame classe)
        // class frame() to call controllAPP.getJoueurdata()    



        class frame(){

        private static JTable table1;
        AbstractTableModel model;
                model = new controllApp().getJoueurData();
                table1 = new JTable(model);
                JScrollPane scrollPane = new JScrollPane(table1);
                scrollPane.setBounds(6, 29, 807, 297);
                panel.add(scrollPane);
    }

【问题讨论】:

  • 为了尽快获得更好的帮助,请发布MCVE(最小、完整、可验证的示例)。硬编码一些数据以分解数据库。
  • scrollPane.setBounds(..) 1) Swing GUI 可能必须在不同的平台上工作,使用不同的 PLAF,在不同的屏幕尺寸和分辨率上使用不同的字体大小默认设置。因此,它们不利于组件的精确放置。而是使用布局管理器,或 combinations of layout managers 以及 layout padding and borders 用于空白。 2) 使用逻辑一致的代码格式风格!代码缩进旨在帮助人们遵循程序流程。
  • 哦,但是对于一个表格,我们通常会更新 表格模型,其余的都是自动的。
  • 您对(插入、更新、删除)要求的哪一部分有疑问?是jdbc部分吗?它是GUI部分吗?两者都有吗?你有尝试过吗?
  • 问题出在 gui 部分

标签: java swing insert jtable refresh


【解决方案1】:

解决方法是获取Jtable的Model,然后添加Vector数据,然后你必须将模型设置为现有的JTable。

【讨论】:

  • 请提供更完整的示例。发送。