Добрый день! Я пытаюсь изучить 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);
});
}
}
Спасибо!