我正在将布局设置为 null,我有一个具有纵横比的 JFrame,并且在调整大小期间,此框架保持相同的纵横比。
每次我调整框架大小时,我都会调整所有组件的大小而没有任何问题,只需使用 JLabel 即可。
当我调整 JLabel 的边界时,文本不会增加以适应新的边界,文本保持相同的大小。
我试图通过每次设置字体大小来解决问题,但这似乎很困难。
有没有办法做到这一点?
我正在将布局设置为 null,我有一个具有纵横比的 JFrame,并且在调整大小期间,此框架保持相同的纵横比。
每次我调整框架大小时,我都会调整所有组件的大小而没有任何问题,只需使用 JLabel 即可。
当我调整 JLabel 的边界时,文本不会增加以适应新的边界,文本保持相同的大小。
我试图通过每次设置字体大小来解决问题,但这似乎很困难。
有没有办法做到这一点?
您是否尝试过使用可以保持纵横比的特定布局?比如GridbagLayout?使用适当的布局,例如 GridBagLayout 或 SpringLayout
示例:容器 contentPane = jframe.getContentPane(); contentPane.setLayout ( 新的 GridBagLayout() );
// xywh wtx wty 锚填充 TLBR padx pady contentPane.add( myPanel, new GridBagConstraints( 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets( 10, 10, 10, 5 ) , 0, 0 ) ); contentPane.add(myPanel2, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets(10, 5, 10, 10), 0, 0));
您还希望标签等也被扩展。嗯,我不知道有什么会自动为您执行此操作。您可以扩展一些组件以从布局中获取提示并适当地调整大小。例如,当您确定由于窗口调整大小而有更多空白可用时,您可以选择放大字体。我不知道会为标签执行此操作的现有组件。要做到这一点,比例字体有点棘手。实际上,如果我没记错的话,我曾经做过类似的事情。从程序上讲,这就像“反复试验”。在屏幕外,我会以估计的字体大小绘制字符串并重新绘制,直到它适合具有所需边距的分配空间。让这些动态标签看起来不错似乎很麻烦!