Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

39
LINES

< > BotCompany Repo | #1033463 // WindowDragger - drag da window around [for undecorated JFrames, OK]

JavaX fragment (include) [tags: use-pretranspiled]

Libraryless. Click here for Pure Java version (5120L/28K).

1  
sclass WindowDragger extends MouseAdapter {
2  
  MouseEvent mouseDownEvent;
3  
  JComponent src;
4  
  Pt rel;
5  
  Window window;
6  
  
7  
  *(MouseEvent *mouseDownEvent) {
8  
    if (mouseDownEvent == null) ret;
9  
    src = optCast JComponent(mouseDownEvent.getComponent());
10  
    if (src == null) ret;
11  
    window = getWindow(src);
12  
    if (window == null) ret;
13  
    
14  
    rel = pt(
15  
      mouseDownEvent.getXOnScreen()-window.getX(),
16  
      mouseDownEvent.getYOnScreen()-window.getY());
17  
      
18  
    addMouseAndMotionListener(src, this);
19  
  }
20  
21  
  public void mouseDragged(MouseEvent e) {
22  
    updatePosition(e);
23  
  }
24  
  
25  
  public void mouseReleased(MouseEvent e) {
26  
    if (e.getButton() != mouseDownEvent.getButton()) ret;
27  
    updatePosition(e);
28  
    removeMouseAdapter(src, this);
29  
    dragDone();
30  
  }
31  
  
32  
  void updatePosition(MouseEvent e) {
33  
    window.setLocation(
34  
      e.getXOnScreen()-rel.x,
35  
      e.getYOnScreen()-rel.y);
36  
  }
37  
  
38  
  void dragDone {}
39  
}

Author comment

Began life as a copy of #1018716

download  show line numbers  debug dex  old transpilations   

Travelled to 4 computer(s): bhatertpkbcr, ekrmjmnbrukm, mowyntqkapby, mqqgnosmbjvj

No comments. add comment

Snippet ID: #1033463
Snippet name: WindowDragger - drag da window around [for undecorated JFrames, OK]
Eternal ID of this version: #1033463/13
Text MD5: 08408e3b6ee184ca5d010e6f36eba2d9
Transpilation MD5: a16fe23f483afa00480aa94d7ac778c4
Author: stefan
Category: javax / gui
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2021-10-29 00:51:22
Source code size: 957 bytes / 39 lines
Pitched / IR pitched: No / No
Views / Downloads: 127 / 223
Version history: 12 change(s)
Referenced in: [show references]