PHP 편집자 Zimo가 이번 Java Q&A 호를 가져왔습니다. JFrame의 크기를 조정할 때 동일한 창 가로 세로 비율을 유지하는 방법에 대해 논의하겠습니다. JFrame은 Java에서 일반적으로 사용되는 창 구성 요소이지만 크기를 조정할 때 종횡비를 유지하는 것은 항상 개발자의 관심사였습니다. 이 글에서는 이 딜레마를 해결하는 데 도움이 되는 몇 가지 실용적인 방법과 팁을 공유하겠습니다. 뛰어 들어보세요!
저는 Linux gnome을 개발하고 있습니다.
창을 16:9 비율로 유지하고 싶습니다. 예를 들어 너비의 크기를 조정하면 코드는 높이만 수정하므로 사용자 입력은 건드리지 않습니다.
이 방법을 사용하면 창 크기가 원래 크기 이상으로 조정됩니다. 예를 들어 너비를 약간 조정했지만 높이는 예상보다 훨씬 큽니다.
import java.awt.Color; import java.awt.Dimension; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import javax.swing.JFrame; import javax.swing.JPanel; public class Main { public static void main(String[] args) { JPanel panel = new JPanel(); panel.setPreferredSize(new Dimension(1280, 720)); panel.setBackground(new Color(89, 108, 171, 255)); JFrame frame = new JFrame("Test"); frame.setLocation(100, 100); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(panel); frame.pack(); frame.setVisible(true); panel.addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { int targetWidth = frame.getSize().width; int targetHeight = frame.getSize().width * 9 / 16; if (targetHeight > frame.getSize().height) { targetHeight = frame.getSize().height; targetWidth = frame.getSize().height * 16 / 9; } frame.setSize(targetWidth, targetHeight); } }); } }
내 생각은 다음과 같습니다.
으아악이렇게 하면 사용자가 조정하는 값이 변경되지 않습니다. (프레임 크기) 변경 사항에 응답하고 패널이 여전히 올바른 크기인지 확인합니다.
위 내용은 JFrame은 크기를 조정할 때 동일한 창 종횡비를 유지합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!