📄 windowsnapper.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -