⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paintsurface.java

📁 eclipse 的程序源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	 *         might be)	 */	public PaintTool getPaintTool() {		return (paintSession != null && paintSession instanceof PaintTool) ?			(PaintTool)paintSession : null;	}	/**	 * Returns the current position in an interactive operation.	 *	 * @return the last known position of the pointer	 */	public Point getCurrentPosition() {		return currentPosition;	}	/**	 * Draws a Figure object to the screen and to the backing store permanently.	 * 	 * @param object the object to draw onscreen	 */	public void drawFigure(Figure object) {		object.draw(imageFDC);		object.draw(displayFDC);	}	/**	 * Adds a Figure object to the active rubberband selection.	 * <p>	 * This object will be drawn to the screen as a preview and refreshed appropriately	 * until the selection is either cleared or committed.	 * </p>	 * 	 * @param object the object to add to the selection	 */	public void addRubberbandSelection(Figure object) {		rubberband.add(object);		if (! isRubberbandHidden()) object.draw(displayFDC);	}	/**	 * Clears the active rubberband selection.	 * <p>	 * Erases any rubberband objects on the screen then clears the selection.	 * </p>	 */	public void clearRubberbandSelection() {		if (! isRubberbandHidden()) {			Region region = new Region();			rubberband.addDamagedRegion(displayFDC, region);			Rectangle r = region.getBounds();			paintCanvas.redraw(r.x, r.y, r.width, r.height, true);			region.dispose();		}		rubberband.clear();	}	/**	 * Commits the active rubberband selection.	 * <p>	 * Redraws any rubberband objects on the screen as permanent objects then clears the selection.	 * </p>	 */	public void commitRubberbandSelection() {		rubberband.draw(imageFDC);		if (isRubberbandHidden()) rubberband.draw(displayFDC);		rubberband.clear();	}		/**	 * Hides the rubberband (but does not eliminate it).	 * <p>	 * Increments by one the rubberband "hide" nesting count.  The rubberband	 * is hidden from view (but remains active) if it wasn't already hidden.	 * </p>	 */	public void hideRubberband() {		if (rubberbandHiddenNestingCount++ <= 0) {			Region region = new Region();			rubberband.addDamagedRegion(displayFDC, region);			Rectangle r = region.getBounds();			paintCanvas.redraw(r.x, r.y, r.width, r.height, true);			region.dispose();		}	}			/**	 * Shows (un-hides) the rubberband.	 * <p>	 * Decrements by one the rubberband "hide" nesting count.  The rubberband	 * is only made visible when showRubberband() has been called once for each	 * previous hideRubberband().  It is not permitted to call showRubberband() if	 * the rubber band is not presently hidden.	 * </p>	 */	public void showRubberband() {		if (rubberbandHiddenNestingCount <= 0)			throw new IllegalStateException("rubberbandHiddenNestingCount > 0");		if (--rubberbandHiddenNestingCount == 0) {			rubberband.draw(displayFDC);		}	}		/**	 * Determines if the rubberband is hidden.	 * 	 * @return true iff the rubber is hidden	 */	public boolean isRubberbandHidden() {		return rubberbandHiddenNestingCount > 0;	}	/**	 * Handles a horizontal scroll event	 * 	 * @param scrollbar the horizontal scroll bar that posted this event	 */	public void scrollHorizontally(ScrollBar scrollBar) {		if (image == null) return;		if (imageWidth > visibleWidth) {			final int oldOffset = displayFDC.xOffset;			final int newOffset = Math.min(scrollBar.getSelection(), imageWidth - visibleWidth);			if (oldOffset != newOffset) {				paintCanvas.update();				displayFDC.xOffset = newOffset;				paintCanvas.scroll(Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0), 0,					visibleWidth, visibleHeight, false);			}		}	}	/**	 * Handles a vertical scroll event	 * 	 * @param scrollbar the vertical scroll bar that posted this event	 */	public void scrollVertically(ScrollBar scrollBar) {		if (image == null) return;		if (imageHeight > visibleHeight) {			final int oldOffset = displayFDC.yOffset;			final int newOffset = Math.min(scrollBar.getSelection(), imageHeight - visibleHeight);			if (oldOffset != newOffset) {				paintCanvas.update();				displayFDC.yOffset = newOffset;				paintCanvas.scroll(0, Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0),					visibleWidth, visibleHeight, false);			}		}	}		/**	 * Handles resize events	 */	private void handleResize() {		paintCanvas.update();		Rectangle visibleRect = paintCanvas.getClientArea();		visibleWidth = visibleRect.width;		visibleHeight = visibleRect.height;		ScrollBar horizontal = paintCanvas.getHorizontalBar();		if (horizontal != null) {			displayFDC.xOffset = Math.min(horizontal.getSelection(), imageWidth - visibleWidth);			if (imageWidth <= visibleWidth) {				horizontal.setEnabled(false);				horizontal.setSelection(0);			} else {				horizontal.setEnabled(true);				horizontal.setValues(displayFDC.xOffset, 0, imageWidth, visibleWidth,					8, visibleWidth);			}		}		ScrollBar vertical = paintCanvas.getVerticalBar();		if (vertical != null) {			displayFDC.yOffset = Math.min(vertical.getSelection(), imageHeight - visibleHeight);			if (imageHeight <= visibleHeight) {				vertical.setEnabled(false);				vertical.setSelection(0);			} else {				vertical.setEnabled(true);				vertical.setValues(displayFDC.yOffset, 0, imageHeight, visibleHeight,					8, visibleHeight);			}		}	}	/**	 * Virtualizes MouseEvent coordinates and stores the current position.	 */	private void processMouseEventCoordinates(MouseEvent event) {		currentPosition.x = event.x =			Math.min(Math.max(event.x, 0), visibleWidth - 1) + displayFDC.xOffset;		currentPosition.y = event.y =			Math.min(Math.max(event.y, 0), visibleHeight - 1) + displayFDC.yOffset;	}		/**	 * Clears the status bar.	 */	public void clearStatus() {		statusActionInfo = "";		statusMessageInfo = "";		statusCoordInfo = "";		updateStatus();	}	/**	 * Sets the status bar action text.	 *	 * @param action the action in progress, null to clear	 */	public void setStatusAction(String action) {		statusActionInfo = (action != null) ? action : "";		updateStatus();	}		/**	 * Sets the status bar message text.	 * 	 * @param message the message to display, null to clear	 */	public void setStatusMessage(String message) {		statusMessageInfo = (message != null) ? message : "";		updateStatus();	}	/**	 * Sets the coordinates in the status bar.	 * 	 * @param coord the coordinates to display, null to clear	 */	public void setStatusCoord(Point coord) {		statusCoordInfo = (coord != null) ? PaintExample.getResourceString("status.Coord.format", new Object[]			{ new Integer(coord.x), new Integer(coord.y)}) : "";		updateStatus();	}	/**	 * Sets the coordinate range in the status bar.	 * 	 * @param a the "from" coordinate, must not be null	 * @param b the "to" coordinate, must not be null	 */	public void setStatusCoordRange(Point a, Point b) {		statusCoordInfo = PaintExample.getResourceString("status.CoordRange.format", new Object[]			{ new Integer(a.x), new Integer(a.y), new Integer(b.x), new Integer(b.y)});		updateStatus();	}	/**	 * Updates the display.	 */	private void updateStatus() {		statusText.setText(			PaintExample.getResourceString("status.Bar.format", new Object[]			{ statusActionInfo, statusMessageInfo, statusCoordInfo }));	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -