Node

setRotate()旋转角度
setStyle("-fx-stroke:black;-fx-fill:red;");
contains      
setScaleX 缩放节点

属性绑定

 centerX/YProperty.bind(  )
 d1.bindBidirectional(d2)双向绑定    
             SimpleDoubleProperty

Color

构造方法(r,g,b,透明度)   
静态    Color.rgb(255,255,255)
静态    Color.RED

Font

Font (size)

Image/ImageView

Image  (path/url)  

ImageView(Image)   
    setFitHeight/FitWidth 设置长宽

Other

//TextField 输入框
// setPreColumnCount 列数
//Label     文字栏
//Button    按钮
//

Text

str可用\n
构造方法  Text(str)
         Text(x,y,str)
underline:boolean
strikethrough:boolean 删除线
指定Font 

Line

 startX/Y 
 endX/Y
 Line(startx,starty,endx,endy)

Rectangle 矩形

x/y/width/height 
arcWidth/arvHEight  圆角弧度水平直径/垂直直径

Shape

Circle 与 Ellipse椭圆 与 ARC 弧度

圆
setCenterX/Y/Radius  半径
setStroke/Fill 边框颜色/填充颜色

椭圆
centerX/Y 
radiusX/Y 水平/垂直半径

ARC 弧度
centerX/Y 
radiusX/Y 水平/垂直半径
startAngle 起始角度 
length     角度范围(逆时针旋转)
type : ArcType.OPEN ArcType.CHORD ArcType.ROUND 弧度闭合类型

OPEN

image-20211006163130582

CHORD

image-20211006163142664

ROUND

image-20211006163149007

点集连线 Polygon 与 Poltyline(不自动闭合)

getPoints():list  
向list 添加 坐标   (x1,y1,x2,y2)

image-20211006165449791

Pane

setPadding(new Insets{11,12,13,14}) 设置 上下左右间距

StackPane 中央 叠加

FlowPane (水平 或 垂直 )排列

 setAlignment(Pos.CENTER);整体对齐方式 默认 左对齐Pos.LEFT
 
 setH/Vgap() 水平间距/垂直间距
 
 setOrientation( Orientation.HORIZONTAL 水平排列默认/ Orientation.VERTICAL 垂直排列);

GridPane 二维网格 单元格

setAlignment/H/Vgap 设置整体对齐/间距
setGridLinesVisible 网格线可见
add(Node,cloumn,row)/getCloumnIndex(node)获得节点列下标 
setH/Valighnment           设置单元格中子项的水平对齐方式/垂直对齐方式

BorderPane 顶部 右边 底部 左边 中间

setTop setBottom setLeft setRight setCenter(Node)

HBox/VBox 单行/列

pane.setSpacing(8)  设置间距

滚动 ScrollPane

EVENT

ActionEvent

( setOnAction)

按钮 单击

文本域 回车

勾选 /取消勾选

选择一个项

MouseEvent

按下 setOnMousePressed

释放 setOnMouseReleased

单击 setOnMouseClicked

进入 setOnMouseEntered

退出 setOnMouseExited

移动 setOnMouseMoved

拖动 setOnMouseDragged

event {

is Alt / Control / Meta / Shift Down () 事件中 alt/ctr/鼠标中键/shift 键是否按下

getButton() // 枚举 左键MouseButton.PRIMARY 右键MouseButton.SECONDARY

​ // 中键MouseButton.MIDDLE

getX/Y ()

}

KeyEvent

按下 setOnKeyPressed

释放 setOnKeyReleased

敲击 setOnKeyTyped 非Unicode 字符时 不调用

keyEvent{
    getCharacter
    getCode
    getText
    
    is Alt/Control/Meta/Shift Down
}
按下/释放     getcode 返回常量值  getText 描述  getCharacter 空

敲击         getCode ->UNDEFINED       getCharacter 返回UNicode字符/其他




image-20211007163111777




 b.setOnKeyPressed(e -> {
            switch (e.getCode())
            {
                case UP:
                    b.setY(b.getY() - 10);
                    System.out.println("UP");
                    break;
                case DOWN:
                    b.setY(b.getY() + 10);
                    System.out.println("DOWN");
                    break;
                case LEFT:
                    b.setX(b.getX() - 10);
                    System.out.println("LEFT");
                    break;
                case RIGHT:
                    b.setX(b.getX() + 10);
                    System.out.println("RIGHT");
                    break;
                default:
                    System.out.println(e.getText());


            }
        });
        b.requestFocus();
        //    一定是show之后才能 指定 某个 node 获取焦点 得到输入 
        
        
        //第二种方法     让 scence 指定 键盘监听   
 scence.setOnKeyPressed(   .........) 



Listener

可观察对象 的 addListener 方法


DoubleProperty dp=new DoubleProperty();
dp.addListener( ov-> sout(dp.value()));

Animation 动画

