2

新しいデータがデータベースに入力された後、JTable が更新されません。結果を確認するには、終了して再度実行する必要があります。DefaultTableModel と fireTableDataChanged を含めました。私は他に何を逃したのですか?ありがとう!

{
    columnNames = new Vector();
    data = new Vector(); 

    try{
        //database stuffs
    }

    catch{
    }  


    DefaultTableModel tm = new DefaultTableModel(); 
    JTable table = new JTable (tm); 
    JScrollPane scrollPane  = new JScrollPane(table);

    table = new JTable(data,columnNames)            
    {               
        public boolean isCellEditable(int row, int column){
            return false;
        }        

            public void newDataAvailable (TableModelEvent e){
            }
    };      

    scrollPane = new JScrollPane(table);            
    scrollPane.setBounds(33, 47, 256, 228);      
    panel.add(scrollPane);          

}

「更新ボタン」を作成して、代わりに値を更新できますか?

4

3 に答える 3

2

fireTableDataChanged()明示的に呼び出す必要はありません。この関連する例DefaultTableModelに示すように、モデルを更新すると、これが自動的に行われます。

于 2012-05-02T11:37:55.347 に答える
2

新しいJTableインスタンスを作成します。一度だけ作成し、新しいモデルを既存のものにのみ設定しJTableます(適切にコンテナに追加されます)。

于 2012-05-02T11:57:48.523 に答える
0
  1. 新しいフレームを選択し、テーブル、ラベル、テキスト フィールド、およびボタンをスイング コントロールからフレームにドラッグして、新しいプロジェクトを作成しました。

2.バックエンドでテーブルを作成…</p>

  1. このリンクから rs2xml jar ファイルをダウンロードします。

rs2xml.jar をダウンロード

  1. プロジェクト ライブラリに追加します…</li>

プロジェクトを右クリック > プロパティ > ライブラリ > Jar/フォルダーを追加 > jar を選択 > OK

5.次に、次のコードを使用してmysqlを接続します

public class DBConnect {

Connection connection = null;

public Connection getConnection() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
        System.out.println("connection successfully");
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return connection;
}
}
  1. 次のコードを使用して、ページ内の関数を呼び出します

    con=new DBConnect();
    statement=con.getConnection().createStatement();
    

7.次に、次のコードを入力して更新関数を作成します…</p>

void update_table() throws SQLException{
    rs=statement.executeQuery("select * from details");
    jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}

8.ボタンアクションイベントで次のように入力し、更新機能を呼び出します

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

   try {
       Object name=jTextField1.getText();
       String sql="insert into details (name) values('"+name+"')";
        int  resultset=statement.executeUpdate(sql);
        update_table();
   } catch (SQLException ex) {
       Logger.getLogger(update.class.getName()).log(Level.SEVERE, null, ex);
   }

}

9.次に、プロジェクトを実行します…</p>

あなたもこのチュートリアルに従うことができます:--

Java Netbeans ID のデータを削除または更新した後に JTable を更新する方法

于 2015-01-12T08:54:37.553 に答える