abstractgraphics.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 792 行 · 第 1/2 页
JAVA
792 行
/*
* $Id: AbstractGraphics.java,v 1.7 2004/01/04 15:40:02 epr Exp $
*/
package org.jnode.awt.util;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Composite;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.Paint;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.Stroke;
import java.awt.Toolkit;
import java.awt.RenderingHints.Key;
import java.awt.geom.AffineTransform;
import java.awt.geom.Arc2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.awt.image.ImageObserver;
import java.awt.image.RenderedImage;
import java.awt.image.renderable.RenderableImage;
import java.text.AttributedCharacterIterator;
import java.util.Map;
import org.jnode.awt.peer.JNodeToolkit;
/**
* @author epr
*/
public abstract class AbstractGraphics extends Graphics2D {
private static final Stroke DEFAULT_STROKE = new BasicStroke();
private Color bgColor = Color.WHITE;
private Color fgColor = Color.BLACK;
private Color xorColor = null;
private Font font = new Font("Luxi Sans", Font.PLAIN, 10);
Shape clip;
private Stroke stroke = DEFAULT_STROKE;
AffineTransform transform = new AffineTransform();
private Paint paint = Color.WHITE;
private Composite composite;
/**
* Initialize this instance
* @param width
* @param height
*/
public AbstractGraphics(int width, int height) {
clip = new Rectangle(0, 0, width, height);
}
/**
* Initialize this instance as a copy of the given instance
* @param src
*/
public AbstractGraphics(AbstractGraphics src) {
this.bgColor = src.bgColor;
this.fgColor = src.fgColor;
this.xorColor = src.xorColor;
this.font = src.font;
this.clip = src.clip;
this.stroke = src.stroke;
this.transform = new AffineTransform(src.transform);
this.paint = src.paint;
this.composite = src.composite;
}
/**
* @param hints
* @see java.awt.Graphics2D#addRenderingHints(java.util.Map)
*/
public void addRenderingHints(Map hints) {
// TODO Auto-generated method stub
}
/**
* @param s
* @see java.awt.Graphics2D#clip(java.awt.Shape)
*/
public void clip(Shape s) {
this.clip = s;
}
/**
* @param shape
* @see java.awt.Graphics2D#draw(java.awt.Shape)
*/
public abstract void draw(Shape shape);
/**
* @param image
* @param op
* @param x
* @param y
* @see java.awt.Graphics2D#drawImage(java.awt.image.BufferedImage, java.awt.image.BufferedImageOp, int, int)
*/
public void drawImage(BufferedImage image, BufferedImageOp op, int x, int y) {
final Image img1 = op.filter(image, null);
drawImage(img1, new AffineTransform(1f, 0f, 0f, 1f, x, y), null);
}
/**
* @param image
* @param xform
* @param obs
* @see java.awt.Graphics2D#drawImage(java.awt.Image, java.awt.geom.AffineTransform, java.awt.image.ImageObserver)
* @return boolean
*/
public boolean drawImage(Image image, AffineTransform xform, ImageObserver obs) {
// TODO Auto-generated method stub
return false;
}
/**
* @param image
* @param xform
* @see java.awt.Graphics2D#drawRenderableImage(java.awt.image.renderable.RenderableImage, java.awt.geom.AffineTransform)
*/
public void drawRenderableImage(RenderableImage image, AffineTransform xform) {
// TODO Auto-generated method stub
}
/**
* @param image
* @param xform
* @see java.awt.Graphics2D#drawRenderedImage(java.awt.image.RenderedImage, java.awt.geom.AffineTransform)
*/
public void drawRenderedImage(RenderedImage image, AffineTransform xform) {
// TODO Auto-generated method stub
}
/**
* @param iterator
* @param x
* @param y
* @see java.awt.Graphics2D#drawString(java.text.AttributedCharacterIterator, float, float)
*/
public void drawString(AttributedCharacterIterator iterator, float x, float y) {
// TODO Auto-generated method stub
}
/**
* @param iterator
* @param x
* @param y
* @see java.awt.Graphics2D#drawString(java.text.AttributedCharacterIterator, int, int)
*/
public void drawString(AttributedCharacterIterator iterator, int x, int y) {
drawString(iterator, (float) x, (float) y);
}
/**
* @param text
* @param x
* @param y
* @see java.awt.Graphics2D#drawString(java.lang.String, float, float)
*/
public void drawString(String text, float x, float y)
{
this.drawString(text,Math.round(x),Math.round(y));
}
/**
* @param text
* @param x
* @param y
* @see java.awt.Graphics#drawString(java.lang.String, int, int)
*/
public void drawString(String text, int x, int y) {
System.out.println("drawText():" + text);
if(this.font != null)
((JNodeToolkit)Toolkit.getDefaultToolkit()).getFontManager().drawText(this,text,font,x,y);
}
/**
* @param shape
* @see java.awt.Graphics2D#fill(java.awt.Shape)
*/
public abstract void fill(Shape shape);
/**
* @see java.awt.Graphics2D#getBackground()
* @return The background color
*/
public Color getBackground() {
return bgColor;
}
/**
* @see java.awt.Graphics2D#getComposite()
* @return Composite
*/
public Composite getComposite() {
return composite;
}
/**
* @see java.awt.Graphics2D#getDeviceConfiguration()
* @return The configuration
*/
public abstract GraphicsConfiguration getDeviceConfiguration();
/**
* @see java.awt.Graphics2D#getPaint()
* @return Paint
*/
public Paint getPaint() {
return paint;
}
/**
* @param hintKey
* @see java.awt.Graphics2D#getRenderingHint(java.awt.RenderingHints.Key)
* @return Object
*/
public Object getRenderingHint(Key hintKey) {
// TODO Auto-generated method stub
return null;
}
/**
* @see java.awt.Graphics2D#getRenderingHints()
* @return The hints
*/
public RenderingHints getRenderingHints() {
// TODO Auto-generated method stub
return null;
}
/**
* @see java.awt.Graphics2D#getStroke()
* @return The stroke
*/
public Stroke getStroke() {
return stroke;
}
/**
* @see java.awt.Graphics2D#getTransform()
* @return The transform
*/
public AffineTransform getTransform() {
return new AffineTransform(transform);
}
/**
* @param rect
* @param text
* @param onStroke
* @see java.awt.Graphics2D#hit(java.awt.Rectangle, java.awt.Shape, boolean)
* @return boolean
*/
public boolean hit(Rectangle rect, Shape text, boolean onStroke) {
// TODO Auto-generated method stub
return false;
}
/**
* @param theta
* @param x
* @param y
* @see java.awt.Graphics2D#rotate(double, double, double)
*/
public void rotate(double theta, double x, double y) {
transform(AffineTransform.getRotateInstance(theta, x, y));
}
/**
* @param theta
* @see java.awt.Graphics2D#rotate(double)
*/
public void rotate(double theta) {
transform(AffineTransform.getRotateInstance(theta));
}
/**
* @param scaleX
* @param scaleY
* @see java.awt.Graphics2D#scale(double, double)
*/
public void scale(double scaleX, double scaleY) {
transform(AffineTransform.getScaleInstance(scaleX, scaleY));
}
/**
* @param color
* @see java.awt.Graphics2D#setBackground(java.awt.Color)
*/
public void setBackground(Color color) {
this.bgColor = color;
}
/**
* @param comp
* @see java.awt.Graphics2D#setComposite(java.awt.Composite)
*/
public void setComposite(Composite comp) {
this.composite = comp;
}
/**
* @param paint
* @see java.awt.Graphics2D#setPaint(java.awt.Paint)
*/
public void setPaint(Paint paint) {
if (paint != null) {
this.paint = paint;
}
}
/**
* @param hintKey
* @param hintValue
* @see java.awt.Graphics2D#setRenderingHint(java.awt.RenderingHints.Key, java.lang.Object)
*/
public void setRenderingHint(Key hintKey, Object hintValue) {
// TODO Auto-generated method stub
}
/**
* @param hints
* @see java.awt.Graphics2D#setRenderingHints(java.util.Map)
*/
public void setRenderingHints(Map hints) {
// TODO Auto-generated method stub
}
/**
* @param stroke
* @see java.awt.Graphics2D#setStroke(java.awt.Stroke)
*/
public void setStroke(Stroke stroke) {
this.stroke = stroke;
}
/**
* @param Tx
* @see java.awt.Graphics2D#setTransform(java.awt.geom.AffineTransform)
*/
public void setTransform(AffineTransform Tx) {
this.transform = Tx;
}
/**
* @param shearX
* @param shearY
* @see java.awt.Graphics2D#shear(double, double)
*/
public void shear(double shearX, double shearY) {
transform(AffineTransform.getScaleInstance(shearX, shearY));
}
/**
* @param Tx
* @see java.awt.Graphics2D#transform(java.awt.geom.AffineTransform)
*/
public void transform(AffineTransform Tx) {
transform.concatenate(Tx);
}
/**
* @param tx
* @param ty
* @see java.awt.Graphics2D#translate(double, double)
*/
public void translate(double tx, double ty) {
transform(AffineTransform.getTranslateInstance(tx, ty));
}
/**
* @param x
* @param y
* @see java.awt.Graphics#translate(int, int)
*/
public void translate(int x, int y) {
transform(AffineTransform.getTranslateInstance(x, y));
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?