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();
	}

}


原文地址:https://www.cnblogs.com/MarchThree/p/3720456.html