UI界面设计的学习
JavaFX的基本概念
舞台Stage
是用于显示场景的窗口,它是JavaFX程序用户界面的顶层容器。
场景Scene
是摆放在舞台中的对象,也是一个容器,其中可以放置面板和节点对象。
节点Node
是可视化的组件,可以是面板,控件,图像视图,形状等。
面板Pane
面板中可以摆放各种节点,JavaFX提供了多种面板提供给用户在窗口组织节点。
控件Control
包括标签,按钮,复选框,单选按钮,文本框,文本区等。
形状Shape
是指文本,直线,椭圆等。
注意的问题:
场景中只能放面板和控件,但是面板中可以包含Node的任何子节点。
应用程序的父类Application
所以的JavaFX主程序都需要继承自javafx.application.Application,该类是编写应用程序的基本框架。Application 继承自java.lang.Object类,继承了Application必须重写start()方法,start()方法一般用于将控件放入场景中,并在舞台中显示场景。
常用方法:
public static void launch(String…args)
启动一个独立的JavaFX的程序,该方法从main()方法调用的,它不能多次调用,否则会出现异常。
public void init()
程序初始化方法。加载Application类之后该方法立即被调用。
public abstract void start(Stage primaryStage)
JavaFX的入口点,参数primaryStage是主舞台,该方法在init()之后被调用。
public void stop()
该方法在程序停止时被调用。
舞台Stage
构造方法:
public Stage() 创建一个新舞台
public Stage(StageStyle style) 以style为舞台风格创建一个新舞台
常用方法:
public final void show() 显示窗口
public final void SetTitle(String name)设置窗口的标题
public final void SetScene(Scene value)设置场景
public final void setMaxinized(boolean value)设置窗口是否可以最大化
public final void setAlwayOnTop(boolean value)设置窗口是否在顶层
public final void setResizable(boolean value)设置是否可以改变窗口大小
public void close()关闭舞台
场景Scene
构造方法:
public Scene(parent root) 以root为根节点创建一个场景,通常使用某种面板对象为跟根节点
public Scene(parent root,double width,double height)创建宽为width,高为height像素的场景,并将节点root放入场景中
public Scene(parent root ,paint fill) 以fill为场景的背景填充色
public Scene(parent root,double width,double height,paint fill)
常用方法:
public final void setFill(Paint value)
public final void setRoot(parent root)
最基本的类Button类
构造方法:
public Button()
public Button(String name)
public Button(String text,Node graphic)
常用方法:
public final void setText(String value);
public final void setGraphic(Node value)
面板类
Pane类
主要用于需要对控件绝对定位的情况
构造方法
public Pane() 创建一个空面板,以后可向其增加其他控件和形状。
public Pnae(Node…)创建面板,并将参数指定的多个节点增加到面板中。
常用方法
public ObervableListgetChildren()返回用于存放节点的列表
public final setPadding(Insets value)利用Insets 对象value设置面板边缘内测空白空间的距离,单位是像素
public void setPrefSize(double preWidth,double prefHeight) 就是以给定的高,宽优先设置面板的大小
public final void setTranslateX(double value) 将节点在X方向上平移value像素 public final void setTranslateY(double value)将节点在Y方向上平移value像素
public final void setTranslateZ(double value)将节点在Z方向上平移value像素
public final void setRotate(double value)以度为单位,如果value为正就是顺时针旋转,如果是负就是逆时针旋转。
public final void getLayoutX()返回节点左上角的x坐标
public final void getLayouty()返回节点左上角的y坐标
public final void setCache(boolean value)是否为节点设置缓冲
判断
public boolean isResizable()判断面板是否可调整尺寸
栈面板类 StackPane
其布局是所有节点都在面板中央,后加入的节点增加在前一个节点之上,通过叠加的形式放入栈面板中。由类javafx,scene.layout.StackPane实现
构造方法:
public StackPane() 创建栈面板,节点默认中心对齐
public StackPane(Node…Children) 创建栈面板,将节点加入其中并中心对齐
常用方法
public static void clearConstrains(Node child)删除面板的child节点
public static void setMargin(Node child,Insert value)为节点设置外侧边缘周围的空白空间的距离
public static void setAlignment(Node child,Pos value)设置child的对其方式
public static void setAlignment(Pos value)设置节点的整体对其方式
注意:javafx.geometry.Pos中的静态变量
流式面板类FlowPane
流式面板类的布局方式是按水平方式一行一行地摆放,或者是垂直方式一列一列的摆放。每行每列的组件默认为居中排列
构造方法
public FlowPane() 节点间的水平和垂直距离默认为0像素
public FlowPane(double hagp,double vagap)设置节点间的水平和垂直间距
public FlowPane(double hagp,double vagap,Node…chidren)
public FlowPane(Orientation orientation)
设置节点排列方向,orientation.HORIZONITAL是水平,orientation.VERTICAL是垂直
常用方法
public final void setHgap(double value)设置节点水平距离
public final void setVgap(double value)设置节点垂直距离
public final void setOrientation(Orientation orientation)设置节点摆放方向
pubic final void setAlignment(Pos value)设置节点整体对其方式
边界面板类BoderPane
就是将面板的显示区域分为上,下,左,右,中五个区域,每个区域可以放置面板或者控件
构造方法
public BorderPane()
public BorderPane(Node center)
public BorederPane(Node center,Node top,Node right,Node button,Node left)
常用方法
设置节点的5个方向
设置节点的对其方式
网络面板类GridPane
就类似表格,由行和列组成的单元格来放置节点
构造方法
public GridPane()
常用方法
设置节点水平和垂直间距setHgap,setVgap
public void add(Node child,int columnIndex,int rowIndex)将节点加到第columnIndex行,rowIndex列当中.
public void add(Node child,int columnIndex,int rowIndex,int cospan,int rowspan)
将节点加到第columnIndex行,rowIndex列当中,占用cospan列,cospan行
…
其他看书,懒得写