This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Previous revision | ||
|
swing:menus [2018/03/27 21:25] gthanos |
swing:menus [2018/04/13 10:21] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Menus & Menu Items ====== | ||
| - | |||
| - | Το μενού ενός παραθύρου αποτελείται από αντικείμενα των τριών παρακάτω κλάσεων. | ||
| - | * **[[http:// | ||
| - | * **[[http:// | ||
| - | * **Προσοχή: | ||
| - | * **[[http:// | ||
| - | |||
| - | Δείτε το προηγούμενο παράδειγμα με χρήση Menus αντί για Buttons. | ||
| - | |||
| - | <code java MenuDemo.java> | ||
| - | import javax.swing.*; | ||
| - | import java.awt.*; | ||
| - | import java.awt.event.*; | ||
| - | |||
| - | public class MenuDemo extends JFrame implements ActionListener { | ||
| - | public static final int WIDTH = 400; | ||
| - | public static final int HEIGHT = 250; | ||
| - | | ||
| - | private JPanel redPanel; | ||
| - | private JPanel whitePanel; | ||
| - | private JPanel bluePanel; | ||
| - | | ||
| - | public static void main(String args[]) { | ||
| - | MenuDemo gui = new MenuDemo(); | ||
| - | gui.setVisible(true); | ||
| - | } | ||
| - | | ||
| - | public MenuDemo() { | ||
| - | super(" | ||
| - | setSize(WIDTH, | ||
| - | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
| - | setLayout(new BorderLayout()); | ||
| - | | ||
| - | JPanel biggerPanel = new JPanel(); | ||
| - | biggerPanel.setLayout(new GridLayout(1, | ||
| - | | ||
| - | redPanel = new JPanel(); | ||
| - | redPanel.setBackground(Color.LIGHT_GRAY); | ||
| - | biggerPanel.add(redPanel); | ||
| - | | ||
| - | whitePanel = new JPanel(); | ||
| - | whitePanel.setBackground(Color.LIGHT_GRAY); | ||
| - | biggerPanel.add(whitePanel); | ||
| - | | ||
| - | bluePanel = new JPanel(); | ||
| - | bluePanel.setBackground(Color.LIGHT_GRAY); | ||
| - | biggerPanel.add(bluePanel); | ||
| - | | ||
| - | add(biggerPanel, | ||
| - | | ||
| - | JMenu colorMenu = new JMenu(" | ||
| - | colorMenu.setBackground(Color.LIGHT_GRAY); | ||
| - | colorMenu.setMnemonic(KeyEvent.VK_C); | ||
| - | | ||
| - | JMenuItem redMenuItem = new JMenuItem(" | ||
| - | redMenuItem.setBackground(Color.RED); | ||
| - | redMenuItem.addActionListener(this); | ||
| - | redMenuItem.setMnemonic(KeyEvent.VK_R); | ||
| - | colorMenu.add(redMenuItem); | ||
| - | | ||
| - | JMenuItem whiteMenuItem = new JMenuItem(" | ||
| - | whiteMenuItem.setBackground(Color.WHITE); | ||
| - | whiteMenuItem.addActionListener(this); | ||
| - | whiteMenuItem.setMnemonic(KeyEvent.VK_W); | ||
| - | colorMenu.add(whiteMenuItem); | ||
| - | | ||
| - | JMenuItem blueMenuItem = new JMenuItem(" | ||
| - | blueMenuItem.setBackground(Color.BLUE); | ||
| - | blueMenuItem.addActionListener(this); | ||
| - | blueMenuItem.setMnemonic(KeyEvent.VK_B); | ||
| - | colorMenu.add(blueMenuItem); | ||
| - | | ||
| - | JMenuBar bar = new JMenuBar(); | ||
| - | bar.add(colorMenu); | ||
| - | setJMenuBar(bar); | ||
| - | | ||
| - | } | ||
| - | | ||
| - | public void actionPerformed(ActionEvent e) { | ||
| - | String menuString = e.getActionCommand(); | ||
| - | if(menuString.equals(" | ||
| - | redPanel.setBackground(Color.RED); | ||
| - | whitePanel.setBackground(Color.LIGHT_GRAY); | ||
| - | bluePanel.setBackground(Color.LIGHT_GRAY); | ||
| - | } | ||
| - | else if(menuString.equals(" | ||
| - | redPanel.setBackground(Color.LIGHT_GRAY); | ||
| - | whitePanel.setBackground(Color.WHITE); | ||
| - | bluePanel.setBackground(Color.LIGHT_GRAY); | ||
| - | } | ||
| - | else if(menuString.equals(" | ||
| - | redPanel.setBackground(Color.LIGHT_GRAY); | ||
| - | whitePanel.setBackground(Color.LIGHT_GRAY); | ||
| - | bluePanel.setBackground(Color.BLUE); | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Παρακάτω δίνεται ένα άλλο παράδειγμα κώδικα όπου έχουμε Menu μέσα σε Menu. | ||
| - | |||
| - | <code java SubmenuEx.java> | ||
| - | import java.awt.EventQueue; | ||
| - | import java.awt.event.ActionEvent; | ||
| - | import java.awt.event.ActionListener; | ||
| - | import javax.swing.ImageIcon; | ||
| - | import javax.swing.JFrame; | ||
| - | import javax.swing.JMenu; | ||
| - | import javax.swing.JMenuBar; | ||
| - | import javax.swing.JMenuItem; | ||
| - | |||
| - | |||
| - | public class SubmenuEx extends JFrame { | ||
| - | |||
| - | public SubmenuEx() { | ||
| - | | ||
| - | initUI(); | ||
| - | } | ||
| - | |||
| - | private void initUI() { | ||
| - | |||
| - | createMenuBar(); | ||
| - | |||
| - | setTitle(" | ||
| - | setSize(360, | ||
| - | setLocationRelativeTo(null); | ||
| - | setDefaultCloseOperation(EXIT_ON_CLOSE); | ||
| - | } | ||
| - | | ||
| - | private void createMenuBar() { | ||
| - | | ||
| - | JMenuBar menubar = new JMenuBar(); | ||
| - | | ||
| - | ImageIcon iconNew = new ImageIcon(" | ||
| - | ImageIcon iconOpen = new ImageIcon(" | ||
| - | ImageIcon iconSave = new ImageIcon(" | ||
| - | ImageIcon iconExit = new ImageIcon(" | ||
| - | |||
| - | JMenu fileMenu = new JMenu(" | ||
| - | |||
| - | JMenu impMenu = new JMenu(" | ||
| - | |||
| - | JMenuItem newsfMi = new JMenuItem(" | ||
| - | JMenuItem bookmMi = new JMenuItem(" | ||
| - | JMenuItem mailMi = new JMenuItem(" | ||
| - | |||
| - | impMenu.add(newsfMi); | ||
| - | impMenu.add(bookmMi); | ||
| - | impMenu.add(mailMi); | ||
| - | |||
| - | JMenuItem newMi = new JMenuItem(" | ||
| - | JMenuItem openMi = new JMenuItem(" | ||
| - | JMenuItem saveMi = new JMenuItem(" | ||
| - | |||
| - | JMenuItem exitMi = new JMenuItem(" | ||
| - | exitMi.setToolTipText(" | ||
| - | |||
| - | exitMi.addActionListener(new ActionListener() { | ||
| - | @Override | ||
| - | public void actionPerformed(ActionEvent event) { | ||
| - | System.exit(0); | ||
| - | } | ||
| - | }); | ||
| - | |||
| - | fileMenu.add(newMi); | ||
| - | fileMenu.add(openMi); | ||
| - | fileMenu.add(saveMi); | ||
| - | fileMenu.addSeparator(); | ||
| - | fileMenu.add(impMenu); | ||
| - | fileMenu.addSeparator(); | ||
| - | fileMenu.add(exitMi); | ||
| - | |||
| - | menubar.add(fileMenu); | ||
| - | |||
| - | setJMenuBar(menubar); | ||
| - | } | ||
| - | | ||
| - | public static void main(String[] args) { | ||
| - | | ||
| - | EventQueue.invokeLater(new Runnable() { | ||
| - | @Override | ||
| - | public void run() { | ||
| - | | ||
| - | SubmenuEx ex = new SubmenuEx(); | ||
| - | ex.setVisible(true); | ||
| - | } | ||
| - | }); | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | | Προηγούμενο: | ||
| - | |||