3

理解できない問題がいくつかあります...ドラッグアンドドロップを受け入れるJListを使用してSwingJavaアプリケーションを作成しています。システムからJavaアプリケーション上でファイルまたはフォルダをドラッグしているときにカーソルを変更したい。

4

2 に答える 2

4

私はそれを自分で見つけました...しかし答えてくれたクリントンに感謝します。これが私が使用したものです:

最初に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);
    }
});
于 2009-12-22T13:21:40.957 に答える
1

以下は、ユーザーがJListの上にマウスを移動した場合にのみカーソルを変更します。

マウスリスナーsetCursorメソッドを使用して、コンポーネント(つまり、JList)の上にマウスを置いたときにカーソルを変更できます。

基本的には、マウスリスナーをJListに追加し、setCursorを使用して、ユーザーがアプリケーションのコンポーネント(mouseEnteredおよびmouseExit)にマウスを合わせたときにカーソルを変更します。有効なものがJListにドラッグされている場合にのみカーソルを変更するには、ドラッグアンドドロップコードについて少し問い合わせる必要がある場合もあります。

これが少し役立つことを願っています。

于 2009-12-21T22:35:28.490 に答える