package sample;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Proxy;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.fxml.JavaFXBuilderFactory;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import staffManagement.*;
public class FXMLTest extends Application {
private Stage stage;
private final double MINIMUM_WINDOW_WIDTH = 600.0;
private final double MINIMUM_WINDOW_HEIGHT = 420.0;
public Socket socket;
public ObjectOutputStream oos;
public ObjectInputStream ois;
public Objectpool objectpool;
@Override
public void start(Stage primaryStage) throws Exception {
stage = primaryStage;
stage.setTitle("Payroll System");
stage.setMaxWidth(MINIMUM_WINDOW_WIDTH);
stage.setMaxHeight(MINIMUM_WINDOW_HEIGHT);
//链接服务器
this.socket = new Socket("127.0.0.1", 4041);
this.objectpool = Objectpool.getInstance();
gotoLogin();
stage.show();
}
public void gotoLogin() {
try {
LoginController login = (LoginController) replaceSceneContent("login.fxml");
login.setApp(this);
} catch (Exception ex) {
Logger.getLogger(FXMLTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void gotoMain() {
try {
TimeEmployee timeEmployee = (TimeEmployee)objectpool.getObject("TimeEmployee");
MainController main = (MainController) replaceSceneContent("main.fxml");
main.setApp(this);
main.name_l.setText(timeEmployee.getName());
main.sex_l.setText(timeEmployee.getSex());
main.age_l.setText(timeEmployee.getAge());
main.id_l.setText(timeEmployee.getEID());
main.phone_l.setText(timeEmployee.getPhone());
main.address_l.setText(timeEmployee.getAddress());
main.time_l.setText(String.valueOf(timeEmployee.getWorkTimeCard().getTime()));
main.unit_l.setText(String.valueOf(timeEmployee.getWorkTimeCard().getUnit()));
main.salary_l.setText(String.valueOf(timeEmployee.getSalary()));
} catch (Exception ex) {
Logger.getLogger(FXMLTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void userLogin(String account, String password) {
IService target = (EmployeeServiceImpl)objectpool.getObject("EmployeeServiceImpl");
TimeEmployee timeEmployee = (TimeEmployee)objectpool.getObject("TimeEmployee");
IService proxy = (IService) Proxy.newProxyInstance(target.getClass().getClassLoader(),
target.getClass().getInterfaces(),
new EmployeeService(target)
);
Call call = proxy.detail(timeEmployee);
timeEmployee.setEID(account);
timeEmployee.setPassword(password);
try {
//使用socket的输出流(对象输出)
this.oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject(call);
oos.flush();
System.out.println("客户端发送方法:" + call.getClassName() + "." + call.getMethodName());
this.ois = new ObjectInputStream(socket.getInputStream());
//读取服务端返回的call对象
call = (Call) ois.readObject();
TimeEmployee o = (TimeEmployee) call.getReturnObj();
System.out.println(o.getName());
if(!o.getName().equals("UnKnown")){
timeEmployee.setName(o.getName());
timeEmployee.setAge(o.getAge());
timeEmployee.setSex(o.getSex());
timeEmployee.setAddress(o.getAddress());
timeEmployee.setEID(o.getEID());
timeEmployee.setPhone(o.getPhone());
timeEmployee.setPassword(o.getPassword());
timeEmployee.getWorkTimeCard().setTime(o.getWorkTimeCard().getTime());
timeEmployee.getWorkTimeCard().setUnit(o.getWorkTimeCard().getUnit());
timeEmployee.getSalaryStrategy().setTime(o.getWorkTimeCard().getTime());
timeEmployee.getSalaryStrategy().setUnit(o.getWorkTimeCard().getUnit());
timeEmployee.getSalary();
gotoMain();
}
oos.close();
ois.close();
// socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void userOutMain() {
gotoLogin();
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private Initializable replaceSceneContent(String fxml) throws Exception {
FXMLLoader loader = new FXMLLoader();
InputStream in = FXMLTest.class.getResourceAsStream(fxml);
loader.setBuilderFactory(new JavaFXBuilderFactory());
loader.setLocation(FXMLTest.class.getResource(fxml));
AnchorPane page;
try {
page = (AnchorPane) loader.load(in);
} finally {
in.close();
}
Scene scene = new Scene(page, 600, 500);
stage.setScene(scene);
stage.sizeToScene();
return (Initializable) loader.getController();
}
public static void main(String[] args) {
launch(args);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
java.设计模式大作业 薪资交付系统 (130个子文件)
FXMLTest.class 7KB
EmployeeDaoMysqlImpl.class 3KB
Server.class 3KB
Objectpool.class 3KB
WorkTimeCard.class 2KB
JDBCExecutor.class 2KB
Client.class 2KB
NiuNiu.class 2KB
MainController.class 2KB
Employee.class 2KB
CommitSaleEmployee.class 2KB
Test.class 2KB
TimeEmployee.class 2KB
MonthEmployee.class 2KB
Call.class 2KB
LoginController.class 2KB
PropertiesUtil.class 1KB
EmployeeService.class 1KB
Context.class 1KB
MyMotherLand.class 1KB
CommitSaleSalaryStrategy.class 1KB
Client.class 1KB
AlbumCarer.class 1KB
EmployeeServiceImpl.class 1KB
Guy.class 1018B
Girl.class 1013B
NiuNiu$PhotoMemoto.class 970B
Client.class 955B
TimeSalaryStrategy.class 922B
Receipt.class 899B
Variable.class 861B
WorkTimeCardDaoMysqlImpl.class 844B
Power.class 789B
Multiply.class 734B
Divide.class 728B
Prescribing.class 726B
Minus.class 725B
Plus.class 722B
MysqlDaoFactory.class 699B
Friend.class 697B
Wolf.class 689B
MonthSalaryStrategy.class 670B
EmployeeDaoMysqlImpl$1.class 633B
Constant.class 555B
AbstractDaoFactory.class 409B
IService.class 365B
EmployeeDao.class 324B
WorkTimeCardDao.class 283B
IVisitable.class 217B
IVisitor.class 210B
SalaryStrategy.class 181B
IExpress.class 176B
IMemoto.class 117B
.DS_Store 6KB
main.fxml 4KB
main.fxml 4KB
login.fxml 2KB
login.fxml 2KB
.gitignore 184B
description.html 189B
PayrollSystem.iml 519B
mysql-connector-java-8.0.24.jar 2.32MB
FXMLTest.java 6KB
EmployeeDaoMysqlImpl.java 3KB
JDBCExecutor.java 3KB
NiuNiu.java 2KB
Server.java 2KB
Employee.java 2KB
Client.java 2KB
WorkTimeCard.java 2KB
Call.java 2KB
Objectpool.java 1KB
EmployeeServiceImpl.java 1KB
PropertiesUtil.java 1KB
CommitSaleEmployee.java 1KB
MainController.java 1KB
LoginController.java 1KB
TimeEmployee.java 1KB
MonthEmployee.java 1KB
Client.java 999B
CommitSaleSalaryStrategy.java 904B
WorkTimeCardDaoMysqlImpl.java 783B
TimeSalaryStrategy.java 764B
EmployeeService.java 680B
Context.java 651B
Receipt.java 598B
Client.java 578B
MysqlDaoFactory.java 577B
MonthSalaryStrategy.java 497B
MyMotherLand.java 470B
Divide.java 455B
Minus.java 453B
Plus.java 451B
WorkTimeCardDao.java 447B
Multiply.java 444B
AbstractDaoFactory.java 434B
Guy.java 427B
Girl.java 417B
Variable.java 407B
Power.java 391B
共 130 条
- 1
- 2
_am
- 粉丝: 3
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 历届(第1-21届)希望杯数学竞赛初一试题及答案(最新整理).doc全国数学邀请赛(264页资料)
- 水滴.psd
- TokenPocket_V2.1.2_release.apk
- Apache-druid-kafka-rce.yaml
- 半导体行业词汇 相关缩写
- 基于C#的ASP.NET数据库原理及应用技术课程指导平台的开发
- 基于ROS的智能车轨迹跟踪算法的仿真与设计源码运用PID跟踪算法.zip.zip
- Bug Bounty Tip - i春秋Self-XSS变废为宝的奇思妙想
- 1991-2015年全国初中化学竞赛复赛试题汇编(212页)(24年竞赛复赛真题).docx天原杯
- Apache Flink 未授权访问+远程代码执行.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0