2017-02-13 7 views
1

내가 만든 GUI에 문제가 있습니다. 특정 개체 (예 : 텍스트 필드 위에 마우스를 올려 놓을 때 버튼과 텍스트 커서 위로 마우스를 가져 가면 손 모양 커서) 위로 마우스를 이동하면 다른 커서 변경을 설정하려고합니다. 그러나 적절한 코드가 작동하지 않습니다.개체 위로 굴릴 때 마우스 커서가 바뀌지 않습니다.

classArmBtn.setCursor(new Cursor(Cursor.HAND_CURSOR)); 

그리고

classAlcBtn.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 

나는 이러한 개체가 중첩되어 패널에 있기 때문에 커서가 변경되지 않습니다 이유는, 그러나, 알고 난 다음 두 코드를 시도했습니다 JSplitPane. JSplitPane은 크기를 조정할 수 없기 때문에 사용할 수 없습니다. 어쩌면 메서드를 재정의하고 이러한 커서를 변경할 수있는 방법이 있습니까? 감사!

+0

일반적으로 MouseEvent.mouseEntered에서 커서를 설정합니다. 그것은 당신이 setCursor를 호출하는 곳입니까? – ControlAltDel

+0

@ControlAltDel 마우스 오른쪽 단추를 재정의하지 않으면 MouseEvent.mouseEntered에서 설정할 필요가 없습니다. 각 구성 요소의 속성을 설정하는 내 setLayout() 메서드 내에서 setCursor를 호출하고있었습니다. –

답변

1

JSplitPane은 크기를 조정할 수 없기 때문에 비활성화되어 있습니다. 구성 요소가 비활성화되지 않기 때문에

BasicSplitPaneUI ui = (BasicSplitPaneUI)splitPane.getUI(); 
BasicSplitPaneDivider divider = ui.getDivider(); 
divider.setEnabled(false); 

for (MouseListener ml: divider.getListeners(MouseListener.class)) 
    divider.removeMouseListener(ml); 

지금 커서가 설정할 수 있습니다

크기 조정을 해제하는 또 다른 방법은 디바이더를 사용하지 않고 분할 구획 분할에서의 MouseListener를 제거하는 것입니다.

+0

이것은 매력처럼 일했습니다. 정말 고마워요! 그건 그렇고, 깜박이는 텍스트 커서의 색상을 텍스트 필드 내에서 어떻게 바꿀 수 있는지 알고 있습니까? –