2012-09-20 3 views
6

그래서 우분투를 사용하고 있습니다. 자바에서 전체 화면 모드로 들어갈 때 제목 표시 줄이없는 전체 화면 대신 최대 화면 크기의 일반 창이 나타납니다. 다른 OS에서 시도하지 않았기 때문에 전체 화면 모드가 Java에서 어떻게 보이는지 확실하지 않습니다. 그러나 제목 표시 줄이없는 화면이어야한다고 가정합니다. 이 문제가 발생한 사람은 누구입니까?자바 전체 화면 모드가 우분투에서 작동하지 않습니다.

이것은 내가 사용하는 코드입니다. ; 꽤 직설적 인. 이 코드 (@Gilberto 제안하고, RED 패널을 추가로 I true로 꾸며지지 않은 플래그를 설정)이 OK 작동하는 것 같다와 WIN7에

public static void main(String[] args) { 
    GraphicsEnvironment env = GraphicsEnvironment 
      .getLocalGraphicsEnvironment(); 
    GraphicsDevice vc = env.getDefaultScreenDevice(); 
    JFrame window = new JFrame(); 
    window.setUndecorated(false); 
    window.setResizable(false); 
    vc.setFullScreenWindow(window); 
} 
+3

vc.isFullScreenSupported()는 무엇을 반환합니까? – Adam

+0

다른 OS에서 사용해 보시고 질문을 업데이트 하시겠습니까? – JMK

+0

Windows 7에서 코드를 실행했는데 동일한 현상이 나타났습니다. 화면의 전체 크기와 제목 표시 줄이 나타납니다.나는 이것이 예상 된 행동이라고 생각한다. –

답변

3

. 우분투에서 작동하지 않는 경우, 다음은 전체 화면 모드가 지원되지 않는 것을 의미 할 수있다 :

우분투 (뿐만 아니라 아마 다른 Linuxes)에
import java.awt.Color; 
import java.awt.GraphicsDevice; 
import java.awt.GraphicsEnvironment; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class Main { 
    public static void main(String[] args) { 
     GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     GraphicsDevice vc = env.getDefaultScreenDevice(); 
     JFrame window = new JFrame(); 
     JPanel comp = new JPanel(); 
     comp.setBackground(Color.RED); 
     window.add(comp); 
     window.setUndecorated(true); 
     window.setResizable(false); 
     vc.setFullScreenWindow(window); 
    } 
} 
+0

@trashgod 예 실제로 종료 기능을 추가하지 않았습니다 ;-) –

+0

작동하지만 제목 표시 줄은 계속 볼 수 있지만 닫기 또는 크기 조정 옵션은 표시되지 않습니다. 그래서 그게 좋네요 :) – Jon

+0

@Jon That 's odd. 'false' 대신'setUndecorated (true)'를 호출 했습니까? trashgod의 의견에 따르면 우분투에서도 올바르게 작동합니다. –

4

가 작동하지 않습니다. Java의 전체 화면 모드는 전체 화면을 표시하지 않지만 도구 모음은 그대로 유지합니다. 네가하는 일은 언제나.

위의 두 예제와 공식 FSEM tutorial에서 예제를 시도해 보았습니다. Java/Swing 및 전체 화면 모드 (FreeCol 및 TripleX)를 사용하고 있고 아무도 작업/툴바 영역을 커버 할 수 없다는 것을 알고 있습니다. 화면.

내 구성은 OpenJDK 또는 SUN-JRE 1.7.0_09와 Unity 또는 Gnome 중 하나를 사용하는 Ubuntu 12.10입니다. 흥미롭게도 isFullScreenSupported()에 대한 Java 호출은 true를 반환합니다. 따라서 Java JRE는 전체 화면을 독점 지원한다고 말하지만 그렇지 않습니다.

일부 가능한 설명은 다른 question으로 표시 될 수 있습니다.

0

대부분의 경우 적용 할 수 없지만이 문제에 대한 해결책을 말씀드립니다.

저의 경우 대학 기관 (심리 테스트)을 위해 Java/Scala 앱을 자주 개발해야합니다. 이 문제를 해결하기 위해 실험용 PC에 톱밥을 설치하기로 결정했습니다.

당신의 요구에이 솔루션을 적용 할 수 있다면 Ubuntu 시설 (소프트웨어 센터, Aptitute, apt-get)을 통해 (매우 오래된) sawfish를 설치할 수 있습니다. 또는 - 내가 원하는 것 - 날짜 톱밥 수동.

다른 창 및/또는 데스크톱 관리자가 비슷한 기능을 제공 할 수도 있지만 XFCE 또는 LXDE를 비활성화/삭제 된 패널로 시도했을 때 인공물을 경험했습니다.

1

이 스레드는 매우 오래된 항목이지만 ACTUAL 검색 결과에는 여전히 오답이 있습니다. 그래서 실제 해결책을 게시 할 것입니다.

스윙 전체 화면이 아니라 setFullScreenWindow() 기능과 함께 setExtendedState() 기능을 설정됩니다!

JFrame myFrame = new JFrame(); 
.... 
myFrame.setExtendedState(MAXIMIZED_BOTH); 

그런 다음 u'll 모든 버튼과 올바른 도구 모음 눈으로 장식 된 전체 화면 창을 가지고 있고 그것은 우분투와 다른 OS와 함께 작동합니다.

+0

예. 이 작동합니다. – ice1000

관련 문제