大家帮我翻译一下这段程序吧谢谢了
总体说明:这应该是2D简单的画图功能的实现,我知道几个java编程软件Eclipse,flash编程,JBuilder 2006,不知道你用的是什么java编程软件,牛人用txt软件也能编程,呵呵!
①首先你要明白public void paint(Graphics g)这个函数,这是画图函数,也就是通过画笔画出你预定的图像的大小
if(x!=-1&&y!=-1&&橡皮擦通知==0&&清除通知==0)
{
这是一个if条件句的判断,里面有(x!=-1&&y!=-1&&橡皮擦通知==0&&清除通知==0)
也就是说x不等于-1并且橡皮擦通知=0并且清楚通知等于0(同时满足三个条件执行:
tC...全部
总体说明:这应该是2D简单的画图功能的实现,我知道几个java编程软件Eclipse,flash编程,JBuilder 2006,不知道你用的是什么java编程软件,牛人用txt软件也能编程,呵呵!
①首先你要明白public void paint(Graphics g)这个函数,这是画图函数,也就是通过画笔画出你预定的图像的大小
if(x!=-1&&y!=-1&&橡皮擦通知==0&&清除通知==0)
{
这是一个if条件句的判断,里面有(x!=-1&&y!=-1&&橡皮擦通知==0&&清除通知==0)
也就是说x不等于-1并且橡皮擦通知=0并且清楚通知等于0(同时满足三个条件执行:
tColor(画笔颜色);
n= ze();
这里的n是Vector(向量)的一个实例,也就是一个类的具体的对象,这里是设置向量大小,你千万别再问我什么是向量(自己看书),
for(int i=0;i elementAt(i); 这里是先向Vector(向量)
添加对象然后强制转换成类oint的类型实例
g。drawLine(p1。x,p1。y,p2。x,p2。y);【画一条线】
tColor( tColor()); 【设置颜色】
ggg。
drawLine(p1。x,p1。y,p2。x,p2。y); 【再次画一条线,你这里的ggg应该改成g,因为没有你这个函数没有ggg这个对象,估计是你打字打错了】
else if(橡皮擦通知==1&&清除通知==0)【else条件语句】
{
tColor(getBackground()); 【以背景的颜色作为画图的颜色】
llRect(x-2【左上角的点】,y-2【左下角的点】,4【右上角的点】,4【右下角的点】); 【画一个矩形】
tColor(getBackground());
llRect(x-2,y-2,4,4);【同上】
}
}
g。
drawImage(image【你的图片】,【0,0,200,200确定图片的位置】,this【获得这个类就是当前所在的这个类】); 画一个图,估计是你预先传入程序里面的一张图片,
}
public void mouseDragged(MouseEvent e)
{
这是一个获得鼠标位置的函数
x=(int) tX(); 鼠标的x坐标
y=(int) tY(); 鼠标的y坐标
Point p=new Point(x,y); 为POint类开辟数据空间
dElement(p); 把point具体实例的p放入v(向量实例)中
repaint(); (重新绘图,刷新屏幕)
}
public void mouseMoved(MouseEvent e)
{}
public void mousePressed(MouseEvent e)
{}
public void mouseReleased(MouseEvent e)
{
当你鼠标释放的时候
moveAllElements(); 【删除向量里面所有的数据对象】
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void update(Graphics g)
{
paint(g);(再一次刷新屏幕)
}
public void actionPerformed(ActionEvent e)
{
这是一个动作演示的函数,也就是通过鼠标画图让后保存成JPG德格式的图片
if( tSource()==橡皮)【获得橡皮擦】
{
橡皮擦通知=1;
清除通知=0 ;
}
else if( tSource()==清除) 【清楚所画的图像】
{
清除通知=1;
橡皮擦通知=0;
repaint(); 【重新绘图】
}
else if( tSource()==画笔)【获得画笔对象】
{
橡皮擦通知=0;【表示停止橡皮擦功能】
清除通知=0; 【不执行清除这个命令】
}
else if( tSource()==保存) 【把你刚才的所画的图像保存JPG的格式的条件】
{
FileDialog【类名】 savedialog=new FileDialog(window【2Dwindow窗口】,"保存图型到JPG格式【图片格式】",FileDialog。
SAVE); 【文件名称】,并开辟类数据控件,但是new对象的实例就是为对象实例在程序中开辟空间】
tVisible(true); 【是否可见图像】
if( tFile()!=null)【这是一个把文件导成二进制的形式,让程序可以读图片的数据】
{
try【抛出函数就是如果导入数据出错就会报错】{
String fileName= tFile(); 【获得文件的名字】
FileOutputStream out=new FileOutputStream(fileName);【将文件为导成二进制形式,并且开辟数据空间】
JPEGImageEncoder encoder= eateJPEGEncoder(out); 【同样是一个函数,执行把图片导成二进制的函数】
JPEGEncodeParam param= tDefaultJPEGEncodeParam(image); 【获得默认的系统的二进制的图像的形式】
tQuality(1。
0f,false);【图片的质量】
tJPEGEncodeParam(param); 【设置图片的编码器】
encoder。encode(image); 【把图片导进编码器里面,让机器编成二进制代码】
ose();【关闭输出流】
}
catch(Exception EE) 【这是一个和上面try函数一体的,就是说如果导入二进制出错的话就进入这一步骤】
{
}
}
}
else if( tSource()==获取屏幕)
{
Robot robot=null; 【为机器类对象robot为空】
try{
robot=new Robot(); 开辟robot【机器类空间】
}
catch(Exception er)
{
}
Rectangle screenRect=null;
int width=getToolkit()。
getScreenSize()。width; 【获得工具包的屏幕大小的宽度
int height=getToolkit()。getScreenSize()。height;【高度】
screenRect=new Rectangle(0,0,width,height); 【设置屏幕的方形的大小】
tVisible(false); 【window窗口不可见】
tVisible(false); 【这个类的窗口不可见】
image= eateScreenCapture(screenRect); 【为这个图像创建屏幕图像】
tVisible(true)【设置window窗口可见】
repaint(); 【重绘】
}
else if( tSource()==调色板) 【获得调色板】
{
Color tempColor= owDialog(window【窗口】,"调色板【名称】",画笔颜色【颜色类型】); 【设置调色板颜色】
{
if(tempColor!=null) 【如果有存在tempColor的对象实例】
{
画笔颜色=tempColor;【设置画笔颜色=tempColor】
画笔。
setForeground(画笔颜色);【设置画笔的前景颜色】
}
}
}
else if( tSource()==绘制图形)
}
}
。收起