首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA布局情况

JAVA布局情况
EN

Stack Overflow用户
提问于 2015-11-26 22:23:37
回答 1查看 37关注 0票数 0

所以我的JFrame设置为全尺寸

代码语言:javascript
复制
temp.setExtendedState(JFrame.MAXIMIZED_BOTH); 

我添加了3个面板(边框布局),在panel1中,我使用JLabel显示图像:

代码语言:javascript
复制
img.getScaledInstance(600, 400,
        Image.SCALE_SMOOTH);

panel2一样,panel3只是一些按钮。(我不会在这里发布整个代码),但是这段代码运行得很好。现在我要做的是: Jframe是全尺寸的,45%是panel1,45%是panel2,10%是panel3。如果我的图片太大,不能容纳45%,它会被缩放,以适应这45%的JFrame,如果它比它显示的小。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-26 22:52:04

您可以使用Darryl的收缩图标。这是一个Icon,可以将其添加到JLabel中,然后将JLabel添加到JPanel中。

Shrink Icon的工作方式是:

  1. 如果没有足够的空间显示图像,那么图像就会缩小。
  2. 如果有足够的空间,那么图像在可用空间中居中。

我们不会硬编码组件的空间分配。我们让每个组件占用它所需要的空间。因此,对于您的主布局,您将使用框架的BorderLayout。

你会用:

代码语言:javascript
复制
JPanel controls = new JPanel();
controls.add(...);
frame.add(controls, BorderLayout.PAGE_END);

然后,您将为您的图像创建第二个面板:

代码语言:javascript
复制
JPanel images = new JPanel( new GridLayout(0, 1) );
images.add( new JLabel(...) );
images.add( new JLabel(...) );
frame.add(images, BorderLayout.CENTER)

现在,图像面板将随着帧大小的变化而增长/缩小,标签也将根据可用空间的不同而增长/缩小。

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

https://stackoverflow.com/questions/33947805

复制
相关文章

相似问题

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