当一个类中有几个方法中都用到了一个变量名时,把这个变量在这个类的属性部分声明为全局变量,这样在下边的函数方法中就把那个变量的类型去掉。
package mydraw1.copy;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
/*
* 自定义鼠标监听类,继承MouseAdapter(或实现了MouseListener、MouseMotionListener)
*/
public class MyMouseListener extends MouseAdapter{
private int x1,y1,x2,y2;
private Graphics g;
private ToolPanel tool_panel;
private ColorPanel color_panel;
private Color color;
private String command; //构造方法
public MyMouseListener(ToolPanel tool_panel,ColorPanel color_panel,DrawPanel draw_panel){
g=draw_panel.getGraphics();//获取画布
this.tool_panel=tool_panel;//接收对象
this.color_panel=color_panel;//接收对象
}
//按下
public void mousePressed(MouseEvent e){
x1=e.getX();
y1=e.getY();
command=tool_panel.getCommand();//获取标志
color=color_panel.getColor();//获取颜色 g.setColor(color);//设置画布的颜色
}
//释放
public void mouseReleased(MouseEvent e){
x2=e.getX();
y2=e.getY();
if("line".equals(command)){
Line line=new Line(x1,y1,x2,y2,color);
line.draw(g);
}
else if("rect".equals(command)){
Rect rect=new Rect(x1,y1,x2,y2,color);
rect.draw(g);
}
else if("oval".equals(command)){
Oval oval=new Oval(x1,y1,x2,y2,color);
oval.draw(g);
}
}
//拖拽
public void mouseDragged(MouseEvent e){
x2=e.getX();
y2=e.getY();
Line line=new Line(x1,y1,x2,y2,color);
line.draw(g);
x1=x2;
y1=y2;
}
}
分享到:
相关推荐
在C++中,声明一个类,并且定义一个全局变量,练习全局变量的使用。注意全局变量的使用技巧和方法。
多线程同时操作全局变量的出错演示:演示了9个线程同时操作全局变量的出错结果,并采用自动验证结果,直到程序出错,有很好的演示和学习价值。
JavaScript声明全局变量访问方法 JavaScript声明全局变量访问方法 JavaScript声明全局变量访问方法 JavaScript声明全局变量访问方法
本文介绍了全局变量的声明和定义是容易错误的问题以及全局变量使用的建议。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。 对于全局变量和局部变量,即使变量名相同,但是因为定义在不同的作用...
c语言中头文件的-函数-全局变量
C++中,全局变量只能声明、初始化,而不能赋值 也就是说,下面这样是不被允许的: #include using namespace std; int a; a = 2; int main() { return 0; } 错误提示是: C++ requires a type specifier for all...
宏定义、结构体定义、函数声明以及全局变量定义放到一个head.h头文件中 函数的定义放到head.cpp中 main函数放到main.cpp中 然而却报错了,提示xxx变量在*.obj文件中已定义 问题出现的原因 为什么会出现这种...
1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ; 局部变量可以与全局变量同名, 在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器 而言...
第一:使用extern關鍵字聲明(不推薦,破壞了封裝性) 第二:新建一個類,存放全局的變量,函數 第一:使用extern關鍵字聲明(不推薦,破壞了封裝性) 第二
SQL 一些全局变量 时间函数 存储过程 的一些函数等等 记着回复啊。。。。分返还还+1哦
SQL Server 系统存储过程全局变量
解决这一问题的方法有两个:在声明全局变量显式的赋初值0程序中仿照__main()库函数的写法,自己写一个清零函数完成这一工作值得注意的是,通过请教导师得知,这并
global是Python中的一个关键字用来,声明一个局部变量为全局变量,这里我们来以实例讲解Python中global语句下全局变量的值的修改,需要的朋友可以参考下.
c代码-函数定义声明和全局变量
STM32无阻塞控制LED,可以设置LED占空比和闪烁次数,采用TIM精确定时,采用宏定义定义数字,全局变量在头文件中声明,采用静态全局变量避免变量暴露; 2. 使用说明: 通过修改宏定义可以修改开关时间; 通过查看...
1.减少全局变量声明 2.缓存dom节点查找结果 3.局部变量缓存全局变量 /** * @param col bootstrapTable列表生成配置对象 */ var searchValue ={};//查询匹配对象 var $button = $('<div class=columns><...
在JavaScript中,全局变量有两种声明方式 使用 var 显示声明的全局变量 不使用 var 声明的隐式全局变量 两者的区别在于是否能通过 delete 操作符删除 先看一段代码 var a = 'a'; // 显式声明的全局变量 b = 'b'; //...
JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍。 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量。该方式即为显式声明详细...