JComponent
(패널, 프레임, 창 등)을 전체 화면으로 만들면 Windows 시작 막대를 포함하여 화면의 모든 부분이 겹치게됩니다.자바 패널을 전체 화면으로 만들기
bitdepth 등의 그래픽 장치로 해상도를 변경하고 싶지는 않습니다. 다른 모든 것을 겹치기를 원합니다.
JComponent
(패널, 프레임, 창 등)을 전체 화면으로 만들면 Windows 시작 막대를 포함하여 화면의 모든 부분이 겹치게됩니다.자바 패널을 전체 화면으로 만들기
bitdepth 등의 그래픽 장치로 해상도를 변경하고 싶지는 않습니다. 다른 모든 것을 겹치기를 원합니다.
당신은 용기가 화면을 채우기 위해 허용하는 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);
}
});
}
...
}
이것이 작동하는 이유를 설명해 주시겠습니까? 특히'l.x - = p.x;'다음에 나오는 줄과 같은 실행 가능한 부분. 그것은 효과가 있지만 완전히 이해하고 싶습니다. – Connorelsea
@Connorelsea 별도의 질문으로 5 년 이상 지나면 모든 내용을 기억하지 않는 것이 더 쉽습니다. – VonC
는 다음과 같은 API를 사용합니다 : 전체 화면으로가는 http://java.sun.com/docs/books/tutorial/extra/fullscreen/index.html
대형 패널을 만드는 것만 큼 간단하지 않다가, 당신은 기본 OS 그래픽으로 볼 필요가있다. 하지만 JPanel 코드는 잘 해석되어야합니다.
자바의 전체 화면 모드 API를 설명하는 this tutorial을 확인하십시오.
예제 코드 (자습서에서 가져옴). 이 코드는 Window
에서 작동하므로 JPanel
을 Window
(예 : JFrame
)으로 삽입해야합니다.
GraphicsDevice myDevice;
Window myWindow;
try {
myDevice.setFullScreenWindow(myWindow);
...
} finally {
myDevice.setFullScreenWindow(null);
}
동일한 작업을 수행하려면 많은 검색이 필요했습니다. 여기에 완전히 단계별로 작동하는 버전이 있으므로 나중에 찾을 수도 있고 사용할 수도 있습니다.
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 단계 : 코드를 컴파일하고 실행
끝난.
만약 내가 자바라면 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);
}
}
지금까지 답변에 어떤 문제가 있습니까? – Thomas
예, 진지하게. Adamski에게 주면 더 좋은 대답을 얻지 못할 것입니다. –
현재 응답에 대해 마음에 들지 않는 것에 대한 단서를 제공하지 않는 한 아무도 다른 것을 생각해 낼 수 없습니다. – Thomas