利用构造函数传递参数
public class Painter{
//定义方法
public void showFrame(){
javax.swing.JFrame frame=new javax.swing.JFrame();
frame.setSize(300,400);
frame.setTitle("QQworld");
frame.setLocationRelativeTo(null);
//frame.setDefaultCloseOperation(3);
java.awt.FlowLayout layout=new java.awt.FlowLayout();
frame.setLayout(layout);
frame.setVisible(true);
//获取窗体的画布对象
java.awt.Graphics g = frame.getGraphics();
//创建鼠标事件监听器
java.awt.event.MouseListener mymouselistener=new MyMouseListener(g);
// 对窗体进行鼠标事件监听
frame.addMouseListener(mymouselistener);
}
public static void main(String[]args){
Painter QQ=new Painter();
QQ.showFrame();
}
}
//创建一个鼠标监听器对象
public class MyMouseListener implements java.awt.event.MouseListener{
private int x1,x2,y1,y2;
private java.awt.Graphics g;
//构造函数
public MyMouseListener(java.awt.Graphics gr){
g = gr;
}
//实现接口类中的所有抽象方法
public void mouseClicked(java.awt.event.MouseEvent e){
System.out.println("clicked");
}
public void mousePressed(java.awt.event.MouseEvent e){
System.out.println("pressed");
x1=e.getX();
y1=e.getY();
}
public void mouseReleased(java.awt.event.MouseEvent e){
System.out.println("release");
x2=e.getX();
y2=e.getY();
//画图
g.drawLine(x1,y1,x2,y2);
}
public void mouseEntered(java.awt.event.MouseEvent e){
System.out.println("entered");
}
public void mouseExited(java.awt.event.MouseEvent e){
System.out.println("Exited");
}
}
//如上例
先把MyMouseListener(g)中的实参g传给MyMouseListener(java.awt.Graphics gr)中的形参gr
然后再把gr传给MyMouseListener类中的属性g
public class Painter{
//定义方法
public void showFrame(){
javax.swing.JFrame frame=new javax.swing.JFrame();
frame.setSize(300,400);
frame.setTitle("QQworld");
frame.setLocationRelativeTo(null);
//frame.setDefaultCloseOperation(3);
java.awt.FlowLayout layout=new java.awt.FlowLayout();
frame.setLayout(layout);
frame.setVisible(true);
//获取窗体的画布对象
java.awt.Graphics g = frame.getGraphics();
//创建鼠标事件监听器
java.awt.event.MouseListener mymouselistener=new MyMouseListener(g);
// 对窗体进行鼠标事件监听
frame.addMouseListener(mymouselistener);
}
public static void main(String[]args){
Painter QQ=new Painter();
QQ.showFrame();
}
}
//创建一个鼠标监听器对象
public class MyMouseListener implements java.awt.event.MouseListener{
private int x1,x2,y1,y2;
private java.awt.Graphics g;
//构造函数
public MyMouseListener(java.awt.Graphics gr){
g = gr;
}
//实现接口类中的所有抽象方法
public void mouseClicked(java.awt.event.MouseEvent e){
System.out.println("clicked");
}
public void mousePressed(java.awt.event.MouseEvent e){
System.out.println("pressed");
x1=e.getX();
y1=e.getY();
}
public void mouseReleased(java.awt.event.MouseEvent e){
System.out.println("release");
x2=e.getX();
y2=e.getY();
//画图
g.drawLine(x1,y1,x2,y2);
}
public void mouseEntered(java.awt.event.MouseEvent e){
System.out.println("entered");
}
public void mouseExited(java.awt.event.MouseEvent e){
System.out.println("Exited");
}
}
//如上例
先把MyMouseListener(g)中的实参g传给MyMouseListener(java.awt.Graphics gr)中的形参gr
然后再把gr传给MyMouseListener类中的属性g