• Java_swing控件实例


    package ming;
    
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    
    import javax.swing.*;
    
    public class TestFrame {
    
    	JFrame f = new JFrame("testing");
    
    	// 定义一个按钮,并为它设置图标
    	Icon okIcon = new ImageIcon("/Icon/anydo.png");
    
    	JButton bnt_ok = new JButton("yes", okIcon);
    
    	// 定义一个单选按钮
    	JRadioButton male = new JRadioButton("male");
    
    	JRadioButton female = new JRadioButton("female");
    
    	// 将单选按钮组合一起
    	ButtonGroup bg = new ButtonGroup();
    
    	// 定义复选按钮框
    	JCheckBox married = new JCheckBox("have been married?", false);
    
    	String[] colors = new String[] { "Red", "Green", "Blue" };
    
    	// 定义一个下拉选择框
    	JComboBox<String> colorChooser = new JComboBox<String>(colors);
    
    	// 定义一个列表选择框
    	JList<String> colorList = new JList<String>(colors);
    
    	// 定义一个8行 20列 多行文本域
    	JTextArea ta = new JTextArea(8, 20);
    
    	// 定义一个40列的文本域
    	JTextField name = new JTextField(40);
    
    	JMenuBar mb = new JMenuBar();
    	JMenu file = new JMenu("file");
    	JMenu edit = new JMenu("edit");
    
    	// 创建“新建” 菜单项
    	Icon newIcon = new ImageIcon("/Icon/soundhound.png");
    	JMenuItem newItem = new JMenuItem("NEW", newIcon);
    
    	// 创建保存 菜单项
    	Icon saveIcon = new ImageIcon("/Icon/messenger.png");
    	JMenuItem saveItem = new JMenuItem("SAVE", saveIcon);
    
    	// 创建退出菜单项
    	Icon exitIcon = new ImageIcon("/Icon/contact.png");
    	JMenuItem exitItem = new JMenuItem("EXIT", exitIcon);
    
    	// 创建自动换行
    	JCheckBoxMenuItem autoWrap = new JCheckBoxMenuItem("auto wrap");
    
    	// 创建复制 菜单项
    	JMenuItem copyItem = new JMenuItem("COPY", new ImageIcon(
    			"/Icon/playstore.png"));
    	// 创建黏贴 菜单项
    	JMenuItem pasteItem = new JMenuItem("COPY", new ImageIcon(
    			"/Icon/playstore.png"));
    
    	JMenu format = new JMenu("format");
    
    	JMenuItem commentItem = new JMenuItem("COMMENT", new ImageIcon(
    			"/Icon/playstore.png"));
    	JMenuItem cancelItem = new JMenuItem("CANCEL COMMENT", new ImageIcon(
    			"/Icon/playstore.png"));
    
    	// 定义一个右键菜单,设置程序风格
    	JPopupMenu pop = new JPopupMenu();
    	ButtonGroup flavorGroup = new ButtonGroup();
    	// 5个单选框用于设置风格
    	JRadioButtonMenuItem metailItem = new JRadioButtonMenuItem("metail", true);
    	JRadioButtonMenuItem nimbusItem = new JRadioButtonMenuItem("nimbus");
    	JRadioButtonMenuItem windowsItem = new JRadioButtonMenuItem("windows");
    	JRadioButtonMenuItem classicItem = new JRadioButtonMenuItem("classic");
    	JRadioButtonMenuItem motifItem = new JRadioButtonMenuItem("motif");
    
    	public void init() {
    		// 创建装载文本框的Panel
    		JPanel buttom = new JPanel();
    		buttom.add(name);
    		buttom.add(bnt_ok);
    		f.add(buttom, BorderLayout.NORTH);
    		// 装载下拉选择框,3个JCheckBox的JPanel
    		JPanel checkPanel = new JPanel();
    		checkPanel.add(colorChooser);
    		bg.add(male);
    		bg.add(female);
    		checkPanel.add(male);
    		checkPanel.add(female);
    		checkPanel.add(married);
    
    		// 创建一个垂直排列组建的BOX 装JPanel
    		Box topLeft = Box.createVerticalBox();
    		// 使用JScrollPan 作为普通组建的JViewPort
    		JScrollPane taJsp = new JScrollPane(ta);
    		topLeft.add(taJsp);
    		topLeft.add(checkPanel);
    		
    		//创建水平排了组件的BOX,装topLeft, colorList
    		Box top = Box.createHorizontalBox();
    		top.add(topLeft);
    		top.add(colorList);
    		//top加载到窗口中间
    		f.add(top);
    		
    		//组合菜单,并添加监听器
    		//newItem设置快捷键事要用大写字母
    		newItem.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK));
    		newItem.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent arg0) {
    				ta.append("user clicked new item
    ");
    			}
    			
    		});
    		//为file菜单添加菜单项
    		file.add(newItem);
    		file.add(saveItem);
    		file.add(exitItem);
    		//为edit菜单添加菜单项
    		edit.add(autoWrap);
    		//添加分割线
    		edit.addSeparator();
    		edit.add(copyItem);
    		edit.add(pasteItem);
    		
    		//为commentIteam添加提示信息
    		commentItem.setToolTipText("comment the code");
    		//为format添加菜单项目
    		format.add(commentItem);
    		format.add(cancelItem);
    		
    		//使用 new JMenuItem("-") 不能添加菜单分隔符
    		edit.add(new JMenuItem("-"));
    		//format添加到edit,形成二级菜单
    		edit.add(format);
    		//add file,edit item to Menu
    		mb.add(file);
    		mb.add(edit);
    		//为f设置菜单条
    		f.setJMenuBar(mb);
    		//右键组合菜单,并安装右键菜单
    		flavorGroup.add(metailItem);
    		flavorGroup.add(nimbusItem);
    		flavorGroup.add(windowsItem);
    		flavorGroup.add(classicItem);
    		flavorGroup.add(motifItem);
    		pop.add(metailItem);
    		pop.add(nimbusItem);
    		pop.add(windowsItem);
    		pop.add(classicItem);
    		pop.add(motifItem);
    		ActionListener flavorListener = new ActionListener(){
    
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				try{
    					switch(e.getActionCommand()){
    					case "metail":
    						changeFlavor(1);
    						break;
    					case "nimbusItem":
    						changeFlavor(2);
    						break;
    					case "windows":
    						changeFlavor(3);
    						break;
    					case "classic":
    						changeFlavor(4);
    						break;
    					case "motifItem":
    						changeFlavor(5);
    						break;
    						
    					}
    				}catch(Exception ee){
    					ee.printStackTrace();
    				}
    			}
    
    			private void changeFlavor(int i) {
    				
    			}
    			
    		};
    		
    		//设置5个风格的监控事件
    		metailItem.addActionListener(flavorListener);
    		nimbusItem.addActionListener(flavorListener);
    		windowsItem.addActionListener(flavorListener);
    		classicItem.addActionListener(flavorListener);
    		motifItem.addActionListener(flavorListener);
    		
    		//方法设置右键菜单
    		ta.setComponentPopupMenu(pop);
    		//设置关闭窗口时退出程序
    		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		f.pack();
    		f.setVisible(true);
    
    		
    
    	}
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		//默认风格
    		JFrame.setDefaultLookAndFeelDecorated(true);
    	
    		new TestFrame().init();
    	}
    
    }
    


  • 相关阅读:
    C#调用WebService实现天气预报
    火狐完整版下载地址
    Unity3D 中 2D_Toolkit插件下载 和 导入方法
    给大家分享个 网站头像上传的 插件
    JQuery工具方法,实例方法
    ireport5.6.0 win10打不开
    JFreeChart 零散
    JS 类继承 原型继承
    技术电子书下载网址
    正则 变量替换
  • 原文地址:https://www.cnblogs.com/MarchThree/p/3720456.html
Copyright © 2020-2023  润新知