菜单一

package ch01.section9.ex;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class MinueImage extends JFrame{

    public MinueImage() {
        /**
         * java.swing.JMenu是菜单的标题其包含
         * java.swing.JMenuItem多个菜单的选项
         */
        JMenu thream=new JMenu("窗口风格");
        JMenuItem one=new JMenuItem ("系统默认");
        JMenuItem two=new JMenuItem ("linux");
        JMenuItem three=new JMenuItem ("java");
        thream.add(one);
        thream.add(two);
        thream.add(three);
        /**
         * 为每个菜单选项添加事件
         */
        one.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                changFace("system");
            }});
        two.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                changFace("linux");
            }});
        three.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent arg0) {
                changFace("java");
            }});
        /**
         * java.swing.JMenu是菜单栏的大的子菜单选项(类似与“文件”、“编辑”、“帮助”等)
         * 但是大的子菜单要加到菜单栏中(java.swing.JMenuBar)
         */
        JMenuBar jmb=new JMenuBar();
        jmb.add(thream);
        this.setJMenuBar(jmb);
        /**
         * 添加一个面板到窗口中
         */
        JPanel panel=new JPanel();
        /**
         * setBorder();是设置窗口的特性的选项
         */
        panel.setBorder(BorderFactory.createTitledBorder("窗口样式"));
        panel.add(new JTextField(11));
        panel.add(new JCheckBox("football"));
        panel.add(new JCheckBox("basketball"));
        panel.add(new JCheckBox("pinpeng"));
       
        this.add(panel);
       
        this.setSize(220,200);
        this.setVisible(true);
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    }
    /**
     * 事件处理
     * java.swing.UIManager是统一管理界面窗口
     * setLookAndFeel("string");将当前的窗口设置成String定义的窗口
     *
     */
    protected void changFace(String string) {
        try {
            if(string.equals("system")){
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            }else if(string.equals("linux")){
//                UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
            }else if(string.equals("java")){
                UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
            }
            javax.swing.SwingUtilities.updateComponentTreeUI(this);  //更新界面
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
    }
    public static void main(String[]str){
        new MinueImage();
    }
}

你可能感兴趣的:(java,linux,swing,sun)