>Java >java지도 시간 >패널이 자체 커서를 설정할 때 내 Java 대기 커서가 나타나지 않는 이유는 무엇입니까?

패널이 자체 커서를 설정할 때 내 Java 대기 커서가 나타나지 않는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-16 07:00:16892검색

Why Doesn't My Java Wait Cursor Appear When a Panel Sets Its Own Cursor?

Java 대기 커서 표시 문제

이 Java 애플리케이션에서는 해당 Java 애플리케이션을 정의하는 패널 위로 마우스를 가져갈 때 대기 커서가 나타나지 않습니다. 자신의 커서. 문제에 대한 분석은 다음과 같습니다.

문제:

  • 패널이 커서를 변경할 때 최상위 컨테이너에 설정된 대기 커서가 표시되지 않습니다. .

루트 원인:

  • JPanel에 설정된 대기 커서가 프레임 유리창에 설정된 대기 커서보다 우선합니다.

해결책:

  • 원하는 구성 요소가 포함된 프레임의 유리창에 대기 커서를 설정합니다. 대기 커서를 표시합니다.

수정된 SSCE:

public class BusyCursorTest extends javax.swing.JFrame {

    private javax.swing.JPanel cursorPanel = null;

    public BusyCursorTest() {
        // ...
        // Set the wait cursor on the glass pane
        startWaitCursor(this);
        // ...
    }

    private static void startWaitCursor(javax.swing.JFrame frame) {
        frame.getGlassPane().setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
        // Add mouse listener to glass pane for handling cursor visibility
        frame.getGlassPane().addMouseListener(mouseAdapter);
        frame.getGlassPane().setVisible(true);
    }

    // ...

    private static java.awt.event.MouseAdapter mouseAdapter = new java.awt.event.MouseAdapter() {
    };
}

추가 참고 사항:

  • 이 솔루션은 모든 패널과 독립적으로 작동하며 여러 패널에서 커서 변경을 추적할 필요가 없습니다. 패널.
  • 대기 커서는 의도적인 지연(이 경우 250ms) 후에 표시되도록 타이머를 사용하여 시작되어 UI가 반응할 시간을 제공합니다.
  • originalCursor 변수 대기 커서가 제거되면 원래 커서를 복원하는 데 사용됩니다.

위 내용은 패널이 자체 커서를 설정할 때 내 Java 대기 커서가 나타나지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.