for the first time in forever

This commit is contained in:
Steven Tracey 2022-05-29 15:48:10 -04:00
parent b618bb3a04
commit 92fcaf4af5
8 changed files with 157 additions and 28 deletions

View File

@ -7,4 +7,9 @@
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="openjdk-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="SwUserDefinedSpecifications">
<option name="specTypeByUrl">
<map />
</option>
</component>
</project>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
</modules>
</component>
</project>

View File

@ -7,7 +7,7 @@ import java.nio.file.Path;
public class JAML {
public static Path path;
public static GuiHandler guiHandler;
public static final String VERSION = "0.8.0";
public static final String VERSION = "0.8.2";
public static void main(String[] args) {

View File

@ -9,10 +9,49 @@ import java.io.InputStreamReader;
import java.util.ArrayList;
public class Launcher {
private int jdkVersion;
private int memoryAmount;
private String garbageCollection;
private boolean printConsole;
//TODO add progressbar for launch progress
//TODO add console output option
public Launcher(int jdkVersion, int memoryAmount, String garbageCollection, boolean printConsole) {
public Launcher() {
}
public void setJdkVersion(int jdkVersion) {
this.jdkVersion = jdkVersion;
}
public int getJdkVersion() {
return jdkVersion;
}
public void setMemoryAmount(int memoryAmount) {
this.memoryAmount = memoryAmount;
}
public int getMemoryAmount() {
return memoryAmount;
}
public void setGarbageCollection(String garbageCollection) {
this.garbageCollection = garbageCollection;
}
public String getGarbageCollection() {
return garbageCollection;
}
public void setPrintConsole(boolean printConsole) {
this.printConsole = printConsole;
}
public boolean getPrintConsole() {
return printConsole;
}
public void launch() {
try {
ArrayList<String> commandArray = parseCommand(jdkVersion, memoryAmount, garbageCollection);

View File

@ -33,23 +33,38 @@ public class NewProfileGui extends JFrame {
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
SpringLayout sl_contentPane = new SpringLayout();
contentPane.setLayout(sl_contentPane);
JLabel profileNameLabel = new JLabel("Profile Name:");
profileNameLabel.setBounds(10, 14, 84, 31);
sl_contentPane.putConstraint(SpringLayout.NORTH, profileNameLabel, 14, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, profileNameLabel, 10, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, profileNameLabel, 45, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, profileNameLabel, 94, SpringLayout.WEST, contentPane);
contentPane.add(profileNameLabel);
JTextField profileNameField = new JTextField(20);
profileNameField.setBounds(94, 18, 231, 23);
sl_contentPane.putConstraint(SpringLayout.NORTH, profileNameField, 18, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, profileNameField, 94, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, profileNameField, 41, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, profileNameField, 325, SpringLayout.WEST, contentPane);
contentPane.add(profileNameField);
JLabel gamePathLabel = new JLabel("Game Path:");
gamePathLabel.setBounds(10, 56, 84, 31);
sl_contentPane.putConstraint(SpringLayout.NORTH, gamePathLabel, 56, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, gamePathLabel, 10, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, gamePathLabel, 87, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, gamePathLabel, 94, SpringLayout.WEST, contentPane);
contentPane.add(gamePathLabel);
JButton gamePathButton = new JButton("...");
gamePathButton.setBounds(302, 60, 23, 23);
sl_contentPane.putConstraint(SpringLayout.NORTH, gamePathButton, 60, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, gamePathButton, 302, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, gamePathButton, 325, SpringLayout.WEST, contentPane);
JTextField gamePathField = new JTextField(20);
gamePathField.setBounds(94, 60, 209, 23);
sl_contentPane.putConstraint(SpringLayout.NORTH, gamePathField, 60, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, gamePathField, 94, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, gamePathField, 83, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, gamePathField, 303, SpringLayout.WEST, contentPane);
gamePathButton.addActionListener(ae -> {
JFileChooser fileChooser = new JFileChooser(System.getenv("APPDATA") + "\\.minecraft\\");
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
@ -68,29 +83,49 @@ public class NewProfileGui extends JFrame {
}
JLabel versionLabel = new JLabel("Version:");
versionLabel.setBounds(10, 98, 84, 31);
sl_contentPane.putConstraint(SpringLayout.NORTH, versionLabel, 98, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, versionLabel, 10, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, versionLabel, 129, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, versionLabel, 94, SpringLayout.WEST, contentPane);
contentPane.add(versionLabel);
JComboBox<String> versionField = new JComboBox<>(versions.toArray(new String[versions.size()]));
versionField.setBounds(94, 102, 231, 23);
JComboBox versionField = new JComboBox(versions.toArray(new String[versions.size()]));
sl_contentPane.putConstraint(SpringLayout.NORTH, versionField, 102, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, versionField, 94, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, versionField, 125, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, versionField, 325, SpringLayout.WEST, contentPane);
contentPane.add(versionField);
JLabel loaderLabel = new JLabel("Loader:");
loaderLabel.setBounds(10, 140, 84, 31);
sl_contentPane.putConstraint(SpringLayout.NORTH, loaderLabel, 140, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, loaderLabel, 10, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, loaderLabel, 171, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, loaderLabel, 94, SpringLayout.WEST, contentPane);
contentPane.add(loaderLabel);
JComboBox<String> loaderDropdown = new JComboBox<>(LoaderUtils.getLoaders());
loaderDropdown.setBounds(94, 144, 231, 23);
JComboBox loaderDropdown = new JComboBox(LoaderUtils.getLoaders());
sl_contentPane.putConstraint(SpringLayout.NORTH, loaderDropdown, 144, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, loaderDropdown, 94, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, loaderDropdown, 167, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, loaderDropdown, 325, SpringLayout.WEST, contentPane);
contentPane.add(loaderDropdown);
JLabel offlineModeLabel = new JLabel("Offline Mode:");
offlineModeLabel.setBounds(10, 182, 84, 31);
sl_contentPane.putConstraint(SpringLayout.NORTH, offlineModeLabel, 182, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, offlineModeLabel, 10, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, offlineModeLabel, 213, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, offlineModeLabel, 94, SpringLayout.WEST, contentPane);
contentPane.add(offlineModeLabel);
JCheckBox offlineModeBox = new JCheckBox("");
offlineModeBox.setBounds(94, 185, 21, 23);
sl_contentPane.putConstraint(SpringLayout.NORTH, offlineModeBox, 185, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, offlineModeBox, 94, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, offlineModeBox, 208, SpringLayout.NORTH, contentPane);
contentPane.add(offlineModeBox);
JButton button = new JButton("Create Profile");
button.setBounds(24, 243, 217, 37);
sl_contentPane.putConstraint(SpringLayout.NORTH, button, 243, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, button, 24, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, button, 280, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, button, 241, SpringLayout.WEST, contentPane);
button.addActionListener(al -> {
Profile profile = new Profile();
profile.setProfileName(profileNameField.getText());
@ -111,7 +146,10 @@ public class NewProfileGui extends JFrame {
contentPane.add(button);
JButton cancelButton = new JButton("Cancel");
cancelButton.setBounds(242, 243, 83, 37);
sl_contentPane.putConstraint(SpringLayout.NORTH, cancelButton, 243, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.WEST, cancelButton, 242, SpringLayout.WEST, contentPane);
sl_contentPane.putConstraint(SpringLayout.SOUTH, cancelButton, 280, SpringLayout.NORTH, contentPane);
sl_contentPane.putConstraint(SpringLayout.EAST, cancelButton, 325, SpringLayout.WEST, contentPane);
cancelButton.addActionListener(al -> {
this.dispose();
});

View File

@ -0,0 +1,36 @@
package tech.nevets.jaml.gui;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class TestGui extends JFrame {
public int buttons;
JPanel contentPane;
public TestGui() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(1920, 1080);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
setLocationRelativeTo(null);
int num = 5;
for (int i = 0; i < 5; i++) {
JButton button = new JButton();
button.setBounds(10, num, 10, 5);
contentPane.add(button);
num += 10;
}
}
public static void main(String[] args) {
TestGui gui = new TestGui();
gui.setLocationRelativeTo(null);
gui.setVisible(true);
}
}

View File

@ -1,6 +1,5 @@
package tech.nevets.jaml.gui.panels;
import tech.nevets.jaml.JAML;
import tech.nevets.jaml.Launcher;
import tech.nevets.jaml.util.ImageUtils;
@ -20,11 +19,16 @@ public class HomePanel extends JPanel {
JButton launchButton = new JButton("Launch");
launchButton.setBounds(512, 619, 196, 51);
launchButton.addActionListener(al -> {
new Launcher(17, 6, "zgc", true);
Launcher launch = new Launcher();
launch.setJdkVersion(17);
launch.setMemoryAmount(6144);
launch.setGarbageCollection("zgc");
launch.setPrintConsole(true);
launch.launch();
});
add(launchButton);
JComboBox activeProfileDropdown = new JComboBox(ProfileUtils.profileList);
JComboBox<String> activeProfileDropdown = new JComboBox<>(ProfileUtils.profileList);
activeProfileDropdown.setBounds(858, 648, 196, 22);
add(activeProfileDropdown);

View File

@ -1,9 +1,23 @@
package tech.nevets.jaml.gui.panels;
import javax.swing.*;
import java.awt.Component;
public class ProfilePanel extends JPanel {
public ProfilePanel() {
SpringLayout springLayout = new SpringLayout();
setLayout(springLayout);
JComboBox profileDropDown = new JComboBox();
add(profileDropDown);
Component dropDownGlue = Box.createGlue();
springLayout.putConstraint(SpringLayout.NORTH, profileDropDown, 0, SpringLayout.NORTH, dropDownGlue);
springLayout.putConstraint(SpringLayout.WEST, profileDropDown, -80, SpringLayout.WEST, dropDownGlue);
springLayout.putConstraint(SpringLayout.EAST, profileDropDown, 30, SpringLayout.WEST, dropDownGlue);
springLayout.putConstraint(SpringLayout.NORTH, dropDownGlue, 16, SpringLayout.NORTH, this);
springLayout.putConstraint(SpringLayout.WEST, dropDownGlue, 242, SpringLayout.WEST, this);
add(dropDownGlue);
}
}