JTable - перетаскивание

Что касается пользовательских полей, вы, вероятно, уже нашли соответствующую часть в документации Django .

Вопрос о том, стоит ли создавать пользовательское поле (или пользовательский тип базы данных, см. Ниже), зависит от того, что вам нужно делать с сохраненными числами. Для хранения и некоторых случайных перемещений вы можете использовать самое простое и вменяемое решение (ваш номер два, дополненный Tobit).

С PostgreSQL у вас есть возможность реализовать пользовательские типы непосредственно в базе данных, включая операторы . Вот соответствующая часть в Документах Postgres , в комплекте с примером комплексных чисел, не меньше.

Конечно, тогда вам нужно представить новый тип и операторы Django. Довольно много работы, но тогда вы можете выполнять арифметику с отдельными полями прямо в базе данных, используя Django ORM.

11
задан Michael Myers 3 April 2009 в 19:37
поделиться

3 ответа

Я думаю, что проблема состоит в том, что пустой TransferHandler на самом деле препятствует тому, чтобы события DnD произошли. Существует образец здесь, который может быть релевантным.

http://www.java2s.com/Code/Java/Swing-JFC/ExtendedDnDDragandDropDemo.htm

3
ответ дан 3 December 2019 в 09:21
поделиться

Не похоже на использование TransferHandler правильно. Попытайтесь прочитать учебное руководство здесь.

См. документ TransferHandler здесь. Пустой конструктор не похож, он предназначен для использования вне подкласса TransferHandler.

И Вы не реализуете ни одной функциональности, обеспеченной в стандартном TransferHandler, обеспеченном на компонентах Swing. Посмотрите отрывок из учебного руководства DnD здесь (мой полужирный):

Примечание: При установке пользовательского TransferHandler на компонент Swing поддержка по умолчанию заменяется. Например, при замене TransferHandler JTextField тем, который обрабатывает цвета только, Вы отключите его способность поддерживать импорт и экспорт текста. Если необходимо заменить TransferHandler по умолчанию — например, тот, который обрабатывает текст — необходимо будет повторно реализовать текстовый импорт и экспортировать способность. Это не должно быть столь же обширно как что обеспечивает Swing — это могло быть столь же просто как поддержка разновидности данных StringFlavor, в зависимости от потребностей Вашего приложения.

3
ответ дан 3 December 2019 в 09:21
поделиться

У меня была такая же проблема, это не имеет ничего общего с вашей собственной реализацией TransferHandler. Когда вы заменяете TransferHandler, вам также необходимо удерживать DragSource по умолчанию и указать ему распознавать жест перетаскивания. Вам также может потребоваться реализовать свой собственный Transferable, потому что вам нужно будет передать его методу DragGestureEvent.startDrag ().

    table.setTransferHandler(new MyTransferHandler());
    table.setDragEnabled(true);
    DragSource source = DragSource.getDefaultDragSource();
    source.createDefaultDragGestureRecognizer(table, DnDConstants.ACTION_COPY, new DragGestureListener() {

        @Override
        public void dragGestureRecognized(DragGestureEvent dge) {
            //grab the selected files from the table model
            ArrayList<File> files = new ArrayList<File>();
            for (int row : table.getSelectedRows()) {
                files.add((File) dm.getValueAt(row, 1));
            }

            //FileTransferable is a custom Transferable implementation
            Transferable transferable = new FileTransferable(files); 

            //and this is the magic right here
            dge.startDrag(null,transferable);
        }
    });
5
ответ дан 3 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: