QiniuApplication.java
2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package org.code4everything.qiniu;
import com.zhazhapan.util.ThreadPool;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.ButtonType;
import javafx.scene.image.Image;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import org.apache.log4j.Logger;
import org.code4everything.qiniu.constant.QiniuValueConsts;
import org.code4everything.qiniu.model.ConfigBean;
import org.code4everything.qiniu.util.ConfigUtils;
import org.code4everything.qiniu.util.DialogUtils;
import java.util.Optional;
import java.util.concurrent.LinkedBlockingQueue;
/**
* @author pantao
*/
public class QiniuApplication extends Application {
private static final Logger LOGGER = Logger.getLogger(QiniuApplication.class);
private static Stage stage = null;
private static ConfigBean configBean;
public static Stage getStage() {
return stage;
}
public static ConfigBean getConfigBean() {
return configBean;
}
public static void setConfigBean(ConfigBean configBean) {
QiniuApplication.configBean = configBean;
}
/**
* 主程序入口
*/
public static void main(String[] args) {
// 设置线程池大小
ThreadPool.setMaximumPoolSize(10);
// 设置线程池最大排队大小
ThreadPool.setWorkQueue(new LinkedBlockingQueue<>(1024));
ThreadPool.init();
// 启动 JavaFX 应用
launch(args);
}
/**
* 由 JavaFX 调用
*/
@Override
public void start(Stage stage) {
try {
// 加载视图页面
VBox root = FXMLLoader.load(getClass().getResource(QiniuValueConsts.QINIU_VIEW_URL));
Scene scene = new Scene(root);
stage.setScene(scene);
} catch (Exception e) {
LOGGER.error("init stage error: " + e.getMessage());
DialogUtils.showFatalError(QiniuValueConsts.INIT_APP_ERROR_HEADER, e);
}
// 设置图标
stage.getIcons().add(new Image(getClass().getResourceAsStream("/image/qiniu.png")));
stage.setTitle(QiniuValueConsts.MAIN_TITLE);
// 设置关闭窗口事件
stage.setOnCloseRequest(event -> {
Optional<ButtonType> result = DialogUtils.showConfirmation(QiniuValueConsts.CONFIRM_EXIT);
if (result.isPresent() && result.get() != ButtonType.OK) {
// 取消退出事件
event.consume();
return;
}
// 退出程序
ThreadPool.executor.shutdown();
System.exit(0);
});
QiniuApplication.stage = stage;
stage.show();
// 加载配置文件
ConfigUtils.loadConfig();
}
}