JAVA swing怎样让按钮和标签随着窗口的放大而放大,排版不变
4个回答
展开全部
如果你想实现动态的按照要求的放大和缩小。那么你应该设置布局为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);
展开全部
使用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:使组件完全填满其显示区域。
在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:使组件完全填满其显示区域。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用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:使组件完全填满其显示区域。
在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
展开全部
如果要求等比例缩放的话,可以试试监听窗口大小改变的事件,然后手动实现组件大小的调整
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询