swing:关于调整JFrames和条件滚动的大小

时间:2012-03-29 08:42:15

标签: java swing scroll jframe

我的JFrame里面有一个JPanel。面板显示在运行时从网络接收的图像。这些图像通常很大,但可以有任何尺寸。考虑到这一点,鉴于我将来可能会在框架中添加一个菜单栏,我想做以下事情:

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

有办法做到这一点吗?如果没有,最好的替代方案是什么?

提前致谢

编辑:

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

对于第3点,我已经有了内容面板尺寸,因此问题减少到计算框架框架的大小(顶部标题栏高度,边框宽度)。有了这个,我可以将框架调整到一个大小,例如内容窗格完全适合内部。

1 个答案:

答案 0 :(得分:2)

编辑

put images as Icon to the JLabel

pictures = new ImageIcon("Xxxxx");
pictures.getImage().flush();
myLabel.setIcon(pictures);
  • 此代码最好从SwingWorkerRunnable#Thread拨打,但在这种情况下,您必须将代码行myLabel.setIcon(pictures);包装到invokeLater()中,

  • 更多关于Swing Concurency教程中的SwingWorkerinvokeLater(),关于此论坛上的可靠性的一堆答案