JTableからいくつかの行を削除します。どうしたらいいですか?JTableから行を削除するには?
答えて
通常、JTableはMVC実装のビュー部分を形成します。モデルから行を削除する必要があります。これらの変更をリスンするJTableは、この削除を反映するように更新されます。したがって、JTableのメソッドとしてremoveRow()などが見つかりません。あなたが使用できる簡単なモデルのためのDefaultTableModelで
助けを借りて、私は行を削除する方法を知りたいテーブルモデル、何もメソッドを取得していない。 –
次のようなものを読んでください。http://java.sun.com/docs/books/tutorial/uiswing/components/table.html – dave
要するに、カスタムTableModelを作成します。 JTableは行を格納せず、それをTableModelに委譲します。必要に応じて、AbstractTableModelからサブクラス化することができます。行を削除するたびにfireTableRowsDeleted()を呼び出します。ヘルプのために – dave
ルック:
http://java.sun.com/javase/6/docs/api/javax/swing/table/DefaultTableModel.html
これはAbstractTableModelにを拡張しますが、基本的な目的のために十分なはずです。いつでもAbstractTableModelを拡張して独自のモデルを作成できます。 JTableにも設定してください。
http://java.sun.com/javase/6/docs/api/javax/swing/table/AbstractTableModel.html
テーブルモデルでのJTableの使用方法の詳細についての基本的な日のチュートリアルを見てみましょう。JTableのから行を除去するために
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data
、あなたは削除する必要がありますターゲット行の下にあるTableModelから例えば、あなたのTableModelがDefaultTableModelのインスタンスである場合は、次の操作を実行して行を削除することができます。
((DefaultTableModel)myJTable.getModel()).removeRow(rowToRemove);
がありましたが、私はこの方法を使用していて動作していません。実際に私のJTableはLocationTableモデル(独自に作成)を使用しているので、removeRow(i)メソッドを使用しているときに "cant resolve removeRow()"というエラーが発生しています。 –
独自のカスタムTableModelを作成した場合、独自の「removeRow」メソッドを作成する必要があります。 DefaultTableModelのソースコードを見て、これがどのように行われているかを見てください。簡単な解決策は、DefaultTableModelを使用することです。なぜカスタムTableModelを作成する必要があると思いますか?モデルの使用の基本を理解するまで、提供されるデフォルトを使用します。 – camickr
のJTableにフィルタを適用する正しい方法は、TableRowSorterはに追加RowFilterインタフェースを介してです。このインタフェースを使用すると、基になるモデルを変更せずにモデルのビューを変更できます。この戦略は、Model-View-Controllerのパラダイムを維持しますが、モデル自体から隠された行を削除することは、懸念の分離を混乱させてパラダイムを破ります。
簡単な解決策が必要な場合は、DefaultTableModelを試してみてください。
独自のテーブルモデルを作成した場合、それはAbstractTableModelを拡張しているので、removeRow()メソッドも実装する必要があります。正確な実装は、データの格納に使用した基本構造に依存します。
public class SimpleTableModel extends AbstractTableModel {
private Vector<String> columnNames = new Vector<String>();
// Each value in the vector is a row; String[] - row data;
private Vector<String[]> data = new Vector<String[]>();
...
public String getValueAt(int row, int col) {
return data.get(row)[col];
}
...
public void removeRow(int row) {
data.removeElementAt(row);
}
}
あなたが使用している場合はリスト、それは非常によく似次のようになります:
// Each item in the list is a row; String[] - row data;
List<String[]> arr = new ArrayList<String[]>();
public void removeRow(int row) {
data.remove(row);
}
HashMapのあなたはベクトルを使用している場合、このようなものかもしれ例えば
、 :
//Integer - row number; String[] - row data;
HashMap<Integer, String[]> data = new HashMap<Integer, String[]>();
public void removeRow(Integer row) {
data.remove(row);
}
そして、あなたはこの1
ような配列を使用している場合、String[][] data = { { "a", "b" }, { "c", "d" } };
これで、配列から要素を動的に削除する方法がないため、あなたは不運になります。あなたは、削除された行とそうでない行を通知するいくつかのフラグを別々に格納することで配列を使用しようとするかもしれませんが、それに対して助言します...それは不必要な複雑さをもたらし、実際には別のを作成して問題を解決してください。それはhereに終わる確実な方法です。上記の方法のいずれかを試して、代わりにテーブルデータを保存してください。これがどのように動作するかをより良く理解するために
、そしてどのような適切独自のモデルを動作させるために行うには、私は強くは、Java Tutorialを参照するためにあなたをアドバイスDefaultTableModel API、それはsource codeだ。
MMMは非常に単純な男
for(int i = model.getRowCount() - 1; i >= 0; i--)
{
model.removeRow(i);
}
午前中に何百万もの通知はありません;-) – greenoldman
- 1. jTableチェックボックスと行を削除する
- 2. jtableからAbstractActionを削除します。
- 3. jTableからデータベース内のデータを削除するには?
- 4. JTableは、同じJTableからカスタムDeleteCellEditorを持つセルをクリックして行を削除します
- 5. カスタムTableModelでJTableの行を削除する方法
- 6. JavaスイングのJTableからチェックボックスを削除します
- 7. 巨大なJTable AbstractTableModelすべての行を削除
- 8. QGridLayoutから行を削除
- 9. ファイルから行を削除する
- 10. アンドロイドデータベースから行を削除する
- 11. QTextEditから行/ブロックを削除する
- 12. ファイルから行を削除する
- 13. テキストファイルから行を削除する
- 14. バイナリデータから行を削除する
- 15. テーブルビューから行を削除する
- 16. テーブルから行を削除するmysql
- 17. アウトラインビューから行を削除する
- 18. テーブルビューから行を削除する
- 19. データベースから1行を削除する
- 20. 実行時にWPF RichTextboxからハイフリンクを削除するには?
- 21. in JTable画像間のスペースを削除
- 22. sqlの乗算テーブルから行を削除するには?
- 23. java logger apiから改行を削除するには?ここ
- 24. DataGridviewから行を削除するには?
- 25. unixのファイルから特定の行を削除するには?
- 26. php CSVから先行ゼロを削除するには?
- 27. Rの行列から列名を削除するには?
- 28. 削除クエリから不良行をブロックするには
- 29. C#でテキストファイルから行を削除するには?
- 30. DataGridViewから行を削除するには?
ヒントです:あなたは何をすでに試行しましたが、何を読んだ上で、オンラインチュートリアルを説明するならば、人々はあなたを助けるために、より傾斜になります。あるいは、いくつかのサンプルコードを与えて、動作しないビットを教えてください。まだ読んでいない場合は、こちらをご覧ください: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html –