package com.redpois0n; import java.awt.Color; import java.awt.Component; import java.awt.Font; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSeparator; import javax.swing.border.EmptyBorder; import com.redpois0n.panels.Panel1SelectJar; import com.redpois0n.panels.Panel2MainClass; import com.redpois0n.panels.Panel3Encryption; import com.redpois0n.panels.Panel4Create; import com.redpois0n.panels.Panel5Build; import com.redpois0n.panels.PanelBase; @SuppressWarnings("serial") public class Frame extends JFrame { public static final List<PanelBase> panels = new ArrayList<PanelBase>(); public static int currentPanel = 0; public static Frame instance; private JPanel contentPane; private JButton btnBack; private JButton btnNext; private JPanel panel; private JLabel lblTitle; public Frame() { instance = this; setIconImage(Toolkit.getDefaultToolkit().getImage(Frame.class.getResource("/com/redpois0n/icons/icon.png"))); setTitle("jCrypt " + Main.getVersion() + " - 1/5"); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); btnNext = new JButton("Next"); btnNext.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { next(); } }); btnNext.setBounds(295, 238, 55, 23); btnBack = new JButton("Back"); btnBack.setEnabled(false); btnBack.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { back(); } }); btnBack.setBounds(230, 238, 55, 23); contentPane.setLayout(null); contentPane.add(btnNext); contentPane.add(btnBack); JButton btnCancel = new JButton("Cancel"); btnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); btnCancel.setBounds(360, 238, 74, 23); contentPane.add(btnCancel); panel = new JPanel(); panel.setBounds(0, 52, 444, 173); contentPane.add(panel); JPanel panel_1 = new JPanel(); panel_1.setBackground(Color.WHITE); panel_1.setForeground(Color.WHITE); panel_1.setBounds(0, 0, 444, 50); contentPane.add(panel_1); lblTitle = new JLabel("Title"); lblTitle.setFont(new Font("Tahoma", Font.BOLD, 11)); GroupLayout gl_panel_1 = new GroupLayout(panel_1); gl_panel_1.setHorizontalGroup( gl_panel_1.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_1.createSequentialGroup() .addContainerGap() .addComponent(lblTitle) .addContainerGap(388, Short.MAX_VALUE)) ); gl_panel_1.setVerticalGroup( gl_panel_1.createParallelGroup(Alignment.LEADING) .addGroup(gl_panel_1.createSequentialGroup() .addContainerGap() .addComponent(lblTitle) .addContainerGap(27, Short.MAX_VALUE)) ); panel_1.setLayout(gl_panel_1); JSeparator separator = new JSeparator(); separator.setBounds(0, 50, 444, 2); contentPane.add(separator); JSeparator separator_1 = new JSeparator(); separator_1.setBounds(0, 225, 444, 2); contentPane.add(separator_1); loadPanels(); panelChanged(panels.get(0)); } public void loadPanels() { panels.clear(); panels.add(new Panel1SelectJar()); panels.add(new Panel2MainClass()); panels.add(new Panel3Encryption()); panels.add(new Panel4Create()); panels.add(new Panel5Build()); } public void next() { if (currentPanel < panels.size() - 1) { panelChanged(panels.get(++currentPanel)); } btnNext.setEnabled(currentPanel < panels.size() - 1); btnBack.setEnabled(currentPanel > 0); } public void back() { if (currentPanel > 0) { panelChanged(panels.get(--currentPanel)); } btnNext.setEnabled(currentPanel < panels.size() - 1); btnBack.setEnabled(currentPanel > 0); } public void panelChanged(Component com) { panel.removeAll(); panel.add(com); panel.revalidate(); panel.repaint(); lblTitle.setText(((PanelBase)com).getTitle()); ((PanelBase)com).opened(); setTitle("jCrypt " + Main.getVersion() + " - " + (currentPanel + 1) + "/" + panels.size()); } }