📄 swtgraphics2d.java
字号:
* the y has to be modified with the ascent of the font. * * @see java.awt.Graphics#drawString(java.lang.String, int, int) */ public void drawString(String text, int x, int y) { float fm = gc.getFontMetrics().getAscent(); gc.drawString(text, x, (int) (y - fm), true); } /* (non-Javadoc) * @see java.awt.Graphics2D#drawString(java.lang.String, float, float) */ public void drawString(String text, float x, float y) { float fm = gc.getFontMetrics().getAscent(); gc.drawString(text, (int) x, (int) ( y - fm ), true); } /* (non-Javadoc) * @see java.awt.Graphics2D#drawString( * java.text.AttributedCharacterIterator, int, int) */ public void drawString(AttributedCharacterIterator iterator, int x, int y) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics2D#drawString( * java.text.AttributedCharacterIterator, float, float) */ public void drawString(AttributedCharacterIterator iterator, float x, float y) { // TODO Auto-generated method stub } /** fill an arbitrary shape on the swt graphic composite * with the current stroke and paint. * note that for consistency with the awt method, it is needed * to switch temporarily the foreground and background colors. * @see java.awt.Graphics2D#fill(java.awt.Shape) */ public void fill(Shape shape) { Path path = toSwtPath(shape); switchColors(); this.gc.fillPath(path); switchColors(); path.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics2D#hit(java.awt.Rectangle, java.awt.Shape, boolean) */ public boolean hit(Rectangle rect, Shape text, boolean onStroke) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see java.awt.Graphics2D#getDeviceConfiguration() */ public GraphicsConfiguration getDeviceConfiguration() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see java.awt.Graphics2D#setComposite(java.awt.Composite) */ public void setComposite(Composite comp) { // TODO Auto-generated method stub } /** * Set the paint associated with the swt graphic composite. * @see java.awt.Graphics2D#setPaint(java.awt.Paint) */ public void setPaint(Paint paint) { if (paint instanceof Color) { setColor((Color) paint); } else { throw new RuntimeException("Can only handle 'Color' at present."); } } /* (non-Javadoc) * @see java.awt.Graphics2D#setStroke(java.awt.Stroke) */ public void setStroke(Stroke stroke) { if (stroke instanceof BasicStroke) { BasicStroke bs = (BasicStroke) stroke; // linewidth gc.setLineWidth((int) bs.getLineWidth()); // line join switch (bs.getLineJoin()) { case BasicStroke.JOIN_BEVEL : gc.setLineJoin(SWT.JOIN_BEVEL); break; case BasicStroke.JOIN_MITER : gc.setLineJoin(SWT.JOIN_MITER); break; case BasicStroke.JOIN_ROUND : gc.setLineJoin(SWT.JOIN_ROUND); break; } // line cap switch (bs.getEndCap()) { case BasicStroke.CAP_BUTT : gc.setLineCap(SWT.CAP_FLAT); break; case BasicStroke.CAP_ROUND : gc.setLineCap(SWT.CAP_ROUND); break; case BasicStroke.CAP_SQUARE : gc.setLineCap(SWT.CAP_SQUARE); break; } // set the line style to solid by default gc.setLineStyle(SWT.LINE_SOLID); // apply dash style if any float[] dashes = bs.getDashArray(); if (dashes != null) { int[] swtDashes = new int[dashes.length]; for (int i = 0; i < swtDashes.length; i++) { swtDashes[i] = (int) dashes[i]; } gc.setLineDash(swtDashes); } } else { throw new RuntimeException( "Can only handle 'Basic Stroke' at present."); } } /* (non-Javadoc) * @see java.awt.Graphics2D#setRenderingHint(java.awt.RenderingHints.Key, * java.lang.Object) */ public void setRenderingHint(Key hintKey, Object hintValue) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics2D#getRenderingHint(java.awt.RenderingHints.Key) */ public Object getRenderingHint(Key hintKey) { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see java.awt.Graphics2D#setRenderingHints(java.util.Map) */ public void setRenderingHints(Map hints) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics2D#addRenderingHints(java.util.Map) */ public void addRenderingHints(Map hints) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics2D#getRenderingHints() */ public RenderingHints getRenderingHints() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see java.awt.Graphics2D#translate(int, int) */ public void translate(int x, int y) { Transform swtTransform = new Transform(gc.getDevice()); gc.getTransform(swtTransform); swtTransform.translate(x, y); gc.setTransform(swtTransform); swtTransform.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics2D#translate(double, double) */ public void translate(double tx, double ty) { translate((int) tx, (int) ty); } /* (non-Javadoc) * @see java.awt.Graphics2D#rotate(double) */ public void rotate(double theta) { Transform swtTransform = new Transform(gc.getDevice()); gc.getTransform(swtTransform); swtTransform.rotate( (float) (theta * 180 / Math.PI)); gc.setTransform(swtTransform); swtTransform.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics2D#rotate(double, double, double) */ public void rotate(double theta, double x, double y) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics2D#scale(double, double) */ public void scale(double scaleX, double scaleY) { Transform swtTransform = new Transform(gc.getDevice()); gc.getTransform(swtTransform); swtTransform.scale((float) scaleX, (float) scaleY); gc.setTransform(swtTransform); swtTransform.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics2D#shear(double, double) */ public void shear(double shearX, double shearY) { Transform swtTransform = new Transform(gc.getDevice()); gc.getTransform(swtTransform); Transform shear = new Transform(gc.getDevice(), 1f, (float) shearX, (float) shearY, 1f, 0, 0); swtTransform.multiply(shear); gc.setTransform(swtTransform); swtTransform.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics2D#transform(java.awt.geom.AffineTransform) */ public void transform(AffineTransform Tx) { Transform swtTransform = new Transform(gc.getDevice()); gc.getTransform(swtTransform); Transform swtMatrix = toSwtTransform(Tx); swtTransform.multiply(swtMatrix); gc.setTransform(swtTransform); swtMatrix.dispose(); swtTransform.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics2D#setTransform(java.awt.geom.AffineTransform) */ public void setTransform(AffineTransform Tx) { gc.setTransform(toSwtTransform(Tx)); } /* (non-Javadoc) * @see java.awt.Graphics2D#getTransform() */ public AffineTransform getTransform() { Transform swtTransform = new Transform(gc.getDevice()); gc.getTransform(swtTransform); AffineTransform awtTransform = toAwtTransform(swtTransform); swtTransform.dispose(); return awtTransform; } /* (non-Javadoc) * @see java.awt.Graphics2D#getPaint() */ public Paint getPaint() { return SWTUtils.toAwtColor(gc.getForeground()); } /* (non-Javadoc) * @see java.awt.Graphics2D#getComposite() */ public Composite getComposite() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see java.awt.Graphics2D#setBackground(java.awt.Color) */ public void setBackground(Color color) { gc.getBackground().dispose(); org.eclipse.swt.graphics.Color swtColor = SWTUtils.toSwtColor(gc.getDevice(), color); gc.setBackground(swtColor); swtColor.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics2D#getBackground() */ public Color getBackground() { return SWTUtils.toAwtColor(gc.getBackground()); } /* (non-Javadoc) * @see java.awt.Graphics2D#getStroke() */ public Stroke getStroke() { return new BasicStroke(gc.getLineWidth(), gc.getLineCap(), gc.getLineJoin()); } /* (non-Javadoc) * @see java.awt.Graphics2D#clip(java.awt.Shape) */ public void clip(Shape s) { Path path = toSwtPath(s); gc.setClipping(path); path.dispose(); } /* (non-Javadoc) * @see java.awt.Graphics2D#getFontRenderContext() */ public FontRenderContext getFontRenderContext() { FontRenderContext fontRenderContext = new FontRenderContext(new AffineTransform(), true, true); return fontRenderContext; } /* (non-Javadoc) * @see java.awt.Graphics2D#drawGlyphVector(java.awt.font.GlyphVector, * float, float) */ public void drawGlyphVector(GlyphVector g, float x, float y) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see java.awt.Graphics#create() */ public Graphics create() {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -