Το μενού (JMenuBar)
Για τη δηιμιουργία ενός μενού χρειαζόμαστε τρία στοιχεία (components).
- Το
JMenuBar
που είναι η μπάρα του μενού και περιέχει όλα τα μενού όπως "File", "Edit" κ.λπ. - Το
JMenu
το οποίο περιέχει τα στοιχεία μενού ή λίστα μενού. Για παράδειγμα το "File" είναι έναJMenu
. ΚάθεJMenu
περιέχεται μέσα σε έναJMenuBar
. - Το
JMenuItem
το οποίο είναι το στοιχείο μενού και περιέχεται σε έναJMenu
.
Κάθε φορά που δημιουργούμε ένα JMenuItem
το κάνουμε add
σε ένα JMenu
.
Κάθε JMenu
το κάνουμε add
στο JMenuBar
.
Τέλος, το JMenuBar
το κάνουμε setJMenuBar
και όχι add
στο παράθυρο που έχουμε δημιουργήσει.
import javax.swing.*; public class App { public static void main(String[] args) { MenuBarApp frame = new MenuBarApp(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } class MenuBarApp extends JFrame { //θα χρειαστούμε τα παρακάτω στοιχεία (components) JMenuBar menuBar; JMenu fileMenu, editMenu, helpMenu; JMenuItem openItem, exitItem, cutItem, copyItem, pasteItem; public MenuBarApp() { setSize(400, 300); setTitle("my java application"); //δημιουργία του menuBar menuBar = new JMenuBar(); //δημιουργία του fileMenu και πρόσθεση στο menuBar fileMenu = new JMenu("File"); menuBar.add(fileMenu); //δημιουργία του editMenu και πρόσθεση στο menuBar editMenu = new JMenu("Edit"); menuBar.add(editMenu); //δημιουργία του editMenu και πρόσθεση στο menuBar helpMenu = new JMenu("Help"); menuBar.add(helpMenu); //δημιουργία του openItem και πρόσθεση στο fileMenu openItem = new JMenuItem("Open"); fileMenu.add(openItem); //δημιουργία του exitItem και πρόσθεση στο fileMenu exitItem = new JMenuItem("Exit"); fileMenu.add(exitItem); //δημιουργία του cutItem και πρόσθεση στο editMenu cutItem = new JMenuItem("Cut"); editMenu.add(cutItem); //δημιουργία του copyItem και πρόσθεση στο editMenu copyItem = new JMenuItem("Copy"); editMenu.add(copyItem); //δημιουργία του pasteItem και πρόσθεση στο editMenu pasteItem = new JMenuItem("Paste"); editMenu.add(pasteItem); //πρόσθεση του menuBar στο παράθυρο με την εντολή setJMenuBar (όχι με add()) setJMenuBar(menuBar); } }