windowsnapper.java
来自「oraily的Swing hacks code」· Java 代码 · 共 50 行
JAVA
50 行
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class WindowSnapper extends ComponentAdapter { public WindowSnapper() { } private boolean locked = false; private int sd = 50; public void componentMoved(ComponentEvent evt) { if(locked) return; Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); int nx = evt.getComponent().getX(); int ny = evt.getComponent().getY(); // top if(ny < 0+sd) { ny = 0; } // left if(nx < 0+sd) { nx = 0; } // right if(nx > size.getWidth()-evt.getComponent().getWidth()-sd) { nx = (int)size.getWidth()-evt.getComponent().getWidth(); } // bottom if(ny > size.getHeight()-evt.getComponent().getHeight()-sd) { ny = (int)size.getHeight()-evt.getComponent().getHeight(); } // make sure we don't get into a recursive loop when the // set location generates more events locked = true; evt.getComponent().setLocation(nx,ny); locked = false; } public static void main(String[] args) { JFrame frame = new JFrame("Hack #123: Window Snapping"); JLabel label = new JLabel("Move this window's title bar to demonstrate screen edge snapping."); frame.getContentPane().add(label); frame.pack(); frame.addComponentListener(new WindowSnapper()); frame.setVisible(true); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?