• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:TransferHandlerを使ってJTableの行をドラック&ドロップ、並べ替え
#navi(../)
RIGHT:Posted by [[terai]] at 2009-09-07
*TransferHandlerを使ってJTableの行をドラック&ドロップ、並べ替え [#fbf1230b]
JTableの行を複数選択し、ドラック&ドロップで並べ替えを可能にするTransferHandlerを作成します。

-&jnlp;
-&jar;
-&zip;

#screenshot

**サンプルコード [#y7890e8f]
#code{{
JTable table = new JTable(model);
table.getSelectionModel().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
table.setTransferHandler(new TableRowTransferHandler());
table.setDropMode(DropMode.INSERT_ROWS);
table.setDragEnabled(true);
}}

**解説 [#z3172930]
上記のサンプルのTransferHandler((JDK 6 で導入されたTransferHandler#canImport メソッドなどを使用しています。))は、[[TransferHandlerを使ったJListのドラック&ドロップによる並べ替え>Swing/DnDReorderList]]のものとほぼ同じです。

----
[[JTableの行をドラッグ&ドロップ>Swing/DnDTable]]とは異なり、複数行を選択してDrag&Dropによる移動が可能になっています。

**参考リンク [#z9df5392]
-[[Demo - BasicDnD (Drag and Drop and Data Transfer)>http://java.sun.com/docs/books/tutorial/uiswing/dnd/basicdemo.html]]
-[[Drag and drop for non-String objects>http://www.javakb.com/Uwe/Forum.aspx/java-programmer/43866/Drag-and-drop-for-non-String-objects]]
-[[TransferHandlerを使ったJListのドラック&ドロップによる並べ替え>Swing/DnDReorderList]]
-[[JTableの行をドラッグ&ドロップ>Swing/DnDTable]]

**コメント [#ldd8458d]
#comment