Java图形化界面基本案例

案例:

Java图形化界面基本案例_第1张图片

public class exer1 {
    JFrame s=new JFrame("练习");

    //菜单
    JMenuBar jMenuBar=new JMenuBar();
    JMenu wenjian=new JMenu("文件");
    JMenu bianji=new JMenu("编辑");

    JMenuItem zidong=new JMenuItem("自动换行");
    JMenuItem fuzhi=new JMenuItem("复制");
    JMenuItem zhantie=new JMenuItem("粘贴");

    JMenu geshi=new JMenu("格式");
    JMenuItem zhushi=new JMenuItem("注释");
    JMenuItem quxiao=new JMenuItem("取消注释");

    //文本域
    JTextArea text=new JTextArea(10,30);
    //列表
    String[] ss={"红色","白色","紫色"};
    JList colorlist=new JList<>(ss);
    //组件
    JComboBox colorselect=new JComboBox<>(ss);

    ButtonGroup bg=new ButtonGroup();
    JRadioButton b1=new JRadioButton("男",true);//默认选中
    JRadioButton b2=new JRadioButton("女",false);

    //复选框
    JCheckBox checkBox=new JCheckBox("是否已婚",true);

    //最下方
    JTextField tf=new JTextField(40);
    JButton button=new JButton("确定",new ImageIcon("D:\\idea\\project\\pro1\\exercise1\\src\\ok.png"));

    //声明鼠标右键点击的菜单
    JPopupMenu popupMenu=new JPopupMenu();
    ButtonGroup bb=new ButtonGroup();
    JRadioButtonMenuItem metal=new JRadioButtonMenuItem("metal风格");
    JRadioButtonMenuItem nimbus=new JRadioButtonMenuItem("nimbus风格");
    JRadioButtonMenuItem windows=new JRadioButtonMenuItem("windows风格");
    JRadioButtonMenuItem windoowsclassic=new JRadioButtonMenuItem("windows经典风格");
    JRadioButtonMenuItem motif=new JRadioButtonMenuItem("motif经典风格");

    public void init(){
        //开始组装
        JPanel p1=new JPanel();
        p1.add(tf);
        p1.add(button);
        s.add(p1,BorderLayout.SOUTH);

        //关于选择的组件
        JPanel selectpanel=new JPanel();
        selectpanel.add(colorselect);

        bg.add(b1);
        bg.add(b2);
        selectpanel.add(b1);
        selectpanel.add(b2);
        selectpanel.add(checkBox);

        //文本域和选择相关
        Box topleft=Box.createVerticalBox();
        topleft.add(text);
        topleft.add(selectpanel);
        //组装顶部
        Box top=Box.createHorizontalBox();
        top.add(topleft);
        top.add(colorlist);
        s.add(top);

        //开始组装顶部菜单
        geshi.add(zhushi);
        geshi.add(quxiao);
        bianji.add(zidong);
        //加横线
        bianji.addSeparator();
        bianji.add(fuzhi);
        bianji.add(zhantie);
        //加横线
        bianji.addSeparator();
        bianji.add(geshi);
        jMenuBar.add(wenjian);
        jMenuBar.add(bianji);
        s.setJMenuBar(jMenuBar);

        //组装鼠标右键菜单
        popupMenu.add(metal);
        popupMenu.add(nimbus);
        popupMenu.add(windows);
        popupMenu.add(windoowsclassic);
        popupMenu.add(motif);

        ActionListener listener=new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //当前选择的是哪种风格
                String ss=e.getActionCommand();
                try {
                    change(ss);
                } catch (UnsupportedLookAndFeelException unsupportedLookAndFeelException) {
                    unsupportedLookAndFeelException.printStackTrace();
                } catch (ClassNotFoundException classNotFoundException) {
                    classNotFoundException.printStackTrace();
                } catch (InstantiationException instantiationException) {
                    instantiationException.printStackTrace();
                } catch (IllegalAccessException illegalAccessException) {
                    illegalAccessException.printStackTrace();
                }
            }
        };
        metal.addActionListener(listener);
        nimbus.addActionListener(listener);
        windows.addActionListener(listener);
        windoowsclassic.addActionListener(listener);
        motif.addActionListener(listener);

        popupMenu.add(metal);
        popupMenu.add(nimbus);
        popupMenu.add(windows);
        popupMenu.add(windoowsclassic);
        popupMenu.add(motif);

        //添加在文本区域右键出现菜单,这个不用在判断,直接设置即可
        text.setComponentPopupMenu(popupMenu);

        //关闭程序
        s.setDefaultCloseOperation(3);

        s.pack();
        s.setVisible(true);


    }
    private void change(String command) throws UnsupportedLookAndFeelException, ClassNotFoundException, InstantiationException, IllegalAccessException {
        //定义的这个方法用来改变界面风格
        switch (command){
            case "metal风格":
                UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
                break;
            case "nimbus风格":
                UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
                break;
            case "windows风格":
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                break;
            case "windows经典风格":
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
                break;
            case "motif风格":
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
                break;
        }
        //刷新组件的外观
        SwingUtilities.updateComponentTreeUI(s.getContentPane());
        SwingUtilities.updateComponentTreeUI(popupMenu);
        SwingUtilities.updateComponentTreeUI(jMenuBar);
    }
}

你可能感兴趣的:(java语法,java,开发语言)