package tech.nevets.jaml.gui; import tech.nevets.jaml.Config; import javax.swing.*; import java.awt.*; import java.util.ArrayList; public class GuiHandler { //TODO add config gui for easier config modification public static final int SCREEN_WIDTH = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth(); public static final int SCREEN_HEIGHT = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight(); private static StartupGui startupFrame; public static ArrayList frames = new ArrayList<>(); public GuiHandler() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { e.printStackTrace(); System.out.println("Using default look and feel"); } if (Config.getConfig().getBoolean("launcher.first-launch")) { FirstLaunchGui firstLaunchGui = new FirstLaunchGui(); Thread firstLaunchThread = new Thread(firstLaunchGui); firstLaunchThread.start(); } startupFrame.dispose(); Thread homeGuiThread = new Thread(() -> { HomeGui homeFrame = new HomeGui(); homeFrame.setTitle("JAML"); homeFrame.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("assets/icon.png")).getImage()); homeFrame.setLocationRelativeTo(null); homeFrame.setVisible(true); addToFramesArray(homeFrame); }); homeGuiThread.start(); } public static void startup() { startupFrame = new StartupGui(); } public void startNewProfileGui() { Thread newProfileGuiThread = new Thread(() -> { NewProfileGui newProfileFrame = new NewProfileGui(); newProfileFrame.setTitle("Create New Profile"); newProfileFrame.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("assets/icon.png")).getImage()); newProfileFrame.setVisible(true); addToFramesArray(newProfileFrame); }); newProfileGuiThread.start(); } public static void addToFramesArray(JFrame frame) { frames.add(frame); } public static void removeFromFramesArray(JFrame frame) { frames.remove(frame); } }