Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Main {
    JPanel mainPanel = new JPanel();
    JMenu menu = new JMenu("Menu");
    JMenuBar menuBar = new JMenuBar();
    CardLayout cardlayout = new CardLayout();

    public Main() {
        mainPanel.setLayout(cardlayout);
        mainPanel.setBackground(Color.white);
        addCard("A");
        addCard("B");
        addCard("C");
        addCard("D");
        menuBar.add(menu);
    }

    private void addCard(String name) {
        JLabel label = new JLabel(name);
        mainPanel.add(label, name);
        menu.add(new JMenuItem(new MenuAction(name)));
    }

    public JComponent getMainPanel() {
        return mainPanel;
    }

    public JMenuBar getMenuBar() {
        return menuBar;
    }

    class MenuAction extends AbstractAction {
        public MenuAction(String name) {
            super(name);
        }

        @Override
        public void actionPerformed(ActionEvent arg0) {
            String name = getValue(NAME).toString();
            cardlayout.show(mainPanel, name);
        }
    }

    public static void main(String[] args) {
        Main swapper = new Main();
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(swapper.getMainPanel());
        frame.setJMenuBar(swapper.getMenuBar());
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }
}