Панель меню с использованием Java JOptionPane - PullRequest
0 голосов
/ 06 февраля 2020

Добрый день! Я пытаюсь изучить JOptionPane. Я искал код в Интернете и попытался проанализировать его, запустив код и выполнив поиск в Интернете, но до сих пор не могу понять какую-то его часть. Можете ли вы уточнить этот код с комментариями, в частности, javax.swing, publi c JOPmenu (), createMenuBar (), setJMenuBar и String [] args.

javax.swing.*;** //what's the difference between this and javax.swing.JOptionPane
import java.awt.EventQueue;  
import java.awt.event.KeyEvent;

public class JOpMenu extends JFrame
{
    public JOpMenu()
    {
        **initUI();** // can I delete this class and just directly insert the code from initUI
    }

    public void initUI()
    {
        createMenuBar(); // whats the purpose of this

        setTitle("CHS Presentation");
        setSize(560, 350);
        setLocationRelativeTo(null);
    }

    private void createMenuBar()
    {
        var menuBar = new JMenuBar();

        var fileMenu = new JMenu("File");
        fileMenu.setMnemonic(KeyEvent.VK_F);
        var newMenuItem = new JMenuItem("New");
        newMenuItem.setMnemonic(KeyEvent.VK_N);
        var openMenuItem = new JMenuItem("Open");
        openMenuItem.setMnemonic(KeyEvent.VK_O);
        var saveMenuItem = new JMenuItem("Save");
        saveMenuItem.setMnemonic(KeyEvent.VK_S);
        var exitMenuItem = new JMenuItem("Exit");
        exitMenuItem.setMnemonic(KeyEvent.VK_E);

        exitMenuItem.addActionListener((event) -> System.exit(0));

        fileMenu.add(newMenuItem);
        fileMenu.add(openMenuItem);
        fileMenu.add(saveMenuItem);
        fileMenu.addSeparator();
        fileMenu.add(exitMenuItem);

        var editMenu = new JMenu("Edit");
        editMenu.setMnemonic(KeyEvent.VK_E);

        var undoMenuItem = new JMenuItem("Undo");
        undoMenuItem.setMnemonic(KeyEvent.VK_U);
        var redoMenuItem = new JMenuItem("Redo");
        redoMenuItem.setMnemonic(KeyEvent.VK_R);
        var copyMenuItem = new JMenuItem("Copy");
        copyMenuItem.setMnemonic(KeyEvent.VK_C);
        var pasteMenuItem = new JMenuItem("Paste");
        pasteMenuItem.setMnemonic(KeyEvent.VK_P);
        var selectMenuItem = new JMenuItem("Select");
        selectMenuItem.setMnemonic(KeyEvent.VK_S);

        editMenu.add(undoMenuItem);
        editMenu.add(redoMenuItem);
        editMenu.addSeparator();
        editMenu.add(copyMenuItem);
        editMenu.add(pasteMenuItem);
        editMenu.add(selectMenuItem);

        var helpMenu = new JMenu("Help");
        helpMenu.setMnemonic(KeyEvent.VK_H);

        var aboutMenuItem = new JMenuItem("About");
        aboutMenuItem.setMnemonic(KeyEvent.VK_A);

        helpMenu.add(aboutMenuItem);

        menuBar.add(fileMenu);
        menuBar.add(editMenu);
        menuBar.add(helpMenu);

        setJMenuBar(menuBar); //why the menu disappear when I remove this
    } 

    public static void main(String[] args) // why does the string args declaration is in here
    {
        EventQueue.invokeLater(() -> {
            var ex = new JOpMenu();
            ex.setVisible(true);
        });
    } 
}

Спасибо!

...