首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JAVAfx + MySql实现管理系统

JAVAfx + MySql实现管理系统

作者头像
十二.
发布2025-10-22 14:26:02
发布2025-10-22 14:26:02
8700
代码可运行
举报
运行总次数:0
代码可运行

动物园管理系


一、创作前的思路整理:

在开干之前,对整体的大概把握至关重要,以下是我在开始之前,对我理想中的作品,大致的想法。

一、ER图
1、本作品的E-R图
2、 为什么要有E-R图

ER图,就是用来描述世界的概念模型 E-R 图的重要性: 用意:为跨越:理论->实践。 作用:从数据建模(er图)---实体关系模型--->数据库的设计中。

二、系统结构图
三、我绘制(猜想)(没兴趣的可以直接跳过)

虽然有点丑,但请别介意

游客:
动物:
四、成品图
游客:
登入界面
警告界面:
欢迎界面:
游客功能界面:
管理员:
总:

登入:

选择进入模块:

游客管理模块:

功能界面:

动物管理模块:

总:

查询界面:

功能界面:

二、类的创建

我的类:
为什么要把类创建的楞次分明

1、为了防止屎山代码 (代码写的臃肿,乱成一团)。 2、为了后期更好的维护。

MVC设计思想,这是一种设计理念。可以把代码大致分成3部分,分的越细越好。

切结!切结!分层相当重要,可以借鉴上方的链接。

三、游客界面显示

​​​​​​​

我详细介绍一下这个界面,其他比葫芦画瓢大致都能实现。
类的创建:
我将图表分为两部分(把select与table最后一起放入all中)
function_select 的代码:
代码语言:javascript
代码运行次数:0
运行
复制
public class function_select {

    //设为静态+全局,能使其在全局存在
    public static TextField tRace = new TextField();//种族
    public static Button bInquire = new Button();//查询
    public static Button bMap = new Button();//地图
    public static Button bHelp = new Button();//帮助
    public static Button bReturn = new Button();//返回

    public VBox vBox(){
        //设置面板
        VBox vBox = new VBox();
        HBox h1 = new HBox();
        HBox h2 = new HBox();
        HBox h3 = new HBox();
        //设置按钮
        Label lName = new Label("种族:");
        tRace.setPromptText("请填入需查询的种族");
        bMap = new Button("地图");
        bHelp = new Button("帮助");
        bInquire = new Button("查询");
        bReturn = new Button("返回");
        //优化位置
        h1.setTranslateY(30);
        h1.setPadding(new Insets(30));
        tRace.setTranslateY(-4);
        tRace.setPrefWidth(128);
        h2.setSpacing(32);
        h2.setTranslateY(16);
        h2.setAlignment(Pos.CENTER);
        h3.setSpacing(32);
        h3.setTranslateY(16);
        h3.setAlignment(Pos.CENTER);
        vBox.setSpacing(10);

        vBox.setTranslateY(30);

        h1.getChildren().addAll(lName,tRace);
        h2.getChildren().addAll(bInquire,bReturn);
        h3.getChildren().addAll(bMap,bHelp);
        vBox.getChildren().addAll(h1,h2,h3);

        return vBox;
    }

}
function_table的代码:

忽然看到一堆代码,有些懵懵的很正常 ,这个知识点是:TableView的用法。等学习这点之后,遍能看懂一下我写的

表的创建:​​​​​​​

代码语言:javascript
代码运行次数:0
运行
复制
public class function_table {
    //可视动态集合
    dao.visitor.function_visitor.function_visitor dvfvfv = new function_visitor();

    public ScrollPane scrollPane(){
        dvfvfv.AnimalMySQLObserve();

        TableView<function_animal> table = new TableView<>();//创造表格

        //-----------------------创建表格的列---------------------------------//
        TableColumn<function_animal,Integer> idCol = new TableColumn<function_animal, Integer>("Id") {
            {
                // 16%
                prefWidthProperty().bind(table.widthProperty().multiply(0.166));
            }
        };
        TableColumn<function_animal,String> nameCol = new TableColumn<function_animal, String>("姓名"){{
            // 16%
            prefWidthProperty().bind(table.widthProperty().multiply(0.166));
        }};
        TableColumn<function_animal,Integer> ageCol = new TableColumn<function_animal, Integer>("年龄"){
            {
                // 16%
                prefWidthProperty().bind(table.widthProperty().multiply(0.166));
            }
        };
        TableColumn<function_animal,String> sexCol = new TableColumn<function_animal, String>("性别"){
            {
                // 16%
                prefWidthProperty().bind(table.widthProperty().multiply(0.166));
            }
        };
        TableColumn<function_animal,Integer> stateCol = new TableColumn<function_animal, Integer>("状态"){
            {
                // 16%
                prefWidthProperty().bind(table.widthProperty().multiply(0.166));
            }
        };
        TableColumn<function_animal,String> breedCol = new TableColumn<function_animal, String>("种族"){
            {
                // 16%
                prefWidthProperty().bind(table.widthProperty().multiply(0.166));
            }
        };

        idCol.setCellValueFactory(new PropertyValueFactory<function_animal,Integer>("id"));
        nameCol.setCellValueFactory(new PropertyValueFactory<function_animal,String>("name"));
        ageCol.setCellValueFactory(new PropertyValueFactory<function_animal,Integer>("age"));
        sexCol.setCellValueFactory(new PropertyValueFactory<function_animal,String>("sex"));
        stateCol.setCellValueFactory(new PropertyValueFactory<function_animal,Integer>("statue"));
        breedCol.setCellValueFactory(new PropertyValueFactory<function_animal,String>("breed"));


        table.prefHeight(100);
        table.prefWidth(300);
        table.getColumns().addAll(idCol,nameCol,ageCol,sexCol,breedCol,stateCol);
        table.setEditable(false);
        table.setItems(dvfvfv.data);

        BorderPane bp = new BorderPane();
        bp.setCenter(table);
        bp.setPrefSize(300,1000);
        ScrollPane s = new ScrollPane();
        s.setPrefSize(340,300);
        s.setPadding(new Insets(10));
        s.setContent(bp);

        return s;
    }
}

