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\n");

			}

			

		});

		//为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();

	}



}


你可能感兴趣的:(swing)