autoReverse  交替周期 是否需要倒转方向
cycleCount    循环次数    Timeline.INDEFINITE 无限
rate  速度

status    { Status.PAUSED  Status.RUNNING Status.STOPPED       }
pause() stop() play( )

PathTransition 节点沿路径

duration 持续时间
node  变换的节点(移动物)
orientation  方向     PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT  与路径切线垂直
path  <Shape> 路径的形状



构造器 
空
(时间,路径)
(时间,路径,节点)



         PathTransition pt = new PathTransition();
        pt.setDuration(Duration.millis(1000));  //每次持续时间
        pt.setPath(circle);
        pt.setNode(rectangle);
        pt.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);//方向 
        pt.setAutoReverse(true);
        pt.setRate(2.0);
        pt.setCycleCount(Timeline.INDEFINITE);//无限次
        pt.play();


FadeTransition 改变透明度

duration  持续时间
node 
fromValue
toValue
byValue  递增值

TimeLine 自定义 关键帧

对于每一个关键帧KeyFrame 定义 处理函数hander ,在该关键帧 结束后调用 EventHandler

对于 Timeline 由若干个 关键帧 组成

Text t = new Text(30, 30, "11111");
        EventHandler hander = e -> {
            if (t.getText().length() == 0)
            {
                t.setText("11111");
            }
            else
            {
                t.setText("");
            }
        };
        Timeline tl = new Timeline(new KeyFrame(Duration.millis(1000), hander));

UI控件

Label 标签

graphic   标签修饰的Node

label.setContentDisplay( )
     //常量    ContentDisplay.Top/BOTTOM/LEFT/RIGHT    结点相对于文本的位置

Button

onaction

CheckBox 复选框

onaction()

selected     :boolean
isSelected()  判断选中

RadioButton 单选框(圆)

  按钮组可以做到  互斥选择
  toggleGroup 字段 选择按钮组
  
  
  ToggleGroup tg=new ToggleGroup();
  rb1.setToggleGroup(tg);
  rb2.setToggleGroup(tg);
  rb3.setToggleGroup(tg);
  //添加 rb1/2/3到一个按钮组
  
  

TextField 文本域

setEditable(false)    锁定不可变
onaction() 回车 时触发一个ActionEvent
prefColumnCount    列数  可设置

TextArea 多行输入

prefRowCount/prefRowCount 指定行列数

wrapText: boolean 指定自动换行

滚动 ScrollPane

一般是创建一个 ScrollPane 包裹着 TextArea

可以上下左右滚动

组合框 /下拉单向选择 ComboBox

ComboBox<T> cbo=new ComboBox<>();
cbo.getItems.add/addALL( T values );
cbo.setValue( T value1 )
//cbo.setStyle  color

被选中时 ActionEvent 触发

下拉多项选择 ListView

items  选项们
orientation: boolean   选项水平/垂直显示
SelectionMode()   :{
            可设置  选择模式( 默认单选 SelectionMode.SINGLE/多选SelectionMode.MULTIPLE) 
            
   }
   
   
 //由列表  添加到选项列表
  ListView<String> lv = new ListView<>();
  ObservableList<String> ol = FXCollections.observableArrayList("A", "B", "C", "D", "E", "F");
  lv.setItems(ol);
   
 // 设置 单选 多选
  lv.getSelectionMode().setSelectionMode(SelectionMode.MULTIPLE);//先获取在设置
  
  //设置监听   已选择的内容
   lv.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
                System.out.println("oldvalue=" + oldValue + " newvalue=" + newValue);
            }
        });

滚动条 ScrollBar

blockIncrement    单击按钮时改变的值
max/min
unitIncrement      调用方法时调整 滚动条的量
value 当前值  0
visibleAmount  选择块宽度 默认15
oritntation : 方向 默认横向HORIZONTAL
increment( )/decrement()    滚动条改变 unitIncrement 值 -+


监听改变
ScrollBar 的 valueProperty().addListener()



Slider 滑动条 ----增强版滚动条

blockIncrement  单击时调节的值
max/min/value
oritntation : 方向 默认横向HORIZONTAL
majorTickUnit/minorTickUnit 主刻度间隔距离/两个主刻度间的次刻度数
showTickLabels/showTickMarks  :Boolean  是否显示 刻度标签/刻度

监听
监听改变
Sl 的 valueProperty().addListener()

Media 影音

Media

duration 持续时间/s
width/height 

构造方法(url)

MediaPlayer 播放和控制媒体

autoPlay :boolean 自动开始
currentCount : readonly 已循环播放次数
cycleCount   : 指定播放次数
mute            :是否静音
volume        :音量    
totalDuration    :从开始到结束播放媒体的持续时间
    
pause()/play()
seek()  定位到时间点  Duration.ZERO q
构造( MEDIA )

MediaView 显示视频


x/y
mediaPlayer
fitWidth/fitHeight 

构造(MEDIAPLAYER)