From e81095af0d667e8ed7e299c084650b412626d5ea Mon Sep 17 00:00:00 2001 From: qmstyle Date: Sat, 15 Mar 2025 11:29:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0form=20=E8=A1=A8=E5=8D=95=20,?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E8=81=94=E5=8A=A8=202025=E5=B9=B43=E6=9C=881?= =?UTF-8?q?5=E6=97=A511:29:10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../online/exam/ui/api/ApiUtils.java | 2 + .../online/exam/ui/api/DataLoad.java | 8 ++ .../online/exam/ui/api/form/UserForm.java | 118 ++++++++++++++++++ .../exam/ui/api/model/PermissionDataLoad.java | 16 +++ .../exam/ui/api/model/QuestionDataLoad.java | 17 +++ .../exam/ui/api/model/RoleDataLoad.java | 16 +++ .../exam/ui/api/model/UserDataLoad.java | 29 ++++- .../ui/components/DynamicTableComponent.java | 19 ++- .../DynamicTableComponentCallBack.java | 8 ++ .../DynamicTableComponentCallBackImpl.java | 34 +++++ .../online/exam/ui/layouts/SideMenu.java | 8 +- .../online/exam/ui/utils/AlertUtils.java | 89 +++++++++++++ .../online/exam/ui/utils/HttpUtils.java | 5 +- src/main/resources/fmxl/user_form.fxml | 22 ++++ 14 files changed, 381 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java create mode 100644 src/main/java/com/zhangmeng/online/exam/ui/utils/AlertUtils.java create mode 100644 src/main/resources/fmxl/user_form.fxml diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java b/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java index 8ca70a2..67cec54 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/ApiUtils.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.zhangmeng.online.exam.ui.api.form.UserForm; import com.zhangmeng.online.exam.ui.api.model.PermissionDataLoad; import com.zhangmeng.online.exam.ui.api.model.QuestionDataLoad; import com.zhangmeng.online.exam.ui.api.model.RoleDataLoad; @@ -62,6 +63,7 @@ public class ApiUtils { public static DataView getUserList() { DataLoad dataLoad = new UserDataLoad(); + dataLoad.setForm(new UserForm()); return dataLoad.loadData(PAGE_NUM,PAGE_SIZE); } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java index d9a4cf1..6ffe149 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/DataLoad.java @@ -1,6 +1,7 @@ package com.zhangmeng.online.exam.ui.api; import javafx.beans.property.SimpleStringProperty; +import javafx.scene.Parent; import java.util.List; import java.util.Map; @@ -13,4 +14,11 @@ import java.util.Map; public interface DataLoad { public ApiUtils.DataView loadData(Integer pageNum, Integer pageSize); + + public void setForm(Parent view); + + public Parent getForm(); + + Map saveForm(Map map); + } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java b/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java new file mode 100644 index 0000000..6317ab9 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/form/UserForm.java @@ -0,0 +1,118 @@ +package com.zhangmeng.online.exam.ui.api.form; + +import com.zhangmeng.online.exam.ui.api.ApiUtils; +import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.api.model.UserDataLoad; +import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; +import com.zhangmeng.online.exam.ui.components.callBack.DynamicTableComponentCallBack; +import javafx.beans.property.SimpleStringProperty; +import javafx.collections.ObservableList; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; +import javafx.scene.layout.AnchorPane; +import javafx.stage.Stage; +import javafx.stage.Window; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author zm + * @date 2025/3/14 17:40 + * @version: 1.0 + */ +public class UserForm extends AnchorPane { + + private DynamicTableComponent tableComponent; + + public DynamicTableComponent getTableComponent() { + return tableComponent; + } + + public void setTableComponent(DynamicTableComponent tableComponent) { + this.tableComponent = tableComponent; + } + + public UserForm() { + + Label username_label = new Label("用户名:"); + username_label.setLayoutX(83.0); + username_label.setLayoutY(64.0); + + TextField username_field = new TextField(); + username_field.setLayoutX(162.0); + username_field.setLayoutY(60.0); + username_field.setPrefHeight(23.0); + username_field.setPrefWidth(289.0); + username_field.setPromptText("请输入用户名"); + + PasswordField password_field = new PasswordField(); + password_field.setLayoutX(162.0); + password_field.setLayoutY(117.0); + password_field.setPrefHeight(23.0); + password_field.setPrefWidth(289.0); + password_field.setPromptText("请输入密码"); + + Label password_label = new Label("密码:"); + password_label.setLayoutX(87.0); + password_label.setLayoutY(121.0); + + Label phone_label = new Label("手机号:"); + phone_label.setLayoutX(87.0); + phone_label.setLayoutY(169.0); + + TextField phone_field = new TextField(); + phone_field.setLayoutX(162.0); + phone_field.setLayoutY(165.0); + phone_field.setPrefHeight(23.0); + phone_field.setPrefWidth(289.0); + phone_field.setPromptText("请输入手机号"); + + Label email_label = new Label("邮箱:"); + email_label.setLayoutX(87.0); + email_label.setLayoutY(224.0); + + TextField email_field = new TextField(); + email_field.setLayoutX(162.0); + email_field.setLayoutY(220.0); + email_field.setPrefHeight(23.0); + email_field.setPrefWidth(289.0); + email_field.setPromptText("请输入邮箱"); + + Button submit_button = new Button("提交"); + submit_button.setLayoutX(263.0); + submit_button.setLayoutY(288.0); + + submit_button.setOnAction(e -> { + + DataLoad formDataLoad = new UserDataLoad(); + Map map = new HashMap<>(); + map.put("username", username_field.getText()); + map.put("password", password_field.getText()); + map.put("phone", phone_field.getText()); + map.put("email", email_field.getText()); + formDataLoad.saveForm(map); + + Stage stage = (Stage) this.getScene().getWindow(); + stage.close(); + + DynamicTableComponentCallBack callBack = tableComponent.getCallBack(); + ObservableList> data = tableComponent.getData(); + data.clear(); + data.addAll(callBack.flushData(1, ApiUtils.PAGE_SIZE).getDataList()); + + }); + + this.getChildren().addAll(username_label, + username_field, + password_field, + phone_label, + phone_field, + email_label, + email_field, + submit_button, + password_label); + } +} diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java index c798bb3..96530da 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/PermissionDataLoad.java @@ -7,6 +7,7 @@ import com.zhangmeng.online.exam.ui.api.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; +import javafx.scene.Parent; import java.util.*; @@ -40,4 +41,19 @@ public class PermissionDataLoad implements DataLoad { } return new ApiUtils.DataView(Arrays.asList("序号", "权限名称", "描述", "权限路径"), permissionMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total); } + + @Override + public void setForm(Parent view) { + + } + + @Override + public Parent getForm() { + return null; + } + + @Override + public Map saveForm(Map map) { + return null; + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java index 04efa04..861ec78 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/QuestionDataLoad.java @@ -7,6 +7,7 @@ import com.zhangmeng.online.exam.ui.api.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; +import javafx.scene.Parent; import java.util.*; @@ -40,4 +41,20 @@ public class QuestionDataLoad implements DataLoad { } return new ApiUtils.DataView(Arrays.asList("序号", "权限名称", "描述", "权限路径"), questionMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total); } + + + @Override + public void setForm(Parent view) { + + } + + @Override + public Parent getForm() { + return null; + } + + @Override + public Map saveForm(Map map) { + return null; + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java index ef4f582..d87eeea 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/RoleDataLoad.java @@ -7,6 +7,7 @@ import com.zhangmeng.online.exam.ui.api.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; +import javafx.scene.Parent; import java.util.*; @@ -40,4 +41,19 @@ public class RoleDataLoad implements DataLoad { } return new ApiUtils.DataView(Arrays.asList("序号", "角色名称", "描述", "角色类型"), roleMapList).setDataLoad(this).setPageNum(pageNum).setPageSize(pageSize).setTotal(total); } + + @Override + public void setForm(Parent view) { + + } + + @Override + public Parent getForm() { + return null; + } + + @Override + public Map saveForm(Map map) { + return null; + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java b/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java index c7f4187..abc1d9b 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/api/model/UserDataLoad.java @@ -4,12 +4,14 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.utils.AlertUtils; import com.zhangmeng.online.exam.ui.utils.HttpUtils; import javafx.beans.property.SimpleStringProperty; import java.util.*; import com.zhangmeng.online.exam.ui.api.ApiUtils; +import javafx.scene.Parent; /** * @author zm @@ -17,12 +19,15 @@ import com.zhangmeng.online.exam.ui.api.ApiUtils; * @version: 1.0 */ public class UserDataLoad implements DataLoad { + + private Parent form; + @Override public ApiUtils.DataView loadData(Integer pageNum, Integer pageSize) { Map params = new HashMap<>(); params.put("pageNum", pageNum.toString()); params.put("pageSize", pageSize.toString()); - String userListData = HttpUtils.GET(ApiUtils.API_URL + "/user/list",params); + String userListData = HttpUtils.GET(ApiUtils.API_URL + "/user/list", params); JSONObject jsonObject = JSON.parseObject(userListData); JSONArray data = jsonObject.getJSONArray("data"); int total = jsonObject.getIntValue("total"); @@ -41,4 +46,26 @@ public class UserDataLoad implements DataLoad { dataView.setDataLoad(this); return dataView; } + + @Override + public void setForm(Parent view) { + this.form = view; + } + + @Override + public Parent getForm() { + return this.form; + } + + @Override + public Map saveForm(Map map) { + String result = HttpUtils.POST(ApiUtils.API_URL + "/user/save", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200){ + AlertUtils.alert_msg("保存成功!"); + }else { + AlertUtils.alert_warning("保存失败!"); + } + return null; + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java b/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java index 8cb2ce0..b0353aa 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/DynamicTableComponent.java @@ -9,6 +9,7 @@ import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; +import javafx.scene.control.Button; import javafx.scene.control.Pagination; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; @@ -16,6 +17,8 @@ import javafx.scene.control.cell.MapValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; +import javafx.stage.Stage; +import javafx.stage.Window; import org.casic.javafx.control.PaginationPicker; import java.util.*; @@ -44,7 +47,11 @@ public class DynamicTableComponent extends VBox { private final ObservableList> data = FXCollections.observableArrayList(); -// public DynamicTableComponent(List> dataList,List keys) { + public ObservableList> getData() { + return data; + } + + // public DynamicTableComponent(List> dataList,List keys) { public DynamicTableComponent(ApiUtils.DataView dataView) { super(); List> dataList = dataView.getDataList(); @@ -77,6 +84,15 @@ public class DynamicTableComponent extends VBox { tableView.getColumns().add(column); }); data.addAll(dataList); + + ///添加按钮 + Button button = new Button("新增"); + button.setOnAction(event -> { + Stage window = (Stage) this.getScene().getWindow(); + callBack.Add(callBack.getAddForm(), window,this); + }); + this.getChildren().add(button); + this.setSpacing(10); this.getChildren().addAll(tableView); //初始化一个分页 @@ -95,7 +111,6 @@ public class DynamicTableComponent extends VBox { data.addAll(callBack.flushData(paginationPicker.getCurrentPage(),paginationPicker.getPageSize()).getDataList()); } }); - this.getChildren().add(paginationPicker); } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java index daf4de9..df82e6d 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBack.java @@ -2,7 +2,11 @@ package com.zhangmeng.online.exam.ui.components.callBack; import com.zhangmeng.online.exam.ui.api.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; import javafx.beans.property.SimpleStringProperty; +import javafx.scene.Node; +import javafx.scene.Parent; +import javafx.stage.Stage; import java.util.List; import java.util.Map; @@ -16,4 +20,8 @@ public interface DynamicTableComponentCallBack { public ApiUtils.DataView flushData(Integer pageNum, Integer pageSize); + //新增数据 + public void Add(Parent node, Stage primaryStage, DynamicTableComponent dynamicTableComponent); + + public Parent getAddForm(); } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java index 9e12137..8c6701f 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/components/callBack/DynamicTableComponentCallBackImpl.java @@ -2,7 +2,14 @@ package com.zhangmeng.online.exam.ui.components.callBack; import com.zhangmeng.online.exam.ui.api.ApiUtils; import com.zhangmeng.online.exam.ui.api.DataLoad; +import com.zhangmeng.online.exam.ui.api.form.UserForm; +import com.zhangmeng.online.exam.ui.components.DynamicTableComponent; +import com.zhangmeng.online.exam.ui.utils.AlertUtils; import javafx.beans.property.SimpleStringProperty; +import javafx.collections.ObservableList; +import javafx.scene.Node; +import javafx.scene.Parent; +import javafx.stage.Stage; import java.util.List; import java.util.Map; @@ -16,6 +23,13 @@ public class DynamicTableComponentCallBackImpl implements DynamicTableComponentC private DataLoad dataLoad; + private Parent node; + + public DynamicTableComponentCallBackImpl(DataLoad dataLoad,Parent node) { + this.dataLoad = dataLoad; + this.node = node; + } + public DynamicTableComponentCallBackImpl(DataLoad dataLoad) { this.dataLoad = dataLoad; } @@ -25,6 +39,18 @@ public class DynamicTableComponentCallBackImpl implements DynamicTableComponentC return dataLoad.loadData(pageNum, pageSize); } + @Override + public void Add(Parent node, Stage primaryStage, DynamicTableComponent table) { + UserForm userForm = (UserForm)node; + userForm.setTableComponent(table); + AlertUtils.alert("设置", node, primaryStage); + } + + @Override + public Parent getAddForm() { + return this.node; + } + public DataLoad getDataLoad() { return dataLoad; } @@ -32,4 +58,12 @@ public class DynamicTableComponentCallBackImpl implements DynamicTableComponentC public void setDataLoad(DataLoad dataLoad) { this.dataLoad = dataLoad; } + + public Node getNode() { + return node; + } + + public void setNode(Parent node) { + this.node = node; + } } diff --git a/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java b/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java index a54d0c9..1cae559 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/layouts/SideMenu.java @@ -138,7 +138,7 @@ public class SideMenu extends VBox { tp.expandedProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - System.out.println("tp.expandedProperty().addListener====>" + newValue); + //System.out.println("tp.expandedProperty().addListener====>" + newValue); } }); @@ -151,10 +151,10 @@ public class SideMenu extends VBox { @Override public void changed(ObservableValue observable, TitledPane oldValue, TitledPane newValue) { if (newValue == null) { - System.out.println(oldValue.getText() + "=====>折叠"); + //System.out.println(oldValue.getText() + "=====>折叠"); return; } - System.out.println(newValue.getText() + "=====>展开"); + //System.out.println(newValue.getText() + "=====>展开"); } }); @@ -168,7 +168,7 @@ public class SideMenu extends VBox { dataView.setPageSize(dataView.getPageSize()); dataView.setTotal(dataView.getTotal()); DynamicTableComponent dynamicTableComponent = new DynamicTableComponent(dataView); - dynamicTableComponent.setCallBack(new DynamicTableComponentCallBackImpl(dataView.getDataLoad())); + dynamicTableComponent.setCallBack(new DynamicTableComponentCallBackImpl(dataView.getDataLoad(),dataView.getDataLoad().getForm())); dynamicTableComponent.setPadding(new Insets(15)); dynamicTableComponent.prefHeightProperty().bind(root.heightProperty().subtract(15)); root.setCenter(dynamicTableComponent); diff --git a/src/main/java/com/zhangmeng/online/exam/ui/utils/AlertUtils.java b/src/main/java/com/zhangmeng/online/exam/ui/utils/AlertUtils.java new file mode 100644 index 0000000..f362196 --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/ui/utils/AlertUtils.java @@ -0,0 +1,89 @@ +/* + * MIT License + * + * Copyright (c) 2023 芊芊墨客 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +package com.zhangmeng.online.exam.ui.utils; + +import javafx.fxml.FXMLLoader; +import javafx.scene.Group; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.control.Alert; +import javafx.scene.layout.AnchorPane; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.stage.StageStyle; +import javafx.stage.Window; + +import java.io.IOException; + +/** + * @author : 芊芊墨客 + * @version : 1.0 + * @date : 2023-02-17 09:59 + */ +public class AlertUtils { + + /** + * 警告弹窗 + */ + public static void alert_warning(String msg) { + Alert alert = new Alert(Alert.AlertType.WARNING); + alert.initModality(Modality.APPLICATION_MODAL); + alert.setContentText(msg); + alert.setHeaderText(null); + alert.show(); + } + + public static void alert_msg(String msg) { + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.initModality(Modality.APPLICATION_MODAL); + alert.setContentText(msg); + alert.setHeaderText(null); + alert.show(); + } + + public static void alert(String title, Parent node, Stage primaryStage) { + alert(title, node, 600, 400, primaryStage); + } + + public static void alert(String title, Parent node, int width, int height, Stage primaryStage) { + + Scene scene = new Scene(new Group(node)); + Stage stage = new Stage(); + stage.setScene(scene); + stage.setTitle(title); + stage.setWidth(width); + stage.setHeight(height); + stage.initStyle(StageStyle.UTILITY); + stage.initOwner(primaryStage); + stage.initModality(Modality.APPLICATION_MODAL); + stage.setResizable(false); + stage.show(); + stage.setOnCloseRequest(e -> { + stage.close(); + }); + + } +} diff --git a/src/main/java/com/zhangmeng/online/exam/ui/utils/HttpUtils.java b/src/main/java/com/zhangmeng/online/exam/ui/utils/HttpUtils.java index c47cf3f..962bcfb 100644 --- a/src/main/java/com/zhangmeng/online/exam/ui/utils/HttpUtils.java +++ b/src/main/java/com/zhangmeng/online/exam/ui/utils/HttpUtils.java @@ -32,9 +32,8 @@ public class HttpUtils { return HttpUtil.get(url, params); } - public static T POST(String url, Map params, Class clazz) { - String response = HttpUtil.post(url, params); - return JSONObject.parseObject(response, clazz); + public static String POST(String url, Map params) { + return HttpUtil.post(url, params); } public static T POSTFileUPLOAD(String url, Map params, File file, Class clazz) { diff --git a/src/main/resources/fmxl/user_form.fxml b/src/main/resources/fmxl/user_form.fxml new file mode 100644 index 0000000..1e10a03 --- /dev/null +++ b/src/main/resources/fmxl/user_form.fxml @@ -0,0 +1,22 @@ + + + + + + + + + + + +