当前位置:  技术问答>java相关

对面的牛人看过来,看过来,这里一个paint小事件,小时间

    来源: 互联网  发布时间:2015-09-14

    本文导语:  /*为什么我的gp出的图形不能正确的repaint ??*/ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.image.*; import java.awt.color.*; public class test extends JPanel{ int last_x,last_y; boolean firstTime...

/*为什么我的gp出的图形不能正确的repaint ??*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.awt.color.*;

public class test extends JPanel{
int last_x,last_y;
boolean firstTime=true;
BufferedImage bImg;
Graphics2D g2;
   Rectangle2D rect=new Rectangle2D.Float();
   GeneralPath gp=new GeneralPath(GeneralPath.WIND_NON_ZERO,3);
   boolean flag=true;
   boolean press=false;
   int[] pointX={100,180,140};
   int[] pointY={100,100,40};
public test(){

addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
last_x=(int)rect.getX()-e.getX();
last_y=(int)rect.getY()-e.getY();
if(rect.contains(e.getX(),e.getY())){
System.out.println("mouse press in area call update methods");
press=true;
updateLocation(e);
}else if(gp.contains(e.getX(),e.getY())){
press=true;
updateLocation(e);
}

}
public void mouseReleased(MouseEvent e){
if(rect.contains(e.getX(),e.getY())){
System.out.println("mouse released in area call update methods");
updateLocation(e);
}else if(gp.contains(e.getX(),e.getY())){
updateLocation(e);
}
press=false;
}
});
addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
if(press){
if(rect.contains(e.getX(),e.getY())){
System.out.println("mouse drag in area call update methods");
updateLocation(e);
}else if(gp.contains(e.getX(),e.getY())){
updateLocation(e);
}
}
}
});

}

public void updateLocation(MouseEvent e){
if(rect.contains(e.getX(),e.getY())){
rect.setRect(last_x+e.getX(),last_y+e.getY(),40,40);
}else if(gp.contains(e.getX(),e.getY())){
pointX[0]=last_x+e.getX();pointY[0]=last_y+e.getY()+60;
pointX[1]=last_x+e.getX()+80;pointY[1]=last_y+e.getY()+60;
pointX[2]=last_x+e.getX()+40;pointY[2]=last_y+e.getY();
gp.moveTo(pointX[0],pointY[0]);
for(int i=1;i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • LINUX下面的WEB Service如果编写?是用.NET写吗?WINDOW下面的web service能在LINUX下面用吗?
  • 使用c gtk2 在linux 下,如何实现下面的问题,找了很久,没有这方面的资料
  • fedora13桌面的最上面的系统菜单和最下面的状态栏都不见了
  • 怎样列出目录下面的文件名和文件大小?
  • 我们公司要买软件,谁能提供这方面的信息?
  • HTML教程 iis7站长之家
  • 关于1024柱面的问题!!
  • 在哪下载oracle.jdbc.driver.*这方面的包,谁有?
  • linux下面的什么浏览器可以支持框架??许多网页没法正常观看!!!
  • 学习unix,急需教程,请问哪里可以下载,或者谁可以提供这方面的材料!
  • 谁有网站开发这方面的论文?急需!
  • 竟然没有这方面的书
  • 我以前是做windows下面的开发的,现在想转向Linux或者Unix开发
  • 关于linux下面的sock5到http的转换工具!
  • 可以编译WIN下面的GTK1.3 Themes Dll吗??
  • linux下面的Gftp有人用过吗?
  • linux下面怎么用其它的文件下面的函数呀
  • 什么是MPI?有没有这方面的资料?谢谢
  • 要在Solaris上用C++开发一个有启动画面的程序,不知需要哪些工具和库?
  • 请教:linux下如何找到windows xp下面的文件


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3