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 中国語 Web サイトの他の関連記事を参照してください。