2017-11-24 4 views
0

JavaFX (jdk-9.0.1)MacOS (Sierra 실행) 관련 문제입니다. 작은 녹색 버튼 see picture below을 클릭 한 후 전체 화면 모드로 돌아간 다음 일반 모드로 다시 돌아가서 크기 조정이 가능한 메인 윈도우 primaryStage.setResizable(true)이있는 x 플랫폼 데스크탑 앱을 개발 중입니다. 더 이상 창 크기를 조정할 수 없습니다. . MacOS에서 전체 화면 모드로 돌아와서도 크기를 조정할 수 있습니까? Windows 및 Linux에서는 작동하지만 MacOS에서는 작동하지 않습니다. 어떤 도움이라도 대단히 감사합니다.MacOS의 전체 화면 모드에서 주 javafx 창이 계속 크기 조정 가능하게 만드는 방법

screenshot maximize button in macos

편집 1은 :이 문제는 이제 다음 URL JDK-8191885

답변

0

감사합니다. mipa! fullScreenProperty()에 청취자를 추가하는 것이 더 좋음을 발견 한 다음 제목 표시 줄을 클릭하여 몇 픽셀 이동하지 않아도됩니다. 중요한 것은 setResizable(false) 다음에 setResizable(true)이 뒤따라야한다는 것이 었습니다. 발견해 주셔서 감사합니다. 버그가 수정 될 때까지이 대안으로 해결할 것입니다 :

primaryStage.fullScreenProperty().addListener((v,o,n) -> { 

     if (!primaryStage.isFullScreen()) { 

      primaryStage.setResizable(false); 
      primaryStage.setResizable(true); 
     } 
    }); 
+0

위대한, 당신의 제안은 나를 위해 너무 작동합니다. – mipa

0

이것은 자바 FX의 버그처럼 보이는에서 bugs.java.com에보고하고 볼 수 있습니다. JDK9 및 10ea를 사용하여이 동작을 재현 할 수 있습니다. 최신 JDK8에서도 여전히 작동하는 것 같습니다. 아직 워크 래라운드를 찾지 못했습니다. http://bugreport.java.com/

+0

감사합니다. 윌 ... – jbilander

+0

버그 보고서에 대한 링크 : https://bugs.openjdk.java.net/browse/JDK-8191885 – mipa

0

Java 11 이전에이 버그를 해결할 계획조차 없기 때문에, 우리는 꽤 오래 그것을 가지고 살아야 할 것입니다. 그러므로 나는 그것을 위해 일종의 해결책을 찾기 위해 노력해 왔으며 여기에 있습니다 :

이 코드를 귀하의 코드에 추가하십시오. 당신이 녹색 버튼을 통해 사용자가 수동으로해야 할 유일한 것은 당신의 단계를 해제 극대화하면

primaryStage.maximizedProperty().addListener((v,o,n) -> { 
    primaryStage.setResizable(false); 
    primaryStage.setResizable(true); 
}); 

은 무대의 제목 표시 줄에 클릭 몇 픽셀을 이동하는 것입니다. 그 후 무대는 평상시처럼 마우스로 다시 크기 조정할 수 있어야합니다. 그것의 불쾌한 해킹하지만 여전히 영원히이 버그와 함께 살고보다 나은.

+0

고마워, 난 그게 훨씬 더 fullScreenProperty에 청취자를 추가하는 것을 발견했습니다 ()를 호출하여 정상 화면 모드로 다시 복귀 할 때 호출됩니다. – jbilander