JList 안에 단어 목록이 있습니다. 마우스 커서를 한 단어로 가리킬 때마다 커서를 손 모양 커서로 바꾸고 싶습니다. 이제 내 문제는 어떻게하는거야?자바에서 마우스 커서를 변경하는 방법은 무엇입니까?
누군가이 문제를 해결해 줄 수 있습니까?
JList 안에 단어 목록이 있습니다. 마우스 커서를 한 단어로 가리킬 때마다 커서를 손 모양 커서로 바꾸고 싶습니다. 이제 내 문제는 어떻게하는거야?자바에서 마우스 커서를 변경하는 방법은 무엇입니까?
누군가이 문제를 해결해 줄 수 있습니까?
JList에서 MouseMotionListener을 사용하여 마우스가 입력되면이를 감지 한 다음 setCursor
을 호출하여 HAND_CURSOR
으로 변환하십시오.
샘플 코드 :
final JList list = new JList(new String[] {"a","b","c"});
list.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent e) {
final int x = e.getX();
final int y = e.getY();
// only display a hand if the cursor is over the items
final Rectangle cellBounds = list.getCellBounds(0, list.getModel().getSize() - 1);
if (cellBounds != null && cellBounds.contains(x, y)) {
list.setCursor(new Cursor(Cursor.HAND_CURSOR));
} else {
list.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
}
@Override
public void mouseDragged(MouseEvent e) {
}
});
Component.setCursor
메서드를보고 Cursor.HAND
상수와 함께 사용하는 것이 좋습니다.
내가 내가 목록에없는 단어를 가리 때 발생하는 것으로 커서의 변경을 원한다면? 가능한가? – sack
@Mikel 커서가 목록의 항목 위에있는 경우에만 손을 표시하도록 내 대답을 업데이트했습니다. – dogbane
그래도 작동하지만 조금 문제가 있습니다. 단어 옆에있는 마우스를 가리키면 손 모양의 커서가 나타납니다. 마우스 커서를 가리키면 단어 만 손 모양 커서로 나타나기를 바랍니다. – sack