java学习总结(swing组件)

swing组件用容器类组件和元素组件。
 Container(容器)组件:用于管理其他界面组件的组件,例如:JFrame(窗体组件),JPanel等。
 元素组件:用于构成各种用户界面的组件,例如:JLabel(标签),JTextField(文本框),JButton(按 钮)等。
任何元素组件都有一个.addActionListener(java.awt.ActionListener listener)方法,这个方法实现了接收一个实现了java.awt.ActionListener接口的对象,将这个对象加为某个对象(事件源)的事件处理器,当一般的动作事件(如按键、鼠标单击)发生时,组件(事件源)就会自动调用所加入的实现了ava.awt.ActionListener接口的对象的事件处理方法。
下面是简单示例:
1.先编写一个实现了ava.awt.ActionListener接口的类MyButtonListener

/**
 * 一个简单的动作时间监听器:当时间发生时, 在命令行输出按钮上的标签文字
 */
import java.awt.event.ActionEvent;
public class MyButtonListener implements java.awt.event.ActionListener {

 @Override
 // 必须重写的接口中的方法:当时间发生时,这个方法被调用
 public void actionPerformed(ActionEvent e) {
  // 得到事件源对象
  Object sour = e.getSource();
  // 如果事件是一个按钮:
  if (sour instanceof javax.swing.JButton) {
   javax.swing.JButton bu = (javax.swing.JButton) sour;
   // String lab = bu.getActionCommand();
   String lab = bu.getText();
   // 在这里bu.getText()与bu.getActionCommand()的效果一样
   // 都是将事件源上的标签赋值给String类型的lab
   System.out.println("您按下了\"" + lab+"\"按钮");
  } else {
   System.out.println("其他组件发出的事件!");

  }

 }

}

 2.在编写程序入口的类

import javax.swing.JButton;
import javax.swing.JFrame;

public class Manager extends JFrame{

 /**
  * 主函数,程序入口
  */
 public static void main(String[] args) {
  //实例化对象
  Manager mana = new Manager();
  //调用显示窗体的方法
  mana.showUI();

 }
 //显示窗体的方法
 void showUI(){
  //设置窗体的标题
  this.setTitle("第一个界面程序");
  //设置窗体的大小
  this.setSize(340,280);
  //设置窗体的流式布局
  this.setLayout(new java.awt.FlowLayout());
  //创建文本框
  javax.swing.JTextField txt = new javax.swing.JTextField(20);
  //创建按钮
  JButton btn = new JButton("登陆");
  this.add(txt);//把文本框添加到窗体中
  this.add(btn);//把按钮添加到窗体中
  //创建一个实现了addActionListener接口的对象
  MyButtonListener mb = new MyButtonListener();
  //给按钮添加动作事件监听器,并绑定事件处理器
  btn.addActionListener(mb);
  //设置窗体居中
  this.setLocationRelativeTo(null);
  //设置窗体关闭时退出程序
  this.setDefaultCloseOperation(3);
  //设置窗体可见性
  this.setVisible(true);
 }
}

 小结:
 每一个事件监听器都是一个接口,当子类实现某一个监听器接口时,子类必须重写接口中所有的方法。而有些方法是我们不需要的,所以我们可以用抽象类来作为接口和类的“适配器”,我们就可以根据自己的需要重写抽象类中的方法。

你可能感兴趣的:(java,swing)