IntelliJ의 최신 커뮤니티 에디션으로 개발중인 Windows 컴퓨터에서 Java8을 사용하고 있습니다. JFrame을 전체 화면으로 만들려면 다음과 같은 해결책을 찾았습니다.JFrame을 장식하지 않고 전체 화면으로보기
솔루션은 내가 JFrame의 전체 화면으로 만들기 위해 선 아래 세 가지를 넣어하는 데 필요한 솔루션에 따라 경찰 JFrame full screen
에서했다 : 내 프로젝트에서 내가 클래스 AppFrame.java을 만든
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setVisible(true);
하지만 JFrame을 확장합니다. 그리고 기본 생성자에서 폰트 등의 기본 속성을 설정하고 사실에 대한 가시성을 중요하게 설정했습니다. A와
Exception in thread "main" java.awt.IllegalComponentStateException: The frame is displayable. at java.awt.Frame.setUndecorated(Frame.java:923)
:
import javax.swing.*;
import java.awt.*;
public class AppFrame extends JFrame {
AppFrame() {
Font baseFont = new Font("Dialog", Font.PLAIN, 12);
setFont(baseFont);
setLocationRelativeTo(null);
setBackground(Color.WHITE);
setForeground(Color.black);
setLayout(new FlowLayout());
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
그리고 나는 그것이 오류가 아래 얻을 극대화하기 위해 (또는 이미 AppFrame에서오고는, setVisible없이) 세 줄 위에 넣을려고 할 때 AppFrame를 확장 클래스
솔루션의 일부 (내가 확인하고 싶습니다) - 실험적으로 AppFrame.java에서 setVisible (true)을 제거하고 작동했지만 AppFrame을 확장하는 모든 클래스에 영향을 미칠 수 있으므로frame.setUndecorated(true);
을 클래스에서 제거하고 setVisible AppFrame에서. 그리고 예외는 사라졌습니다. 또한
frame.setUndecorated(true);
나는 JFrame의 제목 표시 줄을 제거한다고 생각합니다. 누군가가이 동작을 확인할 수있는 경우
A frame may have its native decorations (i.e. Frame and Titlebar) turned off with setUndecorated. This can only be done while the frame is not displayable.
그것은 좋은 것 :
또한, 아래의 javadoc에서 JFrame의의 발췌입니다.
확인하려는 내용을 잘 모르겠다. 설명서가 매우 명확합니다. – MadProgrammer
* "AppFrame.java에서 setVisible (true)을 삭제했습니다."* - I 보이는 것이 만들어 져야하는지에 대한 결정을 내리는'AppFrame'까지는 안되기 때문에 이것은 좋은 일이라고 주장 할 것입니다. 그것은 어린이 클래스에 가장 적합한 구현 세부 사항입니다. – MadProgrammer
창을 최대화하고 싶다면 ['setExtendedState'] (https://docs.oracle.com/javase/8/docs/api/java/awt/Frame.html#setExtendedState-int-) – MadProgrammer