通过学习TableView的用法,知道在创建TableView后,需要给tableView提供数据源(其实就提供一个存放了数据的集合---Observable<> data(如下方所示)----),下方--我连接了数据库连接池,并且为了使功能更加精确,而用了if选择。但我的用意,都是为了从数据库中提取信息,然后向第三行的集合中填充。

代码语言:javascript
代码运行次数:0
运行
复制
public class function_visitor {
    static View.visitor.function_visitor.function_select vvfvft = new View.visitor.function_visitor.function_select();
    public static ObservableList<function_animal> data = FXCollections.observableArrayList();//可视,数据储存集合
    static ResultSet rs;
    static Connection conn;
    static PreparedStatement preparedStatement;
    static int flagbInquire = 1;//监听此按钮,并判断,合适查询那个个
    public static void AnimalMySQLObserve() {

        vvfvft.bInquire.setOnAction(actionEvent -> {
            flagbInquire=2;
            //清理集合,防止重叠
            data.clear();
            try {
                conn = JDBCUtil.getConnection();
                //外连接
                String sql = "select a.id,a.name,a.age,a.sex,a.breed,b.state  from animal a left join statetable b on a.state=b.num where a.breed like ?; ";
                String breed = vvfvft.tRace.getText();
                breed = "%"+breed+"%";//模糊查询定义式

                conn = JDBCUtil.getConnection();
                preparedStatement = conn.prepareStatement(sql);
                preparedStatement.setString(1,breed);

                rs = preparedStatement.executeQuery();

                while (rs.next()) {
                    // 在这里处理结果集的每一行数据
                    data.add(new function_animal(
                            rs.getInt("id"),
                            rs.getString("name"),
                            rs.getInt("age"),
                            rs.getString("sex"),
                            rs.getString("state"),
                            rs.getString("breed")
                    ));

                }
            } catch (SQLException e) {
                throw new RuntimeException(e);
            } finally {
                // 在这里关闭资源
                try {
                    if (rs != null) {
                        rs.close();
                    }
                    if (preparedStatement != null) {
                        preparedStatement.close();
                    }
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }


        });
        if (flagbInquire==1){
                    //清空集合,防止重叠
                    data.clear();
                    try {
                        conn = JDBCUtil.getConnection();
                        //外连接
                        String sql = "select a.id,a.name,a.age,a.sex,a.breed,b.state  from animal a left join statetable b on a.state=b.num;";
                        conn = JDBCUtil.getConnection();
                        preparedStatement = conn.prepareStatement(sql);
                        rs = preparedStatement.executeQuery();

                        while (rs.next()) {
                            // 在这里处理结果集的每一行数据
                            data.add(new function_animal(
                                    rs.getInt("id"),
                                    rs.getString("name"),
                                    rs.getInt("age"),
                                    rs.getString("sex"),
                                    rs.getString("state"),
                                    rs.getString("breed")
                            ));

                        }
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    } finally {
                        // 在这里关闭资源
                        try {
                            if (rs != null) {
                                rs.close();
                            }
                            if (preparedStatement != null) {
                                preparedStatement.close();
                            }
                            if (conn != null) {
                                conn.close();
                            }
                        } catch (SQLException e) {
                            e.printStackTrace();
                        }
                    }


                }
        }

    //当查询按钮被点击时,内容自动改变





}
function_animal是我设置的一个特殊的实体类(上述代码块中第三行):
代码语言:javascript
代码运行次数:0
运行
复制
package Model.entity.visitor.login_visitor;

import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;

public class function_animal {
    //封装,绑定,自动更新
    private SimpleIntegerProperty id;
    private SimpleStringProperty name;
    private SimpleIntegerProperty age;
    private SimpleStringProperty sex;
    private SimpleStringProperty statue;//状态。0为差,1为良,2为优
    private SimpleStringProperty breed;//品种

