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