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.不能二次直接在下面二次开辟空间