java - JTable 不显示输出

标签 java swing jdbc jtable

这是我的代码:

private void show(java.awt.event.ActionEvent evt) {
    Connection conn = null;
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "phone";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "school";
    try {
        Class.forName(driver).newInstance();
        conn = DriverManager.getConnection(url + dbName, userName, password);
        PreparedStatement pStmt = conn.prepareStatement("SELECT * FROM contacts");
        ResultSet rs = pStmt.executeQuery();
        JFrame frame1 = new JFrame();
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame1.setSize(300, 150);
        frame1.setVisible(true);
        while (rs.next() == true) {

            Object rowData[][] = {{"Name"},
                {"Phone"}};
            Object columnNames[] = {"Column One", "Column Two"};
            JTable table = new JTable(rowData, columnNames);
            JScrollPane scrollPane = new JScrollPane(table);
            frame1.add(scrollPane, BorderLayout.CENTER);


        }
        rs.close();
        pStmt.close();
        conn.close();
    } catch (Exception ex) {
        System.out.println(ex);
    }
}

我想在单独的窗口中显示记录,但它显示空白屏幕。有任何更正建议吗?

最佳答案

            Vector columnNames = new Vector();
            Vector data = new Vector();                 
            try{
            Connection conn = null;
            DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
            conn = DriverManager.getConnection(
            "jdbc:oracle:thin:@localhost:1521:XE","yedal ","yedal121288");
            Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery("");            
                ResultSetMetaData meta=rs.getMetaData();                
                int columns = meta.getColumnCount();
                for (int i = 1; i <= columns; i++) 
                {
                    columnNames.addElement( meta.getColumnName(i) );
                }
                while (rs.next()) 
                { 
                    Vector row = new Vector(columns);
                    for (int i = 1; i <= columns; i++)
                    {
                        row.addElement( rs.getObject(i) );
                    }   
                    data.addElement( row );
                }
                rs.close();
                stmt.close();
                } 
             catch (SQLException ex) { 
                ex.printStackTrace(); 
                } 
             t= new JTable(data, columnNames); t.setVisible(true);             
             TableColumn col; 
             for (int i = 0; i < t.getColumnCount(); i++) 
             {
                 col = t.getColumnModel().getColumn(i);
                 col.setMaxWidth(200);
             } 
             JScrollPane scrollPane = new JScrollPane(t);

关于java - JTable 不显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6552062/

相关文章:

java - JAVA并行处理

Java JNLP 桌面快捷方式和图标

java - 使用 Swing 计时器和 ImageIcons

mysql - 在 JRuby 上使用 ActiveRecord 对 MariaDB 的首次查询需要 5 分钟以上才能执行

jdbc - wildfly - 安装 postgres 驱动程序 jar

java - 如何在 Java 8 中使用对方付费电话?

java - 使用 Spring Boot 2 实现 OAuth 的 JPA TokenStore

java - 寻找像素位置

java - 用于文件选择的 Clojure 对话框,带有文件扩展名过滤器

java - EntityManager native 查询语法?