窗口菜单栏工具栏

来源:互联网 发布:淘宝店怎么起名字 编辑:程序博客网 时间:2024/05/22 01:33

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class FirstSample{
    public static void main(String[] args){
        MenuFrame frame=new MenuFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

class MenuFrame extends JFrame{
    public MenuFrame(){
        setTitle("MenuList");
        setSize(WIDTH,HEIGHT);
       
        JMenu fileMenu=new JMenu("file");
        fileMenu.add(new TestAction("New"));
        JMenuItem openItem=fileMenu.add(new TestAction("Open"));
        openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
        fileMenu.addSeparator();
        saveAction=new TestAction("Save");
        JMenuItem saveItem=fileMenu.add(saveAction);
        saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
        saveAsAction=new TestAction("Save As");
        JMenuItem saveAsItem=fileMenu.add(saveAsAction);
        fileMenu.addSeparator();
        fileMenu.add(new
            AbstractAction("Exit"){
                public void actionPerformed(ActionEvent event){
                    System.exit(0);
                }
            });
       
        Action cutAction=new TestAction("Cut");
        cutAction.putValue(Action.SMALL_ICON, new ImageIcon("cut.gif"));
        Action copyAction=new TestAction("Copy");
        copyAction.putValue(Action.SMALL_ICON, new ImageIcon("copy.gif"));
        Action pasteAction=new TestAction("Paste");
        pasteAction.putValue(Action.SMALL_ICON, new ImageIcon("paste.gif"));
       
        JMenu editMenu=new JMenu("Edit");
        editMenu.add(cutAction);
        editMenu.add(copyAction);
        editMenu.add(pasteAction);
       
        readOnlyItem=new JCheckBoxMenuItem("Read-only");
        readOnlyItem.addActionListener(new
                ActionListener(){
                public void actionPerformed(ActionEvent event){
                    boolean saveOk=!readOnlyItem.isSelected();
                    saveAction.setEnabled(saveOk);
                    saveAsAction.setEnabled(saveOk);
                }
            });   
       
        ButtonGroup group=new ButtonGroup();
        JRadioButtonMenuItem insertItem=new JRadioButtonMenuItem("Insert");
        insertItem.setSelected(true);
        JRadioButtonMenuItem overtypeItem=new JRadioButtonMenuItem("Overtype");
        group.add(insertItem);
        group.add(overtypeItem);
       
        JMenu optionMenu=new JMenu("Options");
        optionMenu.add(readOnlyItem);
        optionMenu.addSeparator();
        optionMenu.add(insertItem);
        optionMenu.add(overtypeItem);
        editMenu.addSeparator();
        editMenu.add(optionMenu);
       
        JMenu helpMenu=new JMenu("Help");
        helpMenu.setMnemonic('H');   
        JMenuItem indexItem=new JMenuItem("Index");
        indexItem.setMnemonic('I');
        helpMenu.add(indexItem);
        Action aboutAction=new TestAction("About");
        aboutAction.putValue(Action.MNEMONIC_KEY, new Integer('A'));
        helpMenu.add(aboutAction);
       
        JMenuBar menuBar=new JMenuBar();
        setJMenuBar(menuBar);       
        menuBar.add(fileMenu);
        menuBar.add(editMenu);
        menuBar.add(helpMenu);
       
        popup=new JPopupMenu();
        popup.add(cutAction);
        popup.add(copyAction);
        popup.add(pasteAction);
       
        panel=new JPanel();
        panel.setComponentPopupMenu(popup);
        add(panel);
        panel.addMouseListener(new MouseAdapter() {});
       
        Action redAction=new ColorAction("Red",new ImageIcon("red.gif"),Color.RED);
        Action greenAction=new ColorAction("Green",new ImageIcon("green.gif"),Color.GREEN);
        Action blueAction=new ColorAction("Blue",new ImageIcon("blue.gif"),Color.BLUE);
        Action exitAction=new AbstractAction("Exit",new ImageIcon("exit.gif")){
            public void actionPerformed(ActionEvent event){
                System.exit(0);
            }
        };
       
        JToolBar toolBar=new JToolBar();
        toolBar.add(redAction);
        toolBar.add(greenAction);
        toolBar.add(blueAction);
        toolBar.addSeparator();
        toolBar.add(exitAction);
        add(toolBar,BorderLayout.NORTH);
       
        JMenu colorMenu=new JMenu("Color");
        colorMenu.add(redAction);
        colorMenu.add(greenAction);
        colorMenu.add(blueAction);
        colorMenu.add(exitAction);
        menuBar.add(colorMenu);
    }
   
    public static final int WIDTH=600;
    public static final int HEIGHT=400;
   
    private Action saveAction;
    private Action saveAsAction;
    private JCheckBoxMenuItem readOnlyItem;
    private JPopupMenu popup;
    private JPanel panel;
   
    class ColorAction extends AbstractAction{
        public ColorAction(String name,Icon icon,Color c){
            putValue(Action.NAME,name);
            putValue(Action.SMALL_ICON,icon);
            putValue(Action.SHORT_DESCRIPTION,name+" background");
            putValue("Color",c);
        }
        public void actionPerformed(ActionEvent event){
            Color c=(Color) getValue("Color");
            panel.setBackground(c);
        }
    }
}

class TestAction extends AbstractAction{
    public TestAction(String name){
        super(name);
    }
   
    public void actionPerformed(ActionEvent event){
        System.out.println(getValue(Action.NAME)+" selected.");
    }
}

原创粉丝点击