JTableの行を別のJTableにDrag&Dropで移動します。en概要JTableの行を別のJTableにDrag&Dropで移動します。Dropで移動します。上記のサンプルでは、一つのJTable内での行の並べ替えを行うTransferHandlerを使ってJTableの行をドラッグ&ドロップ、並べ替えを元にTableRowTransferHandlerを作成し、JTable間での行移動もできるようになっています。上記のサンプルでは、1つのJTable内で行の並べ替えを行うTransferHandlerを使ってJTableの行をドラッグ&ドロップ、並べ替えを元に、複数JTable間で行移動が可能になるようTableRowTransferHandlerを拡張しています。以下のように、JTable#setFillsViewportHeight(true)で、JTable自体の高さを拡張しておかないと、行が一つもない状態でドロップができなくなります。以下のように、JTable#setFillsViewportHeight(true)でJTable自体の高さを拡張しておかないと、JTableが空の状態でドロップが不可になります。ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);table.setTransferHandler(handler);table.setDropMode(DropMode.INSERT_ROWS);table.setDragEnabled(true);table.setFillsViewportHeight(true);WindowsLookAndFeelでカーソルのチラつき防止のために、TransferHandler#canImport(...)内でJTable#setCursor(...)をしているため、デスクトップなどからファイルをドラッグしてドロップ不可カーソルが表示されると、その後マウスをリリースしてもカーソルが表示されたままになるバグがあります。このサンプルでは、各JTableにTableRowSorterなどが設定され、ソートされた状態での並べ替えは想定していません。