当我尝试调整 JLabel 的大小时遇到问题。在我的应用程序中出现了下一个结构。理解每个列表项,就像前一个列表项中的内容一样。
JFrame(布局为空,固定大小,不可调整大小,由不同的人使用)。
JPanel(布局为空,所有窗口的大小,我放置工作的地方)。
具有不同布局的各种 JPanel(主面板内的内容区域,您可以将其视为 html div...)。
在其中一个布局为空的“div”中,有扩展的 JPanel 类和流布局。
在这个扩展类中的每一个里面都有带有preferredSizes 的标签。
问题是,在创建所有这些之后,我调用 theFrame.setVisible(true); 一切正常。
但是在我的应用程序流程中,我必须更改其中一个标签的大小。然后,我只需调用 label.setPreferredSize(d) 并且更改不会更改。如果我在设置可见框架之前调用它,该函数可以正常工作,但不是之后。
我觉得问题在于我没有使用诸如 pack()、validate()、repaint() 等之类的东西。因为我不知道它是做什么用的。我尝试调用 repaint 并验证 jlabel,然后重新绘制主面板,但不起作用。
我对awt和swing比较陌生,这是做作业的。对不起,我的英语使用不当,感谢您的帮助。