gpt4 book ai didi

java - swing:关于调整 JFrame 大小和条件滚动

转载 作者:行者123 更新时间:2023-12-02 07:53:33 31 4
gpt4 key购买 nike

我有一个JFrame,里面有一个JPanel。该面板显示运行时从网络接收的图像。这些图像通常很大,但可以具有任意大小。考虑到这一点,并考虑到我将来可能会向框架添加菜单栏,我想执行以下操作:

  • 对于每张收到的图像,面板都会调整其大小。
  • 如果图像(以及调整大小的面板)的宽度或高度超过某个最大值(例如:屏幕尺寸 - 100 像素),则框架应调整大小到允许的最大值并启用滚动条。
  • 否则,框架应调整其大小以显示整个面板,而无需任何填充。所以框架大小是内容面板大小加上边框和标题栏(如果我最终添加它,还有菜单栏)。

有办法做到这一点吗?如果没有,最好的选择是什么?

提前致谢

编辑:

总而言之,问题是如何调整父框架的大小以适应其子内容面板。这与大多数人的做法相反(调整面板大小以适合框架)。

对于第 3 点,我已经有了内容面板尺寸,因此问题被简化为计算框架的框架尺寸(顶部标题栏高度、边框宽度)。这样,我就可以将框架的大小调整为适合内容 Pane 的大小。

最佳答案

编辑

put images as Icon to the JLabel

但是

pictures = new ImageIcon("Xxxxx");
pictures.getImage().flush();
myLabel.setIcon(pictures);
  • 此代码应该更好地从 SwingWorkerRunnable#Thread 调用,但在这种情况下,您必须包装代码行 myLabel.setIcon(pictures);invokeLater(),

  • 教程 Concurency in Swing 中有关 SwingWorkerinvokeLater() 的更多信息,此论坛上有大量关于并发的答案

关于java - swing:关于调整 JFrame 大小和条件滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9921911/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com