package com.sjsq.view;
import com.sjsq.dao.AchieveDao;
import com.sjsq.model.Manager;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Optional;
/**
* 作者: shuijianshiqing
* 功能: 系统主界面
*/
public class WindowsView extends Application{
@Override
public void start(Stage args0) throws Exception {}
//实例化controller层
static AchieveDao actro = new AchieveDao();
/**
* 主界面功能的实现
* @throws SQLException
*/
public static void windowsAchieve() throws SQLException{
Stage stage = new Stage();
//边界面板
BorderPane bp = new BorderPane();
//创建菜单栏实例
MenuBar mBar = new MenuBar();
//创建单列面板
VBox vb = new VBox(mBar);
//创建菜单
Menu menu1 = new Menu("操作",new ImageView("/com/sjsq/imgs/03.png"));
Menu menu2 = new Menu("设置",new ImageView("/com/sjsq/imgs/02.png"));
//添加菜单项
MenuItem mItem1 = new MenuItem("添加信息",new ImageView("/com/sjsq/imgs/04.png"));
MenuItem mItem2 = new MenuItem("修改信息",new ImageView("/com/sjsq/imgs/05.png"));
MenuItem mItem3 = new MenuItem("删除信息",new ImageView("/com/sjsq/imgs/06.png"));
MenuItem mItem4 = new MenuItem("修改密码",new ImageView("/com/sjsq/imgs/07.png"));
MenuItem mItem5 = new MenuItem("退出界面",new ImageView("/com/sjsq/imgs/09.png"));
//添加到菜单中
menu1.getItems().addAll(mItem1,mItem2,mItem3);
menu2.getItems().addAll(mItem4,mItem5);
//添加到菜单栏实例
mBar.getMenus().add(menu1);
mBar.getMenus().add(menu2);
//设置顶部区域
bp.setTop(vb);
//设置搜索功能
//流式面板
FlowPane fp1 = new FlowPane();
Label l1 = new Label("客户姓名");
TextField f1 = new TextField();
Button b1 = new Button("查询");
Button b7 = new Button("刷新");
//节点加入面板中
fp1.getChildren().addAll(l1,f1,b1,b7);
//设置节点之间水平间距的像素
fp1.setHgap(10);
//设置上下之间的间隙内间距
fp1.setPadding(new Insets(10));
//设置中部区域
bp.setBottom(fp1);
bp.setStyle("");
//设置底部
// FlowPane fp2 = new FlowPane();
// Button b2=new Button("添加客户");
// Button b3=new Button("删除客户");
// Button b4=new Button("修改信息");
// Button b5=new Button("退出界面");
// //节点加入面板中
// fp2.getChildren().addAll(b2,b3,b4,b5);
// fp2.setHgap(10);
// fp2.setPadding(new Insets(10));
// bp.setBottom(fp2);
//搭建场景并添加
Scene sc = new Scene(bp,600,500);
stage.setScene(sc);
stage.setTitle("客户管理系统");
//添加窗口小图标
stage.getIcons().add(new Image("/com/sjsq/imgs/2.png"));
stage.show();
//设置表格列表
//表格控件
TableView<Manager> tv = new TableView<Manager>();
bp.setCenter(tv);
//设置表格列
TableColumn c1 = new TableColumn("客户编号");
TableColumn c2 = new TableColumn("客户姓名");
TableColumn c3 = new TableColumn("客户性别");
TableColumn c4 = new TableColumn("客户年龄");
TableColumn c5 = new TableColumn("客户电话");
TableColumn c6 = new TableColumn("客户等级");
TableColumn c7 = new TableColumn("客户地址");
//将表格的列和类的属性进行绑定
c1.setCellValueFactory(new PropertyValueFactory("mid"));
c2.setCellValueFactory(new PropertyValueFactory("mname"));
c3.setCellValueFactory(new PropertyValueFactory("msex"));
c4.setCellValueFactory(new PropertyValueFactory("mage"));
c5.setCellValueFactory(new PropertyValueFactory("mphone"));
c6.setCellValueFactory(new PropertyValueFactory("mlevel"));
c7.setCellValueFactory(new PropertyValueFactory("maddr"));
//将列添加到TableView中
tv.getColumns().addAll(c1,c2,c3,c4,c5,c6,c7);
//将数据库中的数据集合绑定到表格空间中
ArrayList<Manager> list =actro.getSelectAll();
//tv.getItems().addAll(list);
tv.setItems(FXCollections.observableArrayList(list));
b1.setOnAction(e->{//模糊查询事件绑定
String name = f1.getText();//根据获取的姓名进行查询
//调用dao层进行数据查询
ArrayList<Manager> alist = AchieveDao.queryname(name);
//绑定查到的数据到表格对象中
tv.setItems(FXCollections.observableList(alist));
});
//添加功能事件的实现
mItem1.setOnAction(e->{
new AddManagerView().addManager();
});
//修改功能事件的实现
mItem2.setOnAction(e->{
//表格信息是否进行选择,选中后才能对数据进行回显
Manager manager = (Manager) tv.getSelectionModel().getSelectedItem();
if(manager==null){//判断是否选中客户信息,若没有则提示,
Optional<ButtonType> op = new Alert(AlertType.ERROR,"请选择要修改的数据").showAndWait();
return;
}else{//数据获取成功通过匿名对象跳转到修改界面
new UpdateManagerView().updateManager(manager);
}
});
mItem3.setOnAction(e->{//删除功能事件的实现
Manager manager = (Manager) tv.getSelectionModel().getSelectedItem();//判断是否选中客户,若没有则提示
if(manager==null){
Optional<ButtonType> op = new Alert(AlertType.ERROR,"请选择要删除的数据").showAndWait();
return;
}
Optional<ButtonType> op1 = new Alert(AlertType.CONFIRMATION,"确定你要删除该数据?").showAndWait();//提示确认是否删除
if(op1.get()==ButtonType.OK){//如果选择确认则进行删除操作
new DeleteManagerView().deleteManager(manager.getMid());//将客户编号的信息传到删除界面,然后在dao层对数据库进行操作
new Alert(AlertType.CONFIRMATION,"删除成功!").showAndWait();
//刷新没搞好
tv.getColumns().get(0).setVisible(false);
tv.getColumns().get(0).setVisible(true);
}
});
//修改密码事件
mItem4.setOnAction(e->{
new LoginView().getUser();
stage.close();
});
//退出功能事件的实现
mItem5.setOnAction(e->{
//提示是否退出
Alert alert = new Alert(AlertType.CONFIRMATION, "确定要退出?");
Optional btn = alert.showAndWait();
//判断操作
if(btn.get()==ButtonType.OK){
Platform.exit();
}
});
// //统计功能事件的实现
// mItem6.setOnAction(e->{
//
// });
//刷新功能事件的实现
b7.setOnAction(e->{
try {
ArrayList<Manager> list2 =actro.getSelectAll();
tv.setItems(FXCollections.observableArrayList(list2));
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
});
}
}
水坚石青
- 粉丝: 2w+
- 资源: 89
最新资源
- c语言实现水波纹显示效果.zip
- c语言实现图片转化为 ASCII 图.zip
- “面食文化”:中国传统面食网站设计与用户体验优化
- 基于C#的库存管理系统
- 基于分时电价,采用改进粒子群算法 参考lunwen:基于V2G的电动汽车充放电优化调度策略 有注释简单易懂,可自己调整参数
- c语言贪吃蛇游戏的双人对战版.zip
- 机械设计六角批头自动供料分料机(sw18可编辑+工程图+BOM)全套设计资料100%好用.zip
- django项目实战之旅游推荐数据分析可视化(源码+部署说明).zip
- c语言坦克游戏源代码.zip
- c语言通讯录管理系统源码.zip
- c语言图书管理系统源码.zip
- c语言图书借阅系统源码.zip
- MMC-HVDC仿真模型,pscad柔性直流输电仿真mmc仿真模型,双端mmc模型,MMC为21电平NLM和均压控制,还有多端如张北直流电网以及基本mmc逆变器,自己为biye网上收集的一些觉得有用的
- c语言涂格子游戏源码.zip
- c语言万年历源码.zip
- 禹霖科技原铱塔智联iot-iita物联网平台,包含了品类、物模型、消息转换、插件管理、设备管理、设备分组、规则引擎、第三方平台接入、数据流转、数据可视化、告警中心等模块,支持es/td等多种时序数据库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