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

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


虽然有点丑,但请别介意








登入:

选择进入模块:


功能界面:

总:

查询界面:

功能界面:


1、为了防止屎山代码 (代码写的臃肿,乱成一团)。 2、为了后期更好的维护。
MVC设计思想,这是一种设计理念。可以把代码大致分成3部分,分的越细越好。
切结!切结!分层相当重要,可以借鉴上方的链接。



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;
}
}忽然看到一堆代码,有些懵懵的很正常 ,这个知识点是:TableView的用法。等学习这点之后,遍能看懂一下我写的
表的创建:
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选择。但我的用意,都是为了从数据库中提取信息,然后向第三行的集合中填充。
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();
}
}
}
}
//当查询按钮被点击时,内容自动改变
}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);
}
}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;
}
}} 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
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,从而显示相应的界面。这样做对新手很友好,当然会用观察模式会更好,不过对这个项目没太大必要)
//控制中枢
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();
}
}我这里就不展示了,代码我将会打包放在下方。重点提醒,javaFx将会落伍,就像java.swing已被淘汰。新技术层出不穷,想要不落后,只有在学习之时,抓住重点。在本次作品中,重点其实是mysql的应用!!做整个作品,其实就是再练习mysql怎么用。
链接:所有的代码 提取码:6nfx
如有疑问,以及建议,下方评论见。