Java Swing에서 게임을 개발 중입니다. 나는 그 자리에있는 모든 요소를 설정하기 위해 절대 좌표와 고정 창 크기를 사용합니다. 하지만 JFrame의 크기를 조정하면 그려진 요소의 크기가 조정되지 않습니다. 어떻게하면 될까요? 예제에서는 기본 창 크기를 1280 x 720으로 설정하고이 크기에 따라 게임을 개발합니다. 그렇다면 자바가 요소의 크기를 자동으로 조정하게하는 것이 완벽 할 것입니다.Java Swing JFrame 및 JPanel의 크기를 모두 그려진 요소로 크기 조정
0
A
답변
-1
고정 된 크기의 창을 원하면 JFrame.setResizable (boolean) API를 사용하여 창의 크기를 조절할 수 없게 만들 수 있습니다. 예 :
public class FixedSizeJFrame
{
public static void main(String[] args)
{
JFrame frame = new JFrame("My Title");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 1280, 720);
frame.getContentPane().add(new JLabel("My Label"), BorderLayout.NORTH);
frame.getContentPane().add(new JTextArea("Sample text"), BorderLayout.CENTER);
frame.setResizable(false);
frame.setVisible(true);
}
}
+1
사용자로서 크기를 조정할 수없는 창을 얼마나 싫어하는지 지적하고 싶습니다. 코드는 글꼴 메트릭의 가능한 차이점도 고려하지 않습니다. DPI; 코드를 실행해야 할 수도있는 화면 해상도로 인해 사용자 수락 가능성 및 유용성이 더 낮아집니다. – MadProgrammer
+0
True. 하지만 setResizable()이 어떻게 사용되는지 보여 주기만했다. –
"나는 절대 좌표를 사용합니다"-하지 마십시오. [Layout Manager] (https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html) – c0der
* "모든 요소를 그 자리에 설정하려면 절대 좌표 및 고정 창 크기를 사용합니다. 하지만 JFrame의 크기를 조정하면 그려지는 요소가 확장되지 않습니다. * - 글쎄요, 그렇습니다. 레이아웃 관리자가 당신을 위해하는 일입니다.하지만, 바퀴를 재발 명하고 싶다면 수동으로해야합니다. 구성 요소 간의 관계 및 컨테이너 크기의 변화, 공간을 남겨 두는 방법 및 사용 가능한 공간이 구성 요소에 맞게 작을 때 수행 할 작업에 대한 반응에 대해 생각해보십시오. – MadProgrammer
또는 이러한 문제의 대부분을 해결할 수있는 API를 사용할 수 있습니다. 픽셀 완벽한 레이아웃은 환상입니다. 다른 글꼴 메트릭스; DPI; 화면 해상도; 비디오 드라이버; 그들을 극복 할 시간. 대신 사용자 흐름과 상호 작용에 중점을 둡니다. – MadProgrammer