2024/06/28笔记随笔
对话框使用
-
添加信息:````plaintext
public void initialize(URL url, ResourceBundle resourceBundle) {
//设置表格的列名和模型数据属性名关联
classId.setCellValueFactory(new PropertyValueFactory<>("id"));
className.setCellValueFactory(new PropertyValueFactory<>("name"));
classTeacher.setCellValueFactory(new PropertyValueFactory<>("teacher"));
classNum.setCellValueFactory(new PropertyValueFactory<>("num"));//创建表格数据 ObservableList<ClassModel> data = FXCollections.observableArrayList( new ClassModel("101", "语文", "张老师", "30"), new ClassModel("102", "数学", "李老师", "25"), new ClassModel("103", "数学", "李老师", "25"), new ClassModel("103", "英语", "王老师", "20"), new ClassModel("104", "物理", "赵老师", "25"), new ClassModel("105", "英语", "李老师", "20") ); //设置表格数据 classTable.setItems(data);
* 修改数据:````plaintext
//选择修改的模型数据
private ClassModel selectedClass;
//修改按钮事件处理方法
@FXML
void onModifyClassHandle(ActionEvent event) {
//判断用户是否选中表格修改记录
if (selectedClass == null) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("提示");
alert.setHeaderText("请先选择要修改的记录!");
alert.showAndWait();
return;
}
//TODO 弹出修改对话框,修改数据
// 创建一个带有确认和取消按钮的对话框
Dialog<String> dialog = new Dialog<>();
dialog.setTitle("修改班级");
// 设置对话框的内容
VBox dialogVbox = new VBox(10); // 间距为 10
//修改班级内容控件
//班级ID
HBox classIdBox = new HBox();
Label classIdLabel = new Label("班级ID:");
TextField classIdField = new TextField(selectedClass.getId());
classIdField.setEditable(false);
classIdBox.getChildren().addAll(classIdLabel, classIdField);
//班级名称
HBox classNameBox = new HBox();
Label classNameLabel = new Label("班级名称:");
TextField classNameField = new TextField(selectedClass.getName());
classNameBox.getChildren().addAll(classNameLabel, classNameField);
//班级教师
HBox classTeacherBox = new HBox();
Label classTeacherLabel = new Label("班级教师:");
TextField classTeacherField = new TextField(selectedClass.getTeacher());
classTeacherBox.getChildren().addAll(classTeacherLabel, classTeacherField);
//班级人数
HBox classNumBox = new HBox();
Label classNumLabel = new Label("班级人数:");
TextField classNumField = new TextField(selectedClass.getNum());
classNumBox.getChildren().addAll(classNumLabel, classNumField);
//将 班级名称 布局添加到vBox布局中
dialogVbox.getChildren().add(classNameBox);
//将 班级教师 布局添加到vBox布局中
dialogVbox.getChildren().add(classTeacherBox);
//将 班级人数 布局添加到vBox布局中
dialogVbox.getChildren().add(classNumBox);
//将 班级ID 布局添加到vBox布局中
dialogVbox.getChildren().add(classIdBox);
// 创建按钮类型
ButtonType okButton = new ButtonType("确认", ButtonBar.ButtonData.OK_DONE);
ButtonType cancelButton = new ButtonType("取消", ButtonBar.ButtonData.CANCEL_CLOSE);
dialog.getDialogPane().getButtonTypes().addAll(okButton, cancelButton);
// 设置对话框按钮的事件处理器
dialog.setResultConverter(dialogButton -> {
if (dialogButton == okButton) {
return "User clicked See";
}
return null;
});
// 设置对话框的布局
dialog.getDialogPane().setContent(dialogVbox);
// 显示对话框
dialog.showAndWait().ifPresent(result -> {
System.out.println("Dialog result: " + result);
//获取修改数据模型
ClassModel classModel = new ClassModel(classIdField.getText(), classNameField.getText(), classTeacherField.getText(), classNumField.getText());
System.out.println(classModel);
});
}
- 设置监听器保存数据:````plaintext
// 为 TableView 添加选择监听器
classTable.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
if (newValue != null) {
System.out.println("选择表记录: " + newValue);
//保存要修改的数据
selectedClass = newValue;
}
});

浙公网安备 33010602011771号