拖动去掉边框的JFrame
生活随笔
收集整理的這篇文章主要介紹了
拖动去掉边框的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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java设置窗体居中与去除边框以及jfr
- 下一篇: JDom中removeContent无法