Как изменить курсор при переходе в приложение Java - PullRequest
3 голосов
/ 22 декабря 2009

У меня есть некоторые проблемы, которые я просто не могу понять ... Я пишу Java-приложение Swing с JList, которое принимает перетаскивание. Я хочу изменить курсор при перетаскивании файла или папки из моей системы через приложение Java.

Ответы [ 2 ]

4 голосов
/ 22 декабря 2009

Я нашел это сам ... Спасибо Клинтон за ответ, хотя. Вот что я использовал:

сначала создайте JList ... Вы все знаете, как это сделать ... Затем я добавил setDropTarget:

lstFiles.setDropTarget(new DropTarget()
{
    @Override
    public synchronized void drop(DropTargetDropEvent dtde) 
    {
        this.changeToNormal();
        //handle the drop... [...]
    }

    @Override
    public synchronized void dragEnter(DropTargetDragEvent dtde) 
    {
        //Change cursor...
        Cursor cursor = new Cursor(Cursor.HAND_CURSOR);
        setCursor(cursor);

        //Change JList background...
        lstFiles.setBackground(Color.LIGHT_GRAY);
    }

    @Override
    public synchronized void dragExit(DropTargetEvent dtde) 
    {
        this.changeToNormal();
    }

    private void changeToNormal()
    {
        //Set cursor to default.
        Cursor cursor = new Cursor(Cursor.DEFAULT_CURSOR);
        setCursor(cursor);

        //Set background to normal...
        lstFiles.setBackground(Color.WHITE);
    }
});
1 голос
/ 22 декабря 2009

Следующее изменит курсор только тогда, когда пользователь наведет курсор мыши на ваш JList.

Вы можете изменить курсор при наведении указателя мыши на компонент (т.е. свой JList), используя слушатель мыши и метод setCursor .

По сути, просто добавьте слушатель мыши в JList и используйте setCursor для изменения курсора, когда пользователь наводит курсор на компонент в вашем приложении (mouseEntered и mouseExit). Вам также может потребоваться выполнить небольшой запрос по коду перетаскивания, чтобы изменить курсор только тогда, когда в JList перетаскивается что-то правильное.

Надеюсь, это немного поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...