java swing界面如何动态调整大小(自适应) -凯发k8网页登录

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 288, comments - 524, trackbacks - 0, articles - 6
  凯发k8网页登录-凯发天生赢家一触即发官网 :: 凯发k8网页登录首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

java swing界面如何动态调整大小(自适应)

posted on 2007-07-27 20:16 云自无心水自闲 阅读(21224) 评论(4)     所属分类: java心得体会

 

最近做的一个程序是用swing的,要求能够根据不同的分辨率自动调整界面上所有组件的大小。也就是说不是写死是1024×768,并且字体也需要根据大小自动变化。
我使用的工具是netbeans,为实现动态变化,我使用了gridbaglayout。首先,新建一个类,继承jpanel。然后设置jpanel的layout为gridbaglayout。当然,根据情况,可以和html中的表格一样,panel里面嵌套panel,要点是每个panel的layout都设置为gridbaglayout(使用其他的layout也可以实现这样的功能,但是个人感觉gridbaglayout最容易控制和使用)。
layout的设置只是第一步,缺省情况下,gridbaglayout会把panel中所有的组件排成一行,从左到右逐个排放。这时候,就要使用customize layout(定制布局)的功能,点击后,会再弹出一个窗口
在新的窗口中,可以拖动panel里面的组件,象表格一样,组织安放所有的组件,相当方便。
这些步骤完成后,重要的两个属性是,填充(fill),建议把所有组件的fill属性,都选成both,也就是水平和垂直方向都延伸填充。这样,panel里面的所有组件会平铺开来,占满panel的所有空间。那么,如何调整这些组件的大小呢?需要使用weightx和weighty这两个属性。这两属性的值使用0.0~1.0之间的小数,数越大,组件所占据的空间越大。
通过以上的设置,就可以实现组件大小随着panel大小的变化而变化了。
那么,又如何实现字体的变化呢?这个只能通过编程实现了。但是initcomponents函数里的代码都是自动生成的,如何添加自定义的代码呢。点击属性面板里的字体属性后面的小方框,在弹出的对话框里,点击高级按钮,勾选“生成初始化后的代码”,然后在文本框里,输入代码,这段自定义代码,会在每次自动生成代码的时候,添加到initcomponents函数中。




评论

# re: java swing界面如何动态调整大小(自适应)  回复     

2007-07-28 10:24 by
排版是门艺术
想做好不容易

# re: java swing界面如何动态调整大小(自适应)  回复     

2007-07-29 18:07 by
我一开始费了好长时间,真是辛苦啊。

# re: java swing界面如何动态调整大小(自适应)  回复     

2008-08-11 09:19 by
不怎么熟悉gridbaglayout。
我试试,看行不行

# re: java swing界面如何动态调整大小(自适应)  回复     

2014-07-11 20:43 by
1、jframe 空布局
2、jpanel setbounds
3、jpanel setsize()//动态改变大小

只有注册用户后才能发表评论。


网站导航:
              
 
网站地图