JAVA swing怎样让按钮和标签随着窗口的放大而放大,排版不变

 我来答
雪飞潇潇
推荐于2017-09-16 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:873万
展开全部

如果你想实现动态的按照要求的放大和缩小。那么你应该设置布局为frame.setLayout(null)
定义变量 width,height。然后在窗口改变大小重绘组件的时候,动态设置组件大小

比如 JButton.setBounds(0,0,width/10,height/10);

===================================================================

建议使用borderlayout 边界布局。非常好用。用边界布局套流布局,表布局就能做出很多界面了

简单的范例,你参考下

public class MyBorderLayout {

 public static void main(String[] args) {

  Frame f = new Frame("P03窗口");

  f.setLayout(new BorderLayout(30, 5));

  f.add(new Button("东"), BorderLayout.EAST);

  f.add(new Button("西"), BorderLayout.WEST);

  f.add(new Button("中"));

  f.add(new Button("南"), BorderLayout.SOUTH);

  f.add(new Button("北"), BorderLayout.NORTH);

  f.pack();

  f.setVisible(true);

 }

}

 

 

 

如果你想实现动态的按照要求的放大和缩小。那么你应该设置布局为frame.setLayout(null)
定义变量 width,height。然后在窗口改变大小重绘组件的时候,动态设置组件大小

比如 JButton.setBounds(0,0,width/10,height/10);

幽静孤雨下
推荐于2018-06-15 · TA获得超过187个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:116万
展开全部
使用gridbaglayout布局。
在JPanel中使用该布局存放按钮和标签组件。
该布局有点繁琐。有不懂请留言。
这里给出gridbaglayout布局参数说明。你用的上。
gridx——组件的左边缘与网格左部之间的距离,默认值为 RELATIVE
gridy——组件的上边缘与网格顶部之间的距离,默认值为 RELATIVE
gridwidth——组件的横向宽度,默认值为1
gridheight——组件的纵向高度,默认值为1

ipadx——组件间的横向间距,组件的宽度就是这个组件的最小宽度加上ipadx值, 默认值为 0。
ipady——组件间的纵向间距,组件的高度就是这个组件的最小高度加上ipady值, 默认值为 0。
weightx——当窗口变大时,各组件沿水平方向跟着变大的比例,默认值为 0。
weighty——当窗口变大时,各组件沿垂直方向跟着变大的比例,默认值为 0。
fill——组件比显示区域小,可以用来控制组件的行为。控制组件是垂直填充,还是水平填充,或者两个方向一起填充,默认值为 NONE。

insets——指组件与显示区域四周边缘的空白区域的大小new Insets(上、左、下、右),默认值为 new Insets(0, 0, 0, 0)。
anchor——组件比显示区域小,告诉布局管理器组件在表格空间中的位置,默认值为
CENTER。

对gridwidth与gridheight做了修改后,必须记得要对fill属性做相应的修改,否则组件所显示的大小还是原来的大小。

gridx、gridy的可能值
RELATIVE 将被放置在前一个组件的右侧或下方
gridwidth、gridheight的可能值
RELATIVE 指定此组件为其行或列中的倒数第二个组件
REMAINDER 创建的组件会从创建的起点位置 开始一直延伸到容器所能允许的限度为止.
fill的可能值
NONE:不调整组件大小。
HORIZONTAL:加宽组件,使它在水平方向上填满其显示区域,但是不改变高度。 VERTICAL:加高组件,使它在垂直方向上填满其显示区域,但是不改变宽度。 BOTH:使组件完全填满其显示区域。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
今天什么料

2019-12-06 · TA获得超过7.4万个赞
知道小有建树答主
回答量:506
采纳率:100%
帮助的人:19.5万
展开全部
使用gridbaglayout布局。
在JPanel中使用该布局存放按钮和标签组件。
该布局有点繁琐。有不懂请留言。
这里给出gridbaglayout布局参数说明。你用的上。
gridx——组件的左边缘与网格左部之间的距离,默认值为 RELATIVE
gridy——组件的上边缘与网格顶部之间的距离,默认值为 RELATIVE
gridwidth——组件的横向宽度,默认值为1
gridheight——组件的纵向高度,默认值为1

ipadx——组件间的横向间距,组件的宽度就是这个组件的最小宽度加上ipadx值, 默认值为 0。
ipady——组件间的纵向间距,组件的高度就是这个组件的最小高度加上ipady值, 默认值为 0。
weightx——当窗口变大时,各组件沿水平方向跟着变大的比例,默认值为 0。
weighty——当窗口变大时,各组件沿垂直方向跟着变大的比例,默认值为 0。
fill——组件比显示区域小,可以用来控制组件的行为。控制组件是垂直填充,还是水平填充,或者两个方向一起填充,默认值为 NONE。

insets——指组件与显示区域四周边缘的空白区域的大小new Insets(上、左、下、右),默认值为 new Insets(0, 0, 0, 0)。
anchor——组件比显示区域小,告诉布局管理器组件在表格空间中的位置,默认值为
CENTER。

对gridwidth与gridheight做了修改后,必须记得要对fill属性做相应的修改,否则组件所显示的大小还是原来的大小。

gridx、gridy的可能值
RELATIVE 将被放置在前一个组件的右侧或下方
gridwidth、gridheight的可能值
RELATIVE 指定此组件为其行或列中的倒数第二个组件
REMAINDER 创建的组件会从创建的起点位置 开始一直延伸到容器所能允许的限度为止.
fill的可能值
NONE:不调整组件大小。
HORIZONTAL:加宽组件,使它在水平方向上填满其显示区域,但是不改变高度。 VERTICAL:加高组件,使它在垂直方向上填满其显示区域,但是不改变宽度。 BOTH:使组件完全填满其显示区域。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-23
展开全部
如果要求等比例缩放的话,可以试试监听窗口大小改变的事件,然后手动实现组件大小的调整
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式