package epssms;
import epssms.articledocpane.ArticleDocPaneController;
import epssms.articlequerypane.ArticleQueryPaneController;
import epssms.backuppane.BackupPaneController;
import epssms.callbackpane.CallbackPaneController;
import epssms.customdocpane.CustomDocPaneController;
import epssms.dialog.authentication.AuthenticationController;
import epssms.dialog.language.LanguageController;
import epssms.purchasepane.PurchasePaneController;
import epssms.restorepane.RestorePaneController;
import epssms.sellpane.SellPaneController;
import epssms.stockpane.StockPaneController;
import epssms.supplierdocpane.SupplierDocPaneController;
import epssms.tasks.FetchArticleDocDBForArticleDocPaneTask;
import epssms.tasks.FetchArticleNameForSellPaneTask;
import epssms.tasks.FetchCustomDocDBForCustomDocPaneTask;
import epssms.tasks.FetchCustomNameForSellPaneTask;
import epssms.tasks.FetchPurchaseDetailDBForUndoPaneTask;
import epssms.tasks.FetchPurchaseMainDBForUndoPaneTask;
import epssms.tasks.FetchSellDetailDBForCallbackPaneTask;
import epssms.tasks.FetchSellMainDBForCallbackPaneTask;
import epssms.tasks.FetchStockForStockPaneTask;
import epssms.tasks.FetchSupplierDocDBForSupplierDocPaneTask;
import epssms.tasks.FetchSupplierNameForArticleDocPaneTask;
import epssms.tasks.FetchSupplierNameForPurchasePaneTask;
import epssms.undopane.UndoPaneController;
import epssms.util.Dao;
import epssms.util.DesktopApi;
import epssms.util.Panes;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.ResourceBundle;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Platform;
import javafx.beans.InvalidationListener;
import javafx.beans.Observable;
import javafx.concurrent.Task;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Cursor;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.MenuItem;
import javafx.scene.control.PasswordField;
import javafx.scene.control.ProgressBar;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.stage.WindowEvent;
import javafx.util.Duration;
public class MainFrameController implements Initializable {
@FXML
private static StackPane grayLayer;
@FXML
private Label currentWindow;
@FXML
private Label clock;
@FXML
private TextField userNameField;
@FXML
private PasswordField passwordField;
@FXML
private GridPane loginPane;
@FXML
private BorderPane borderPane;
@FXML
private VBox top;
public static Label user;
public static ProgressBar progressBar;
public static ProgressBar progressBar2;
public static Button refreshDBButton;
public static MenuItem restoreMI;
private Node articleDocPane;
private Node articleQueryPane;
private Node callbackPane;
private Node customDocPane;
private Node purchasePane;
private Node sellPane;
private Node stockPane;
private Node supplierDocPane;
private Node undoPane;
public static void displayInfo(String infoText) {
Label info = new Label();
info.setWrapText(true);
info.setText(infoText);
addToGrayLayer(info);
}
private static void addToGrayLayer(Node node) {
grayLayer.getChildren().clear();
grayLayer.getChildren().add(node);
grayLayer.setVisible(true);
}
@FXML
private void handlePFAction() {
grayLayer.getChildren().clear();
Task<Void> loginTask = new Task<Void>() {
@Override
protected Void call() throws Exception {
final String userName = userNameField.getText();
String password = passwordField.getText();
try {
try (Connection conn = Dao.getConnection(); Statement s = conn.createStatement(); ResultSet rs = s.executeQuery("SELECT * FROM USERLIST WHERE USERNAME='" + userName + "' AND PASSWORD='" + password + "'")) {
if (rs.next()) {
// In particular, if the background thread is reading data from the database and updating the Customer object,
// and the Customer object is bound to scene graph nodes (such as UI controls), then there could be a violation
// of threading rules! For such cases, modify the Customer object from the FX Application Thread rather than
// from the background thread.
Platform.runLater(new Runnable() {
@Override
public void run() {
loginPane.setVisible(false);
grayLayer.setVisible(false);
top.setDisable(false);
user.setText(userName);
}
});
}
}
} catch (final SQLException e) {
Platform.runLater(new Runnable() {
@Override
public void run() {
displayLoginError(e.toString());
}
});
}
return null;
}
@Override
protected void running() {
super.running();
progressBar.setVisible(true);
}
@Override
protected void succeeded() {
super.succeeded();
progressBar.setVisible(false);
}
};
new Thread(loginTask).start();
}
@FXML
private void refreshDB() {
Node center = borderPane.getCenter();
if (center != null) {
switch ((Panes) center.getUserData()) {
case SUPPLIERDOCPANE:
new Thread(new FetchSupplierDocDBForSupplierDocPaneTask()).start();
break;
case ARTICLEDOCPANE:
new Thread(new FetchArticleDocDBForArticleDocPaneTask()).start();
new Thread(new FetchSupplierNameForArticleDocPaneTask()).start();
break;
case CUSTOMDOCPANE:
new Thread(new FetchCustomDocDBForCustomDocPaneTask()).start();
break;
case PURCHASEPANE:
new Thread(new FetchSupplierNameForPurchasePaneTask()).start();
break;
case UNDOPANE:
new Thread(new FetchPurchaseMainDBForUndoPaneTask()).start();
new Thread(new FetchPurchaseDetailDBForUndoPaneTask()).start();
break;
case SELLPANE:
new Thread(new FetchCustomNameForSellPaneTask()).start();
new Thread(new FetchArticleNameForSellPaneTask()).start();
break;
case CALLBACKPANE:
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
企业进销存管理系统(修) all_in_one.tar.gz (146个子文件)
mainframe.css 9KB
language.css 3KB
authentication.css 2KB
restorePane.css 826B
backupPane.css 724B
preloader.css 299B
articleQueryPane.css 196B
supplierDocPane.css 61B
customDocPane.css 59B
articleDocPane.css 59B
purchasePane.css 55B
sellPane.css 55B
draggableBorderPane.css 38B
stockPane.css 0B
callbackPane.css 0B
undoPane.css 0B
javafx-loading-100x100.gif 17KB
EnterprisePurchaseSellStockManagementSystem.html 10KB
note.html 1KB
derby.jar 2.52MB
derbyclient.jar 521KB
EnterprisePurchaseSellStockManagementSystem.jar 340KB
derbynet.jar 233KB
EnterprisePurchaseSellStockManagementSystemPreloader.jar 121KB
MainFrameController.java 19KB
PurchasePaneController.java 7KB
SellPaneController.java 6KB
DesktopApi.java 5KB
DraggableBorderPane.java 5KB
EPSSMSPreloader.java 5KB
ArticleQuery.java 5KB
StockCount.java 5KB
PurchaseMain.java 4KB
SellMain.java 4KB
RaceTrack.java 4KB
ArticleQueryPaneController.java 4KB
SellEdit.java 4KB
SupplierDocPaneController.java 4KB
SupplierDocDB.java 3KB
ArticleDocPaneController.java 3KB
FetchStockForStockPaneTask.java 3KB
CustomDocDB.java 3KB
BackupPaneController.java 3KB
PurchaseEdit.java 3KB
ArticleDocDB.java 3KB
CustomDocPaneController.java 3KB
RestorePaneController.java 3KB
SupplierDocEdit.java 3KB
AdvancedTextFieldTableCellFactory.java 3KB
CustomDocEdit.java 3KB
PurchaseDetail.java 3KB
SellDetail.java 3KB
ArticleDocEdit.java 3KB
DigitalTextFieldTableCellFactory.java 2KB
MainFrame.java 2KB
FormattedTableCellFactory.java 2KB
Dao.java 2KB
EstablishDBEnvironment.java 2KB
FetchPurchaseDetailDBForUndoPaneTask.java 2KB
FetchSellDetailDBForCallbackPaneTask.java 2KB
FetchArticleNameForPurchasePaneTask.java 2KB
UndoPaneController.java 2KB
FetchPurchaseMainDBForUndoPaneTask.java 2KB
FetchCustomDocDBForCustomDocPaneTask.java 2KB
FetchArticleDocDBForArticleDocPaneTask.java 2KB
FetchSellMainDBForCallbackPaneTask.java 2KB
AuthenticationController.java 2KB
CallbackPaneController.java 2KB
FetchArticleNameForSellPaneTask.java 2KB
LanguageController.java 2KB
CreateTable_USERLIST.java 2KB
FetchSupplierNameForArticleDocPaneTask.java 2KB
FetchSupplierDocDBForSupplierDocPaneTask.java 2KB
FetchSupplierNameForPurchasePaneTask.java 2KB
CreateTable_SUPPLIERDOC.java 2KB
FetchCustomNameForSellPaneTask.java 2KB
CreateTable_CUSTOMDOC.java 2KB
CreateTable_PURCHASEMAIN.java 2KB
CreateTable_SELLMAIN.java 2KB
CreateTable_ARTICLEDOC.java 2KB
ListAllTables.java 1KB
CreateTable_PURCHASEDETAIL.java 1KB
CreateTable_SELLDETAIL.java 1KB
BackupDB.java 1KB
ComboBoxTableCellFactory.java 1KB
RestoreDB.java 1004B
PreloaderHandoverEvent.java 619B
StockPaneController.java 600B
Panes.java 489B
DigitalTextField.java 445B
EnumOS.java 314B
package-info.java 109B
EnterprisePurchaseSellStockManagementSystem.jnlp 3KB
splash-web.jpg 61KB
splash.jpg 45KB
car.png 63KB
car.png 63KB
noise.png 23KB
noise.png 23KB
title.fw.png 15KB
共 146 条
- 1
- 2
资源评论
- zhbvictor2016-08-07学习中,感谢分享。
- qq_293385392015-06-28还可以,jaVA写的,基本功能有,没删除功能
fearlessMore
- 粉丝: 200
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- TG-2024-04-26-183849310.mp4
- 汇编语言的概要介绍与分析
- 个人博客系统设计与开发.zip
- 2023-04-06-项目笔记 - 第一百十五阶段 - 4.4.2.113全局变量的作用域-113 -2024.04.26
- 2023-04-06-项目笔记 - 第一百十五阶段 - 4.4.2.113全局变量的作用域-113 -2024.04.26
- htmlzwbjq_downyi.com.zip
- 无头单向非循环链表的实现(Test.c)
- 无头单向非循环链表的实现(SList.c)
- 浏览器重定向插件更新文件
- SSA-BP麻雀算法优化BP神经网络多特征分类预测(Matlab实现完整源码和数据)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功