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 "IndexOutOfBoundsException"から行を削除
- 2. JTableからの行の削除 - Java
- 3. jtableからAbstractActionを削除します。
- 4. jTableチェックボックスと行を削除する
- 5. jTableからデータベース内のデータを削除するには?
- 6. jtableテーブルモデルクローンからデータの列を削除
- 7. 一度にJTableデータベースから複数の行を削除する方法
- 8. JTableは、行追加/削除後にjava.lang.ArrayIndexOutOfBoundsExceptionを返します。
- 9. JTableは、同じJTableからカスタムDeleteCellEditorを持つセルをクリックして行を削除します
- 10. 他のクラスからjTable列を削除する方法
- 11. データベースから削除せずに削除ボタンを押すと、インデックスページのテーブルから行を削除するには
- 12. JTableの下部から余分な空白を削除するには?
- 13. 複数列のキーを持つ行をJTableで削除する
- 14. JavaスイングのJTableからチェックボックスを削除します
- 15. 最後の行を削除するエラーJtable
- 16. カスタムTableModelでJTableの行を削除する方法
- 17. Ember.js:削除後にデータテーブルコンポーネントから行を削除する
- 18. Hibernateを使ってデータベース内のjTableの選択行を削除するには?
- 19. Java、Swing - 削除後にJtableの行が残る
- 20. 巨大なJTable AbstractTableModelすべての行を削除
- 21. 行データを1 JTableから別のJTableに移動するには?
- 22. pyqtのqtableviewから行/行を削除するには?
- 23. MySQLから重複した行を削除するには?削除
- 24. QGridLayoutから行を削除
- 25. ワードプレスカスタムテーブルから行を削除
- 26. jtableを別のパネルに表示して1行を削除する
- 27. テーブルから行を削除するmysql
- 28. ファイルから行を削除する
- 29. csvファイルから行を削除する
- 30. テーブルビューから行を削除する
ヒントです:あなたは何をすでに試行しましたが、何を読んだ上で、オンラインチュートリアルを説明するならば、人々はあなたを助けるために、より傾斜になります。あるいは、いくつかのサンプルコードを与えて、動作しないビットを教えてください。まだ読んでいない場合は、こちらをご覧ください: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html –