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 d8b419a..19ccb80 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 @@ -22,4 +22,5 @@ public interface DataLoad { Map saveForm(Map map); public void deleteData(String id); + } 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 35460cf..a646fa4 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 @@ -39,6 +39,7 @@ public class UserDataLoad implements DataLoad { userMap.put("用户名", new SimpleStringProperty(user.getString("username"))); userMap.put("电子邮箱", new SimpleStringProperty(user.getString("email"))); userMap.put("手机号码", new SimpleStringProperty(user.getString("phone"))); + userMap.put("id", new SimpleStringProperty(user.getString("id"))); userMapList.add(userMap); } @@ -71,6 +72,14 @@ public class UserDataLoad implements DataLoad { @Override public void deleteData(String id) { - + Map map = new HashMap<>(); + map.put("id", id); + String result = HttpUtils.POST(ApiUtils.API_URL + "/user/delete", map); + JSONObject jsonObject = JSON.parseObject(result); + if (jsonObject.getIntValue("code") == 200){ + AlertUtils.alert_msg("删除成功!"); + }else { + AlertUtils.alert_warning("删除失败!"); + } } } 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 b0353aa..597d666 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,10 +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; +import javafx.scene.control.*; import javafx.scene.control.cell.MapValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.layout.HBox; @@ -64,7 +61,7 @@ public class DynamicTableComponent extends VBox { // 动态生成列(示例字段)‌:ml-citation{ref="3,4" data="citationList"} List columns ; if (!dataList.isEmpty()){ - columns= Arrays.asList(dataList.get(0).keySet().toArray(new String[0])); + columns= Arrays.asList(dataList.get(0).keySet().toArray(new String[0])).stream().filter(key -> !key.equals("id")).toList(); }else { columns=keys; } @@ -81,10 +78,29 @@ public class DynamicTableComponent extends VBox { }); column.prefWidthProperty().bind(tableView.widthProperty().divide(finalColumns.size())); + tableView.getColumns().add(column); }); data.addAll(dataList); + ContextMenu contextMenu = new ContextMenu(); + MenuItem menuItem = new MenuItem("删除"); + menuItem.setOnAction(new EventHandler() { + @Override + public void handle(ActionEvent event) { + Map selectedItem = tableView.getSelectionModel().getSelectedItem(); + if (selectedItem!= null) { + SimpleStringProperty id = selectedItem.get("id"); + if (id!= null) { + callBack.delete(id.get()); + } + } + data.remove(tableView.getSelectionModel().getSelectedItem()); + } + }); + contextMenu.getItems().add(menuItem); + tableView.setContextMenu(contextMenu); + ///添加按钮 Button button = new Button("新增"); button.setOnAction(event -> { 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 df82e6d..d5b9a50 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 @@ -24,4 +24,7 @@ public interface DynamicTableComponentCallBack { public void Add(Parent node, Stage primaryStage, DynamicTableComponent dynamicTableComponent); public Parent getAddForm(); + + void delete(String s); + } 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 23c94cf..affa77b 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 @@ -52,6 +52,11 @@ public class DynamicTableComponentCallBackImpl implements DynamicTableComponentC return this.node; } + @Override + public void delete(String s) { + dataLoad.deleteData(s); + } + public DataLoad getDataLoad() { return dataLoad; }