如何在现有 java 应用程序中添加启动画面
How to add splash screen in existing java application
这是我现有的主要 window 应用程序,我想为其添加启动画面。我为初始屏幕创建了另一个 JFrame。
我试过制作启动画面 JFrame 的对象并制作它 visible=true
并且
尝试制作静态方法并使用它们,仍然无法正常工作。
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Splash_UI window = new Splash_UI();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
这是我在其中添加了启动画面的旧计算器项目的示例
这是计算器 class(Application Window) 在这里我制作了 Splash Class 的对象
并将可见设置为 true。
您必须从代码中删除以下两行
EventQueue.invokeLater(new Runnable() {
public void run() {
其余我还添加了一个进度条,如下所述。
public static void main(String[] args) {
try {
Splash splash = new Splash();
Calculator window = new Calculator();
splash.setVisible(true);
for(int i = 0;i <= 100; i++) {
Thread.sleep(i);
splash.setProgressBar(i);
splash.setLblpercentage(Integer.toString(i)+"%");
if (i == 100) {
splash.dispose();
window.frame.setVisible(true);
}
}
} catch (Exception e) {
e.printStackTrace();
}
确保从初始屏幕的 JFrame 中删除 main 方法。
此外,使框架的组件静态化以从主 class 访问它们并生成 getter 和设置器。
private static JProgressBar progressBar;
private static JPanel frame;
private static JLabel lblpercentage;
public static JLabel getLblpercentage() {
return lblpercentage;
}
public static void setLblpercentage(JLabel lblpercentage) {
Splash.lblpercentage = lblpercentage;
}
public static JProgressBar getProgressBar() {
return progressBar;
}
public static void setProgressBar(JProgressBar progressBar) {
Splash.progressBar = progressBar;
}
只需删除它并使 Splash JFrame 的对象class 使其可见或根据需要使用它。
EventQueue.invokeLater(new Runnable() {
public void run() {
}
});
这是我现有的主要 window 应用程序,我想为其添加启动画面。我为初始屏幕创建了另一个 JFrame。
我试过制作启动画面 JFrame 的对象并制作它 visible=true
并且
尝试制作静态方法并使用它们,仍然无法正常工作。
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Splash_UI window = new Splash_UI();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
这是我在其中添加了启动画面的旧计算器项目的示例 这是计算器 class(Application Window) 在这里我制作了 Splash Class 的对象 并将可见设置为 true。
您必须从代码中删除以下两行
EventQueue.invokeLater(new Runnable() {
public void run() {
其余我还添加了一个进度条,如下所述。
public static void main(String[] args) {
try {
Splash splash = new Splash();
Calculator window = new Calculator();
splash.setVisible(true);
for(int i = 0;i <= 100; i++) {
Thread.sleep(i);
splash.setProgressBar(i);
splash.setLblpercentage(Integer.toString(i)+"%");
if (i == 100) {
splash.dispose();
window.frame.setVisible(true);
}
}
} catch (Exception e) {
e.printStackTrace();
}
确保从初始屏幕的 JFrame 中删除 main 方法。
此外,使框架的组件静态化以从主 class 访问它们并生成 getter 和设置器。
private static JProgressBar progressBar;
private static JPanel frame;
private static JLabel lblpercentage;
public static JLabel getLblpercentage() {
return lblpercentage;
}
public static void setLblpercentage(JLabel lblpercentage) {
Splash.lblpercentage = lblpercentage;
}
public static JProgressBar getProgressBar() {
return progressBar;
}
public static void setProgressBar(JProgressBar progressBar) {
Splash.progressBar = progressBar;
}
只需删除它并使 Splash JFrame 的对象class 使其可见或根据需要使用它。
EventQueue.invokeLater(new Runnable() {
public void run() {
}
});