日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

拖动去掉边框的JFrame

發(fā)布時(shí)間:2025/3/21 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 拖动去掉边框的JFrame 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

似乎業(yè)界的程序員都不喜歡用java來(lái)開發(fā)圖形界面,但是因?yàn)榭缙脚_(tái)的原因,對(duì)java的桌面編程非常的感興趣,想使用它做出一套漂亮的圖形界面。

此篇文章主要介紹,java下通過(guò)swing實(shí)現(xiàn)win8的磁力鐵

原理:繼承java的swing組件,對(duì)其進(jìn)行功能的擴(kuò)展

java swing界面的jframe中,通過(guò)setUndecorated(true)方法可以去掉周圍的邊框,后果是我們沒法拖動(dòng)這個(gè)窗口了;以下代碼提供了一種方式來(lái)解決這個(gè)問題:

public class ShowMain{public static void main(String[] args) {MyFrame frame = new MyFrame();} } class MyFrame extends JFrame implements MouseListener,MouseMotionListener{JFrame frame;Container container;int x;int y;int tempX;int tempY;int winX;int winY;int oldX;int oldY;public MyFrame() {init();}public void init(){ frame = this;container = frame.getContentPane();frame.setBounds(300, 300, 300, 300);container.setBackground(Color.BLUE);frame.setUndecorated(true);frame.setVisible(true);frame.addMouseListener(this);frame.addMouseMotionListener(this);}@Overridepublic void mouseDragged(MouseEvent e) {Point point = e.getPoint();Rectangle rec = frame.getBounds();winX = (int)rec.getX();winY = (int)rec.getY(); x = (int)point.getX();y = (int)point.getY(); tempX = x - oldX;tempY = y - oldY; frame.setLocation((int)(winX + tempX), (int)(winY + tempY)); }@Overridepublic void mousePressed(MouseEvent e) {Rectangle rec = frame.getBounds();Point point = e.getPoint(); tempX = (int)point.getX();tempY = (int)point.getY();oldX = (int)point.getX();oldY = (int)point.getY(); }@Overridepublic void mouseClicked(MouseEvent e) {// TODO Auto-generated method stub }@Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub }@Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub }@Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub }@Overridepublic void mouseMoved(MouseEvent e) {// TODO Auto-generated method stub } }運(yùn)行截圖(通過(guò)鼠標(biāo)可以拖動(dòng)一下的方塊窗體):



總結(jié)

以上是生活随笔為你收集整理的拖动去掉边框的JFrame的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。