내 스윙 앱이 실행되는 동안 화면 크기가 변경됩니다 (예 : 1024x768에서 800x600).스윙 앱이 화면 크기 변경을 인식하도록 만드는 방법은 무엇입니까?
이 사실을 알리기 위해 내가들을 수있는 이벤트가 있습니까?
또는 두 초마다 화면 크기를 확인할 수 있지만 Toolkit.getScreenSize()는 계속 이전 값을 알려줍니다.
변경 후 화면 크기를 어떻게 얻을 수 있습니까?
환경 : 리눅스
(수세 ES (11)와 우분투 9.04에서 테스트가) 나는 당신의 도움을 주셔서 감사합니다. 그런 다음 width
및 virtualBounds
의 height
를 조회 할 수 있습니다
Rectangle virtualBounds = new Rectangle();
GraphicsEnvironment ge = GraphicsEnvironment.
getLocalGraphicsEnvironment();
GraphicsDevice[] gs =
ge.getScreenDevices();
for (int j = 0; j < gs.length; j++) {
GraphicsDevice gd = gs[j];
GraphicsConfiguration[] gc =
gd.getConfigurations();
for (int i=0; i < gc.length; i++) {
virtualBounds =
virtualBounds.union(gc[i].getBounds());
}
}
마튼
빠른 답변 감사합니다. 불행히도 위의 스 니펫은 우분투 9.04에서 이전 크기 (1024x768)를 계속 표시합니다. 감사합니다. Marton –
본질적으로 수용된 답변과 동일한 API를 사용하기 때문에 이상합니다. – mdma
예, 이상합니다. GraphicsConfiguration.getBounds()가 부적절한 값을 반환하는 반면, GraphicsDevice.getDisplayMode()는 좋은 값을 반환합니다. 반면에 GraphicsDevice.getDisplayMode()는 헤비급으로 보이므로 몇 초마다 그것을 수행하는 것이 가장 좋은 아이디어는 아닙니다. 대신 기본 전화를 선택해야 할 수도 있습니다. –