2010-02-27 2 views
15

JComponent (패널, 프레임, 창 등)을 전체 화면으로 만들면 Windows 시작 막대를 포함하여 화면의 모든 부분이 겹치게됩니다.자바 패널을 전체 화면으로 만들기

bitdepth 등의 그래픽 장치로 해상도를 변경하고 싶지는 않습니다. 다른 모든 것을 겹치기를 원합니다.

+1

지금까지 답변에 어떤 문제가 있습니까? – Thomas

+0

예, 진지하게. Adamski에게 주면 더 좋은 대답을 얻지 못할 것입니다. –

+0

현재 응답에 대해 마음에 들지 않는 것에 대한 단서를 제공하지 않는 한 아무도 다른 것을 생각해 낼 수 없습니다. – Thomas

답변

11

당신은 용기가 화면을 채우기 위해 허용하는 codes in this page의 일부를 시도 할 수 있습니다 (그래서이 개별 구성 요소에 대한 해결책은 아니지만을 JFrame 같은 컨테이너 내의 구성 요소의 집합에 대한)

public class MainWindow extends JFrame 
{ 
    public MainWindow() 
    { 
    super("Fullscreen"); 
    getContentPane().setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize()); 
    pack(); 
    setResizable(false); 
    show(); 

    SwingUtilities.invokeLater(new Runnable() { 
     public void run() 
     { 
     Point p = new Point(0, 0); 
     SwingUtilities.convertPointToScreen(p, getContentPane()); 
     Point l = getLocation(); 
     l.x -= p.x; 
     l.y -= p.y; 
     setLocation(l); 
     } 
    }); 
    } 
    ... 
} 
+0

이것이 작동하는 이유를 설명해 주시겠습니까? 특히'l.x - = p.x;'다음에 나오는 줄과 같은 실행 가능한 부분. 그것은 효과가 있지만 완전히 이해하고 싶습니다. – Connorelsea

+0

@Connorelsea 별도의 질문으로 5 년 이상 지나면 모든 내용을 기억하지 않는 것이 더 쉽습니다. – VonC

17

자바의 전체 화면 모드 API를 설명하는 this tutorial을 확인하십시오.

예제 코드 (자습서에서 가져옴). 이 코드는 Window에서 작동하므로 JPanelWindow (예 : JFrame)으로 삽입해야합니다.

GraphicsDevice myDevice; 
Window myWindow; 

try { 
    myDevice.setFullScreenWindow(myWindow); 
    ... 
} finally { 
    myDevice.setFullScreenWindow(null); 
} 
1

동일한 작업을 수행하려면 많은 검색이 필요했습니다. 여기에 완전히 단계별로 작동하는 버전이 있으므로 나중에 찾을 수도 있고 사용할 수도 있습니다.

1 단계 :

2 단계 fullscreen.java라는 파일을 만들고이 코드를 복사하여 그대로 붙여 넣습니다

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class fullscreen extends Window 
{ 
    private Button button; 

    public fullscreen() 
    { 
    super(new Frame()); 
    button = new Button("Close"); 
    button.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
     System.exit(0); 
     } 
    }); 

    setLayout(new FlowLayout()); 
    add(button); 

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    setBounds(0,0,screenSize.width, screenSize.height); 
    } 

    public static void main(String[] args) 
    { 
    // This will take over your whole screen tested and works in my: 
    // Fedora 12/13/14 
    // CentOS 5.0 
    // if this works for you, in other platforms, please leave a comments which OS it worked. 
    // happy coding! 
    new fullscreen().setVisible(true); 
    } 

} 

3 단계 : 코드를 컴파일하고 실행

끝난.

0

만약 내가 자바라면 Jframe의 경계선을 그려서는 안되며 모든 화면을 차지하게하려고합니다.

import java.awt.GraphicsEnvironment; 
import java.awt.Rectangle; 

import javax.swing.JFrame; 


public class FenNoBorder extends JFrame { 

    public FenNoBorder() { 
     setUndecorated(true); 
     setVisible(true); 
     GraphicsEnvironment graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     Rectangle maximumWindowBounds=graphicsEnvironment.getMaximumWindowBounds(); 
     setBounds(maximumWindowBounds); 
    } 
}