몇 가지 문제가 있습니다. 단지 알 수 없습니다. 끌어서 놓기를 허용하는 JList를 사용하여 Swing Java 응용 프로그램을 작성하고 있습니다. Java 애플리케이션을 통해 시스템에서 파일이나 폴더를 드래그하는 동안 커서를 변경하고 싶습니다.Java 응용 프로그램으로 떨어 뜨릴 때 커서를 변경하는 방법
3
A
답변
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);
}
});
1
다음은 사용자가 JList 위로 마우스를 이동 한 경우에만 커서를 변경합니다.
mouse listener 및 setCursor 메서드를 사용하여 구성 요소 (예 : JList)에 마우스를 올리면 커서를 변경할 수 있습니다.
기본적으로 마우스 수신기를 JList에 추가하고 사용자가 응용 프로그램의 구성 요소 (mouseEntered 및 mouseExit) 위에 마우스를 놓을 때 setCursor를 사용하여 커서를 변경하기 만하면됩니다. JList에 무언가가 드래그되고있을 때에 만 커서를 변경하기 위해 끌어서 놓기 코드에 대한 약간의 질문을해야 할 수도 있습니다.
희망이 조금 도움이됩니다.
아 하! 잘 하셨어요! – Clinton