我正在处理设置为null的布局,我有一个具有纵横比的JFrame,在调整大小的过程中,这个帧保持相同的纵横比。
每次我调整框架的大小时,我都会调整所有组件的大小,没有任何问题——只有一个使用JLabel。
当我调整JLabel的边界时,文本不会增加以适应新的边界,文本会保持相同的大小。
我试图通过每次设置字体大小来解决这个问题,但这似乎很困难。
有办法做到这一点吗?
您是否尝试过使用特定的布局来保持纵横比?例如GridbagLayout?使用适当的布局,如GridBagLayout或SpringLayout
示例:容器内容窗格=jframe.getContentPane();contentPane.setLayout(new GridBagLayout());
//x y w h wtx wty锚固填充T L B R焊盘x焊盘contentPane.add(myPanel,新GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.BOTH,新插入(10,10,5),0,0);contentPane.add(myPanel2,新GridBagConstraints(1,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.BOTH,新插入(10,5,10,10),0,0);
您还希望扩展标签等。嗯,我不知道有什么能自动为你做这件事。您可以扩展一些组件以从布局中获得提示,并适当地重新调整大小。例如,当您确定由于窗口重新调整大小而有更多空白可用时,您可以选择放大字体。我不知道现有的组件会为标签做这件事。比例字体要做到这一点有点棘手。事实上,如果我还记得的话,我曾经做过类似的事情。从语法上讲,这就像是"试错"。在屏幕外,我会按照估计的字体大小绘制字符串,然后向下重新绘制,直到它符合所需边距的分配空间。当然,要想让这些动态标签看起来好看,似乎有很多麻烦!