Менюта и барове с инструменти

Обикновен бар

package com.zetcode;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
 
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
 
public class Menu extends JFrame {
 
public Menu() {
 
setTitle("JMenuBar");
 
JMenuBar menubar = new JMenuBar();
ImageIcon icon = new ImageIcon("exit.png");
 
JMenu file = new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);
 
JMenuItem fileClose = new JMenuItem("Close", icon);
fileClose.setMnemonic(KeyEvent.VK_C);
fileClose.setToolTipText("Exit application");
fileClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
 
});
 
file.add(fileClose);
 
menubar.add(file);
 
setJMenuBar(menubar);
 
setSize(250, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
 
public static void main(String[] args) {
 
new Menu();
 
}
}

Този пример, ще покаже обикновен

прозорец с бар за инструменти.

При избиране на прозореца за затваряне,

прозореца, ще се затвори.

JMenuBar menubar = new JMenuBar();

Тук създаваме немю бара.

ImageIcon icon = new ImageIcon("exit.png");

Ще изобразим икона в менюто.

JMenu file = new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);

Създаваме обект на менюто.

Също така създаваме и достъп от клавиатурата до менюто.

За да поставим достъп до менюто, задаваме метод setMnemonic.

В нашия случай, можем да отворим менюто с ALT + F.

fileClose.setToolTipText("Exit application");

Този код създава линия за менюто.

Подменю
Всяко меню може да има и подменю.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
 
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
 
public class Submenu extends JFrame {
 
public Submenu() {
 
setTitle("Submenu");
 
JMenuBar menubar = new JMenuBar();
ImageIcon iconNew = new ImageIcon("new.png");
ImageIcon iconOpen = new ImageIcon("open.png");
ImageIcon iconSave = new ImageIcon("save.png");
ImageIcon iconClose = new ImageIcon("exit.png");
 
JMenu file = new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);
 
JMenu imp = new JMenu("Import");
imp.setMnemonic(KeyEvent.VK_M);
 
JMenuItem newsf = new JMenuItem("Import newsfeed list...");
JMenuItem bookm = new JMenuItem("Import bookmarks...");
JMenuItem mail = new JMenuItem("Import mail...");
 
imp.add(newsf);
imp.add(bookm);
imp.add(mail);
 
JMenuItem fileNew = new JMenuItem("New", iconNew);
fileNew.setMnemonic(KeyEvent.VK_N);
 
JMenuItem fileOpen = new JMenuItem("Open", iconOpen);
fileNew.setMnemonic(KeyEvent.VK_O);
 
JMenuItem fileSave = new JMenuItem("Save", iconSave);
fileSave.setMnemonic(KeyEvent.VK_S);
 
JMenuItem fileClose = new JMenuItem("Close", iconClose);
fileClose.setMnemonic(KeyEvent.VK_C);
fileClose.setToolTipText("Exit application");
fileClose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,
ActionEvent.CTRL_MASK));
 
fileClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
 
});
 
file.add(fileNew);
file.add(fileOpen);
file.add(fileSave);
file.addSeparator();
file.add(imp);
file.addSeparator();
file.add(fileClose);
 
menubar.add(file);
 
setJMenuBar(menubar);
 
setSize(360, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
 
public static void main(String[] args) {
new Submenu();
}
}

В този пример, ние създаваме подменю разделител,

за манюто и достъп до клавиатурата.

JMenu imp = new JMenu("Import");
...
file.add(imp);

Под менюто е като всяко друго меню.

Създава се по същия начин.

Просто добавяме меню на меню.

fileClose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,
ActionEvent.CTRL_MASK));

accelerator е кратък път, който добавя предмет в менюто. В нашия случай Ctrl + W затваряме прозореца.

file.addSeparator();

Разделител е вертикална линия,

която визуално разделя елементите от менюто.

По този начин ние можем да позиционираме

група в някои логически места.

JCheckBoxMenuItem
Предмет който може да бъде селектиран .
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
 
import javax.swing.BorderFactory;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.UIManager;
import javax.swing.border.EtchedBorder;
 
