Java JLabel强制文本符合JLabel边界(空布局)

Java JLabel强制文本符合JLabel边界(空布局),java,swing,jlabel,layout-manager,null-layout-manager,Java,Swing,Jlabel,Layout Manager,Null Layout Manager,我将布局设置为null,我有一个宽高比的JFrame,在调整大小的过程中,这个框架保持相同的宽高比 每次调整框架大小时,我都会调整所有组件的大小,没有任何问题,只有一个使用JLabel 当我调整JLabel的边界时,文本不会增加以适应新的边界,而是保持相同的大小 我试图通过每次设置字体大小来解决这个问题,但这似乎很困难 有没有办法做到这一点?您是否尝试过使用特定的布局来保持纵横比?比如网格布局? 使用适当的布局,如GridBagLayout或SpringLayout 例如: 容器contentP

我将布局设置为null,我有一个宽高比的JFrame,在调整大小的过程中,这个框架保持相同的宽高比

每次调整框架大小时,我都会调整所有组件的大小,没有任何问题,只有一个使用JLabel

当我调整JLabel的边界时,文本不会增加以适应新的边界,而是保持相同的大小

我试图通过每次设置字体大小来解决这个问题,但这似乎很困难


有没有办法做到这一点?

您是否尝试过使用特定的布局来保持纵横比?比如网格布局? 使用适当的布局,如GridBagLayout或SpringLayout

例如: 容器contentPane=jframe.getContentPane(); contentPane.setLayout(新的GridBagLayout())

//x y w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w 添加(myPanel,新的GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.BOTH,新的插入(10,10,10,5),0,0)); 添加(myPanel2,新的GridBagConstraints(1,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.BOTH,新的插图(10,5,10,10),0,0))


您还希望标签等也被扩展。嗯,我不知道有什么能自动帮你做到这一点。您可以扩展一些组件,从布局中获取提示,并适当地重新调整大小。例如,当您确定由于重新调整窗口大小而有更多的可用空白时,您可以选择放大字体。我不知道现有的组件,将这样做的标签。比例字体是一个有点棘手的得到这个权利。事实上,如果我还记得的话,我曾经做过类似的事情。从语法上讲,这就像是“反复试验”。在屏幕外,我会以估计的字体大小绘制字符串,然后向下重画,直到它符合指定的空间和所需的边距。当然,要让这些动态标签看起来很好似乎有很多麻烦

不,我不,我做一个游戏,对我来说,空布局似乎在我看来这个解决方案更好,但我是java新手,如果没有解决方案,我将改变我的工作方式“对我来说,空布局似乎这个解决方案更好”,这表明你缺乏经验。使用布局。永远不要手动调整大小/定位。这永远是一个合适的布局经理的唯一任务