Box(HBox VBox)--组件箱

    下面介绍  Box中的HBox、VBox组件的使用. 新建MXML文件,命令为BoxHV.mxml。下面为此文件的详细代码。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"    verticalAlign="middle" horizontalAlign="center"
     backgroundGradientColors="[0x000000,0x323232]" paddingTop="0"
     fontFamily="Arial" fontSize="12"
>
 <mx:Panel title="水平组件箱" layout="vertical" color="0xffffff" borderAlpha="0.15"
         paddingTop="10" paddingRight="10" paddingBottom="10" paddingLeft="10"            horizontalAlign="center">
     <mx:Label width="356" color="0x323232" textAlign="center"
             text="下面是一个水平组件箱,存入在它里面的组件排列方式是以水平排列"/>
     <mx:HBox borderStyle="solid" paddingTop="10" paddingBottom="10"
            paddingLeft="10" paddingRight="10" color="0x707070">
      <mx:Button label="按钮1"/>
      <mx:Button label="按钮2"/>
      <mx:Button label="按钮3"/>
     </mx:HBox>
 </mx:Panel>

 <mx:Panel title="垂直组件箱" layout="vertical" color="0xffffff" borderAlpha="0.15"
  paddingTop="20" paddingRight="10" paddingBottom="10" paddingLeft="10"   horizontalAlign="center">
     <mx:Label width="356" color="0x323232" textAlign="center"
         text="下面是一个垂直组件箱,存入在它里面的组件排列方式是以垂直排列"/>
     <mx:VBox borderStyle="solid" paddingTop="10" paddingBottom="10"
            paddingLeft="10" paddingRight="10" color="0x707070">
      <mx:Button label="按钮1"/>
      <mx:Button label="按钮2"/>
      <mx:Button label="按钮3"/>
     </mx:VBox>
 </mx:Panel>
</mx:Application>
运行后截图:

组件箱

 

可以使用BoxLayout和Component类来实现在一个Box中添加两个Box,并让它们按比例显示。具体的实现步骤如下: 1. 创建一个水平方向的Box,使用BoxLayout来管理组件的布局。 ``` Box hbox = Box.createHorizontalBox(); hbox.setLayout(new BoxLayout(hbox, BoxLayout.X_AXIS)); ``` 2. 创建两个垂直方向的Box,并将它们添加到水平方向的Box中。 ``` Box vbox1 = Box.createVerticalBox(); Box vbox2 = Box.createVerticalBox(); hbox.add(vbox1); hbox.add(vbox2); ``` 3. 使用Component类的setPreferredSize方法设置每个Box的大小。假设要让第一个Box占据60%的空间,第二个Box占据40%的空间,则可以如下设置: ``` Dimension size = new Dimension(width, height); vbox1.setPreferredSize(new Dimension((int)(width*0.6), height)); vbox2.setPreferredSize(new Dimension((int)(width*0.4), height)); ``` 其中,width和height分别表示Box的宽度和高度。 4. 将其他组件添加到每个Box中。 完整的示例代码如下: ``` import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Component; import java.awt.Dimension; public class BoxExample { public static void main(String[] args) { JFrame frame = new JFrame("Box Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Box hbox = Box.createHorizontalBox(); hbox.setLayout(new BoxLayout(hbox, BoxLayout.X_AXIS)); Box vbox1 = Box.createVerticalBox(); Box vbox2 = Box.createVerticalBox(); hbox.add(vbox1); hbox.add(vbox2); Dimension size = new Dimension(400, 200); vbox1.setPreferredSize(new Dimension((int)(size.width*0.6), size.height)); vbox2.setPreferredSize(new Dimension((int)(size.width*0.4), size.height)); JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); JButton button3 = new JButton("Button 3"); JButton button4 = new JButton("Button 4"); vbox1.add(button1); vbox1.add(button2); vbox2.add(button3); vbox2.add(button4); JPanel panel = new JPanel(); panel.add(hbox); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值