/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package multipanelmenu;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MultiPanelMenu extends JFrame {
private CardLayout cardLayout;
private JPanel mainPanel;
private JTextField nameField;
private JLabel displayLabel;
public MultiPanelMenu() {
setTitle("Menu Example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 200);
setLocationRelativeTo(null);
// CardLayout to switch between panels
cardLayout = new CardLayout();
mainPanel = new JPanel(cardLayout);
// Create panels
JPanel panel1 = createMenuPanel();
JPanel panel2 = createLevel1Panel();
JPanel panel3 = createDisplayPanel();
// Add panels to mainPanel
mainPanel.add(panel1, "Menu");
mainPanel.add(panel2, "Level1");
mainPanel.add(panel3, "Display");
add(mainPanel);
cardLayout.show(mainPanel, "Menu");
}
// Panel 1: Main Menu
private JPanel createMenuPanel() {
JPanel panel = new JPanel(new GridLayout(4, 1, 10, 10));
JButton btnLevel1 = new JButton("Level 1");
JButton btnLevel2 = new JButton("Level 2");
JButton btnLevel3 = new JButton("Level 3");
JButton btnClose = new JButton("Close");
btnLevel1.addActionListener(e -> cardLayout.show(mainPanel, "Level1"));
btnLevel2.addActionListener(e -> JOptionPane.showMessageDialog(this, "Level 2 not implemented yet."));
btnLevel3.addActionListener(e -> JOptionPane.showMessageDialog(this, "Level 3 not implemented yet."));
btnClose.addActionListener(e -> System.exit(0));
panel.add(btnLevel1);
panel.add(btnLevel2);
panel.add(btnLevel3);
panel.add(btnClose);
return panel;
}
// Panel 2: Level 1 Input
private JPanel createLevel1Panel() {
JPanel panel = new JPanel(new FlowLayout());
JLabel label = new JLabel("Name Player:");
nameField = new JTextField(15);
JButton btnOk = new JButton("OK");
btnOk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String name = nameField.getText().trim();
if (name.isEmpty()) {
JOptionPane.showMessageDialog(MultiPanelMenu.this, "Please enter a name.");
} else {
displayLabel.setText("Player Name: " + name);
cardLayout.show(mainPanel, "Display");
}
}
});
panel.add(label);
panel.add(nameField);
panel.add(btnOk);
return panel;
}
// Panel 3: Display Player Name
private JPanel createDisplayPanel() {
JPanel panel = new JPanel(new BorderLayout());
displayLabel = new JLabel("", SwingConstants.CENTER);
displayLabel.setFont(new Font("Arial", Font.BOLD, 16));
JButton btnBack = new JButton("Back to Menu");
btnBack.addActionListener(e -> cardLayout.show(mainPanel, "Menu"));
panel.add(displayLabel, BorderLayout.CENTER);
panel.add(btnBack, BorderLayout.SOUTH);
return panel;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new MultiPanelMenu().setVisible(true);
});
}
}







