Note that there are some explanatory texts on larger screens.

plurals
  1. POJTable - drag and drop
    primarykey
    data
    text
    <p>OK, this problem is out of my league. I'm trying to implement a GUI widget in swing that allows files to be dropped onto a JTable, and allows the rows of the JTable to be dragged for re-sorting. Think VLC's playlists or the one in iTunes.</p> <p>I got dropping files from the OS (Explorer, Finder, etc.) working just fine, but I'm having an impossible time with re-arranging the rows of the table, once the files are in. The problem is that when I add a custom TransferHandler to the table, dragging <em>from</em> the table is instantly killed. Here is some example code:</p> <pre><code>import javax.swing.*; public class TableTest { public static void main (String [] argv) { // setup table data String [] columns = new String [] {"Foo", "Bar", "Baz", "Quux"}; String [][] data = new String [][] {{"A", "B", "C", "D"}, {"1", "2", "3", "4"}, {"i", "ii", "iii", "iv"}}; // create table JTable table = new JTable(data, columns); // set up drag and drop table.setDragEnabled(true); table.setDropMode(DropMode.INSERT_ROWS); table.setFillsViewportHeight(true); TransferHandler dnd = new TransferHandler() { // here be code to handle drops, and one would // presume drag exporting, too }; table.setTransferHandler(dnd); JScrollPane scroll = new JScrollPane(table); // create and show window JFrame window = new JFrame(); window.getContentPane().add(scroll); window.pack(); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setVisible(true); } } </code></pre> <p>Run this code as-is and you'll see that you cannot initiate a drag on the table.If you comment out the call to setTransferHandler() on the table, dragging works (i.e., when I start dragging a table row, I get the X'd out circle cursor saying I can't drop there). But as soon as a TransferHandler is set for the table, I can't drag any rows. The problem has to be in the TransferHandler, but I've thoroughly troubleshot and debugged it, and have determined that dragging is never started once there is a TransferHandler on the table. What am I doing wrong?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload