Тема: Робота з компонентом JMenu при створенні інтерфейса користувача в програмах на мові Java
1. Мета роботи: Засвоїти методологію створення інтерфейса користувача в програмах на мові Java
2. Загальні відомості
Стандартне меню в java реалізоване в класі JMenu. Меню може містити інші меню у вигляді підменю. Для того щоб розмістити пункти меню в горизонтальну смугу використовується інший клас JMenuBar.
Рядок меню можна розмістити не тільки зверху вікна, але і знизу і посередині.
Таким чином спочатку створюється рядок меню:
JMenuBar menuBar = new JMenuBar();
Щоб помістити рядок меню у верхню частину фрейму пишеться:
frame.SetJMenuBar(menuBar);
Далі залишається заповнити його відповідними меню. Для цього для кожного меню створюється свій об’єкт:
JMenu fileMenu=new JMenu(“Файл”);
JMenu editMenu=new JMenu(“Редагувати”);
Далі усі основні меню додають до рядка меню:
menuBar.add(fileMenu);
menuBar.add(editMenu);
Аналогічно додємо до меню пункти підменю:
JMenu fileMenu = new JMenu("Файл");
menuBar.add(fileMenu);
JMenuItem openItem = new JMenuItem ("Відкрити");
fileMenu.add(openItem);
Також до пунктів меню можна додати розділювачі:
fileMenu.addSeparator().
До кожного пункту меню можна додати зображення та свій обробник події. Наступна програма демонструє створення меню та роботу з ним.
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class ProgramMenu {
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
public static void main(String[] args) {
//створюємо фрейм
JFrame frame = new JFrame();
frame.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//додаємо меню
frame.add(new Menu(frame));
frame.setVisible(true);
}
}
class Menu extends JMenuBar{
public Menu(JFrame frame ){
//створюємо рядок меню
JMenuBar menuBar = new JMenuBar();
//додаємо рядок меню у фрейм
frame.setJMenuBar(menuBar);
//Меню "Файл"
JMenu fileMenu = new JMenu("Файл");
menuBar.add(fileMenu);
//додаємо пункти в меню файл
JMenuItem openItem = new JMenuItem ("Відкрити");
fileMenu.add(openItem);
//додаємо розділювач
fileMenu.addSeparator();
JMenuItem saveItem = new JMenuItem ("Зберегти");
fileMenu.add(saveItem);
//створити меню "закрити" в якому поряд з написом буде зображення
JMenuItem closeItem = new JMenuItem ("Закрити", new ImageIcon("CloseIcon.jpg"));
fileMenu.add(closeItem);
//додаємо обробник подій використавши безіменний внутрішній клас
closeItem.addActionListener(new ActionListener( ) {
@Override
public void actionPerformed(ActionEvent e) { System.exit(0); }
});
// додаємо гарячу клавіші Ctrl-X до пункту "Закрити"
closeItem.setMnemonic(KeyEvent.VK_X);
closeItem.setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_X, Event.CTRL_MASK));
// меню "Вигляд"
JMenu viewMenu = new JMenu("Вигляд");
menuBar.add(viewMenu);
// меню "Допомога"
JMenu helpMenu = new JMenu("Допомога");
menuBar.add(helpMenu);
// можна використати метод add()
// для додавання пунктів в меню зразу ж при створенні
JMenuItem helpItem = helpMenu.add("Довідка");
JMenuItem aboutItem = helpMenu.add("Про програму");
}
}
3. Завдання
Перевірити роботу програм наведених у загальній частині. Оформити та здати звіт.