小白的JAVA学习笔记(十)----图形用户接口(1)事件

1、生成一个带有click按钮(无任何功能)的窗口

package package_1;

import javax.swing.*;

public class A {

	public static void main(String[] args)  {
		// TODO Auto-generated method stub
        JFrame frame=new JFrame();//创建frame
        JButton button=new JButton("click");//创建button
        frame.getContentPane().add(button);//把button加到frame的pane上
        frame.setSize(300,300);//设定frame大小
        frame.setVisible(true);//把frame显示出来
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//在windows关闭后结束程序
        
}
}
  • JFrame,JButton,JRadioButton,JCheckBox,JList,JLabel等Swing组件都在javax.swing包中,要import
  • 创建window:JFrame frame=new JFrame()
  • 加入按钮或文字字段:frame.getContentPane().add(····)
  • JFrame不能直接加上组件,要用content pane 

2、取得按钮的ActionEvent,按下按钮后执行方法

package package_1;

import javax.swing.*;
import java.awt.event.*;
public class A implements ActionListener{
	JButton button;
    public void go() {
    	JFrame frame=new JFrame();
    	button=new JButton("click");
    	button.addActionListener(this);//向按钮注册,告诉他要监听事件
    	frame.getContentPane().add(button);//把button加到frame的pane上
    	frame.setSize(300,300);//设定frame大小
    	frame.setVisible(true);//显示frame
    	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//windows关闭后,结束程序
    }
    //按钮以ActionEvent对象作为参数调用此方法
    //实现interface的方法
    public void actionPerformed(ActionEvent event) {
    	button.setText("i've been clicked!");
    }
	public static void main(String[] args)  {
		// TODO Auto-generated method stub
        A a=new A();
        a.go();
        
}
}

首先,我们先理清一下监听,事件源,事件对象的关系。

Swing的GUI组件就是事件源,事件源是一个可以将用户操作(点击鼠标,按键等)转换成事件的对象。

每个事件类型都有相应的监听者接口,实现接口的相关知识第六章已经介绍,此处不赘述。

简言之,监听获知事件;事件源发出事件;事件对象携带事件信息。

  • 监听:实现接口并向按钮注册,让按钮知道你要开始监听事件了
  • 事件源:接受注册,取得用户事件,并在用户采取操作时调用监听到的事件的处理方法
  • 事件对象:作为调用接口方法的参数,把事件信息带给监听者

怎么给按钮增加功能?首先得想办法知道“按下了按钮”这件事,之后再调用执行功能的方法。

怎么才能知道“按下了按钮”呢?监听事件的接口。监听接口就是监听(你)和事件源(按钮)的桥梁。 

怎么监听接口呢?先实现接口ActionListener,通过调用addActionListener()并传入引用来向按钮注册,同时ActionEvent对象作为参数被按钮存入清单,当用户按下按钮,按钮会通过调用清单上每个监听的actionPerformed()来启动事件

事实上,实现接口就意味着A是个ActionListener(事件只会通知有实现ActionListener的类)

                                                                                                                                                BY    ZJQ

猜你喜欢

转载自blog.csdn.net/qq_41641805/article/details/81706354