国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 基于swing實現窗體拖拽和拉伸

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

2021-03-10 14:21_Thomas Java教程

這篇文章主要為大家詳細介紹了基于swing實現窗體拖拽和拉伸,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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

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

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

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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();
 }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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;
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/a694543965/article/details/78027743

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本三级韩国三级三级a级中文 | 天天干天天操天天干 | 激情欧美日韩一区二区 | 国产精品视频在线播放 | 成人高清在线视频 | 国产一区二区精品在线观看 | 亚洲入口| 神马电影午夜 | 国产一级片免费观看 | 国产精品不卡一区二区三区 | 成人免费观看在线视频 | 亚洲精品成人 | 91极品视频在线观看 | 一区二区三区四区国产 | 激情欧美一区二区免费视频 | 欧美日韩久久 | 国产伊人久 | 久久亚 | 一级网站在线观看 | 国产精品久久久久久久浪潮网站 | 亚洲欧美日韩精品久久亚洲区 | 久久精品国产v日韩v亚洲 | 夜夜操导航 | 日韩免费在线 | 一级免费片 | 亚洲人成在线播放 | 黄色片网站 | 天天爽夜夜爽夜夜爽精品视频 | 黄色a级大片| 亚洲视频自拍 | 亚洲视频一区 | 亚洲一区二区在线播放 | 黄色网毛片 | 中文字幕亚洲精品 | 欧美电影免费观看高清 | 欧美一级片在线观看 | 99热精品视 | 亚洲在线播放 | 成人av一区二区三区 | 欧美日韩激情一区 | 日本黄色大片免费看 |