Создание меню java
Использование меню
Основные данные. Строка меню
Создание меню и его элементов
Создание меню и его элементов
Создание меню и его элементов
Определение обработчика элементов меню
Определение обработчика элементов меню
Всплывающее меню
Всплывающее меню
Панель инструментов
Панель инструментов
Панель инструментов
Панель инструментов
Панель инструментов
344.29K
Category: programmingprogramming

Создание меню java

1. Создание меню java

СОЗДАНИЕ МЕНЮ JAVA

2. Использование меню

■ Меню обеспечивает возможность пользователю выбирать одну из нескольких
опций.
■ Меню не размещается с другими компонентами в UI и обычно появляется или
в строке меню или как раскрывающееся меню.
■ Раскрывающееся меню - меню, которое невидимо, пока пользователь не
сделает специфичное для платформы действие мыши, такое как нажатие правой
кнопки мыши, по раскрывающемуся поддерживающему компоненту.
Раскрывающееся меню тогда появляется под курсором.

3. Основные данные. Строка меню

■ Среди компонентов графического интерфейса пользователя библиотеки Java
Swing есть компонент - главное меню JMenuBar.
■ Главное меню JMenuBar, как правило располагается в верхней части окна
приложения в виде горизонтальной полоски. Меню может иметь произвольную
вложенность.
■ Меню состоит из пунктов меню. При клике на пункте меню могут происходить
какие-то действия, предусмотренные разработчиком.

4. Создание меню и его элементов

■ Создание строки меню:
JMenuBar menuBar = new JMenuBar();
■ Размещение в верхнюю часть фрейма с помощью метода setJMenuBar():
frame.setJMenuBar(menuBar);
■ Создание объекта меню:
JMenu editMenu = new JMenu("Edit");
■ Размещение меню верхнего уровня в строке меню:
menuBar.add(editMenu);
■ Добавление в меню пункты, разделители и подменю:
JMenuItem pasteItem = new JMenuItem("Paste");
editMenu.add(pasteItem);
editMenu.addSeparator();
JMenu optionsMenu = ...; // Подменю.
editMenu.add(optionsMenu);

5. Создание меню и его элементов

Frame f = new Frame("Пример меню");
f.setMenuBar(new MenuBar());
Menu mFile = new Menu("Файл");
mb.add(mFile);
Menu mEdit = new Menu("Правка");
mb.add(mEdit);
Menu mView = new Menu("Вид");
mb.add(mView);
Menu mHelp = new Menu("Справка");
mb.setHelpMenu(mHelp);

6. Создание меню и его элементов

Menuitem create = new Menuitem("Создать");
mFile.add(create);
Menuitem open = new Menuitem("Открыть...");
mFile.add(open);
mFile.addfnew Menuitem("-"));
Menu send = new Menu("Отправить");
mFile.add(send);

7. Определение обработчика элементов меню

ActionListener listener = ...;
pasteItem.addActionListener(listener);
■ Метод JMenu.add(String), позволяющий добавлять новый пункт в конец меню,
например, следующим образом:
edit.Menu.add("Paste");
edit.Menu.add("Paste");
■ Этот метод возвращает созданный пункт, для которого можно легко задать
обработчик:
JMenuItem pasteItem = editMenu.add("Paste");pasteItem.addActionListener(listener);

8. Определение обработчика элементов меню

■ Часто пункты меню связываются с командами, которые могут активировать другие элементы
пользовательского интерфейса, например, кнопки. Следует определить класс, реализующий интерфейс
Action. Обычно для этого класс расширяет AbstractAction. Затем в конструкторе AbstractAction
указывается метка пункта меню и переопределяется метод actionPerformed(), что позволяет
реализовать обработку события, связанного с данным пунктом. Например:
Action exitAction = new AbstractAction("Exit"); // Пункт меню "Exit".
{
public void actionPerformed(ActionEvent event)
{ // Фрагмент программы, обрабатывающий событие.
System.exit(0);
}
};
■ Затем добавляется в меню:
JMenuItem exitItem = fileMenu.add(exitAction);
■ В результате выполнения данного выражения в меню добавляется новый пункт. Объект Action
становится обработчиком. Такой способ заменят следующие строки кода:
JMenuItem exitItem = new JMenuItem(exitAction);
fileMenu.add(exitItem);