    public function_animal(int id, String name, int age, String sex, String breed, String statue) {
        this.id = new SimpleIntegerProperty(id);
        this.name = new SimpleStringProperty(name);
        this.age = new SimpleIntegerProperty(age);
        this.sex = new SimpleStringProperty(sex);
        this.breed = new SimpleStringProperty(breed);
        this.statue = new SimpleStringProperty(statue);
    }

    public int getId() {
        return id.get();
    }

    public SimpleIntegerProperty idProperty() {
        return id;
    }

    public void setId(int id) {
        this.id.set(id);
    }

    public String getName() {
        return name.get();
    }

    public SimpleStringProperty nameProperty() {
        return name;
    }

    public void setName(String name) {
        this.name.set(name);
    }

    public int getAge() {
        return age.get();
    }

    public SimpleIntegerProperty ageProperty() {
        return age;
    }

    public void setAge(int age) {
        this.age.set(age);
    }

    public String getSex() {
        return sex.get();
    }

    public SimpleStringProperty sexProperty() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex.set(sex);
    }

    public String getStatue() {
        return statue.get();
    }

    public SimpleStringProperty statueProperty() {
        return statue;
    }

    public void setStatue(String statue) {
        this.statue.set(statue);
    }

    public String getBreed() {
        return breed.get();
    }

