亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

基于swing實現窗體拖拽和拉伸

2024-07-13 10:15:18
字體:
來源:轉載
供稿:網友

本文為大家分享了swing實現窗體拖拽和拉伸的具體代碼,供大家參考,具體內容如下

當用setUndecorated(true) 后 JFrame去掉標題欄后就得自己寫拖拽和拉伸功能了。

下面是效果圖,我的截圖軟件不能夠截取除系統默認光標外的光標,所以各個方向光標變化在圖中沒有體現

swing,窗體,拖拽,swing窗體拉伸

代碼如下:

import javax.swing.*; import java.awt.*;  /**  * 窗體拖拽和拉伸  */ public class winReSizeDemo {  private JFrame jf;  public winReSizeDemo(){   jf=new JFrame();   jf.setUndecorated(true);//去標邊界和標題欄   jf.setLocationRelativeTo(null);//窗口置中   jf.setSize(400,400);   jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   reSizeEvent dg = new reSizeEvent(jf);   /**添加兩個監聽器**/   jf.addMouseListener(dg);   jf.addMouseMotionListener(dg);   jf.setVisible(true);  }  public static void main(String [] args){   new winReSizeDemo();  } } 
import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; /**  * 實現窗口各個方向拉伸以及拖動。  */ public class reSizeEvent extends MouseAdapter{  public JFrame jf;  private Point prePos,curPos,jfPos;  private static final double BREADTH = 15.0;//邊界拉伸范圍  private int dragType;  private static final int DRAG_MOVE = 1;  private static final int DRAG_UP = 2;  private static final int DRAG_UPLEFT = 3;  private static final int DRAG_UPRIGHT = 4;  private static final int DRAG_LEFT = 5;  private static final int DRAG_RIGHT = 6;  private static final int DRAG_BOTTOM = 7;  private static final int DRAG_BOTTOMLEFT = 8;  private static final int DRAG_BOTTOMRIGHT = 9;  public reSizeEvent(JFrame jf){   this.jf = jf;  }  @Override  public void mousePressed(MouseEvent e){   prePos = e.getLocationOnScreen();  }  @Override  public void mouseMoved(MouseEvent e){   areaCheck(e.getPoint());  }  @Override  public void mouseDragged(MouseEvent e){   curPos = e.getLocationOnScreen();   jfPos = jf.getLocation();   dragAction();   prePos = curPos;  }  private void dragAction(){   switch(dragType){    case DRAG_MOVE:     jf.setLocation(jfPos.x+curPos.x-prePos.x,       jfPos.y+curPos.y-prePos.y);     break;    case DRAG_UP://x位置不變,y位置變化,并且Height變化     jf.setLocation(jfPos.x,       jfPos.y+curPos.y-prePos.y);     jf.setSize(jf.getWidth(), jf.getHeight()-(curPos.y-prePos.y));     break;    case DRAG_LEFT://y位置不變,x位置變化,width變化     jf.setLocation(jfPos.x+curPos.x-prePos.x,       jfPos.y);     jf.setSize(jf.getWidth()-(curPos.x-prePos.x), jf.getHeight());     break;    case DRAG_RIGHT://x,y位置不變,width變化     jf.setLocation(jfPos.x,       jfPos.y);     jf.setSize(jf.getWidth()+(curPos.x-prePos.x), jf.getHeight());     break;    case DRAG_BOTTOM://x,y位置不變,Height變化     jf.setLocation(jfPos.x,       jfPos.y);     jf.setSize(jf.getWidth(), jf.getHeight()+(curPos.y-prePos.y));     break;    case DRAG_UPLEFT://x,y位置均變化,h,w均變化     jf.setLocation(jfPos.x+curPos.x-prePos.x,       jfPos.y+curPos.y-prePos.y);     jf.setSize(jf.getWidth()-(curPos.x-prePos.x), jf.getHeight()-(curPos.y-prePos.y));     break;    case DRAG_BOTTOMRIGHT://x,y位置均不變,h,w變化     jf.setLocation(jfPos.x,       jfPos.y);     jf.setSize(jf.getWidth()+(curPos.x-prePos.x), jf.getHeight()+(curPos.y-prePos.y));     break;    case DRAG_UPRIGHT://x位置不變,y,w,h變化     jf.setLocation(jfPos.x,       jfPos.y+curPos.y-prePos.y);     jf.setSize(jf.getWidth()+(curPos.x-prePos.x), jf.getHeight()-(curPos.y-prePos.y));     break;    case DRAG_BOTTOMLEFT://y不變,xwh變化     jf.setLocation(jfPos.x+curPos.x-prePos.x,       jfPos.y);     jf.setSize(jf.getWidth()-(curPos.x-prePos.x), jf.getHeight()+(curPos.y-prePos.y));     break;    default:     break;   }  }  private boolean areaCheck(Point p){   if(p.getX()<=BREADTH && p.getY()<=BREADTH){    dragType = DRAG_UPLEFT;    jf.setCursor(new Cursor(Cursor.NW_RESIZE_CURSOR));   }else if(p.getX()>BREADTH     && p.getX()<(jf.getWidth()-BREADTH)     && p.getY()<=BREADTH){    dragType = DRAG_UP;    jf.setCursor(new Cursor(Cursor.N_RESIZE_CURSOR));   }else if(p.getX()>=(jf.getWidth()-BREADTH) && p.getY()<=BREADTH){    dragType = DRAG_UPRIGHT;    jf.setCursor(new Cursor(Cursor.NE_RESIZE_CURSOR));   }else if(p.getX()<=BREADTH     && p.getY()<(jf.getHeight()-BREADTH)     && p.getY()>BREADTH){    dragType = DRAG_LEFT;    jf.setCursor(new Cursor(Cursor.W_RESIZE_CURSOR));   }else if(p.getX()>=(jf.getWidth()-BREADTH)     && p.getY()<(jf.getHeight()-BREADTH)     && p.getY()>BREADTH){    dragType = DRAG_RIGHT;    jf.setCursor(new Cursor(Cursor.E_RESIZE_CURSOR));   }else if(p.getX()<=BREADTH     && p.getY()>=(jf.getHeight()-BREADTH)){    dragType = DRAG_BOTTOMLEFT;    jf.setCursor(new Cursor(Cursor.SW_RESIZE_CURSOR));   }else if(p.getX()>BREADTH     && p.getX()<(jf.getWidth()-BREADTH)     && p.getY()>=(jf.getHeight()-BREADTH)){    dragType = DRAG_BOTTOM;    jf.setCursor(new Cursor(Cursor.S_RESIZE_CURSOR));   }else if(p.getX()>=(jf.getWidth()-BREADTH)     && p.getY()>=(jf.getHeight()-BREADTH)){    dragType = DRAG_BOTTOMRIGHT;    jf.setCursor(new Cursor(Cursor.SE_RESIZE_CURSOR));   }else{    dragType = DRAG_MOVE;    jf.setCursor(new Cursor(Cursor.MOVE_CURSOR));    return false;   }   return true;  } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久精品视频在线观看| 久久久久久久久亚洲| 欧美国产在线电影| 国产亚洲精品久久久久久牛牛| 中文字幕亚洲在线| 97在线观看视频国产| 欧美中文字幕在线| 91国语精品自产拍在线观看性色| 国语对白做受69| 尤物99国产成人精品视频| 91豆花精品一区| 欧美裸体男粗大视频在线观看| 亚洲色图激情小说| 91精品久久久久久久久| 2019中文字幕在线观看| 亚洲欧美中文日韩v在线观看| 欧美视频在线视频| 亚洲女人天堂色在线7777| 日韩av在线影院| 日韩动漫免费观看电视剧高清| 亚洲男人天堂网站| 日韩一区二区久久久| 亚洲电影av在线| 91精品国产高清久久久久久91| 亚洲欧美福利视频| 亚洲欧美一区二区精品久久久| 久久好看免费视频| 国产日本欧美一区二区三区在线| 成人久久一区二区| 精品久久国产精品| 91久久精品日日躁夜夜躁国产| 亚洲丁香婷深爱综合| 日韩中文字幕av| 国产日韩中文字幕在线| 57pao国产成人免费| 色综合久久悠悠| 亚洲人成在线一二| 欧美精品激情视频| 亚洲aⅴ日韩av电影在线观看| 欧美黑人又粗大| 国产午夜精品一区理论片飘花| 成人信息集中地欧美| 欧美日韩亚洲高清| 亚洲激情自拍图| 色吧影院999| 久久夜色撩人精品| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久精品国产一区二区三区| 黄色91在线观看| 国产精品一区二区av影院萌芽| 亚洲毛片在线观看.| 亚洲精品综合久久中文字幕| 欧美激情精品久久久久久变态| 国产精品久久久久久久久久免费| 欧美性感美女h网站在线观看免费| 成人国产精品色哟哟| 国产精品狠色婷| 成人黄色免费网站在线观看| 国产精品18久久久久久首页狼| 亚洲欧美国产另类| 国产欧美日韩丝袜精品一区| 久久99热精品这里久久精品| 国产精品视频自拍| 国产97色在线|日韩| 亚洲香蕉成人av网站在线观看| 国产精品一区二区久久久久| 久久在精品线影院精品国产| 亚洲精品白浆高清久久久久久| 国产精品美女主播在线观看纯欲| 国产精品日韩一区| 永久免费毛片在线播放不卡| 欧美精品电影在线| 亚洲欧美另类在线观看| 97视频在线看| 亚洲美女av在线播放| 久久久久99精品久久久久| 日韩成人久久久| 午夜精品久久久久久久男人的天堂| 欧美精品午夜视频| 久久成人国产精品| 国产欧洲精品视频| 亚洲欧美在线一区二区| 国产精品久久久久久婷婷天堂| 最近中文字幕mv在线一区二区三区四区| 国产区亚洲区欧美区| 精品国产依人香蕉在线精品| 欧美日韩福利视频| 久久人人爽人人爽人人片亚洲| 精品亚洲永久免费精品| 国产精品视频1区| 91精品国产高清久久久久久久久| 日韩在线视频二区| 日韩美女写真福利在线观看| 国产精品久久中文| 中文字幕v亚洲ⅴv天堂| 亚洲老司机av| 日韩精品中文字幕在线观看| 欧美精品久久久久久久| 国产精品美女主播在线观看纯欲| 亚洲欧美日韩在线高清直播| 成人欧美一区二区三区在线湿哒哒| 国产精品视频成人| 国产精品久久久久久婷婷天堂| 久久这里有精品视频| 最近2019中文字幕大全第二页| 免费91麻豆精品国产自产在线观看| 亚洲欧美成人一区二区在线电影| 欧美一级淫片aaaaaaa视频| 欧美成人在线网站| 欧美精品videossex性护士| 视频在线观看99| 欧美成人午夜免费视在线看片| 欧美激情在线狂野欧美精品| 欧美激情欧美激情在线五月| 午夜精品一区二区三区视频免费看| 日韩电影中文字幕| 亚洲美女精品久久| 亚洲人成毛片在线播放| 色综合天天综合网国产成人网| 久久免费精品视频| 精品国产91乱高清在线观看| 热久久美女精品天天吊色| 欧美理论在线观看| 亚洲欧美在线x视频| 日韩欧美在线第一页| 久久精品电影网站| 91精品国产色综合久久不卡98口| 欧美另类极品videosbestfree| 欧美乱大交xxxxx| 亚洲国产精品成人av| 欧美性69xxxx肥| 成人黄色免费网站在线观看| 91精品在线影院| 精品久久久久久久大神国产| 精品国产91久久久| 亚洲激情视频网站| 国产视频亚洲视频| 欧美大尺度电影在线观看| 久久精品视频在线播放| 38少妇精品导航| 91精品免费久久久久久久久| 色爱av美腿丝袜综合粉嫩av| 亚洲国产婷婷香蕉久久久久久| 日韩精品在线视频观看| 亚洲一区亚洲二区亚洲三区| 日韩高清电影免费观看完整版| 欧美精品电影在线| 久久久亚洲影院| 亚洲自拍偷拍福利| 亚洲老司机av| 国内成人精品视频| 在线成人一区二区| 日本午夜在线亚洲.国产| 欧美大尺度在线观看| 日韩男女性生活视频| 久久久久久久久电影| 欧美尤物巨大精品爽| 久久视频在线直播| 深夜精品寂寞黄网站在线观看| 国产精品免费观看在线| 午夜精品三级视频福利| 国产一区二区三区三区在线观看| 精品久久久久久久中文字幕| 国产91露脸中文字幕在线|