java控件⼤⼩变化_JavaSwing界⾯如何动态调整⼤⼩(⾃适
应)
最近做的⼀个程序是⽤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,也就是⽔平和垂直⽅向都延伸填充。这
javaswing实现购买
样,Panel⾥⾯的所有组件会平铺开来,占满Panel的所有空间。那么,如何调整这些组件的⼤⼩呢?需要使⽤weightx和weighty这两个属性。这两属性的值使⽤0.0~1.0之间的⼩数,数越⼤,组件所占据的空间越⼤。
通过以上的设置,就可以实现组件⼤⼩随着Panel⼤⼩的变化⽽变化了。
那么,⼜如何实现字体的变化呢?这个只能通过编程实现了。但是initComponents函数⾥的代码都是⾃动⽣成的,如何添加⾃定义的代码呢。点击属性⾯板⾥的字体属性后⾯的⼩⽅框,在弹出的对话框⾥,点击⾼级按钮,勾选“⽣成初始化后的代码”,然后在⽂本框⾥,输⼊代码,这段⾃定义代码,会在每次⾃动⽣成代码的时候,添加到initComponents函数中。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。