JAVA适配器
采用匿名内部类作为事件的监听器
匿名内部类选取的原则:
- 只有单个类,如下类是“单类”
- 短小的
package Z9;
import java.awt.event.*;
import javax.swing.*;
//适配器的学习
public class Z9_study02 {
JFrame f;
JButton b1;
public Z9_study02() {
// TODO Auto-generated constructor stub
f=new JFrame("鼠标适配器测试");
b1 =new JButton("按我呀");
b1.addMouseListener(new MouseAdapter(){;
public void mousePressed(MouseEvent event) {
//鼠标按下
{
b1.setText("我被mouse按下了");
}
}
});
f.add(b1);
f.setSize(200, 100);
f.setVisible(true);
f.setLocationRelativeTo(null);//让窗体剧中显示
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Z9_study02();
}
}
采用内部类的适配器
package Z9;
import java.awt.event.*;
import javax.swing.*;
public class Z9_study01 {
JFrame f;
JButton b1;
public Z9_study01() {
// TODO Auto-generated constructor stub
f=new JFrame("鼠标适配器测试");
b1 =new JButton("按我呀");
b1.addMouseListener(new MyMouseAdapter(this));
f.add(b1);
f.setSize(200, 100);
f.setVisible(true);
f.setLocationRelativeTo(null);//让窗体剧中显示
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Z9_study01();
}
}
class MyMouseAdapter extends MouseAdapter
{
//Z9_study01 m=new Z9_study01();;
Z9_study01 m;
public MyMouseAdapter(Z9_study01 mm) {
m=mm;
}
public void mousePressed(MouseEvent event) {
//鼠标按下
{
m.b1.setText("我被Mouse按下了");
}}
}
内部类的使用有几点需要注意的:
1.如若想使用他类的对象(PS:比如本题的main下的m)
请将对象传递进来用构造函数进行赋值,同时赋值的变量必须一致
2.不能二次直接在下面二次开辟空间