9. Всплывающее меню

■ Всплывающее меню (popup menu) появляется обычно при нажатии или
отпускании правой или средней кнопки мыши и является контекстным меню. Его
команды зависят от компонента, на котором была нажата кнопка мыши. В языке
Java всплывающее меню — объект класса PopupMenu. Этот класс расширяет
класс Menu, следовательно, наследует все свойства меню и пункта меню
Menultem.
■ Всплывающее меню присоединяется не к строке меню типа MenuBar или к
меню типа Menu в качестве подменю, а к определенному компоненту. Для этого
в классе component есть метод add(PopupMenu menu).
■ У некоторых компонентов, например TextFieid и TextArea, уже существует
всплывающее меню. Подобные меню нельзя переопределить.
■ Присоединить всплывающее меню можно только к одному компоненту. Если
надо использовать всплывающее меню с несколькими компонентами в
контейнере, то его присоединяют к контейнеру, а нужный компонент определяют
с помощью метода getcomponent () класса MouseEvent.

10. Всплывающее меню

■ В классе PopupMenu есть метод show (Component comp, int x, int у),
показывающий всплывающее меню на экране так, что его левый верхний угол
располагается в точке (х, у) в системе координат компонента comp. Чаще всего
это компонент, на котором нажата кнопка мыши, возвращаемый методом
getcomponent().
■ Компонент comp должен быть внутри контейнера, к которому присоединено
меню, иначе возникнет исключительная ситуация.

11. Панель инструментов

public class ToolbarFrame3 extends Frame {
JButton cutButton, copyButton, pasteButton;
JButton javaButton, macButton, motifButton, winButton;
public ToolbarFrame3() {
super("Toolbar Example (Swing no text)");
setSize(450, 250);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

12. Панель инструментов

// JPanel works much like Panel does, so we'll use it
JPanel toolbar = new JPanel();
toolbar.setLayout(new FlowLayout(FlowLayout.LEFT));
CCPHandler handler = new CCPHandler();
cutButton = new JButton(new ImageIcon("cut.gif"));
cutButton.setActionCommand(CCPHandler.CUT);
cutButton.addActionListener(handler);
toolbar.add(cutButton);
copyButton = new JButton(new ImageIcon("copy.gif"));
copyButton.setActionCommand(CCPHandler.COPY);
copyButton.addActionListener(handler);
toolbar.add(copyButton);

13. Панель инструментов

pasteButton = new JButton(new ImageIcon("paste.gif"));
pasteButton.setActionCommand(CCPHandler.PASTE);
pasteButton.addActionListener(handler);
toolbar.add(pasteButton);
add(toolbar, BorderLayout.NORTH);
// Add the look-and-feel controls
JPanel lnfPanel = new JPanel();
LnFListener lnfListener = new LnFListener(this);
macButton = new JButton("Mac");
macButton.addActionListener(lnfListener);
lnfPanel.add(macButton);

14. Панель инструментов

javaButton = new JButton("Metal");
javaButton.addActionListener(lnfListener);
lnfPanel.add(javaButton);
motifButton = new JButton("Motif");
motifButton.addActionListener(lnfListener);
lnfPanel.add(motifButton);
winButton = new JButton("Windows");
winButton.addActionListener(lnfListener);
lnfPanel.add(winButton);
add(lnfPanel, BorderLayout.SOUTH);
}

15. Панель инструментов

public static void main(String args[]) {
ToolbarFrame3 tf3 = new ToolbarFrame3();
tf3.setVisible(true);
}
}
English     Русский Rules