JavaFx Tips

Node

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

属性绑定

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

Color

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

Font

1
Font (size)

Image/ImageView

1
2
3
4
Image  (path/url)  

ImageView(Image)
setFitHeight/FitWidth 设置长宽

Other

1
2
3
4
5
//TextField 输入框
// setPreColumnCount 列数
//Label 文字栏
//Button 按钮
//

Text

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

Line

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

Rectangle 矩形

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

Shape

Circle 与 Ellipse椭圆 与 ARC 弧度

1
2
3
4
5
6
7
8
9
10
11
12
13
14

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(不自动闭合)

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

image-20211006165449791

Pane

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

StackPane 中央 叠加

FlowPane (水平 或 垂直 )排列

1
2
3
4
5
setAlignment(Pos.CENTER);整体对齐方式 默认 左对齐Pos.LEFT

setH/Vgap() 水平间距/垂直间距

setOrientation( Orientation.HORIZONTAL 水平排列默认/ Orientation.VERTICAL 垂直排列);

GridPane 二维网格 单元格

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

BorderPane 顶部 右边 底部 左边 中间

1
setTop setBottom setLeft setRight setCenter(Node)

HBox/VBox 单行/列

1
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 字符时 不调用

1
2
3
4
5
6
7
keyEvent{
getCharacter
getCode
getText

is Alt/Control/Meta/Shift Down
}
1
2
3
4
5
6
7
8
按下/释放     getcode 返回常量值  getText 描述  getCharacter 空

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





image-20211007163111777

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38



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 方法

1
2
3

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

Animation 动画

1
2
3
4
5
6
7
autoReverse  交替周期 是否需要倒转方向
cycleCount 循环次数 Timeline.INDEFINITE 无限
rate 速度

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

PathTransition 节点沿路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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 改变透明度

1
2
3
4
5
duration  持续时间
node
fromValue
toValue
byValue 递增值

TimeLine 自定义 关键帧

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

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

1
2
3
4
5
6
7
8
9
10
11
12
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 标签

1
2
3
4
5
graphic   标签修饰的Node

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

Button

onaction

CheckBox 复选框

1
2
3
4
5
onaction()

selected :boolean
isSelected() 判断选中

RadioButton 单选框(圆)

1
2
3
4
5
6
7
8
9
10
11
按钮组可以做到  互斥选择
toggleGroup 字段 选择按钮组


ToggleGroup tg=new ToggleGroup();
rb1.setToggleGroup(tg);
rb2.setToggleGroup(tg);
rb3.setToggleGroup(tg);
//添加 rb1/2/3到一个按钮组


TextField 文本域

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

TextArea 多行输入

1
2
3
4
5
prefRowCount/prefRowCount 指定行列数

wrapText: boolean 指定自动换行


滚动 ScrollPane

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

可以上下左右滚动

组合框 /下拉单向选择 ComboBox

1
2
3
4
5
6
7
ComboBox<T> cbo=new ComboBox<>();
cbo.getItems.add/addALL( T values );
cbo.setValue( T value1 )
//cbo.setStyle color

被选中时 ActionEvent 触发

下拉多项选择 ListView

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
blockIncrement    单击按钮时改变的值
max/min
unitIncrement 调用方法时调整 滚动条的量
value 当前值 0
visibleAmount 选择块宽度 默认15
oritntation : 方向 默认横向HORIZONTAL
increment( )/decrement() 滚动条改变 unitIncrement 值 -+


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




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

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

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

Media 影音

Media

1
2
3
4
5
duration 持续时间/s
width/height

构造方法(url)

MediaPlayer 播放和控制媒体

1
2
3
4
5
6
7
8
9
10
autoPlay :boolean 自动开始
currentCount : readonly 已循环播放次数
cycleCount : 指定播放次数
mute :是否静音
volume :音量
totalDuration :从开始到结束播放媒体的持续时间

pause()/play()
seek() 定位到时间点 Duration.ZERO q
构造( MEDIA )

MediaView 显示视频

1
2
3
4
5
6

x/y
mediaPlayer
fitWidth/fitHeight

构造(MEDIAPLAYER)
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2022 ajian
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信