public class CheckMenuItem extends JFrame {
 
private JLabel statusbar;
 
public CheckMenuItem() {
 
setTitle("CheckBoxMenuItem");
 
JMenuBar menubar = new JMenuBar();
JMenu file = new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);
 
JMenu view = new JMenu("View");
view.setMnemonic(KeyEvent.VK_V);
 
JCheckBoxMenuItem sbar = new JCheckBoxMenuItem("Show StatuBar");
sbar.setState(true);
 
sbar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (statusbar.isVisible()) {
statusbar.setVisible(false);
} else {
statusbar.setVisible(true);
}
}
 
});
 
view.add(sbar);
 
menubar.add(file);
menubar.add(view);
 
setJMenuBar(menubar);
 
statusbar = new JLabel(" Statusbar");
statusbar.setBorder(BorderFactory.createEtchedBorder(
EtchedBorder.RAISED));
add(statusbar, BorderLayout.SOUTH);
 
setSize(360, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
 
public static void main(String[] args) {
new CheckMenuItem();
}
}

Примера показва JCheckBoxMenuItem..
JCheckBoxMenuItem sbar = new JCheckBoxMenuItem(„Show StatuBar“);
sbar.setState(true);
Създаваме JCheckBoxMenuItem и го проверява по дефаут. Статус бара е видим.

if (statusbar.isVisible()) {
statusbar.setVisible(false);
} else {
statusbar.setVisible(true);
}

Тук намираме видимостта на статус бара.

statusbar = new JLabel(" Statusbar");
statusbar.setBorder(
BorderFactory.createEtchedBorder(EtchedBorder.RAISED)
);

Статус бара е с JLabel. Създаваме и EtchedBorder, така че да се забелязва с бордер.

Падащо меню

import java.awt.Toolkit;
 
import javax.swing.*;
import java.awt.event.*;
 
public class PopupMenu {
 
private JPopupMenu menu;
private Toolkit toolkit;
 
public PopupMenu(){
 
JFrame frame = new JFrame("JPopupMenu");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
toolkit = frame.getToolkit();
 
menu = new JPopupMenu();
JMenuItem menuItemBeep = new JMenuItem("Beep");
 
menuItemBeep.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
toolkit.beep();
}
});
 
menu.add(menuItemBeep);
 
JMenuItem menuItemClose = new JMenuItem("Close");
menuItemClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
 
});
 
menu.add(menuItemClose);
 
frame.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (e.getButton() == e.BUTTON3) {
menu.show(e.getComponent(), e.getX(), e.getY());
}
}
});
 
frame.setSize(250, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
 
public static void main(String[] args) {
new PopupMenu();
}
}

С този пример създаваме меню в което , единия бутон от менюто е за звук а другия за излизане от прозореца.
В нашия пример , създаваме разделители и достъп до клавиатурата.
menu = new JPopupMenu();
За да направим падащо меню, използваме JPopupMenu.
JMenuItem menuItemBeep = new JMenuItem(„Beep“);
Предметите в обикновенното меню са същите JMenu .

frame.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (e.getButton() == e.BUTTON3) {
menu.show(e.getComponent(), e.getX(), e.getY());
}
}
});

Мястото за позициониране на менюто .

JToolbar
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JToolBar;
 
public class SimpleToolbar extends JFrame {
 
public SimpleToolbar() {
 
setTitle("SimpleToolbar");
 
JMenuBar menubar = new JMenuBar();
JMenu file = new JMenu("File");
menubar.add(file);
setJMenuBar(menubar);
 
JToolBar toolbar = new JToolBar();
 
ImageIcon icon = new ImageIcon(getClass().getResource("exit.png"));
 
JButton exit = new JButton(icon);
toolbar.add(exit);
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
 
});
 
add(toolbar, BorderLayout.NORTH);
 
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
 
public static void main(String[] args) {
new SimpleToolbar();
}
}

Примера създава бар с инструменти с едно падащо меню.

JToolBar toolbar = new JToolBar();

Това е бара с инструменти JToolBar.

JButton exit = new JButton(icon);
toolbar.add(exit);

Създаваме бутон и добавяме бара с инструменти.

Бар с инструменти
Добавяме два бара с инструменти.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
 
