-1

私はオラクルテーブルを取得してjtableに表示しています。これはjtableを初めて使用するため、何もわかりません。私は調査を行い、さまざまな方法を試しましたが、適切にunderatsndを使用していません..jtableにデータが表示されていません。

        DefaultTableModel model = new DefaultTableModel();
    jTable1 = new javax.swing.JTable(model);

if(evt.getSource()==jButton2){

        Connection conn=null;
        PreparedStatement ps=null;
       Vector<Vector<Object>> data = new Vector<Vector<Object>>();
Vector columns = new Vector();
     Statement stmt=null;

        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","hr");
        }
        catch(ClassNotFoundException | SQLException e)
        {

            System.out.println(e);
        }
        try{
            ps=conn.prepareStatement("select * from \"SYSTEM\".NEWUSER");

        ResultSet rs = ps.executeQuery();
        ResultSetMetaData md = rs.getMetaData();
        Vector<String> columnNames = new Vector<String>();
        int columnCount = md.getColumnCount();
         for (int i = 1; i <= columnCount; i++)
        {
            columnNames.addElement( md.getColumnName(i) );
        }
         columns.add(columnNames); 
         while (rs.next())
        {
             Vector<Object> row = new Vector<Object>();

            for (int i = 1; i <=columnCount; i++)
            {
                row.addElement( rs.getObject(i) );
            }

            data.add( row );
            //System.out.println("watever");
        }

        rs.close();
        ps.close();
        conn.close();

             }
                    catch(SQLException | HeadlessException e)
        {

            System.out.println("the error is"+e);
        }
        JTable jTable1 = new JTable(data, columns);





}

変更を加えましたが、まだ行に d データが表示されません。

4

1 に答える 1

3
DefaultTableModel model = new DefaultTableModel();

モデルに列が含まれていないことを除いて、コードは妥当に見えます。データの行を追加しても、列は自動的に作成されません。

コードは次のようになります。

String[] columnNames = {"Column1", "Column2", "Column3", "Column4", "Column5"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0);

行を追加すると、5 列のデータが表示されます。

または、SQL に基づいて列名を作成するより良いソリューションについては、 Table From DatabaseTable From Database Exampleにあるコードを参照してください。

于 2013-07-27T14:37:01.723 に答える