首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改preferredSize of a JLabel在setVisible JFrame之后

更改preferredSize of a JLabel在setVisible JFrame之后
EN

Stack Overflow用户
提问于 2010-12-12 14:18:49
回答 1查看 3.2K关注 0票数 1

当我试图调整JLabel的大小时,我遇到了一个问题。在我的应用程序中,将显示下一个结构。理解每个列表项,就像前一个列表项中的某些内容一样。

  • JFrame (布局为空,大小固定,不可调整大小,可供不同的人使用)。
  • JPanel (布局为null,具有所有窗口的大小,该位置是我放置我的工作)。
  • 具有不同布局的各种JPanel (主面板中的内容区域,您可以像html .一样考虑它)。
  • 在其中一个布局为null的“div”中,有一些具有流布局的JPanel扩展类。
  • 在这些已退出的类的每个内部都有带有preferredSizes的标签。

问题是,在创建完所有这些之后,我调用了theFrame.setVisible(true);并且所有操作都很正常。

但是在我的应用程序流程中,我必须更改其中一个标签的大小。然后,我只需调用label.setPreferredSize(d),更改就不会改变。如果在将框架设置为可见之前调用它,而不是在之后调用它,则该函数可以正常工作。

我有一种感觉,问题是我不使用任何东西,比如pack()、validate()、repaint()等等,因为我不知道它是如何工作的。我尝试调用重绘并验证到jlabel,并重新绘制主面板,但没有工作。

我对awt和swing还比较陌生,这是用来做作业的。对不起,我的英语不好使用,并感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-12 14:52:40

更改JLabel大小后,请调用重新验证()。这将导致调整JLabel的大小,而无需等待触发重新布局的事件(例如调整父框架的大小等)。

代码语言:javascript
复制
JLabel lbl_test;

lbl_test.setPreferredSize(new Dimension(100, 100) );
lbl_test.revalidate();

还有一件事要记住,因为我不知道你对哪一门课有问题。与布局管理器混合的空布局(绝对定位)将导致一些奇怪的事情发生。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4422068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档