Java程序设计 实验5

 

/**
作者:wwj
时间:2012/4/13
功能:实习实验所要求的功能
实验要求:
1、如下图编写一个图形用户界面,实现以下功能,源程序保存为Ex5_1.java:
(1)在文本框输入字符串,单击“输入”按钮后,在窗口下方以标签形式显示输出的内容。
(2)通过单选按钮,选择标签文字的字体样式:宋体、隶书、黑体等。
(3)通过复选框,选择标签文字的字形:粗体、斜体等
(4)通过下拉列表,设置标签文字的字号:16、18、20、22、24、26、28、30。
**/


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
public class Ex5_1 extends JFrame
{

	private JPanel p=new JPanel();			//创建一个面板容器对象
	private JLabel label=new JLabel();		//			
	private JTextField t1=new JTextField(25);	
	private JButton button1=new JButton("输入");
	private JRadioButton r1=new JRadioButton("宋体");
	private JRadioButton r2=new JRadioButton("隶书");
	private JRadioButton r3=new JRadioButton("黑体");
	private ButtonGroup buttonGroup;
	private JCheckBox b= new JCheckBox("粗体");
	private JCheckBox i= new JCheckBox("斜体");
	private JComboBox lbk;
	private String font_num[]={"16","18","20","22","24","26","28","30" };

	public Ex5_1()
	{
		
	Container c = getContentPane();	//创建内容面板对象


//添加文本框组件
	p.add(t1);

//添加按钮组件
	p.add(button1);
	Bhandler h=new Bhandler();
	button1.addActionListener(h);

//添加单选按钮组件
	buttonGroup = new ButtonGroup();	//创建单选按钮组
	r1.setFont(new Font("Serif",Font.PLAIN,14));
	r2.setFont(new Font("Serif",Font.PLAIN,14));
	r3.setFont(new Font("Serif",Font.PLAIN,14));
	buttonGroup.add(r1);	buttonGroup.add(r2);
	buttonGroup.add(r3);
	
	rhandler rh = new rhandler();	
	r1.addItemListener(rh);
	r2.addItemListener(rh);
	r2.addItemListener(rh);
	p.add(r1); p.add(r2); p.add(r3);

//添加复选框组件
	b.setFont(new Font("Serif",Font.PLAIN,14));
	i.setFont(new Font("Serif",Font.PLAIN,14));
	CBHandler cb=new CBHandler();	//创建监听对象
	b.addItemListener(cb);	i.addItemListener(cb);	//注册监听对象
	p.add(b); p.add(i);

//添加下拉列表组件
	lbk = new JComboBox(font_num);	//创建下拉列表对象
	lbk.setMaximumRowCount(5);		
	lbk.setSelectedIndex(0);
	lbk.addItemListener(new lbHandler());	//注册监听器
	p.add(lbk);


//添加标签组件
	p.add(label);


	c.add(p);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setVisible(true);	//设置为可见
	setSize(400,300);	//设置窗口大小
	
	}
		


	public static void main(String[] args)
	{
		Ex5_1 f1=new Ex5_1();
	}

//按钮的事件处理
	private class Bhandler implements ActionListener
	{
		public void actionPerformed(ActionEvent event)
		{
			label.setText("你输入的文字是:"+t1.getText());
		}
	}

//单选按钮的事件处理
	private class rhandler implements ItemListener
	{
		public void itemStateChanged(ItemEvent event)
		{
			if(r1.isSelected())	label.setFont(new Font("宋体",Font.PLAIN,20));
			else if(r2.isSelected()) label.setFont(new Font("隶书",Font.PLAIN,20));
			else label.setFont(new Font("黑体",Font.PLAIN,20));
		}
	}

//复选框的事件处理
	private class CBHandler implements ItemListener
	{
		private int vb = Font.PLAIN;
		private int vi = Font.PLAIN;
		public void itemStateChanged(ItemEvent e)
		{
			if(e.getSource()==b)
				vb=b.isSelected()?Font.BOLD:Font.PLAIN;
			if(e.getSource()==i)
				vi=i.isSelected()?Font.ITALIC:Font.PLAIN;
			label.setFont(new Font("Serif",vb+vi,20));
		}
	}


//下拉列表的事件处理
	private class lbHandler implements ItemListener
	{
		public void itemStateChanged(ItemEvent e)
		{
			int size=Integer.parseInt(font_num[lbk.getSelectedIndex()]);
			if(e.getStateChange()==e.SELECTED)
			label.setFont(new Font("Serif",label.getFont().getStyle(),size));
		
		}
	}
}



 

posted on 2012-04-14 17:20  1.曲待续  阅读(181)  评论(0编辑  收藏  举报

导航