您的位置:首页 > 产品设计 > UI/UE

java中gui编程ActionListener和itemListener

2015-06-23 17:15 423 查看
1、根据运行结果,可以定义一个字体设置类实现ActionListener接口和ItemListener接口以进行动作事件处理和选项变化事件处理。使用List构造字形选择列表,使用JComboBox构造字体选择组合框,使用JRadioButton构造字体颜色选择单选按钮,使用JCheckBox构造字体效果选择复选框。使用JLabel构造4个标签分别进行字体、字号、字型、字色的说明,使用JButton构造2个按钮分别进行编辑文本和退出,使用JTextField构造测试文本输入区域。

第一题代码:

import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
public
class
FronChange extends JFrame
implements ActionListener,ItemListener  {
    JPanelpnlMain;
    JLabellblSize,lblType,lblstyle,lblColor;
    JTextFieldtxtTest; 
 JRadioButton rbtnRed,rbtnGreen;
 JCheckBox chkBold,chkItalic;
 JButton btnExit,btnEdit;
 ButtonGroup grpColor;
 List lstSize;
 JComboBox cmbType;
 String[] strType={"宋体","隶书","楷体_GB2312","仿宋_GB2312"};
 publicFronChange()   {
      super("字体设置器");
      lblType=newJLabel("请选择字体");
      lblSize=newJLabel("请选择字号");
      lblstyle=newJLabel("请选择字形");
      lblColor=newJLabel("请选择字色");
      lstSize=newList();

      lstSize.addItemListener(this);

      for (inti=10;i<30;i+=2)
          lstSize.add(String.valueOf(i));
      lstSize.select(0);
      cmbType=newJComboBox(strType);
      cmbType.addItemListener(this);
      cmbType.setSelectedIndex(0);
      grpColor=newButtonGroup();
      rbtnRed=newJRadioButton("红色");
      grpColor.add(rbtnRed);
      rbtnRed.setSelected(true);
      rbtnRed.addItemListener(this);
      rbtnGreen=newJRadioButton("绿色");
      grpColor.add(rbtnGreen);
      rbtnGreen.addItemListener(this);
      chkBold=newJCheckBox("加粗");
      chkBold.addItemListener(this);
      chkItalic=newJCheckBox("倾钭");
      chkItalic.addItemListener(this);
      txtTest=newJTextField("HellowWord");
      txtTest.setEditable(false);
      btnExit=newJButton("退出");
      btnExit.addActionListener(this);
      btnEdit=newJButton("编辑");
      btnEdit.addActionListener(this);
      pnlMain=newJPanel(null);
      lblType.setBounds(5,0,80,30);
      cmbType.setBounds(5,30,80,30);

  lblSize.setBounds(100,0,80,30);
  lstSize.setBounds(100,30,80,60);
  lblstyle.setBounds(195,0,80,30);
  chkBold.setBounds(195,30,60,30);
  chkItalic.setBounds(195,50,60,30);
  lblColor.setBounds(290,0,80,30);
  rbtnRed.setBounds(290,30,60,30);
  rbtnGreen.setBounds(290,50,60,30);
  txtTest.setBounds(10,100,270,60);
  btnExit.setBounds(290,100,80,30);
  btnEdit.setBounds(290,135,80,30);
  pnlMain.add(lblType);
  pnlMain.add(cmbType);
  pnlMain.add(lblSize);
  pnlMain.add(lstSize);
  pnlMain.add(lblstyle);
  pnlMain.add(chkBold);
  pnlMain.add(chkItalic);
  pnlMain.add(lblColor);
  pnlMain.add(rbtnRed);
  pnlMain.add(rbtnGreen);
  pnlMain.add(txtTest);
  pnlMain.add(btnExit);
  pnlMain.add(btnEdit);
  this.setContentPane(pnlMain);
  setSize(400,200);
  setVisible(true);
  }
 publicvoidactionPerformed(ActionEvent evt)    {
      if (evt.getSource()==btnEdit)      txtTest.setEditable(
true );
      if (evt.getSource()==btnExit)
          System.exit(0);
      }
 publicvoiditemStateChanged(ItemEvent evt)    {
      if (evt.getSource()==rbtnRed)
          txtTest.setForeground(Color.RED);
      if (evt.getSource()==rbtnGreen)
          txtTest.setForeground(Color.GREEN);
      int intBold=(chkBold.isSelected()?Font.BOLD:Font.PLAIN);
      int intItalic=(chkItalic.isSelected()?Font.ITALIC:Font.PLAIN);
          int intSize=Integer.parseInt((String)lstSize.getSelectedItem());
          String strType=(String)cmbType.getSelectedItem();
          txtTest.setFont(new Font(strType,intBold+intItalic,intSize));
          }
 publicstaticvoidmain(String args[])    {
      new FronChange();
      }  
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: