Java Swing’de menülerin kullanımını gosteren aciklamali bir örnek. JMenuBar, JMenu, JMenuItem
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class MenuDemo implements ActionListener
{
JLabel jlab;
MenuDemo()
{
JFrame jfrm = new JFrame("Menu Demo");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(250, 240);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jlab = new JLabel();
//JMenulerin eklenecegi JMenuBari olustur
JMenuBar jab = new JMenuBar();
// JMenu olustur
JMenu jmFile = new JMenu("File");
//JMenu icine eklenecek JMenuItemler
JMenuItem jmiOpen = new JMenuItem("Open");
JMenuItem jmiClose = new JMenuItem("Close");
JMenuItem jmiSave = new JMenuItem("Save");
JMenuItem jmiExit = new JMenuItem("Exit");
// olusturulan MenuItemleri JMenuye ekle
jmFile.add(jmiOpen);
jmFile.add(jmiClose);
jmFile.add(jmiSave);
jmFile.add(jmiExit);
// olusturulan JMenuyu MenuBara ekle
jab.add(jmFile);
// Yeni bir JMenu
JMenu jmOptions = new JMenu("Options");
// Menu icine ic menu olustur
JMenu jmColors = new JMenu("Colors");
// ic menu itemleri
JMenuItem jmiRed = new JMenuItem("Red", KeyEvent.VK_R);
//jmiRed itemi icin klavye CTRL+R kisayolu ekle
jmiRed.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_MASK));
JMenuItem jmiGreen = new JMenuItem("Green");
JMenuItem jmiBlue = new JMenuItem("Blue");
JMenuItem jmiWhite = new JMenuItem("White");
// itemleri ic menuye ekle
jmColors.add(jmiRed);
jmColors.add(jmiGreen);
jmColors.add(jmiBlue);
jmColors.add(jmiWhite);
// ic menuyu menuye ekle
jmOptions.add(jmColors);
// ic Menu olustur
JMenu jmPriority = new JMenu("Priority");
// ic menu itemleri
JMenuItem jmiHigh = new JMenuItem("High");
JMenuItem jmiLow = new JMenuItem("Low");
// itemleri ic menuye ekle
jmPriority.add(jmiHigh);
jmPriority.add(jmiLow);
// ic menuyu menuye ekle
jmOptions.add(jmPriority);
// jmOptions menusu icin item ekle
JMenuItem jmiReset = new JMenuItem("Reset");
// ayrac ekle
jmOptions.addSeparator();
jmOptions.add(jmiReset);
// jmOptions menusunu menubara ekle
jab.add(jmOptions);
//Yeni Menu
JMenu jmHelp = new JMenu("Help");
// jmHelp icin item
JMenuItem jmiAbout = new JMenuItem("About");
// itemi menuye ekle
jmHelp.add(jmiAbout);
// menuyu menubara ekle
jab.add(jmHelp);
// eylem dinleyicileri ekle
jmiOpen.addActionListener(this);
jmiClose.addActionListener(this);
jmiSave.addActionListener(this);
jmiExit.addActionListener(this);
jmiRed.addActionListener(this);
jmiGreen.addActionListener(this);
jmiBlue.addActionListener(this);
jmiWhite.addActionListener(this);
jmiHigh.addActionListener(this);
jmiLow.addActionListener(this);
jmiAbout.addActionListener(this);
jmiReset.addActionListener(this);
jfrm.add(jlab);
// menubari cerceveye ekle
jfrm.setJMenuBar(jab);
jfrm.setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
// eylem komutunu elde et
String comStr = ae.getActionCommand();
//Exit secildiginde cikis yap
if(comStr.equals("Exit"))
System.exit(1);
jlab.setText("Secilen: " + comStr);
}
public static void main(String args[])
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new MenuDemo();
}
});
}
}