Проблемы с перетаскиванием имени файла в приложении на рабочем столе - PullRequest
0 голосов
/ 03 июня 2019

У меня есть настольное приложение, выполненное на Java с использованием Swing. У меня есть JTextField, в котором вводятся имена файлов с абсолютным путем.Я использую JFileChooser, чтобы позволить пользователю выбрать файл.После того как пользователь выберет файл, в текстовом поле будет указан абсолютный путь к выбранному файлу.Мой клиент хотел иметь положение перетаскивания для выбора и вставки имени файла в текстовое поле.

Для этого я добавил следующий код:

public void setdroppedFilePath(javax.swing.JTextField jtf)
    {

        new FileDrop( System.out, jtf, new FileDrop.Listener()
        {
            public void filesDropped( java.io.File[] files)
            {
                if(files.length > 0)
                {
                    String extension = "";
                    String filename  = files[0].getAbsolutePath();
                    int i = filename.lastIndexOf('.');
                    if (i >= 0) {
                        extension = filename.substring(i+1);}
                        if (extension.compareTo("rkl")==0){
                            jtf.setText(files[0].getAbsolutePath());
                        }
                }
            }
        });
    }

Я использую вышеупомянутую функцию вмыши введите событие текстового поля.

 private void JTFOriginalFileMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_JTFOriginalFileMouseEntered
        setdroppedFilePath(JTFOriginalFile);   

Это работает нормально для моей цели.Однако я заметил, что для выполнения приложения требуется гораздо больше времени, чем обычно.Большую часть времени это работает нормально, но в некоторых случаях это занимает много времени и в конечном итоге успешно выполняется.

Почему в некоторых случаях это занимает больше времени и как я могу этого избежать?

Приложение без перетаскивания работало очень хорошо без каких-либо проблем.Я просто добавил эти две функции, чтобы добавить перетаскивание, и начинается задержка.Может быть, я ошибаюсь в своем подходе, чтобы добавить положение перетаскивания и может кто-нибудь, пожалуйста, направьте меня на какую-то ссылку, где я могу понять лучший способ добавить перетаскивание в мое приложение.

...