1、VBox:类似Android的LinearLayout竖向布局
2、HBox:类似Android的LinearLayout横向布局
    布局里面添加控件:
   
vBox.getChildren().addAll()添加多个或者add()添加一个
    设置布局里面控件之间的边距:
   
hbox.setSpacing(10);
    设置宽度/高度:
   
textField.setPrefWidth(300);
textField.setPrefHeight(300);
    设置textArea自动换行:
   
textArea.setWrapText(true);
    textArea自动滚动到底部:
   
print.appendText("追加文本,然后下面代码滚动到底部");
print.selectEnd(); 
print.deselect();
    固定窗口大小不可调节:
   
primaryStage.setResizable(false);//固定大小不可调节
    子线程里面需要更新UI的话:(类似Android里面的runOnUiThread())
   
Platform.runLater(() -> { 
    //todo 
});
    拖拽文件或文字到窗口上面:
   
//拖拽到vBox控件里面
private void onDragInit(VBox vBox, TextField fileInputPath) {
    vBox.setOnDragOver(event -> {
        if (event.getGestureSource() != vBox){
            event.acceptTransferModes(TransferMode.ANY);
        }
        event.consume();
    });
    vBox.setOnDragDropped(event -> {
        Dragboard db = event.getDragboard();
        boolean success = false;
        if (db.hasFiles()){
            try {
                File file = db.getFiles().get(0);
                if (file != null) {
                    String absolutePath = file.getAbsolutePath();
                    fileInputPath.setText(absolutePath);//把路径写到这个文本框里面
                }
                success = true;
            }catch (Exception e){
                System.err.println(e.toString());
            }
        }else if (db.hasString()) {
            fileInputPath.setText(db.getString());//如果拖拽的是文字,就把文字写到文本框里面
            success = true;
        }
        event.setDropCompleted(success);
        event.consume();
    });
}
    弹窗:
   
第一个参数可以选Alert.AlertType.里面的message、WARNING、Error等
Alert alert = new Alert(Alert.AlertType.WARNING, "请先选择翻译文档!"); alert.show();
    文件选择器:
   
public void selectFile(TextField textField, Stage primaryStage) {
    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("选择翻译文档");
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("Excel files (*.xlsx)", "*.xlsx");
    fileChooser.getExtensionFilters().add(extFilter);
    File file = fileChooser.showOpenDialog(primaryStage);
    if (file != null) {
        textField.setText(file.getPath());
    }
}
    文件夹选择器:
   
public void selectFileOutDir(Hyperlink label, Stage primaryStage) {
    DirectoryChooser directoryChooser = new DirectoryChooser();
    File file = directoryChooser.showDialog(primaryStage);
    if (file != null) {
        String path = file.getPath();//选择的文件夹路径
        label.setText(path);
    }
}
    打开文件/文件夹目录:
   
File file = new File(path);
if (file.exists()) {
    Desktop.getDesktop().open(file);
}
    悬停文本提示:
   
Tooltip tooltip = new Tooltip();
tooltip.setText("提示的文本");
labelOutPath.setTooltip(tooltip);//悬停在labelOutPath控件上的时候显示提示文字
    监听文本变化:
   
//labelOutPath.text改变的时候,把text也设置给tooltip.text
tooltip.textProperty().bind(labelOutPath.textProperty()); 
版权声明:本文为qq_35584878原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
