【问题标题】:Sizing an empty JFrame to a specific size将空 JFrame 调整为特定大小
【发布时间】:2021-04-07 12:41:21
【问题描述】:

我有一个带有边框布局的框架,其中包括一个面板,其中心有一个边框布局,其中心有一个显示图像的标签。

另一个线程正在访问该标签以描绘可以被视为视频的图像 - 这很有效。 但是,框架本身每次都以这种方式调整大小: https://prnt.sc/116grry 每次运行程序时,我都必须手动调整它的大小以显示图像。

SetPreferredSize 不会改变或做任何事情来实现我想要的。 编码: https://gist.github.com/IshayKom/d06f40980fe42f96e28acdf1422b9e4f

有没有办法在获取图像之前以特定大小启动框架?

【问题讨论】:

  • 1) “代码:” 如欲获得更好的帮助,请edit 添加minimal reproducible exampleShort, Self Contained, Correct Example。如果不明显,代码应该在here,而不是在某个外部链接。 2) “有没有办法在获取图像之前以特定大小启动框架?” 当然,但是暂时忘记框架并考虑将显示图像的组件。猜是JLabel?将透明图像放入其中,与稍后预期的大小相同。添加它周围的所有组件,然后将pack() JFrame 添加到正确的大小。
  • 您正在调用方法pack()。你明白那个方法的作用吗?由于您已经在调用方法pack(),我建议在jPanel1 上调用方法setPreferredSize()(并保持对方法pack() 的调用)。

标签: java image swing jframe jlabel


【解决方案1】:

您可能正在寻找.setMinimumSizesetPreferredSize 不提供约束,因此可以由其他组件更改,例如用于显示图像的容器。

【讨论】:

  • 在OP的代码中,他正在调用方法pack()。即使调用pack()setMinimumSize() 也会强制限制吗?
  • @Abra 是的。根据docs.oracle.com/javase/8/docs/api/java/awt/Window.html#pack--。 "如果任一尺寸小于先前调用 setMinimumSize 方法指定的最小尺寸,则生成的窗口宽度和高度会自动放大。"
  • setMinimumSize 在这种情况下不够好,因为我需要用户能够根据他们 PC 的分辨率手动调整它
猜你喜欢
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 2012-05-16
相关资源
最近更新 更多