mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-15 14:56:05 -04:00
New animationsublime_text launch4jlinux.cpp
This commit is contained in:
parent
68a734adb0
commit
b3fb372e3b
@ -80,7 +80,8 @@ jar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
launch4j {
|
launch4j {
|
||||||
launch4jCmd = 'D:\\Develop\\Java\\Launch4j\\launch4j.exe'
|
//launch4jCmd = 'D:\\Develop\\Java\\Launch4j\\launch4j.exe'
|
||||||
|
launch4jCmd = '/home/huangyuhui/softwares/launch4j/launch4j'
|
||||||
supportUrl = 'http://www.mcbbs.net/thread-142335-1-1.html'
|
supportUrl = 'http://www.mcbbs.net/thread-142335-1-1.html'
|
||||||
jreMinVersion = '1.6.0'
|
jreMinVersion = '1.6.0'
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ public final class Main implements Runnable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String launcherName = "Hello Minecraft! Launcher";
|
public static String launcherName = "Hello Minecraft! Launcher";
|
||||||
public static byte firstVer = 2, secondVer = 3, thirdVer = 5, forthVer = 5;
|
public static byte firstVer = 2, secondVer = 3, thirdVer = 5, forthVer = 6;
|
||||||
public static int minimumLauncherVersion = 16;
|
public static int minimumLauncherVersion = 16;
|
||||||
//public static Proxy PROXY;
|
//public static Proxy PROXY;
|
||||||
|
|
||||||
|
@ -46,16 +46,16 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler {
|
|||||||
|
|
||||||
public boolean checkThrowable(Throwable e) {
|
public boolean checkThrowable(Throwable e) {
|
||||||
String s = StrUtils.getStackTrace(e);
|
String s = StrUtils.getStackTrace(e);
|
||||||
if (s.contains("MessageBox") || s.contains("AWTError")) {
|
if (s.contains("MessageBox") || s.contains("AWTError"))
|
||||||
return false;
|
return false;
|
||||||
} else if (s.contains("JFileChooser") || s.contains("JceSecurityManager")) {
|
else if (s.contains("JFileChooser") || s.contains("JceSecurityManager")) {
|
||||||
System.out.println("Is not your operating system installed completely? ");
|
System.out.println("Is not your operating system installed completely? ");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (s.contains("sun.awt.shell.Win32ShellFolder2") || s.contains("UnsatisfiedLinkError")) {
|
if (s.contains("sun.awt.shell.Win32ShellFolder2") || s.contains("UnsatisfiedLinkError")) {
|
||||||
System.out.println(C.i18n("crash.user_fault"));
|
System.out.println(C.i18n("crash.user_fault"));
|
||||||
try {
|
try {
|
||||||
MessageBox.Show(C.i18n("crash.user_fault"));
|
showMessage(C.i18n("crash.user_fault"));
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
t.printStackTrace();
|
t.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -63,7 +63,7 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler {
|
|||||||
} else if (s.contains("java.awt.HeadlessException")) {
|
} else if (s.contains("java.awt.HeadlessException")) {
|
||||||
System.out.println(C.i18n("crash.headless"));
|
System.out.println(C.i18n("crash.headless"));
|
||||||
try {
|
try {
|
||||||
MessageBox.Show(C.i18n("crash.headless"));
|
showMessage(C.i18n("crash.headless"));
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
t.printStackTrace();
|
t.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -71,7 +71,7 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler {
|
|||||||
} else if (s.contains("java.lang.NoClassDefFoundError") || s.contains("java.lang.VerifyError") || s.contains("java.lang.NoSuchMethodError") || s.contains("java.lang.IncompatibleClassChangeError") || s.contains("java.lang.ClassFormatError")) {
|
} else if (s.contains("java.lang.NoClassDefFoundError") || s.contains("java.lang.VerifyError") || s.contains("java.lang.NoSuchMethodError") || s.contains("java.lang.IncompatibleClassChangeError") || s.contains("java.lang.ClassFormatError")) {
|
||||||
System.out.println(C.i18n("crash.NoClassDefFound"));
|
System.out.println(C.i18n("crash.NoClassDefFound"));
|
||||||
try {
|
try {
|
||||||
MessageBox.Show(C.i18n("crash.NoClassDefFound"));
|
showMessage(C.i18n("crash.NoClassDefFound"));
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
t.printStackTrace();
|
t.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -110,25 +110,26 @@ public class CrashReporter implements Thread.UncaughtExceptionHandler {
|
|||||||
reportToServer(text, s);
|
reportToServer(text, s);
|
||||||
}
|
}
|
||||||
} catch (Throwable ex) {
|
} catch (Throwable ex) {
|
||||||
|
showMessage(e.getMessage() + "\n" + ex.getMessage());
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void showMessage(String s) {
|
||||||
try {
|
try {
|
||||||
MessageBox.Show(e.getMessage() + "\n" + ex.getMessage(), "ERROR", MessageBox.ERROR_MESSAGE);
|
MessageBox.Show(s, "ERROR", MessageBox.ERROR_MESSAGE);
|
||||||
} catch (Throwable exx) {
|
} catch (Throwable e) {
|
||||||
System.out.println("Failed to catch exception thrown by " + t + " on " + Main.makeVersion() + ".");
|
System.err.println("ERROR: " + s);
|
||||||
exx.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void showMessage() {
|
private static final HashSet<String> THROWABLE_SET = new HashSet<>();
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final HashSet<String> throwableSet = new HashSet<>();
|
|
||||||
|
|
||||||
void reportToServer(String text, String stacktrace) {
|
void reportToServer(String text, String stacktrace) {
|
||||||
if (throwableSet.contains(stacktrace))
|
if (THROWABLE_SET.contains(stacktrace))
|
||||||
return;
|
return;
|
||||||
throwableSet.add(stacktrace);
|
THROWABLE_SET.add(stacktrace);
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
HashMap<String, String> map = new HashMap<>();
|
HashMap<String, String> map = new HashMap<>();
|
||||||
map.put("CrashReport", text);
|
map.put("CrashReport", text);
|
||||||
|
@ -0,0 +1,85 @@
|
|||||||
|
/*
|
||||||
|
* Hello Minecraft! Launcher.
|
||||||
|
* Copyright (C) 2013 huangyuhui <huanghongxun2008@126.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||||
|
*/
|
||||||
|
package org.jackhuang.hellominecraft.launcher.views;
|
||||||
|
|
||||||
|
import java.awt.AlphaComposite;
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.SwingUtilities;
|
||||||
|
import javax.swing.Timer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author huangyuhui
|
||||||
|
*/
|
||||||
|
public class AnimatedPanel extends JPanel {
|
||||||
|
|
||||||
|
private static final int ANIMATION_LENGTH = 10;
|
||||||
|
|
||||||
|
public AnimatedPanel() {
|
||||||
|
timer = new Timer(1, (e) -> {
|
||||||
|
SwingUtilities.invokeLater(() -> {
|
||||||
|
AnimatedPanel.this.repaint();
|
||||||
|
offsetX += 0.15;
|
||||||
|
if (offsetX >= ANIMATION_LENGTH) {
|
||||||
|
timer.stop();
|
||||||
|
AnimatedPanel.this.repaint();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
double offsetX = ANIMATION_LENGTH;
|
||||||
|
|
||||||
|
Timer timer;
|
||||||
|
|
||||||
|
public void animate() {
|
||||||
|
offsetX = 0;
|
||||||
|
timer.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void paint(Graphics g) {
|
||||||
|
double pgs = 1 - Math.sin(Math.PI / 2 / ANIMATION_LENGTH * offsetX);
|
||||||
|
if(Math.abs(ANIMATION_LENGTH - offsetX) < 0.1) {
|
||||||
|
super.paint(g);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (pgs > 1)
|
||||||
|
pgs = 1;
|
||||||
|
if (pgs < 0)
|
||||||
|
pgs = 0;
|
||||||
|
Graphics2D gg = (Graphics2D) g;
|
||||||
|
int width = this.getWidth();
|
||||||
|
int height = this.getHeight();
|
||||||
|
if (isOpaque()) {
|
||||||
|
g.setColor(getBackground());
|
||||||
|
g.fillRect(0, 0, width, height);
|
||||||
|
}
|
||||||
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
|
||||||
|
Graphics2D g2d = image.createGraphics();
|
||||||
|
g2d.translate((int) (pgs * 50), 0);
|
||||||
|
super.paint(g2d);
|
||||||
|
g2d.dispose();
|
||||||
|
gg.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, (float) (1 - pgs)));
|
||||||
|
g.drawImage(image, 0, 0, this);
|
||||||
|
}
|
||||||
|
}
|
@ -5,6 +5,7 @@
|
|||||||
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
|
||||||
<Color blue="ff" green="ff" red="ff" type="rgb"/>
|
<Color blue="ff" green="ff" red="ff" type="rgb"/>
|
||||||
</Property>
|
</Property>
|
||||||
|
<Property name="opaque" type="boolean" value="false"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
|
||||||
@ -67,6 +68,9 @@
|
|||||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
|
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
|
||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Container class="javax.swing.JPanel" name="pnlSettings">
|
<Container class="javax.swing.JPanel" name="pnlSettings">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new AnimatedPanel()"/>
|
||||||
|
</AuxValues>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||||
<JTabbedPaneConstraints tabName="普通设置">
|
<JTabbedPaneConstraints tabName="普通设置">
|
||||||
@ -337,6 +341,9 @@
|
|||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
<Container class="javax.swing.JPanel" name="pnlAdvancedSettings">
|
<Container class="javax.swing.JPanel" name="pnlAdvancedSettings">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new AnimatedPanel()"/>
|
||||||
|
</AuxValues>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||||
<JTabbedPaneConstraints tabName="高级设置">
|
<JTabbedPaneConstraints tabName="高级设置">
|
||||||
@ -523,6 +530,9 @@
|
|||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
<Container class="javax.swing.JPanel" name="pnlModManagement">
|
<Container class="javax.swing.JPanel" name="pnlModManagement">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new AnimatedPanel()"/>
|
||||||
|
</AuxValues>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||||
<JTabbedPaneConstraints tabName="Mod管理">
|
<JTabbedPaneConstraints tabName="Mod管理">
|
||||||
@ -654,6 +664,9 @@
|
|||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
<Container class="javax.swing.JPanel" name="pnlAutoInstall">
|
<Container class="javax.swing.JPanel" name="pnlAutoInstall">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new AnimatedPanel()"/>
|
||||||
|
</AuxValues>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||||
<JTabbedPaneConstraints tabName="自动安装">
|
<JTabbedPaneConstraints tabName="自动安装">
|
||||||
@ -684,6 +697,9 @@
|
|||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
<Container class="javax.swing.JPanel" name="pnlGameDownloads">
|
<Container class="javax.swing.JPanel" name="pnlGameDownloads">
|
||||||
|
<AuxValues>
|
||||||
|
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new AnimatedPanel()"/>
|
||||||
|
</AuxValues>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
|
||||||
<JTabbedPaneConstraints tabName="游戏下载">
|
<JTabbedPaneConstraints tabName="游戏下载">
|
||||||
|
@ -66,13 +66,13 @@ import rx.concurrency.Schedulers;
|
|||||||
*
|
*
|
||||||
* @author huangyuhui
|
* @author huangyuhui
|
||||||
*/
|
*/
|
||||||
public final class GameSettingsPanel extends javax.swing.JPanel implements DropTargetListener {
|
public final class GameSettingsPanel extends AnimatedPanel implements DropTargetListener {
|
||||||
|
|
||||||
boolean isLoading = false;
|
boolean isLoading = false;
|
||||||
public MinecraftVersionRequest minecraftVersion;
|
public MinecraftVersionRequest minecraftVersion;
|
||||||
String mcVersion;
|
String mcVersion;
|
||||||
|
|
||||||
InstallerPanel installerPanels[] = new InstallerPanel[InstallerType.values().length];
|
final InstallerPanel installerPanels[] = new InstallerPanel[InstallerType.values().length];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new form GameSettingsPanel
|
* Creates new form GameSettingsPanel
|
||||||
@ -206,6 +206,8 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void stateChanged(ChangeEvent e) {
|
public void stateChanged(ChangeEvent e) {
|
||||||
|
if (tabVersionEdit.getSelectedComponent() instanceof AnimatedPanel)
|
||||||
|
((AnimatedPanel) tabVersionEdit.getSelectedComponent()).animate();
|
||||||
if (tabVersionEdit.getSelectedComponent() == pnlGameDownloads && !a) {
|
if (tabVersionEdit.getSelectedComponent() == pnlGameDownloads && !a) {
|
||||||
a = true;
|
a = true;
|
||||||
refreshDownloads();
|
refreshDownloads();
|
||||||
@ -215,8 +217,8 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for (InstallerType type : InstallerType.values())
|
for (int i = 0; i < InstallerType.values().length; i++)
|
||||||
tabInstallers.addTab(type.getLocalizedName(), new InstallerPanel(this, type));
|
tabInstallers.addTab(InstallerType.values()[i].getLocalizedName(), installerPanels[i]);
|
||||||
|
|
||||||
tabInstallers.addChangeListener(new ChangeListener() {
|
tabInstallers.addChangeListener(new ChangeListener() {
|
||||||
boolean refreshed[] = new boolean[InstallerType.values().length];
|
boolean refreshed[] = new boolean[InstallerType.values().length];
|
||||||
@ -242,7 +244,7 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT
|
|||||||
private void initComponents() {
|
private void initComponents() {
|
||||||
|
|
||||||
tabVersionEdit = new javax.swing.JTabbedPane();
|
tabVersionEdit = new javax.swing.JTabbedPane();
|
||||||
pnlSettings = new javax.swing.JPanel();
|
pnlSettings = new AnimatedPanel();
|
||||||
lblGameDir = new javax.swing.JLabel();
|
lblGameDir = new javax.swing.JLabel();
|
||||||
txtGameDir = new javax.swing.JTextField();
|
txtGameDir = new javax.swing.JTextField();
|
||||||
lblDimension = new javax.swing.JLabel();
|
lblDimension = new javax.swing.JLabel();
|
||||||
@ -263,7 +265,7 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT
|
|||||||
btnChoosingJavaDir = new javax.swing.JButton();
|
btnChoosingJavaDir = new javax.swing.JButton();
|
||||||
cboJava = new javax.swing.JComboBox();
|
cboJava = new javax.swing.JComboBox();
|
||||||
btnChoosingGameDir = new javax.swing.JButton();
|
btnChoosingGameDir = new javax.swing.JButton();
|
||||||
pnlAdvancedSettings = new javax.swing.JPanel();
|
pnlAdvancedSettings = new AnimatedPanel();
|
||||||
chkDebug = new javax.swing.JCheckBox();
|
chkDebug = new javax.swing.JCheckBox();
|
||||||
lblJavaArgs = new javax.swing.JLabel();
|
lblJavaArgs = new javax.swing.JLabel();
|
||||||
txtJavaArgs = new javax.swing.JTextField();
|
txtJavaArgs = new javax.swing.JTextField();
|
||||||
@ -277,16 +279,16 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT
|
|||||||
txtPrecalledCommand = new javax.swing.JTextField();
|
txtPrecalledCommand = new javax.swing.JTextField();
|
||||||
lblServerIP = new javax.swing.JLabel();
|
lblServerIP = new javax.swing.JLabel();
|
||||||
txtServerIP = new javax.swing.JTextField();
|
txtServerIP = new javax.swing.JTextField();
|
||||||
pnlModManagement = new javax.swing.JPanel();
|
pnlModManagement = new AnimatedPanel();
|
||||||
pnlModManagementContent = new javax.swing.JPanel();
|
pnlModManagementContent = new javax.swing.JPanel();
|
||||||
jScrollPane1 = new javax.swing.JScrollPane();
|
jScrollPane1 = new javax.swing.JScrollPane();
|
||||||
lstExternalMods = new javax.swing.JTable();
|
lstExternalMods = new javax.swing.JTable();
|
||||||
btnAddMod = new javax.swing.JButton();
|
btnAddMod = new javax.swing.JButton();
|
||||||
btnRemoveMod = new javax.swing.JButton();
|
btnRemoveMod = new javax.swing.JButton();
|
||||||
lblModInfo = new javax.swing.JLabel();
|
lblModInfo = new javax.swing.JLabel();
|
||||||
pnlAutoInstall = new javax.swing.JPanel();
|
pnlAutoInstall = new AnimatedPanel();
|
||||||
tabInstallers = new javax.swing.JTabbedPane();
|
tabInstallers = new javax.swing.JTabbedPane();
|
||||||
pnlGameDownloads = new javax.swing.JPanel();
|
pnlGameDownloads = new AnimatedPanel();
|
||||||
btnDownload = new javax.swing.JButton();
|
btnDownload = new javax.swing.JButton();
|
||||||
jScrollPane2 = new javax.swing.JScrollPane();
|
jScrollPane2 = new javax.swing.JScrollPane();
|
||||||
lstDownloads = new javax.swing.JTable();
|
lstDownloads = new javax.swing.JTable();
|
||||||
@ -310,6 +312,7 @@ public final class GameSettingsPanel extends javax.swing.JPanel implements DropT
|
|||||||
btnCleanGame = new javax.swing.JButton();
|
btnCleanGame = new javax.swing.JButton();
|
||||||
|
|
||||||
setBackground(new java.awt.Color(255, 255, 255));
|
setBackground(new java.awt.Color(255, 255, 255));
|
||||||
|
setOpaque(false);
|
||||||
|
|
||||||
tabVersionEdit.setName("tabVersionEdit"); // NOI18N
|
tabVersionEdit.setName("tabVersionEdit"); // NOI18N
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ import org.jackhuang.hellominecraft.utils.SwingUtils;
|
|||||||
*
|
*
|
||||||
* @author huangyuhui
|
* @author huangyuhui
|
||||||
*/
|
*/
|
||||||
public class InstallerPanel extends javax.swing.JPanel {
|
public class InstallerPanel extends AnimatedPanel {
|
||||||
|
|
||||||
GameSettingsPanel gsp;
|
GameSettingsPanel gsp;
|
||||||
|
|
||||||
@ -50,10 +50,10 @@ public class InstallerPanel extends javax.swing.JPanel {
|
|||||||
public InstallerPanel(GameSettingsPanel gsp, InstallerType installerType) {
|
public InstallerPanel(GameSettingsPanel gsp, InstallerType installerType) {
|
||||||
initComponents();
|
initComponents();
|
||||||
|
|
||||||
|
setOpaque(false);
|
||||||
this.gsp = gsp;
|
this.gsp = gsp;
|
||||||
id = installerType;
|
id = installerType;
|
||||||
list = Settings.getInstance().getDownloadSource().getProvider().getInstallerByType(id);
|
list = Settings.getInstance().getDownloadSource().getProvider().getInstallerByType(id);
|
||||||
((DefaultTableModel) lstInstallers.getModel()).addRow(new Object[] {"hehe", "hehe"});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -138,7 +138,7 @@ public class InstallerPanel extends javax.swing.JPanel {
|
|||||||
|
|
||||||
void downloadSelectedRow() {
|
void downloadSelectedRow() {
|
||||||
int idx = lstInstallers.getSelectedRow();
|
int idx = lstInstallers.getSelectedRow();
|
||||||
if (idx < 0 || idx >= versions.size()) {
|
if (versions == null || idx < 0 || idx >= versions.size()) {
|
||||||
MessageBox.Show(C.i18n("install.not_refreshed"));
|
MessageBox.Show(C.i18n("install.not_refreshed"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -147,20 +147,18 @@ public class InstallerPanel extends javax.swing.JPanel {
|
|||||||
|
|
||||||
public void loadVersions() {
|
public void loadVersions() {
|
||||||
SwingUtilities.invokeLater(() -> {
|
SwingUtilities.invokeLater(() -> {
|
||||||
versions = loadVersions(list, lstInstallers);
|
synchronized (InstallerPanel.this) {
|
||||||
|
DefaultTableModel model = (DefaultTableModel) lstInstallers.getModel();
|
||||||
|
String mcver = StrUtils.formatVersion(gsp.getMinecraftVersionFormatted());
|
||||||
|
versions = list.getVersions(mcver);
|
||||||
|
SwingUtils.clearDefaultTable(lstInstallers);
|
||||||
|
if (versions != null)
|
||||||
|
for (InstallerVersionList.InstallerVersion v : versions)
|
||||||
|
model.addRow(new Object[] {v.selfVersion == null ? "null" : v.selfVersion, v.mcVersion == null ? "null" : v.mcVersion});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<InstallerVersionList.InstallerVersion> loadVersions(InstallerVersionList list, JTable table) {
|
|
||||||
DefaultTableModel model = (DefaultTableModel) table.getModel();
|
|
||||||
String mcver = StrUtils.formatVersion(gsp.getMinecraftVersionFormatted());
|
|
||||||
List<InstallerVersionList.InstallerVersion> ver = list.getVersions(mcver);
|
|
||||||
SwingUtils.clearDefaultTable(table);
|
|
||||||
if (ver != null)
|
|
||||||
for (InstallerVersionList.InstallerVersion v : ver)
|
|
||||||
model.addRow(new Object[] {v.selfVersion == null ? "null" : v.selfVersion, v.mcVersion == null ? "null" : v.mcVersion});
|
|
||||||
return ver;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
private javax.swing.JButton btnInstall;
|
private javax.swing.JButton btnInstall;
|
||||||
|
@ -34,7 +34,7 @@ import rx.Observable;
|
|||||||
*
|
*
|
||||||
* @author huangyuhui
|
* @author huangyuhui
|
||||||
*/
|
*/
|
||||||
public class LauncherSettingsPanel extends javax.swing.JPanel {
|
public class LauncherSettingsPanel extends AnimatedPanel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new form LancherSettingsPanel
|
* Creates new form LancherSettingsPanel
|
||||||
|
@ -244,6 +244,7 @@ public final class MainFrame extends DraggableFrame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void selectTab(String tabName) {
|
public void selectTab(String tabName) {
|
||||||
|
boolean a = mainTab.isActive(), b = gameTab.isActive(), c = launcherTab.isActive();
|
||||||
this.mainTab.setIsActive(false);
|
this.mainTab.setIsActive(false);
|
||||||
this.gameTab.setIsActive(false);
|
this.gameTab.setIsActive(false);
|
||||||
this.launcherTab.setIsActive(false);
|
this.launcherTab.setIsActive(false);
|
||||||
@ -255,6 +256,8 @@ public final class MainFrame extends DraggableFrame {
|
|||||||
}
|
}
|
||||||
this.mainTab.setIsActive(true);
|
this.mainTab.setIsActive(true);
|
||||||
this.mainPanel.onSelected();
|
this.mainPanel.onSelected();
|
||||||
|
if (!a)
|
||||||
|
mainPanel.animate();
|
||||||
} else if (tabName.equalsIgnoreCase("game")) {
|
} else if (tabName.equalsIgnoreCase("game")) {
|
||||||
if (gamePanel == null) {
|
if (gamePanel == null) {
|
||||||
gamePanel = new GameSettingsPanel();
|
gamePanel = new GameSettingsPanel();
|
||||||
@ -262,12 +265,16 @@ public final class MainFrame extends DraggableFrame {
|
|||||||
}
|
}
|
||||||
this.gameTab.setIsActive(true);
|
this.gameTab.setIsActive(true);
|
||||||
this.gamePanel.onSelected();
|
this.gamePanel.onSelected();
|
||||||
|
if (!b)
|
||||||
|
gamePanel.animate();
|
||||||
} else if (tabName.equalsIgnoreCase("launcher")) {
|
} else if (tabName.equalsIgnoreCase("launcher")) {
|
||||||
if (launcherPanel == null) {
|
if (launcherPanel == null) {
|
||||||
launcherPanel = new LauncherSettingsPanel();
|
launcherPanel = new LauncherSettingsPanel();
|
||||||
launcherPanelWrapper.add(launcherPanel);
|
launcherPanelWrapper.add(launcherPanel);
|
||||||
}
|
}
|
||||||
this.launcherTab.setIsActive(true);
|
this.launcherTab.setIsActive(true);
|
||||||
|
if (!c)
|
||||||
|
launcherPanel.animate();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.infoLayout.show(this.infoSwap, tabName);
|
this.infoLayout.show(this.infoSwap, tabName);
|
||||||
|
@ -47,7 +47,7 @@ import org.jackhuang.hellominecraft.utils.functions.Consumer;
|
|||||||
*
|
*
|
||||||
* @author huangyuhui
|
* @author huangyuhui
|
||||||
*/
|
*/
|
||||||
public class MainPagePanel extends javax.swing.JPanel {
|
public class MainPagePanel extends AnimatedPanel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new form MainPagePanel
|
* Creates new form MainPagePanel
|
||||||
@ -336,6 +336,7 @@ public class MainPagePanel extends javax.swing.JPanel {
|
|||||||
if (l.isLoggedIn())
|
if (l.isLoggedIn())
|
||||||
l.logout();
|
l.logout();
|
||||||
cl.first(pnlPassword);
|
cl.first(pnlPassword);
|
||||||
|
pnlPassword.repaint();
|
||||||
}//GEN-LAST:event_btnLogoutActionPerformed
|
}//GEN-LAST:event_btnLogoutActionPerformed
|
||||||
|
|
||||||
private void txtPlayerNameKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtPlayerNameKeyPressed
|
private void txtPlayerNameKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtPlayerNameKeyPressed
|
||||||
@ -423,7 +424,7 @@ public class MainPagePanel extends javax.swing.JPanel {
|
|||||||
if (0 <= loginType && loginType < cboLoginMode.getItemCount()) {
|
if (0 <= loginType && loginType < cboLoginMode.getItemCount()) {
|
||||||
preparingAuth = false;
|
preparingAuth = false;
|
||||||
|
|
||||||
//cboLoginMode.setSelectedIndex(loginType);
|
cboLoginMode.setSelectedIndex(loginType);
|
||||||
|
|
||||||
cboLoginModeItemStateChanged(null);
|
cboLoginModeItemStateChanged(null);
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,8 @@ public class TaskWindow extends javax.swing.JDialog
|
|||||||
tasks.clear();
|
tasks.clear();
|
||||||
|
|
||||||
if (!this.failReasons.isEmpty()) {
|
if (!this.failReasons.isEmpty()) {
|
||||||
SwingUtilities.invokeLater(() -> MessageBox.Show(StrUtils.parseParams("", failReasons.toArray(), "\n"), C.i18n("message.error"), MessageBox.ERROR_MESSAGE));
|
String str = StrUtils.parseParams("", failReasons.toArray(), "\n");
|
||||||
|
SwingUtilities.invokeLater(() -> MessageBox.Show(str, C.i18n("message.error"), MessageBox.ERROR_MESSAGE));
|
||||||
failReasons.clear();
|
failReasons.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ public class SwingUtils {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static DefaultTableModel makeDefaultTableModel(String[] titleA, final Class[] typesA, final boolean[] canEditA) {
|
public static DefaultTableModel makeDefaultTableModel(String[] titleA, final Class[] typesA, final boolean[] canEditA) {
|
||||||
return new javax.swing.table.DefaultTableModel(
|
return new DefaultTableModel(
|
||||||
new Object[][] {},
|
new Object[][] {},
|
||||||
titleA) {
|
titleA) {
|
||||||
Class[] types = typesA;
|
Class[] types = typesA;
|
||||||
|
@ -57,6 +57,7 @@ install.mcversion=\u6e38\u620f\u7248\u672c
|
|||||||
install.time=\u65f6\u95f4
|
install.time=\u65f6\u95f4
|
||||||
install.release_time=\u91ca\u653e\u65f6\u95f4
|
install.release_time=\u91ca\u653e\u65f6\u95f4
|
||||||
install.type=\u7c7b\u578b
|
install.type=\u7c7b\u578b
|
||||||
|
install.please_refresh=\u5982\u9700\u4f7f\u7528\u81ea\u52a8\u5b89\u88c5\u8bf7\u70b9\u51fb\u53f3\u4fa7\u5237\u65b0\u6309\u94ae
|
||||||
|
|
||||||
crash.launcher=\u542f\u52a8\u5668\u5d29\u6e83\u4e86\uff01
|
crash.launcher=\u542f\u52a8\u5668\u5d29\u6e83\u4e86\uff01
|
||||||
crash.minecraft=Minecraft\u5d29\u6e83\u4e86\uff01\u8bf7\u8ba4\u771f\u9605\u8bfb\u5efa\u8bae\u3002
|
crash.minecraft=Minecraft\u5d29\u6e83\u4e86\uff01\u8bf7\u8ba4\u771f\u9605\u8bfb\u5efa\u8bae\u3002
|
||||||
@ -204,7 +205,7 @@ settings.physical_memory=\u7269\u7406\u5185\u5b58\u5927\u5c0f
|
|||||||
settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84
|
settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84
|
||||||
settings.default=\u9ed8\u8ba4
|
settings.default=\u9ed8\u8ba4
|
||||||
settings.custom=\u81ea\u5b9a\u4e49
|
settings.custom=\u81ea\u5b9a\u4e49
|
||||||
settings.choose_gamepath=\u9009\u62e9\u6e38\u620f\u8def\u5f84
|
settings.choose_gamedir=\u9009\u62e9\u6e38\u620f\u8def\u5f84
|
||||||
|
|
||||||
settings.failed_load=\u8bbe\u7f6e\u6587\u4ef6\u52a0\u8f7d\u5931\u8d25\uff0c\u53ef\u80fd\u662f\u5347\u7ea7\u4e86\u542f\u52a8\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u9519\u8bef\uff0c\u662f\u5426\u6e05\u9664\uff1f
|
settings.failed_load=\u8bbe\u7f6e\u6587\u4ef6\u52a0\u8f7d\u5931\u8d25\uff0c\u53ef\u80fd\u662f\u5347\u7ea7\u4e86\u542f\u52a8\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u9519\u8bef\uff0c\u662f\u5426\u6e05\u9664\uff1f
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ install.mcversion=Game Version
|
|||||||
install.time=Time
|
install.time=Time
|
||||||
install.release_time=Release Time
|
install.release_time=Release Time
|
||||||
install.type=Type
|
install.type=Type
|
||||||
|
install.please_refresh=If you want to install something, please click "Refresh" button.
|
||||||
|
|
||||||
crash.launcher=Launcher has crashed!
|
crash.launcher=Launcher has crashed!
|
||||||
crash.minecraft=Minecraft has crashed!
|
crash.minecraft=Minecraft has crashed!
|
||||||
@ -204,7 +205,7 @@ settings.physical_memory=Physical Memory Size
|
|||||||
settings.choose_javapath=Choose Java Directory.
|
settings.choose_javapath=Choose Java Directory.
|
||||||
settings.default=Default
|
settings.default=Default
|
||||||
settings.custom=Custom
|
settings.custom=Custom
|
||||||
settings.choose_gamepath=Choose Game Directory
|
settings.choose_gamedir=Choose Game Directory
|
||||||
|
|
||||||
settings.failed_load=Failed to load settings file. Remove it?
|
settings.failed_load=Failed to load settings file. Remove it?
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ install.mcversion=\u904a\u6232\u7248\u672c
|
|||||||
install.time=\u6642\u9593
|
install.time=\u6642\u9593
|
||||||
install.release_time=\u91cb\u653e\u6642\u9593
|
install.release_time=\u91cb\u653e\u6642\u9593
|
||||||
install.type=\u985e\u578b
|
install.type=\u985e\u578b
|
||||||
|
install.please_refresh=\u5982\u9700\u4f7f\u7528\u81ea\u52a8\u5b89\u88c5\u8bf7\u70b9\u51fb\u53f3\u4fa7\u5237\u65b0\u6309\u94ae
|
||||||
|
|
||||||
crash.launcher=\u555f\u52d5\u5668\u5d29\u6f70\u4e86\uff01
|
crash.launcher=\u555f\u52d5\u5668\u5d29\u6f70\u4e86\uff01
|
||||||
crash.minecraft=Minecraft\u5d29\u6f70\u4e86\uff01
|
crash.minecraft=Minecraft\u5d29\u6f70\u4e86\uff01
|
||||||
@ -204,7 +205,7 @@ settings.physical_memory=\u7269\u7406\u5185\u5b58\u5927\u5c0f
|
|||||||
settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84
|
settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84
|
||||||
settings.default=\u9ed8\u8a8d
|
settings.default=\u9ed8\u8a8d
|
||||||
settings.custom=\u81ea\u5b9a\u7fa9
|
settings.custom=\u81ea\u5b9a\u7fa9
|
||||||
settings.choose_gamepath=\u9009\u62e9\u6e38\u620f\u8def\u5f84
|
settings.choose_gamedir=\u9009\u62e9\u6e38\u620f\u8def\u5f84
|
||||||
|
|
||||||
settings.failed_load=\u8a2d\u5b9a\u6587\u4ef6\u52a0\u8f09\u5931\u6557\uff0c\u53ef\u80fd\u662f\u5347\u7d1a\u4e86\u555f\u52d5\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u932f\u8aa4\uff0c\u662f\u5426\u6e05\u9664\uff1f
|
settings.failed_load=\u8a2d\u5b9a\u6587\u4ef6\u52a0\u8f09\u5931\u6557\uff0c\u53ef\u80fd\u662f\u5347\u7d1a\u4e86\u555f\u52d5\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u932f\u8aa4\uff0c\u662f\u5426\u6e05\u9664\uff1f
|
||||||
|
|
||||||
|
@ -57,6 +57,7 @@ install.mcversion=\u6e38\u620f\u7248\u672c
|
|||||||
install.time=\u65f6\u95f4
|
install.time=\u65f6\u95f4
|
||||||
install.release_time=\u91ca\u653e\u65f6\u95f4
|
install.release_time=\u91ca\u653e\u65f6\u95f4
|
||||||
install.type=\u7c7b\u578b
|
install.type=\u7c7b\u578b
|
||||||
|
install.please_refresh=\u5982\u9700\u4f7f\u7528\u81ea\u52a8\u5b89\u88c5\u8bf7\u70b9\u51fb\u53f3\u4fa7\u5237\u65b0\u6309\u94ae
|
||||||
|
|
||||||
crash.launcher=\u542f\u52a8\u5668\u5d29\u6e83\u4e86\uff01
|
crash.launcher=\u542f\u52a8\u5668\u5d29\u6e83\u4e86\uff01
|
||||||
crash.minecraft=Minecraft\u5d29\u6e83\u4e86\uff01\u8bf7\u8ba4\u771f\u9605\u8bfb\u5efa\u8bae\u3002
|
crash.minecraft=Minecraft\u5d29\u6e83\u4e86\uff01\u8bf7\u8ba4\u771f\u9605\u8bfb\u5efa\u8bae\u3002
|
||||||
@ -204,7 +205,7 @@ settings.physical_memory=\u7269\u7406\u5185\u5b58\u5927\u5c0f
|
|||||||
settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84
|
settings.choose_javapath=\u9009\u62e9Java\u8def\u5f84
|
||||||
settings.default=\u9ed8\u8ba4
|
settings.default=\u9ed8\u8ba4
|
||||||
settings.custom=\u81ea\u5b9a\u4e49
|
settings.custom=\u81ea\u5b9a\u4e49
|
||||||
settings.choose_gamepath=\u9009\u62e9\u6e38\u620f\u8def\u5f84
|
settings.choose_gamedir=\u9009\u62e9\u6e38\u620f\u8def\u5f84
|
||||||
|
|
||||||
settings.failed_load=\u8bbe\u7f6e\u6587\u4ef6\u52a0\u8f7d\u5931\u8d25\uff0c\u53ef\u80fd\u662f\u5347\u7ea7\u4e86\u542f\u52a8\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u9519\u8bef\uff0c\u662f\u5426\u6e05\u9664\uff1f
|
settings.failed_load=\u8bbe\u7f6e\u6587\u4ef6\u52a0\u8f7d\u5931\u8d25\uff0c\u53ef\u80fd\u662f\u5347\u7ea7\u4e86\u542f\u52a8\u5668\u6216\u88ab\u4eba\u5de5\u4fee\u6539\u9020\u6210\u9519\u8bef\uff0c\u662f\u5426\u6e05\u9664\uff1f
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user