2011-10-07 2 views
0

두 개의 창이있는 응용 프로그램을 만들고 싶습니다. 첫 번째 모니터는 항상 첫 번째 모니터에 있어야하며 최대화 할 수 없습니다. 두 번째 모니터는 두 번째 모니터에서 실행되어야하며 (완벽한 예제는 PowerPoint의 프레젠테이션 모드와 비슷 함) 다른 응용 프로그램의 창 상단에서 실행되고 항상 최대화되어야합니다. 이 창은 첫 번째 창에 주어진 수신기를 사용하여 시작됩니다. 이러한 "모니터"는 프레젠테이션이나 실제 데스크탑 컴퓨터 모니터에 사용되는 LCD 프로젝터 일 수 있습니다.여러 모니터 구성에서 JFrame을 배포하는 방법

나는 GraphicsEnvironment API가 있으며, 모니터 구성이 단일 모니터로 처리되는지 또는 별도로 처리되는지 여부를 알 수 있습니다. 하지만, 어떻게 구현해야할지 모르겠습니다. 그래픽 카드에 따라 화면 구성이 다르게 취급 될 수 있으므로 어떻게 검증합니까?

예를 들어 해상도가 큰 단일 모니터로 처리되는 모니터가 3 개있는 경우 두 번째 창에 좌표 x0을 설정할 수 있습니다. total_width * 2/3 그러나 분리 된 것으로 처리되는 경우 모니터 ..?

감사합니다.

+1

다음 링크를 보셨습니까 : http://download.oracle.com/javase/1.3/docs/guide/2d/spec/j2d-awt.fm6.html 도움이 될 수 있습니다. 정말 늙었지만 새로운 자바 버전에서 비슷한 것을 찾을 수있을 것입니다 – doNotCheckMyBlog

+3

여러 모니터가 하나의 의미로 표시되는 콘텐츠가 모두에 퍼져 있다는 의미에서 "하나"로 취급되는 경우에도 거대한 모니터를 사용하면 각 모니터를 개별적으로 얻을 수 있습니다. GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice [] gs = ge.getScreenDevices(); gs [i] .setFullScreenWindow (myJFrame);을 사용하여 원하는 화면에 프레임을 설정하십시오. –

+0

와우 .. 빠른 답변에 감사드립니다. 나는 그들을 시도 할 것이다 ^^ – Keith

답변

2

@Zecas : 네, 잘되었습니다. 대답을 게시하지 않아 죄송합니다. 나는 완전히 잊었다. 단지 사용, 그 후

GraphicsEnvironment ge = GraphicsEnvironment .getLocalGraphicsEnvironment(); 
GraphicsDevice[] gs = ge.getScreenDevices(); 

: 그래서,이 솔루션은 ShivanDragon 명시된 것을, 우리는 먼저 우리의 GraphicsEnvironment를 획득하여 개별적으로 각각의 모니터를 얻고, 다음 환경에서 우리의 스크린 장치를 얻을 수 정확하게이다

gs[_screen_index].setFullSCreenWindow(_frame) 
+0

유감스럽게도, 우분투 리눅스에서 나를 위해이 기능을 사용할 수 없다. 엔비디아 비디오 카드가있다. 내 특정 문제가 내 디스플레이 구성 방법과 관련이 있는지 확실하지 않다. X는 아마도 Java에 이산 디스플레이 또는 그 라인을 따르는 어떤 것으로 나타나지 않을 것입니다. –

관련 문제