limitedflicker.java
来自「learning java的源代码。书中每个实例都有相关的代码example。」· Java 代码 · 共 51 行
JAVA
51 行
//file: LimitedFlicker.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class LimitedFlicker extends TerribleFlicker { int oldX, oldY; public LimitedFlicker(Image i) { super(i); } public void mouseDragged(MouseEvent e) { imageX = e.getX( ); imageY = e.getY( ); Rectangle r = getAffectedArea(oldX, oldY, imageX, imageY, imageWidth, imageHeight); // update just the affected part of the component repaint(r); oldX = imageX; oldY = imageY; } private Rectangle getAffectedArea(int oldx, int oldy, int newx, int newy, int width, int height) { int x = Math.min(oldx, newx); int y = Math.min(oldy, newy); int w = (Math.max(oldx, newx) + width) - x; int h = (Math.max(oldy, newy) + height) - y; return new Rectangle(x, y, w, h); } public static void main(String[] args) { String imageFile = "L1-Light.jpg"; if (args.length > 0) imageFile = args[0]; Image i = Toolkit.getDefaultToolkit( ).getImage( TerribleFlicker.class.getResource(imageFile)); JFrame f = new JFrame("LimitedFlicker"); Container content = new Panel(new BorderLayout( )) { public void update(Graphics g) { paint(g); } }; content.add(new LimitedFlicker(i), BorderLayout.CENTER); f.setContentPane(content); f.setSize(300, 300); f.setLocation(100, 100); f.addWindowListener(new WindowAdapter( ) { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.setVisible(true); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?