Flex中如何通过direction属性,改变Box容器(HBox或VBox)方向

本文介绍了一个使用Flex布局的Flash应用程序示例,通过ComboBox选择水平或垂直布局并实时更新Box容器内的Image组件排列方式。该应用展示了如何利用Flex框架实现响应式界面设计。

main.mxml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"
  3. layout="vertical"
  4. verticalAlign="middle"
  5. backgroundColor="white">
  6. <mx:Style>
  7. .myBox {
  8. paddingLeft: 10;
  9. paddingRight: 10;
  10. paddingTop: 10;
  11. paddingBottom: 10;
  12. backgroundColor: haloSilver;
  13. }
  14. </mx:Style>
  15. <mx:Script>
  16. <![CDATA[
  17. import mx.events.ListEvent;
  18. import mx.containers.BoxDirection;
  19. private function comboBox_init():void {
  20. var arr:Array = [];
  21. arr.push({label:BoxDirection.HORIZONTAL});
  22. arr.push({label:BoxDirection.VERTICAL});
  23. comboBox.dataProvider = arr;
  24. }
  25. private function comboBox_change(evt:ListEvent):void {
  26. box.direction = comboBox.selectedLabel;
  27. }
  28. ]]>
  29. </mx:Script>
  30. <mx:ApplicationControlBardock="true">
  31. <mx:FormstyleName="plain">
  32. <mx:FormItemlabel="direction:">
  33. <mx:ComboBoxid="comboBox"
  34. initialize="comboBox_init();"
  35. change="comboBox_change(event);"/>
  36. </mx:FormItem>
  37. </mx:Form>
  38. </mx:ApplicationControlBar>
  39. <mx:Boxid="box" direction="horizontal" styleName="myBox">
  40. <mx:Imagesource="Button.png" toolTip="Button" />
  41. <mx:Imagesource="ButtonBar.png" toolTip="ButtonBar" />
  42. <mx:Imagesource="CheckBox.png" toolTip="CheckBox" />
  43. <mx:Imagesource="ColorPicker.png" toolTip="ColorPicker" />
  44. <mx:Imagesource="ComboBox.png" toolTip="ComboBox" />
  45. </mx:Box>
  46. </mx:Application>
在JavaFX中,Pane是一个非常通用的容器,可以用来放置各种不同类型的节点。而HBoxVBox是专门用于水平和垂直布局的容器,可以方便地将子节点按照指定的方向排列。 你可以将HBoxVBox放置在Pane中,然后将需要布局的节点添加到HBoxVBox中。这样,你就可以使用HBoxVBox的布局功能来控制子节点的位置和大小,同时可以利用Pane的通用性来添加其他类型的节点,如图像、文本等等。 下面是一个简单的示例代码,展示如何在Pane中使用HBoxVBox来布局节点: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { // 创建一个 Pane Pane pane = new Pane(); // 创建一个 HBox,并添加一些按钮 HBox hbox = new HBox(); hbox.getChildren().addAll(new Button("Button 1"), new Button("Button 2"), new Button("Button 3")); // 创建一个 VBox,并添加一些按钮 VBox vbox = new VBox(); vbox.getChildren().addAll(new Button("Button 4"), new Button("Button 5"), new Button("Button 6")); // 将 HBoxVBox 添加到 Pane 中 pane.getChildren().addAll(hbox, vbox); // 创建一个 Scene,并将 Pane 设置为根节点 Scene scene = new Scene(pane, 300, 200); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 这段代码创建了一个包含两个按钮的HBox和三个按钮的VBox,并将它们添加到一个Pane中。你可以根据需要修改节点的大小和位置,以及HBoxVBox之间的间距和对齐方式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值