窗口界面代码

窗口界面

package com.fsasad;

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

import javax.swing.*;

/**
 *
 * @author win7
 */
public class OtherFunction {
    JFrame f = new JFrame("其它功能");//创建窗体
    
    JMenuBar menuBar = new JMenuBar();//创建菜单栏
    JMenu fileMenu = new JMenu("文件");//创建菜单栏第一个选项“文件”
    JMenu editMenu = new JMenu("编辑");//创建菜单第二个选项“编辑”
    
    JMenuItem auto = new JMenuItem("自动换行"); //编辑-->自动换行
    JMenuItem copy = new JMenuItem("复制");//编辑-->复制
    JMenuItem paste = new JMenuItem("粘贴");//编辑-->粘贴
    
    JMenu formatMenu = new JMenu("格式"); //编辑-->格式
    JMenuItem comment = new JMenuItem("注释");//编辑-->格式-->注释
    JMenuItem cancelComment = new JMenuItem("取消注释");//编辑-->格式-->取消注释
    
    //声明文本域
    JTextArea ta = new JTextArea(8,20);
    
    //声明列表框
    String[] colors = {"Red","Green","Blue"};
    JList<String> colorList = new JList<>(colors);
    
    //声明选择相关控件
    JComboBox<String> colorSelect = new JComboBox<>();
    
    ButtonGroup bg = new ButtonGroup();
    JRadioButton male = new JRadioButton("男",false);
    JRadioButton female = new JRadioButton("女",true);
    JCheckBox isMarried = new JCheckBox("是否已婚?",true);
    
    //声明底部
    JTextField tf = new JTextField(40);
    JButton ok = new JButton();
    
    //声明右键菜单
    JPopupMenu jPopupMenu = new JPopupMenu();
    ButtonGroup popupButtonBg = new ButtonGroup();
    JRadioButtonMenuItem metalItem = new JRadioButtonMenuItem("Metal 风格");
    JRadioButtonMenuItem nimbusItem = new JRadioButtonMenuItem("Nimbus 风格");
    JRadioButtonMenuItem windowsItem = new JRadioButtonMenuItem("Windows 风格");
    JRadioButtonMenuItem windowsclassItem = new JRadioButtonMenuItem("Windows 经典风格");
    JRadioButtonMenuItem motifItem = new JRadioButtonMenuItem("Motify 风格");

    //初始化界面
    public void init(){
    	//组装底部
    	JPanel bottomPanel = new JPanel();
    	bottomPanel.add(tf);
    	bottomPanel.add(ok);
    	f.add(bottomPanel,BorderLayout.SOUTH);
    	
    	//组装选择相关组件
    	JPanel selectPanel = new JPanel();
    	colorSelect.addItem("Red");
    	colorSelect.addItem("Green");
    	colorSelect.addItem("Blue");
    	selectPanel.add(colorSelect);
    	bg.add(male);
    	bg.add(female);
    	selectPanel.add(male);
    	selectPanel.add(female);
    	selectPanel.add(isMarried);
    	
    	//组装文本域和选择相关组件
    	Box topLeft = Box.createVerticalBox();
    	topLeft.add(ta);
    	topLeft.add(selectPanel);
    	
    	//组装顶部
    	Box top = Box.createHorizontalBox();
    	top.add(topLeft,colorList);
    	
    	f.add(top);
    	
    	//组装顶部菜单
    	formatMenu.add(comment);
    	formatMenu.add(cancelComment);
    	
    	editMenu.add(auto);
    	editMenu.addSeparator();
    	editMenu.add(copy);
    	editMenu.add(paste);
    	editMenu.addSeparator();
    	editMenu.add(formatMenu);
    	
    	menuBar.add(fileMenu);
    	menuBar.add(editMenu);
    	
    	f.setJMenuBar(menuBar);
    	
    	//组装右键菜单
    	popupButtonBg.add(metalItem);
    	popupButtonBg.add(nimbusItem);
    	popupButtonBg.add(windowsItem);
    	popupButtonBg.add(windowsclassItem);
		popupButtonBg.add(motifItem);
		
		ActionListener listener = new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				//当前选择是哪一个风格
				String actionCommand = e.getActionCommand();
				try {
					changeFlavor(actionCommand);
				} catch (Exception e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		};
		
		metalItem.addActionListener(listener);
		nimbusItem.addActionListener(listener);
		windowsItem.addActionListener(listener);
		windowsclassItem.addActionListener(listener);
		motifItem.addActionListener(listener);
		
		jPopupMenu.add(metalItem);
		jPopupMenu.add(nimbusItem);
		jPopupMenu.add(windowsItem);
		jPopupMenu.add(windowsclassItem);
		jPopupMenu.add(motifItem);
		//不需要在监听鼠标事件了
		ta.setComponentPopupMenu(jPopupMenu);
		
		f.pack();
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
    
    private void changeFlavor(String command) throws Exception{
    	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("javax.swing.plaf.windows.WindowsLookAndFeel");
			break;
		case "Windows 经典风格":
			UIManager.setLookAndFeel("javax.swing.plaf.windows.WindowsClassLookAndFeel");
			break;
		case "Motif 风格":
			UIManager.setLookAndFeel("javax.swing.plaf.motif.MotifLookAndFeel");
			break;
		}
    	
    	//刷新组件外观
    	SwingUtilities.updateComponentTreeUI(f.getContentPane());
    	SwingUtilities.updateComponentTreeUI(menuBar);
    	SwingUtilities.updateComponentTreeUI(jPopupMenu);
    }
    
     public static void main(String[] args[]){
    	 new OtherFunction().init();
     }
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值