📄 swtgraphics2d.java
字号:
// TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see java.awt.Graphics#getColor() */ public Color getColor() { return SWTUtils.toAwtColor(gc.getForeground()); } /* (non-Javadoc) * @see java.awt.Graphics#setColor(java.awt.Color) */ public void setColor(Color color) { org.eclipse.swt.graphics.Color swtColor = getSwtColorFromPool(color); gc.setForeground(swtColor); } /* (non-Javadoc) * @see java.awt.Graphics#setPaintMode() */ public void setPaintMode() { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#setXORMode(java.awt.Color) */ public void setXORMode(Color color) { // TODO Auto-generated method stub } /** * Returns the font in form of an awt font created * with the parameters of the font of the swt graphic * composite. * @see java.awt.Graphics#getFont() */ public Font getFont() { // retrieve the swt font description in an os indept way FontData[] fontData = gc.getFont().getFontData(); // create a new awt font with the appropiate data return SWTUtils.toAwtFont(gc.getDevice(), fontData[0], true); } /** * Set the font swt graphic composite from the specified * awt font. Be careful that the newly created swt font * must be disposed separately. * @see java.awt.Graphics#setFont(java.awt.Font) */ public void setFont(Font font) { org.eclipse.swt.graphics.Font swtFont = getSwtFontFromPool(font); gc.setFont(swtFont); } /* (non-Javadoc) * @see java.awt.Graphics#getFontMetrics(java.awt.Font) */ public FontMetrics getFontMetrics(Font font) { return SWTUtils.DUMMY_PANEL.getFontMetrics(font); } /* (non-Javadoc) * @see java.awt.Graphics#getClipBounds() */ public Rectangle getClipBounds() { org.eclipse.swt.graphics.Rectangle clip = gc.getClipping(); return new Rectangle(clip.x, clip.y, clip.width, clip.height); } /* (non-Javadoc) * @see java.awt.Graphics#clipRect(int, int, int, int) */ public void clipRect(int x, int y, int width, int height) { org.eclipse.swt.graphics.Rectangle clip = gc.getClipping(); clip.intersects(x, y, width, height); gc.setClipping(clip); } /* (non-Javadoc) * @see java.awt.Graphics#setClip(int, int, int, int) */ public void setClip(int x, int y, int width, int height) { gc.setClipping(x, y, width, height); } /* (non-Javadoc) * @see java.awt.Graphics#getClip() */ public Shape getClip() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see java.awt.Graphics#setClip(java.awt.Shape) */ public void setClip(Shape clip) { if (clip == null) return; Path clipPath = toSwtPath(clip); gc.setClipping(clipPath); clipPath.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics#copyArea(int, int, int, int, int, int) */ public void copyArea(int x, int y, int width, int height, int dx, int dy) { // TODO Auto-generated method stub } /** * Draws a line on the swt graphic composite. * @see java.awt.Graphics#drawLine(int, int, int, int) */ public void drawLine(int x1, int y1, int x2, int y2) { gc.drawLine(x1, y1, x2, y2); } /** * Fill a rectangle area on the swt graphic composite. * The <code>fillRectangle</code> method of the <code>GC</code> * class uses the background color so we must switch colors. * @see java.awt.Graphics#fillRect(int, int, int, int) */ public void fillRect(int x, int y, int width, int height) { this.switchColors(); gc.fillRectangle(x, y, width, height); this.switchColors(); } /* (non-Javadoc) * @see java.awt.Graphics#clearRect(int, int, int, int) */ public void clearRect(int x, int y, int width, int height) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#drawRoundRect(int, int, int, int, int, int) */ public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#fillRoundRect(int, int, int, int, int, int) */ public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#drawOval(int, int, int, int) */ public void drawOval(int x, int y, int width, int height) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#fillOval(int, int, int, int) */ public void fillOval(int x, int y, int width, int height) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#drawArc(int, int, int, int, int, int) */ public void drawArc(int x, int y, int width, int height, int arcStart, int arcAngle) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#fillArc(int, int, int, int, int, int) */ public void fillArc(int x, int y, int width, int height, int arcStart, int arcAngle) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#drawPolyline(int[], int[], int) */ public void drawPolyline(int [] xPoints, int [] yPoints, int npoints) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#drawPolygon(int[], int[], int) */ public void drawPolygon(int [] xPoints, int [] yPoints, int npoints) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#fillPolygon(int[], int[], int) */ public void fillPolygon(int [] xPoints, int [] yPoints, int npoints) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#drawImage(java.awt.Image, int, int, * java.awt.image.ImageObserver) */ public boolean drawImage(Image image, int x, int y, ImageObserver observer) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see java.awt.Graphics#drawImage(java.awt.Image, int, int, int, int, * java.awt.image.ImageObserver) */ public boolean drawImage(Image image, int x, int y, int width, int height, ImageObserver observer) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see java.awt.Graphics#drawImage(java.awt.Image, int, int, * java.awt.Color, java.awt.image.ImageObserver) */ public boolean drawImage(Image image, int x, int y, Color bgcolor, ImageObserver observer) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see java.awt.Graphics#drawImage(java.awt.Image, int, int, int, int, * java.awt.Color, java.awt.image.ImageObserver) */ public boolean drawImage(Image image, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see java.awt.Graphics#drawImage(java.awt.Image, int, int, int, int, * int, int, int, int, java.awt.image.ImageObserver) */ public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see java.awt.Graphics#drawImage(java.awt.Image, int, int, int, int, * int, int, int, int, java.awt.Color, java.awt.image.ImageObserver) */ public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see java.awt.Graphics#dispose() */ public void dispose() { // we dispose resources we own but user must dispose gc disposeResourcePool(); } static ImageData convertToSWT(BufferedImage bufferedImage) { if (bufferedImage.getColorModel() instanceof DirectColorModel) { DirectColorModel colorModel = (DirectColorModel) bufferedImage.getColorModel(); PaletteData palette = new PaletteData(colorModel.getRedMask(), colorModel.getGreenMask(), colorModel.getBlueMask()); ImageData data = new ImageData(bufferedImage.getWidth(), bufferedImage.getHeight(), colorModel.getPixelSize(), palette); WritableRaster raster = bufferedImage.getRaster(); int[] pixelArray = new int[3]; for (int y = 0; y < data.height; y++) { for (int x = 0; x < data.width; x++) { raster.getPixel(x, y, pixelArray); int pixel = palette.getPixel(new RGB(pixelArray[0], pixelArray[1], pixelArray[2])); data.setPixel(x, y, pixel); } } return data; } else if (bufferedImage.getColorModel() instanceof IndexColorModel) { IndexColorModel colorModel = (IndexColorModel) bufferedImage.getColorModel(); int size = colorModel.getMapSize(); byte[] reds = new byte[size]; byte[] greens = new byte[size]; byte[] blues = new byte[size]; colorModel.getReds(reds); colorModel.getGreens(greens); colorModel.getBlues(blues); RGB[] rgbs = new RGB[size]; for (int i = 0; i < rgbs.length; i++) { rgbs[i] = new RGB(reds[i] & 0xFF, greens[i] & 0xFF, blues[i] & 0xFF); } PaletteData palette = new PaletteData(rgbs); ImageData data = new ImageData(bufferedImage.getWidth(), bufferedImage.getHeight(), colorModel.getPixelSize(), palette); data.transparentPixel = colorModel.getTransparentPixel(); WritableRaster raster = bufferedImage.getRaster(); int[] pixelArray = new int[1]; for (int y = 0; y < data.height; y++) { for (int x = 0; x < data.width; x++) { raster.getPixel(x, y, pixelArray); data.setPixel(x, y, pixelArray[0]); } } return data; } return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -