Selasa, 05 Mei 2026

JAVA Netbeans Menu Launcher Game 2 (With Player Name)

 





/*

 * 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);

        });

    }

}

Tidak ada komentar: