Обикновен бар
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.
RSS Feed
Twitter

декември 19th, 2009
admin
Posted in 