    public SimpleStringProperty breedProperty() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed.set(breed);
    }
}
function_all的代码:
代码语言:javascript
代码运行次数:0
运行
复制
public class function_all {
    public BorderPane borderPane(){
        BorderPane borderPane = new BorderPane();
        //调用集合
        View.visitor.function_visitor.function_select functionSelect = new function_select();
        View.visitor.function_visitor.function_table functionTable = new function_table();

        //填充
        borderPane.setLeft(functionSelect.vBox());
        borderPane.setCenter(functionTable.scrollPane());

        //返回
        return borderPane;
    }
}
呈现:
代码语言:javascript
代码运行次数:0
运行
复制
} else if (stepManager.getStep()==11) {//--------------------------游客--功能界面------------------------------------------
            View.visitor.function_visitor.function_all vvfvfa = new View.visitor.function_visitor.function_all();
            View.visitor.function_visitor.function_select vvfvfs = new View.visitor.function_visitor.function_select();
            BorderPane bp = vvfvfa.borderPane();
            scene = new Scene(bp);


            //查询---差一个模糊查询%name%;
                vvfvfs.bInquire.setOnAction(actionEvent->{
                    function_visitor.AnimalMySQLObserve();
                });
            //地图
                vvfvfs.bMap.setOnAction(actionEvent->{
                    //新建一个界面
                    Stage newStage1 = new Stage();
                    Image image = new Image("View/image/map.png");
                    ImageView imageView = new ImageView(image);

                    GridPane gridPane = new GridPane();
                    gridPane.getChildren().add(imageView);
                    Scene newScene = new Scene(gridPane);
                    newStage1.setScene(newScene);
                    newStage1.setX(260);
                    newStage1.setY(40);
                    newStage1.show();
                });
            //帮助
                vvfvfs.bHelp.setOnAction(actionEvent -> {
                    //新建一个界面
                    Stage newStage1 = new Stage();
                    Label label = new Label("求助电话:110,祝您玩的愉快。");

                    GridPane gridPane = new GridPane();
                    gridPane.getChildren().add(label);
                    Scene newScene = new Scene(gridPane);
                    newStage1.setScene(newScene);
                    newStage1.setX(360);
                    newStage1.setY(440);
                    newStage1.setHeight(80);
                    newStage1.setWidth(260);
                    newStage1.show();
                });
            //返回
                vvfvfs.bReturn.setOnAction(actionEvent -> {
                    stepManager.setStep(10);
                    vvfvfs.tRace.clear();
                    try {
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                });
        }

四、管理员界面显示

!!!重点,只要做出来一个,其他比葫芦画瓢,皆能实现。

五、重要代码--主页面的设计

为了让整个代码能够流畅跳转,我专门设计了一个类stepManager

代码语言:javascript
代码运行次数:0
运行
复制
public class step_class {
    private int step;

    public int getStep() {
        return step;
    }

    public void setStep(int step) {
        this.step = step;
    }
}

以下是我的代码中枢,整个项目页面的跳转皆由其实现:

(我这样设计的理念是--在鼠标点击某个按钮时,stepManager会改变,让后用start(stage)重新运行一次,最后用else-if进入应该跳入的stepManager,从而显示相应的界面。这样做对新手很友好,当然会用观察模式会更好,不过对这个项目没太大必要)

代码语言:javascript
代码运行次数:0
运行
复制
//控制中枢
public class control_center extends Application {
    public static step_class stepManager = new step_class();//设置静态变量,是为了,让这个变量的生命周期提升至整个程序。
    //对stepManager进行初始化
    Scene scene;
    @Override
    public void start(Stage stage) throws Exception {

//       stepManager.setStep(11);


        if (stepManager.getStep()==0){ //-----------------------------------欢迎界面; 初始化界面----------------------------------
                    welcome_scene vlw_welcome = new welcome_scene();
                    BorderPane b = vlw_welcome.borderPane();
                    scene = new Scene(b);
                    //点击
            //进入第二个页面操作
                    vlw_welcome.bEntry.setOnAction(actionEvent -> {
                        stepManager.setStep(1);
//                            stage.close();
                        try {
                            start(stage);
                        } catch (Exception e) {
                            throw new RuntimeException(e);
                        }
                    });
            //退出程序
                    vlw_welcome.bExit.setOnAction(actionEvent -> {
                        stage.close();
                    });

        }else if (stepManager.getStep()==1){//----------------------------进入身份选择界面------------------------------------------
                   //先勾起那个类,然后初始化
                   select_identity vsi_identity = new select_identity();
                   GridPane g = vsi_identity.gridPane();
                   //进入游客界面
                    vsi_identity.b1.setOnAction(actionEvent -> {
                        stepManager.setStep(10);
                        try {
                            start(stage);
                        } catch (Exception e) {
                            throw new RuntimeException(e);
                        }
                    });
                   //进入管理员界面
                    vsi_identity.b2.setOnAction(actionEvent -> {
                       stepManager.setStep(2);
                       try {
                           start(stage);
                       } catch (Exception e) {
                           throw new RuntimeException(e);
                       }
                   });

                   scene = new Scene(g);

       } else if (stepManager.getStep()==2) {//---------------------------进入管理员登入界面---------------------------------------
                    login_administrator valadministrator = new login_administrator();
                    valadministrator.gridPane();
                    GridPane g = valadministrator.gridPane();
                    //登入按钮
                    valadministrator.bEntry.setOnAction(actionEvent -> {
                        if((valadministrator.field.getText().equals("123456"))&&(valadministrator.passwordField.getText().equals("123456"))){
                            stepManager.setStep(3);
//                                stage.close();
                            try {
                                start(stage);
                            } catch (Exception e) {
                                throw new RuntimeException(e);
                            }
                        }else{//错误提示
                            error_dialog vded = new error_dialog();
                            vded.alert();
                        }
                    });
                    //返回按钮
                    valadministrator.bBack.setOnAction(actionEvent -> {
                        stepManager.setStep(1);
//                            stage.close();
                        try {
                            start(stage);
                        } catch (Exception e) {
                            throw new RuntimeException(e);
                        }
                    });

                    scene = new Scene(g);


        } else if (stepManager.getStep()==3) {//-------------------------------管理员选择查询游客或动物界面------------------------------
                select_function vasf = new select_function();
                BorderPane borderPane = vasf.borderPane();
                scene = new Scene(borderPane);
                //进入动物界面
                vasf.bAnimal.setOnAction(new EventHandler<ActionEvent>() {
                    @Override
                    public void handle(ActionEvent actionEvent) {
                        stepManager.setStep(4);
//                        stage.close();
                        try {
                            start(stage);
                        } catch (Exception e) {
                            throw new RuntimeException(e);
                        }
                    }
                });
                //进入游客界面
                vasf.bVisitor.setOnAction(new EventHandler<ActionEvent>() {
                    @Override
                    public void handle(ActionEvent actionEvent) {
                        stepManager.setStep(7);
//                        stage.close();
                        try {
                            start(stage);
                        } catch (Exception e) {
                            throw new RuntimeException(e);
                        }
                    }
                });


        }else if (stepManager.getStep()==4){//-----------------------------------管理员选择功能界面------------------------------------
            //加载类
            main_all vaamall = new main_all();
            main_select vaamselect = new main_select();

            BorderPane borderPane = vaamall.borderPane();
            scene = new Scene(borderPane);
            //查询
            vaamselect.bInquire.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    stepManager.setStep(5);

                    try {
                        observe_animal_all.data.clear();//清理残存垃圾,防止重新加载时,堆叠。
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            });
            //功能
            vaamselect.bFunction.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    //清理垃圾,防止资源堆叠
                    observe_animal_all.data.clear();
                    data_function_animal.clear();

                    //跳转界面
                    stepManager.setStep(6);
                    try{
                        start(stage);
                    }catch(Exception e){
                        throw new RuntimeException(e);
                    }
                }
            });
            //返回
            vaamselect.bReturn.setOnAction(new EventHandler<ActionEvent>() {//返回按钮
                @Override
                public void handle(ActionEvent actionEvent) {
                    stepManager.setStep(3);
                    stage.close();
                    try {
                        observe_animal_all.data.clear();
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            });


        } else if (stepManager.getStep()==5) {//--------------------------------管理员-动物-查询界面------------------------------------
            inquire_all vaiaia = new inquire_all();
            inquire_select vaiais = new inquire_select();
            BorderPane borderPane = vaiaia.borderPane();

            scene = new Scene(borderPane);
            vaiais.bInquire.setOnAction(new EventHandler<ActionEvent>() {//查询,也就是更新的意思
                @Override
                public void handle(ActionEvent actionEvent) {
                    try {
                        data_inquire_animal.clear();
                        start(stage);

                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            });
            vaiais.bReturn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    stepManager.setStep(4);
                    data_inquire_animal.clear();
                    try {
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            });
            tName.clear();
        } else if (stepManager.getStep()==6) {//-----------------------------------管理员-动物-功能界面------------------------------
            function_select vaafafs = new function_select();
            function_table vaafaft = new function_table();
            function_all vaafafa = new function_all();
            BorderPane borderPane = vaafafa.borderPane() ;
            scene = new Scene(borderPane);
            //----增添按钮----
            vaafafs.bAdd.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    sort_add_animal saa = new sort_add_animal();
                    Stage newStage = new Stage();
                    VBox v = saa.vBox();
                    Scene scene1 = new Scene(v);
                    newStage.setScene(scene1);
                    newStage.setX(450);
                    newStage.setY(306);
//                    newStage.setAlwaysOnTop(true);
                    newStage.show();
                    //返回功能页面,本页面资料取消
                    saa.bCancel.setOnAction(new EventHandler<ActionEvent>() {
                        @Override
                        public void handle(ActionEvent actionEvent) {
                            saa.tName.clear();
                            saa.tAge.clear();
                            saa.tSex.clear();
                            saa.tState.clear();
                            saa.tBreed.clear();
                            newStage.close();
                        }
                    });
                    //确定加入的信息,本页面资料取消。
                    saa.bConfirm.setOnAction(new EventHandler<ActionEvent>() {
                        @Override
                        public void handle(ActionEvent actionEvent) {
                            add_animal dacaaa = new add_animal();
                            int flag = dacaaa.Add_animal();
                            if (flag == 2 ){
                                error_add_animal_2 v2 = new error_add_animal_2();
                                v2.alert();
                            }else if (flag == 3 ){
                                error_add_animal_3 v3 = new error_add_animal_3();
                                v3.alert();

                            }else {
                                saa.tName.clear();
                                saa.tAge.clear();
                                saa.tSex.clear();
                                saa.tState.clear();
                                saa.tBreed.clear();
                                newStage.close();
                                try {
                                    data_function_animal.clear();
                                    start(stage);
                                } catch (Exception e) {
                                    throw new RuntimeException(e);
                                }
                            }

                        }
                    });
                }
            });
            //----修改按钮----
            vaafafs.bAlter.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    sort_alter_animal saa = new sort_alter_animal();
                    Stage newStage = new Stage();
                    VBox v = saa.vBox();
                    Scene scene1 = new Scene(v);
                    newStage.setScene(scene1);
                    newStage.setX(400);
                    newStage.setY(260);
                    newStage.show();
                    //修改按钮
                    saa.bConfirm.setOnAction(new EventHandler<ActionEvent>() {
                        @Override
                        public void handle(ActionEvent actionEvent) {
                            alter_animal dacaaa = new alter_animal();
                            int flag = dacaaa.Add_animal();
                            if (flag == 2 ){
                                error_add_animal_2 v2 = new error_add_animal_2();
                                v2.alert();
                            }else if (flag == 3 ){
                                error_add_animal_3 v3 = new error_add_animal_3();
                                v3.alert();

                            }else {
                                saa.tId.clear();
                                saa.tName.clear();
                                saa.tAge.clear();
                                saa.tSex.clear();
                                saa.tState.clear();
                                saa.tBreed.clear();
                                newStage.close();
                                try {
                                    data_function_animal.clear();
                                    start(stage);
                                } catch (Exception e) {
                                    throw new RuntimeException(e);
                                }
                            }

                        }
                    });
                    //返回按钮
                    saa.bCancel.setOnAction(new EventHandler<ActionEvent>() {
                        @Override
                        public void handle(ActionEvent actionEvent) {
                            saa.tId.clear();
                            saa.tName.clear();
                            saa.tAge.clear();
                            saa.tSex.clear();
                            saa.tState.clear();
                            saa.tBreed.clear();
                            newStage.close();
                        }
                    });
                }});
            //----删除按钮----
            vaafafs.bDrop.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    sort_drop_animal sda = new sort_drop_animal();
                    Stage newStage = new Stage();
                    VBox v = sda.vBox();
                    Scene scene1 = new Scene(v);
                    newStage.setScene(scene1);
                    newStage.setX(400);
                    newStage.setY(260);
                    newStage.show();
                    //确定按钮
                    sda.bConfirm.setOnAction(new EventHandler<ActionEvent>() {
                        @Override
                        public void handle(ActionEvent actionEvent) {
                            drop_animal dacada = new drop_animal();
                            recovery_id dacari = new recovery_id();
                            int flag = dacada.Drop_animal();
                            if (flag == 2 ){
                                error_add_animal_2 v2 = new error_add_animal_2();
                                v2.alert();
                            }else if (flag == 3 ){
                                error_add_animal_3 v3 = new error_add_animal_3();
                                v3.alert();

                            }else {
                                sda.tId.clear();
                                newStage.close();
                                try {
                                    dacari.RecoveryId();
                                    data_function_animal.clear();
                                    start(stage);
                                } catch (Exception e) {
                                    throw new RuntimeException(e);
                                }

                            }

                        }
                    });
                    //返回按钮
                    sda.bCancel.setOnAction(new EventHandler<ActionEvent>() {
                        @Override
                        public void handle(ActionEvent actionEvent) {
                            sda.tId.clear();
                            newStage.close();
                        }
                    });

                }
            });
            //----返回按钮----
            vaafafs.bReturn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    stepManager.setStep(4);
                    try {
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            });

        } else if (stepManager.getStep()==7) {//-----------------------------------------动物园--管理员--游客--总页面-------------------------
            //加载类
            View.administrator.visitor.main_visitor.main_all vaamaml = new View.administrator.visitor.main_visitor.main_all();
            View.administrator.visitor.main_visitor.main_select vaamselect = new View.administrator.visitor.main_visitor.main_select();
            BorderPane borderPane = vaamaml.borderPane();
            scene = new Scene(borderPane);

            //查询界面
            vaamselect.bInquire.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    stepManager.setStep(8);
                    try {
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            });
            //功能界面
            vaamselect.bFunction.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    //先删除叠加的内存
