문제

이있다 JTabbedPane그네 프로그램. 사용자가 탭을 클릭하면 프로그램이 데이터를 가져오고 결과를 처리하는 데 시간이 걸린 다음 선택한 탭에서 결과를 표시합니다.

한 시간 유리 또는 그 효과의 무언가를 어떻게 표시 할 수 있습니까? 따라서 사용자가 데이터를 처리하고 있음을 알고 있습니까? 작업을 마치기 전에 탭을 다시 클릭하지 마십시오.

도움이 되었습니까?

해결책

Jprogressbar (아마도 불확실한 모드에서) 올바른 소리 - 데이터가 가져올 때까지 탭에 넣으십시오. 잘 설계된 UI는 사용자가 장기 실행 작업이 완료되기를 기다리지 말고 대신 그 사이에 다른 일을하도록 강요해서는 안됩니다.

다른 팁

가장 간단한 방법은 전화하는 것입니다 setcursor 적절한 구성 요소 (아마도 최상위 창)에서 적절한 커서.

component.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

그런 다음 완료되면 다시 설정하십시오.

component.setCursor(Cursor.getDefaultCursor());

SetCursor (int)는 더 이상 사용되지 않습니다. 이것은 아마도 조금 더 깨끗 할 것입니다 :

setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

다른 답변에서 언급했듯이 대기 커서를 설정할 수 있지만 추가 마우스 클릭을 방지하는 것도 언급됩니다. 유리창을 사용하여 긴 작동이 완료 될 때까지 구성 요소의 클릭을 방지 할 수 있습니다. 여기에 덧붙여 선 튜토리얼 유리창에는 좋은 예가 있습니다. http://www.java2s.com/code/java/swing-jfc/demonstrateuseofglasspane.htm

나는 다른 언급 된대로 할 것이다

  • 커서를 변경하십시오
  • 스윙 워크를 사용하십시오
  • Glasspane에 ProgressBar 또는 애니메이션 이미지를 표시합니다.
  • 작업이 완료되면 유리판을 숨 깁니다
  • 기본 커서를 복원하십시오
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top