diff --git a/.idea/misc.xml b/.idea/misc.xml index ec7da81..8f9690c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,4 +7,9 @@ + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index bdb4873..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/main/java/tech/nevets/jaml/JAML.java b/src/main/java/tech/nevets/jaml/JAML.java index b134b41..62c27d7 100644 --- a/src/main/java/tech/nevets/jaml/JAML.java +++ b/src/main/java/tech/nevets/jaml/JAML.java @@ -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) { diff --git a/src/main/java/tech/nevets/jaml/Launcher.java b/src/main/java/tech/nevets/jaml/Launcher.java index 357fd94..18b0ec3 100644 --- a/src/main/java/tech/nevets/jaml/Launcher.java +++ b/src/main/java/tech/nevets/jaml/Launcher.java @@ -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 commandArray = parseCommand(jdkVersion, memoryAmount, garbageCollection); diff --git a/src/main/java/tech/nevets/jaml/gui/NewProfileGui.java b/src/main/java/tech/nevets/jaml/gui/NewProfileGui.java index 35ce17d..c4b2290 100644 --- a/src/main/java/tech/nevets/jaml/gui/NewProfileGui.java +++ b/src/main/java/tech/nevets/jaml/gui/NewProfileGui.java @@ -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 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 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(); }); diff --git a/src/main/java/tech/nevets/jaml/gui/TestGui.java b/src/main/java/tech/nevets/jaml/gui/TestGui.java new file mode 100644 index 0000000..0581f18 --- /dev/null +++ b/src/main/java/tech/nevets/jaml/gui/TestGui.java @@ -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); + } +} diff --git a/src/main/java/tech/nevets/jaml/gui/panels/HomePanel.java b/src/main/java/tech/nevets/jaml/gui/panels/HomePanel.java index a60591c..96ffd3a 100644 --- a/src/main/java/tech/nevets/jaml/gui/panels/HomePanel.java +++ b/src/main/java/tech/nevets/jaml/gui/panels/HomePanel.java @@ -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 activeProfileDropdown = new JComboBox<>(ProfileUtils.profileList); activeProfileDropdown.setBounds(858, 648, 196, 22); add(activeProfileDropdown); diff --git a/src/main/java/tech/nevets/jaml/gui/panels/ProfilePanel.java b/src/main/java/tech/nevets/jaml/gui/panels/ProfilePanel.java index e0234a1..6ba7539 100644 --- a/src/main/java/tech/nevets/jaml/gui/panels/ProfilePanel.java +++ b/src/main/java/tech/nevets/jaml/gui/panels/ProfilePanel.java @@ -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); } }