//                    observe_inquire_visitor.data.clear();
//                  stepManager.setStep();
                    stepManager.setStep(9);
                    try {
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }

                }
            });
            //返回
            vaamselect.bReturn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent actionEvent) {
                    stepManager.setStep(3);
                    try {
                        observe_inquire_visitor.data.clear();
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            });


        } else if (stepManager.getStep()==8) {//---------------------------查询界面---管理员--游客---查询--------------------------------------
            View.administrator.visitor.inquire_visitor.inquire_all vavivia = new View.administrator.visitor.inquire_visitor.inquire_all();
            inquire_table vavivit = new inquire_table();
            View.administrator.visitor.inquire_visitor.inquire_select vavivis = new View.administrator.visitor.inquire_visitor.inquire_select();
            BorderPane b = vavivia.borderPane();
            scene = new Scene(b);
            //返回
            vavivis.bReturn.setOnAction(actionEvent -> {
                stepManager.setStep(7);
                try {
                    //资源清理
                    observe_inquire_visitor.data.clear();
                    observe_inquire_name.data.clear();
                    start(stage);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            });
            //查询
            vavivis.bInquire.setOnAction(actionEvent -> {

                try {
                    observe_inquire_name.data.clear();
                    int i = observe_inquire_name.VisitorMySQLObserve();
                    if (i == 3){
                        error_add_animal_3 v1 = new error_add_animal_3();
                        v1.alert();
                    }
                    start(stage);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            });

        } else if (stepManager.getStep()==9) {//-----------------------功能界面---管理员--游客---功能--------------------------------------
           //导入系列
            View.administrator.visitor.function_visitor.function_all vavfvfa = new View.administrator.visitor.function_visitor.function_all();
            View.administrator.visitor.function_visitor.function_select vavfvfs = new View.administrator.visitor.function_visitor.function_select();
            BorderPane b = vavfvfa.borderPane();
            scene = new Scene(b);

            //增添按钮
            vavfvfs.bAdd.setOnAction(actionEvent -> {
                //导入,加载;
                sort_add_visitor vavfsvsav = new sort_add_visitor();
                //导入页面格式
                VBox v = vavfsvsav.vBox();
                //创建新界面
                Stage newStage = new Stage();
                Scene scene1 = new Scene(v);
                newStage.setScene(scene1);
                newStage.setX(360);
                newStage.setY(240);
                newStage.show();
                //交互效应
                    //确定
                    vavfsvsav.bConfirm.setOnAction(actionEvent1 -> {
                        add_visitor daCvav = new add_visitor();
                        int flag = daCvav.add_visitor();
                        if (flag==3){
                            error_add_animal_3 eaa3 = new error_add_animal_3();
                            eaa3.alert();
                        }else{
                            vavfsvsav.tName.clear();
                            vavfsvsav.tPassword.clear();
                            vavfsvsav.tSex.clear();
                            newStage.close();
                            try {
                                observe_function_visitor.data.clear();
                                start(stage);
                            } catch (Exception e) {
                                throw new RuntimeException(e);
                            }
                        }
                    });
                    //取消
                    vavfsvsav.bCancel.setOnAction(actionEvent1 -> {
                        vavfsvsav.tName.clear();
                        vavfsvsav.tPassword.clear();
                        vavfsvsav.tSex.clear();
                        newStage.close();
                    });});
            //修改按钮
            vavfvfs.bAlter.setOnAction(actionEvent -> {
                //导入,重载
                alter_visitor daCvav = new alter_visitor();
                sort_alter_visitor vavfsvsav = new sort_alter_visitor();
                //导入格式
                VBox v = vavfsvsav.vBox();
                //创建新界面
                Stage newStage = new Stage();
                Scene scene1 = new Scene(v);
                newStage.setScene(scene1);
                newStage.setX(380);
                newStage.setY(220);
                newStage.show();
                //确定按钮
                vavfsvsav.bConfirm.setOnAction(actionEvent1->{
                    int flag = daCvav.alter_visitor();

                    if (flag == 2 ){
                        error_add_animal_2 v2 = new error_add_animal_2();
                        v2.alert();
                    }else if (flag == 3 ){
                        error_add_animal_3 v3 = new error_add_animal_3();
                        v3.alert();
                    }else {
                        vavfsvsav.tId.clear();
                        vavfsvsav.tName.clear();
                        vavfsvsav.tSex.clear();
                        vavfsvsav.tPassword.clear();
                        newStage.close();
                        try {
                            observe_function_visitor.data.clear();
                            start(stage);
                        } catch (Exception e) {
                            throw new RuntimeException(e);
                        }
                    }

                });
                //取消按钮
                vavfsvsav.bCancel.setOnAction(actionEvent1 -> {
                    vavfsvsav.tId.clear();
                    vavfsvsav.tName.clear();
                    vavfsvsav.tSex.clear();
                    vavfsvsav.tPassword.clear();
                    newStage.close();
                });


            });
            //删除按钮
            vavfvfs.bDrop.setOnAction(actionEvent->{
                sort_drop_visitor sda = new sort_drop_visitor();
                Stage newStage = new Stage();
                VBox v = sda.vBox();
                Scene scene1 = new Scene(v);
                newStage.setScene(scene1);
                newStage.setX(400);
                newStage.setY(260);
                newStage.show();
                //确定按钮
                sda.bConfirm.setOnAction(new EventHandler<ActionEvent>() {
                    @Override
                    public void handle(ActionEvent actionEvent) {
                        drop_visitor dacada = new drop_visitor();
                        dao.administrator.CRUD_visitor.recovery_id dacari = new dao.administrator.CRUD_visitor.recovery_id();
                        int flag = dacada.Drop_animal();
                        if (flag == 2 ){
                            error_add_animal_2 v2 = new error_add_animal_2();
                            v2.alert();
                        }else if (flag == 3 ){
                            error_add_animal_3 v3 = new error_add_animal_3();
                            v3.alert();
                        }else {
                            sda.tId.clear();
                            newStage.close();
                            try {
                                dacari.RecoveryId();
                                observe_function_visitor.data.clear();
                                start(stage);
                            } catch (Exception e) {
                                throw new RuntimeException(e);
                            }
                        }
                    }
                });
                //返回按钮
                sda.bCancel.setOnAction(new EventHandler<ActionEvent>() {
                    @Override
                    public void handle(ActionEvent actionEvent) {
                        sda.tId.clear();
                        newStage.close();
                    }
                });
            });
            //返回按钮
            vavfvfs.bReturn.setOnAction(actionEvent->{
                stepManager.setStep(7);
                //资源清理---防堆积
                observe_function_visitor.data.clear();
                observe_inquire_visitor.data.clear();
                //开始
                try {
                    start(stage);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            });
            //黑名单按钮
            vavfvfs.bBlacklist.setOnAction(actionEvent->{
                error_blackList v = new error_blackList();
                v.alert();
            });

        } else if (stepManager.getStep()==10) {//-----------------------身份--游客--登入-------------------------------------------
            //导入+载入画面
            login_visitor vvlvlv = new login_visitor();
            GridPane g = vvlvlv.gridPane();
            scene = new Scene(g);
            //注册按钮
            vvlvlv.bLogin.setOnAction(actionEvent -> {
                //导入-载入
                register_judgment_visitor dvlvlv = new register_judgment_visitor();
                //判断账号是否已注册
                int flag = dvlvlv.match_login();
                System.out.println(flag);
                if (flag==4){
                    //不唯一,已被注册
                    error_dialog_visitor_login_repeat edvlr = new error_dialog_visitor_login_repeat();
                    edvlr.alert();
                } else if (flag==5) {
                    //可以注册
                    login_format muvlf = new login_format();
                    int flagerror = muvlf.judgement();
                    if(flagerror==2){//格式不对
                        error_dialog_visitor_login_format vdedvf = new error_dialog_visitor_login_format();
                        vdedvf.alert();
                    } else if (flagerror==1) {//格式正确
                        //注册
                        register_visitor dvlvlv1 = new register_visitor();
                            dvlvlv1.login();

                        //账号,密码,性别复原
                        vvlvlv.tName.clear();
                        vvlvlv.tPassword.clear();
                        vvlvlv.bMan.isSelected();

                        //提示注册成功
                        correct_add_login_visitor vdcalv = new correct_add_login_visitor();
                        vdcalv.alert();

                    }

                }
                //注册账号


            });
            //登入按钮
            vvlvlv.bEntry.setOnAction(actionEvent -> {
                login_judgement_visitor dlvljv = new login_judgement_visitor();
                int flag2 = dlvljv.match_login();
                if (flag2==5){
                    //登入失败--暂未登入
                    error_dialog_visitor_unlogin vdedvu = new error_dialog_visitor_unlogin();
                    vdedvu.alert();

                } else if (flag2==4) {
                    //登入成功--进入欢迎界面
                    correct_login_visitor_intoCRUD vdclvi = new correct_login_visitor_intoCRUD();
                    vdclvi.alert();

                    //登入成功--转跳功能界面
                        //清除
                            vvlvlv.tName.clear();
                            vvlvlv.tPassword.clear();
                            vvlvlv.bMan.isSelected();
                        //转跳
                            stepManager.setStep(11);
                            try {
                                start(stage);
                            } catch (Exception e) {
                                throw new RuntimeException(e);
                            }
                }
            });
            //返回按钮
            vvlvlv.bBack.setOnAction(actionEvent -> {
                //清空-返回原模样
                vvlvlv.tName.clear();
                vvlvlv.tPassword.clear();
                vvlvlv.bMan.setSelected(true);
                //返回
                stepManager.setStep(1);
                //开始
                try {
                    start(stage);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            });


        } else if (stepManager.getStep()==11) {//--------------------------游客--功能界面------------------------------------------
            View.visitor.function_visitor.function_all vvfvfa = new View.visitor.function_visitor.function_all();
            View.visitor.function_visitor.function_select vvfvfs = new View.visitor.function_visitor.function_select();
            BorderPane bp = vvfvfa.borderPane();
            scene = new Scene(bp);


            //查询---差一个模糊查询%name%;
                vvfvfs.bInquire.setOnAction(actionEvent->{
                    function_visitor.AnimalMySQLObserve();
                });
            //地图
                vvfvfs.bMap.setOnAction(actionEvent->{
                    //新建一个界面
                    Stage newStage1 = new Stage();
                    Image image = new Image("View/image/map.png");
                    ImageView imageView = new ImageView(image);

                    GridPane gridPane = new GridPane();
                    gridPane.getChildren().add(imageView);
                    Scene newScene = new Scene(gridPane);
                    newStage1.setScene(newScene);
                    newStage1.setX(260);
                    newStage1.setY(40);
                    newStage1.show();
                });
            //帮助
                vvfvfs.bHelp.setOnAction(actionEvent -> {
                    //新建一个界面
                    Stage newStage1 = new Stage();
                    Label label = new Label("求助电话:110,祝您玩的愉快。");

                    GridPane gridPane = new GridPane();
                    gridPane.getChildren().add(label);
                    Scene newScene = new Scene(gridPane);
                    newStage1.setScene(newScene);
                    newStage1.setX(360);
                    newStage1.setY(440);
                    newStage1.setHeight(80);
                    newStage1.setWidth(260);
                    newStage1.show();
                });
            //返回
                vvfvfs.bReturn.setOnAction(actionEvent -> {
                    stepManager.setStep(10);
                    vvfvfs.tRace.clear();
                    try {
                        start(stage);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                });
        }


        stage.setAlwaysOnTop(true);
        stage.setTitle("动物园");
        stage.setScene(scene);
        if (stepManager.getStep()==1){//调整窗口,防止界面扭曲太过于突兀
            stage.setX(500);
            stage.setY(250);
        } else if (stepManager.getStep()==2) {
            stage.setY(325);
            stage.setX(670);
            stage.setAlwaysOnTop(false);
        } else if (stepManager.getStep()==4) {
            stage.setX(640);
            stage.setY(300);
        } else if (stepManager.getStep()==6) {
            stage.setY(310);
            stage.setX(640);
        } else if (stepManager.getStep()==7) {
            stage.setX(580);
            stage.setY(280);
        } else if (stepManager.getStep()==10) {
            stage.setY(360);
            stage.setX(700);
            stage.setAlwaysOnTop(false);
        } else if (stepManager.getStep()==11) {
            stage.setAlwaysOnTop(false);
            stage.setX(600);
            stage.setY(320);
        }


        stage.show();

    }
}

六、数据库与JDBC

我这里就不展示了,代码我将会打包放在下方。重点提醒,javaFx将会落伍,就像java.swing已被淘汰。新技术层出不穷,想要不落后,只有在学习之时,抓住重点。在本次作品中,重点其实是mysql的应用!!做整个作品,其实就是再练习mysql怎么用。

七、资料

链接:所有的代码 提取码:6nfx

如有疑问,以及建议,下方评论见。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、创作前的思路整理:
    • 一、ER图
    • 二、系统结构图
    • 三、我绘制(猜想)(没兴趣的可以直接跳过)
    • 四、成品图
  • 二、类的创建
  • 三、游客界面显示
  • 四、管理员界面显示
  • 五、重要代码--主页面的设计
  • 六、数据库与JDBC
  • 七、资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档