2017-03-29 3 views
-1

MacOS에서 Java를 사용하고 있습니다. 실제 화면 해상도는 2560x1600입니다. 그러나 크기가 1200x900 이상인 JFrame은 화면에 맞지 않습니다.실제 JFrame 크기가 선언 된 것과 일치하지 않습니다.

JFrame frame = new JFrame(); 
frame.setBounds(0,0,1200,900); 
frame.setLayout(null); 
frame.setVisible(true); 

또한 본 :

JFrame frame = new JFrame(); 
frame.setBounds(0,0,3000,3000); 
frame.setLayout(null); 
frame.setVisible(true); 
System.out.println(frame.getWidth() + "x" + frame.getHeight()); 

출력 1280x773. 왜 이런 일이 일어나고 어떻게 처리 할 수 ​​있습니까?

편집 : x2 눈금이 있습니다. 망막 및 OS 구성 때문일 수 있습니다. 해당 규모를 변경하는 방법을 찾고 있습니다.

+4

'frame.setBounds (001200900); '이것은 처음 실수입니다. 프레임의 크기를 추측하지 마십시오. 그것을 포장하여 이상적인 크기를 얻거나 ['Frame.setExtendedState] (Frame.MAXIMIZED_BOTH)'] (http://docs.oracle.com/javase/8/docs/api/java/awt/Frame.html)를 호출하십시오. # setExtendedState-int-) 이것은 두 번째 실수입니다. 'frame.setLayout (null);'나는 우리가 거의 매일 그것을 다루기 때문에, 왜 들어가지 않을 것이다. 자세한 내용은 [tag : null-layout-manager]를 검색하십시오. –

+1

[XY 문제 란 무엇입니까?] (http://meta.stackexchange.com/q/66377) –

+0

frame.setExtendedState (Frame.MAXIMIZED_BOTH) 프레임을 완전히 채우도록 프레임을 만들지 만 크기는 여전히 1280x773입니다. – LvlDeath

답변

-1

여기에 당신이) (

JFrame frame = new JFrame(); 
    frame.setBounds(0,0,3000,3000); 
    frame.setLayout(null); 
    frame.setVisible(true); 

frame.pack을 입력하는 방법입니다 코드에 frame.pack()를 추가하려고; System.out.println (frame.getWidth() + "x"+ frame.getHeight());

+0

출력 : 80x24. 프레임이 작아 질까? – LvlDeath

0
JFrame frame = new JFrame(); 
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    frame.setLocationRelativeTo(null); 
    frame.setLayout(null); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    //============ or set Location to (0, 0) for this approach 

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    int width = (int) screenSize.getWidth(); 
    int height = (int) screenSize.getHeight(); 

    frame.setSize(width, height); 
+0

출력 : 1280x800. 망막 및 일부 OS 구성으로 인해 크기가 2 배로 표시됩니다. 그리고 저 저울을 바꾸는 방법을 찾고있는 Im – LvlDeath