2012-02-03 16 views
2

Netbeansでプログラミングしていて、フレームにjTableがあります。JTableからデータを消去する方法は?

多くの行を占めるデータをロードしますが、次にローが少ない別のテーブルをロードします。

私はそれを実行していて、2番目のテーブルを読み込んでいるときに、最初のテーブルが持っていた余分な行がまだそこに表示されています。そして、私は2番目のテーブルを見たいと思う。

私はすでにJTableはあなたがJTable.setModelを使用してのTableModelを交換するいずれかの必要があるので、JTableのクラスは、ビューとコントローラの両方であることを意味モデル/ビュー/コントローラの方法論を、(使用jTable.removeAll();

+5

'removelAll()'コンテナからすべてのコンポーネントを削除し、JTableが、それのデータとは何の関係もないです。解決策は、 'getModel()'を介してテーブルのTableModelを取得し、そこからデータを消去するか、JTableに新しいTableModelを与えることです。しかしまず、[JTableチュートリアル](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html)を読んでください。それはすべてそこに説明されている、あなたの質問はあなたがまだこの基本的なステップをやっていないことを示唆している。また、JTable APIと、JTableで使用されるモデルであるDefaultTableModelのAPIをチェックアウトすることもできます。 –

+0

優秀、ありがとう! –

+0

あなたは大歓迎です! –

答えて

3

のために試してみましたnewModel)を使用するか、JTable.getModel()を使用してTableModelをクリアし、そのようにモデルをクリアします。

JTable Tutorialsの表の使用に関するチュートリアルを参照してください。

+1

関連項目[* A Swing Architecture Overview *](http://java.sun.com/products/jfc/) tsc/articles/architecture /)を参照してください。 – trashgod

0

あなたの質問のための最善の解決策は、

private void ClearButtonActionPerformed(java.awt.event.ActionEvent evt) { 
    DefaultTableModel model = (DefaultTableModel)UR_TABLEVARIABLENAME.getModel(); 

    while (model.getRowCount() > 0){ 
     for (int i = 0; i < model.getRowCount(); ++i){ 
      model.removeRow(i); 
     } 
    } 
}  
関連する問題