OK, ten problem jest poza moją ligą. Próbuję zaimplementować widget GUI w ruchu obrotowym, który pozwala upuszczać pliki na JTable i umożliwia przeciąganie wierszy JTable w celu ponownego sortowania. Pomyśl o listach odtwarzania VLC lub w iTunes.JTable - przeciągnij i upuść
Mam upuszczanie plików z OS (Explorer, Finder, itp.) Działa dobrze, ale mam niemożliwy czas z ponownym rozmieszczeniem wierszy tabeli, gdy pliki są w. Problem jest kiedy dodam niestandardowy TransferHandler do tabeli, przeciągając z tabeli, natychmiast zginie. Oto przykładowy kod:
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);
}
}
uruchomić ten kod jak jest, a zobaczysz, że nie można zainicjować przeciągnij na table.If komentować na wezwanie do setTransferHandler() na stole, przeciągając utwory (Kiedy zaczynam przeciągać wiersz tabeli, otrzymuję X'owy kółko kursora mówiąc, że nie mogę tam wejść). Ale zaraz po ustawieniu TransferHandler dla tabeli nie mogę przeciągać żadnych wierszy. Problem musi być w TransferHandler, ale dokładnie go uszkodziłem i debugowałem, i ustaliłem, że przeciąganie nigdy się nie rozpoczyna, gdy na stole jest TransferHandler. Co ja robię źle?
Jak dziwne. Mam ten sam problem. Próbuję sobie przypomnieć, czy wykonałem jakąś pracę, w której miałem stolik obsługujący zarówno przeciąganie, jak i pomijanie. – willcodejavaforfood