一、设置快捷键
KeyCombination kcb = new KeyCodeCombination(KeyCode.A,KeyCombination.SHORTCUT_DOWN);
scene.getAccelerators().put(kcb, new Runnable() {
@Override
public void run() {
System.out.println("按下了快捷键Ctrl+A");
}
});
二、布局管理
- TilePane瓦片布局,类似FlowPane,但是会整齐排列,后面组件会占据和第一个组件一样大小空间
- DialogPane面板布局可以直接设置头部文字,内容和按钮,dialog.getButtons.add(ButtonType.cancel),通过dialog.lookupButtton(ButtonType.cancel)获取按钮引用,在添加事件
三、 JavaFX 常用类
(一)基础
TextField
PasswordField
Label
Text (放置文本的类,需要设置宽度达到自动换行)
//让文本自动换行**
AnchorPane.setLeftAnchor(flow, 0.0);
AnchorPane.setRightAnchor(flow, 0.0);
Hyperlink 放置超链接
//借助HostServices实现打开默认浏览器
HostServices hostServices = getHostServices();
hostServices.showDocument(hyperlink.getText());
(二)菜单栏
MenuBar
Menu
MenuItem
SeparatorMenuItem 分割线
ToggleGroup 制定单选组
RadioMenuItem 单选
CheckMenuItem 多选
CustomMenuItem 用户自定义,通过setContent方法添加任意布局(组件)
其他菜单项
MenuButton 下拉列表,在下面可以添加MenuItem
SplitMenuButton 同MenuButton(样式不一样)
ContextMenu 指定右键菜单(要给需要右键的元素加setMenuButton,也可以单击时通过show调用)
ChoiceBox 下拉列表
ComboBox 下拉列表,允许编辑setEditable,设置提示文字setPromptText,setPlaceholder设置占位符(一般是无数据的提示)
comboBox和choiceBox传入值是对象时,修改对象里的姓名下拉列表不更新的问题,comboBox可以清除选择,再选择,choicBox只能移除对象再插入到原来的位置
comboBox可以通过setCellFactory自定义下拉框样式,通过继承ListCell再重写updateItem方法
ColorPicker颜色选择器
DatePicker日期选择器
Pagination分页控件
Slider进度条组件可拖动,ProgressBar、ProgressIndicator不可拖动
Spinner一个数字输入框,也可以放字符串可观察列表,也可以放对象,再通过工厂方法修改显示内容
ScrollBar滚动条,通过valueProperty进行监听
Separator分隔线
ListView显示列表(可以设置编辑,编辑时可以是下拉列表选择)
(三)面板
TitledPane 带标题的可折叠组件,Accordion 用来管理TitledPane
TabPane,Tab选项卡组件
SplitPane设置可拖动大小面板,通过setDividerPosition设置每个区域所占宽或高度
ScrollPane滚动面板