public class Toolbars extends JFrame {
 
public Toolbars() {
 
setTitle("Toolbars");
 
JToolBar toolbar1 = new JToolBar();
JToolBar toolbar2 = new JToolBar();
 
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
 
ImageIcon newi = new ImageIcon(
getClass().getResource("new.png"));
ImageIcon open = new ImageIcon(
getClass().getResource("open.png"));
ImageIcon save = new ImageIcon(
getClass().getResource("save.png"));
ImageIcon exit = new ImageIcon(
getClass().getResource("exit.png"));
 
JButton newb = new JButton(newi);
JButton openb = new JButton(open);
JButton saveb = new JButton(save);
 
toolbar1.add(newb);
toolbar1.add(openb);
toolbar1.add(saveb);
toolbar1.setAlignmentX(0);
 
JButton exitb = new JButton(exit);
toolbar2.add(exitb);
toolbar2.setAlignmentX(0);
 
exitb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
 
});
 
panel.add(toolbar1);
panel.add(toolbar2);
 
add(panel, BorderLayout.NORTH);
 
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
 
public static void main(String[] args) {
new Toolbars();
}
}

Има няколко възможности за създаване на бар с инструменти. Слагаме JPanel на север от BorderLayout. Панела има вертикален BoxLayout. Добавяме два две менюта в този панел.

JToolBar toolbar1 = new JToolBar();
JToolBar toolbar2 = new JToolBar();

Създава два бара.

JPanel panel = new JPanel();

panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
Панела има вртикална кутия BoxLayout.

toolbar1.setAlignmentX(0);

Бара с инструменти е от лявата страна.

panel.add(toolbar1);
panel.add(toolbar2);
add(panel, BorderLayout.NORTH);

Добавяме бара с инструменти към панела.

Вертикален бар с инструменти

import java.awt.BorderLayout;
 
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JToolBar;
import javax.swing.UIManager;
 
public class VerticalToolbar extends JFrame {
 
public VerticalToolbar() {
 
setTitle("Vertical toolbar");
 
JToolBar toolbar = new JToolBar(JToolBar.VERTICAL);
 
ImageIcon select = new ImageIcon(
getClass().getResource("select.gif"));
ImageIcon freehand = new ImageIcon(
getClass().getResource("freehand.gif"));
ImageIcon shapeed = new ImageIcon(
getClass().getResource("shapeed.gif"));
ImageIcon pen = new ImageIcon(
getClass().getResource("pen.gif"));
ImageIcon rectangle = new ImageIcon(
getClass().getResource("rectangle.gif"));
ImageIcon ellipse = new ImageIcon(
getClass().getResource("ellipse.gif"));
ImageIcon qs = new ImageIcon(
getClass().getResource("qs.gif"));
ImageIcon text = new ImageIcon(
getClass().getResource("text.gif"));
 
JButton selectb = new JButton(select);
JButton freehandb = new JButton(freehand);
JButton shapeedb = new JButton(shapeed);
JButton penb = new JButton(pen);
JButton rectangleb = new JButton(rectangle);
JButton ellipseb = new JButton(ellipse);
JButton qsb = new JButton(qs);
JButton textb = new JButton(text);
 
toolbar.add(selectb);
toolbar.add(freehandb);
toolbar.add(shapeedb);
toolbar.add(penb);
toolbar.add(rectangleb);
toolbar.add(ellipseb);
toolbar.add(qsb);
toolbar.add(textb);
 
add(toolbar, BorderLayout.WEST);
 
setSize(250, 350);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
 
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e) {
System.out.println("Error:" + e.getStackTrace());
}
new VerticalToolbar();
}
}
JToolBar toolbar = new JToolBar(JToolBar.VERTICAL);

Създаваме вертикален бар с инструменти.

add(toolbar, BorderLayout.WEST);

Бара с инструменти е позициониран от лявата страна на прозореца.

UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());

Popularity: 1% [?]

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

You can leave a response, or trackback from your own site.

Leave a Reply

Задвижван с помощта на WordPress | Compare Cell Phone Plans at iCellPhonePlans.com | Thanks to Cheap Palm Pixi, Bromoney and Wordpress Themes