接口和事件
定义接口的关键字:interface,且接口可以继承接口,所用的关键字还是extends
接口可以规定一个类的基本形式:方法名,参数列表及返回类型,但不能写方法主体。
接口中的数据成员默认为static静态的,和final终结的(不可更改的)。
所以说接口只提供形式,而无实施的细节。
接口中的所有方法都是抽象的,关键字为abstract
接口的实现:
关键字implements
且实现接口必须实现接口中的所有抽象方法。
一个类可实现多个接口,以此来实现多继承。
事件
事件源:所有的图形界面控件(容器,元素)
你的动作发生在哪一个控件上,那么该控件就是事件源对象。
事件监听器的方法:用来监听不同动作的发生,当相应监听器方法监听到动作后,会自动
调用相应的事件接口或事件抽象类的对象进行处理。
addActionListener(ActionListener l) 监听器类似按钮控件的点击操作,类似输入框控件的回车操作
addMouseListener(MouseListener ml) 监听鼠标的进入,离开,按下,释放和单击操作
addMouseMotionListener(MouseMotionList ll); 监听鼠标的拖动和移动操作
addKeyListener(KeyListener kl) 监听键盘的按下和释放操作
练习:显示画板
画板首先继承JFrame,之后初始化界面。因为要画图形,所以必须要取到画笔才可以。而界面就是画出来的,所以说当界面实现以后,可以从此取得画笔。
this.setVisible(true);
java.awt.Graphics g =this.getGraphics();
之后要加一个鼠标监听器
实例化接口对象
PaintListener pl = new PaintListener(g);
this.addMouseListener(pl);
Mouselistener是一个接口,所以要另外写一个类来实现接口
public class PaintListener implements MouseListener
因为是实现接口所以要实现接口中的所有抽象方法
//单击
public void mouseClicked(MouseEvent e){
}
//按下
public void mouseReleased(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
//鼠标进入
public void mouseEntered(MouseEvent e){
}
//鼠标离开
public void mouseExited(MouseEvent e){
}
之后可以在写方法体,当监听到设定好的动作时,作出相应的反应
public void mouseClicked(MouseEvent e){
for(int i=0;i<255;i++){
g.setColor(new Color(i,i+50,i+100));
g.drawOval(i, i, width, height);
width+=5;
height+=5;
}
}
在这个练习还需注意一点,因为画笔在另一个类中(Paint类),而要将画笔用在(PaintListener类)中,所以需要传参数。
传参有两种方法,一种是构造方法,另一种是set()方法。但是这两种都要先定义私有属性
private Graphics g ;
构造方法
public PaintListener(Graphics g){
this.g = g;
}
private Graphics g ;
set()方法
public void setPaintListener(Graphics g){
this.g = g;
}
我会继续努力学习的!
定义接口的关键字:interface,且接口可以继承接口,所用的关键字还是extends
接口可以规定一个类的基本形式:方法名,参数列表及返回类型,但不能写方法主体。
接口中的数据成员默认为static静态的,和final终结的(不可更改的)。
所以说接口只提供形式,而无实施的细节。
接口中的所有方法都是抽象的,关键字为abstract
接口的实现:
关键字implements
且实现接口必须实现接口中的所有抽象方法。
一个类可实现多个接口,以此来实现多继承。
事件
事件源:所有的图形界面控件(容器,元素)
你的动作发生在哪一个控件上,那么该控件就是事件源对象。
事件监听器的方法:用来监听不同动作的发生,当相应监听器方法监听到动作后,会自动
调用相应的事件接口或事件抽象类的对象进行处理。
addActionListener(ActionListener l) 监听器类似按钮控件的点击操作,类似输入框控件的回车操作
addMouseListener(MouseListener ml) 监听鼠标的进入,离开,按下,释放和单击操作
addMouseMotionListener(MouseMotionList ll); 监听鼠标的拖动和移动操作
addKeyListener(KeyListener kl) 监听键盘的按下和释放操作
练习:显示画板
画板首先继承JFrame,之后初始化界面。因为要画图形,所以必须要取到画笔才可以。而界面就是画出来的,所以说当界面实现以后,可以从此取得画笔。
this.setVisible(true);
java.awt.Graphics g =this.getGraphics();
之后要加一个鼠标监听器
实例化接口对象
PaintListener pl = new PaintListener(g);
this.addMouseListener(pl);
Mouselistener是一个接口,所以要另外写一个类来实现接口
public class PaintListener implements MouseListener
因为是实现接口所以要实现接口中的所有抽象方法
//单击
public void mouseClicked(MouseEvent e){
}
//按下
public void mouseReleased(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
//鼠标进入
public void mouseEntered(MouseEvent e){
}
//鼠标离开
public void mouseExited(MouseEvent e){
}
之后可以在写方法体,当监听到设定好的动作时,作出相应的反应
public void mouseClicked(MouseEvent e){
for(int i=0;i<255;i++){
g.setColor(new Color(i,i+50,i+100));
g.drawOval(i, i, width, height);
width+=5;
height+=5;
}
}
在这个练习还需注意一点,因为画笔在另一个类中(Paint类),而要将画笔用在(PaintListener类)中,所以需要传参数。
传参有两种方法,一种是构造方法,另一种是set()方法。但是这两种都要先定义私有属性
private Graphics g ;
构造方法
public PaintListener(Graphics g){
this.g = g;
}
private Graphics g ;
set()方法
public void setPaintListener(Graphics g){
this.g = g;
}
我会继续努力学习的!