Java - JMenuBar, JMenu i JMenuItem


Klasa JMenuBar se koristi za prikaz trake menija na prozoru ili okviru. Može imati nekoliko menija kao što su podmeniji. Objekt klase JMenu je komponenta padajućeg menija koja se prikazuje sa trake menija. Nasljeđuje klasu JMenuItem. Objekt klase JMenuItem dodaje jednostavnu označenu stavku menija. Stavke koje se koriste u meniju moraju pripadati JMenuItem ili bilo kojoj njegovoj podklasi.

Deklaracija JMenuBar klase

public class JMenuBar extends JComponent implements MenuElement, Accessible  

Deklaracija klase JMenu

public class JMenu extends JMenuItem implements MenuElement, Accessible

Deklaracija klase JMenuItem

public class JMenuItem extends AbstractButton implements Accessible, MenuElement  


Primjer Java JMenuItem i JMenu

import javax.swing.*; 
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;

class Main  
    {  
        // Kriranje menija i stavki menija
        JMenu menu, submenu;  
        JMenuItem i1, i2, i3, i4, i5;  
        
        Main(){  
        JFrame f = new JFrame("Primjer Menu i MenuItem");  
        JMenuBar mb=new JMenuBar();  
        
        // Naziv menija i pod menija
        menu=new JMenu("Meni");  
        submenu=new JMenu("Pod meni");
        
        // Stavke menija
        i1 = new JMenuItem("Stavka 1");  
        i2 = new JMenuItem("Stavka 2");  
        i3 = new JMenuItem("Stavka 3");  
        i4 = new JMenuItem("Stavka 4");  
        i5 = new JMenuItem("Stavka 5"); 
        
        // Kriranje stavki podmenija
        menu.add(i1); menu.add(i2); menu.add(i3);  
        submenu.add(i4); submenu.add(i5);  
        menu.add(submenu);  
        mb.add(menu);  
        
        // Dodavanje elemenata na Formu
        f.setJMenuBar(mb);  
        f.setSize(400,400);  
        f.setLayout(null);  
        f.setVisible(true); 
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }  
    public static void main(String args[])  
    {  
        new Main();  
    }
}

Prikaz koda iz gornjeg primjera izgledaće ovako:



Primjer kreiranja Edit menija za Notepad

import javax.swing.*;    
import java.awt.event.*;
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;

public class Main implements ActionListener{ 
    JFrame f;    
    JMenuBar mb;    
    JMenu file,edit,help;    
    JMenuItem cut,copy,paste,selectAll;    
    JTextArea ta;    
    
    Main(){    
        f=new JFrame();    
        cut=new JMenuItem("cut");    
        copy=new JMenuItem("copy");    
        paste=new JMenuItem("paste");    
        selectAll=new JMenuItem("selectAll");  
        
        cut.addActionListener(this);    
        copy.addActionListener(this);    
        paste.addActionListener(this);    
        selectAll.addActionListener(this); 
        
        mb=new JMenuBar();    
        file=new JMenu("File");    
        edit=new JMenu("Edit");    
        help=new JMenu("Help");    
        
        edit.add(cut);edit.add(copy);edit.add(paste);edit.add(selectAll);    
        mb.add(file);mb.add(edit);mb.add(help);    
        ta=new JTextArea();    
        ta.setBounds(5,5,360,320);   
        
        f.add(mb);f.add(ta);    
        f.setJMenuBar(mb);  
        f.setLayout(null);    
        f.setSize(400,400);    
        f.setVisible(true);  
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }     
    public void actionPerformed(ActionEvent e) {    
        if(e.getSource()==cut)    
        ta.cut();    
        if(e.getSource()==paste)    
        ta.paste();    
        if(e.getSource()==copy)    
        ta.copy();    
        if(e.getSource()==selectAll)    
        ta.selectAll();    
    }     
    public static void main(String[] args) {    
        new Main();    
    }    
}

Prikaz koda iz gornjeg primjera izgledaće ovako: