> Java> 본문

JFrame은 크기를 조정할 때 동일한 창 종횡비를 유지합니다.

PHPz
풀어 주다: 2024-02-22 12:55:06
앞으로
1122명이 탐색했습니다.

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); } }); } }
로그인 후 복사

Solution

내 생각은 다음과 같습니다.

으아악

이렇게 하면 사용자가 조정하는 값이 변경되지 않습니다. (프레임 크기) 변경 사항에 응답하고 패널이 여전히 올바른 크기인지 확인합니다.

위 내용은 JFrame은 크기를 조정할 때 동일한 창 종횡비를 유지합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!