Fix: TaskWindow causes NullPointerException.

This commit is contained in:
huanghongxun 2015-09-07 13:00:54 +08:00
parent 6e003a7364
commit 01526546b1
3 changed files with 12 additions and 3 deletions

View File

@ -117,6 +117,7 @@ public final class Launcher {
println("*** Launching Game ***");
int flag = 0;
try {
minecraftMain.invoke(null, new Object[]{cmds});
} catch (Throwable throwable) {
@ -130,9 +131,11 @@ public final class Launcher {
LogWindow.instance.log(trace);
LogWindow.instance.setExit(TrueFunction.instance);
LogWindow.instance.setVisible(true);
flag = 1;
}
println("*** Game Exited ***");
System.exit(1);
System.exit(flag);
}
}

View File

@ -224,6 +224,7 @@ public class TaskWindow extends javax.swing.JDialog
task.setProgressProviderListener(this);
SwingUtilities.invokeLater(() -> {
if(taskList == null) return;
tasks.add(task);
progresses.add(0);
SwingUtils.appendLast(lstDownload, task.getInfo(), "0%");
@ -238,6 +239,7 @@ public class TaskWindow extends javax.swing.JDialog
@Override
public void onDone(Task task) {
SwingUtilities.invokeLater(() -> {
if(taskList == null) return;
pgsTotal.setMaximum(taskList.taskCount());
pgsTotal.setValue(pgsTotal.getValue() + 1);
int idx = tasks.indexOf(task);
@ -251,6 +253,7 @@ public class TaskWindow extends javax.swing.JDialog
@Override
public void onFailed(Task task) {
SwingUtilities.invokeLater(() -> {
if(taskList == null) return;
failReasons.add(task.getInfo() + ": " + (null == task.getFailReason() ? "No exception" : task.getFailReason().getLocalizedMessage()));
pgsTotal.setMaximum(taskList.taskCount());
pgsTotal.setValue(pgsTotal.getValue() + 1);
@ -270,6 +273,7 @@ public class TaskWindow extends javax.swing.JDialog
@Override
public void setStatus(Task task, String sta) {
SwingUtilities.invokeLater(() -> {
if(taskList == null) return;
int idx = tasks.indexOf(task);
if (idx == -1) return;
SwingUtils.setValueAt(lstDownload, task.getInfo() + ": " + sta, idx, 0);

View File

@ -20,6 +20,7 @@ import java.awt.Font;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.ParseException;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import org.jackhuang.hellominecraft.HMCLog;
@ -29,6 +30,7 @@ import org.jackhuang.hellominecraft.utils.UpdateChecker;
import org.jackhuang.hellominecraft.svrmgr.views.MainWindow;
import org.jackhuang.hellominecraft.utils.VersionNumber;
import org.jackhuang.hellominecraft.lookandfeel.HelloMinecraftLookAndFeel;
import org.jackhuang.hellominecraft.utils.system.MessageBox;
/**
*
@ -53,8 +55,8 @@ public class Main {
} catch (ParseException | UnsupportedLookAndFeelException ex) {
HMCLog.warn("Failed to set look and feel", ex);
}
new UpdateChecker(new VersionNumber(firstVer, secondVer, thirdVer), "hmcsm", SettingsManager.settings.checkUpdate, () -> {
SettingsManager.settings.checkUpdate = false;
new UpdateChecker(new VersionNumber(firstVer, secondVer, thirdVer), "hmcsm", () -> {
SwingUtilities.invokeLater(() -> MessageBox.Show("发现更新!"));
}).start();
new MainWindow().setVisible(true);
} catch (Throwable t) {