📄 graphics.java
字号:
Color tl = color.brighter();
Color br = color.darker();
if (!raised) {
Color tmp = tl;
tl = br;
br = tmp;
}
int x1 = x;
int y1 = y;
int x2 = x + width;
int y2 = y + height;
setColor(tl);
drawLine(x1, y1, x2, y1);
drawLine(x1, y2, x1, y1);
setColor(br);
drawLine(x2, y1, x2, y2);
drawLine(x2, y2, x1, y2);
setColor(color);
}
/**
* Fills the specified rectangle with a 3D effect
*
* @param x The X coordinate of the upper left corner of the fill rect.
* @param y The Y coordinate of the upper left corner of the fill rect.
* @param width The width of the fill rect.
* @param height The height of the fill rect.
* @param raised <code>true</code> if the rectangle appears raised,
* <code>false</code> if it should appear etched.
*/
public void fill3DRect(int x, int y, int width, int height, boolean raised) {
fillRect(x, y, width, height);
draw3DRect(x, y, width - 1, height - 1, raised);
}
/*************************************************************************/
/**
* Draws the outline of the specified rectangle with a 3D effect
*
* @param x The X coordinate of the upper left corner of the draw rect.
* @param y The Y coordinate of the upper left corner of the draw rect.
* @param width The width of the draw rect.
* @param height The height of the draw rect.
* @param raised <code>true</code> if the rectangle appears raised,
* <code>false</code> if it should appear etched.
*/
public void drawRoundRect(int x, int y, int width, int height, boolean raised) {
// FIXME: ???
}
/*************************************************************************/
/**
* Draws an oval that just fits within the specified rectangle.
*
* @param x The X coordinate of the upper left corner of the rect.
* @param y The Y coordinate of the upper left corner of the rect.
* @param width The width of the rect.
* @param height The height of the rect.
*/
public abstract void drawOval(int x, int y, int width, int height);
/*************************************************************************/
/**
* Fills an oval that just fits within the specified rectangle.
*
* @param x The X coordinate of the upper left corner of the rect.
* @param y The Y coordinate of the upper left corner of the rect.
* @param width The width of the rect.
* @param height The height of the rect.
*/
public abstract void fillOval(int x, int y, int width, int height);
/*************************************************************************/
/**
* Draws an arc using the specified bounding rectangle and the specified
* angle parameter. The arc is centered at the center of the rectangle.
* The arc starts at the arcAngle position and extend for arcAngle
* degrees. The degree origin is at the 3 o'clock position.
*
* @param x The X coordinate of the upper left corner of the rect.
* @param y The Y coordinate of the upper left corner of the rect.
* @param width The width of the rect.
* @param height The height of the rect.
* @param arcStart The beginning angle of the arc.
* @param arcAngle The extent of the arc.
*/
public abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle);
/*************************************************************************/
/**
* Fills the arc define by the specified bounding rectangle and the specified
* angle parameter. The arc is centered at the center of the rectangle.
* The arc starts at the arcAngle position and extend for arcAngle
* degrees. The degree origin is at the 3 o'clock position.
*
* @param x The X coordinate of the upper left corner of the rect.
* @param y The Y coordinate of the upper left corner of the rect.
* @param width The width of the rect.
* @param height The height of the rect.
* @param arcStart The beginning angle of the arc.
* @param arcAngle The extent of the arc.
*/
public abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle);
/*************************************************************************/
/**
* Draws a series of interconnected lines determined by the arrays
* of corresponding x and y coordinates.
*
* @param xPoints The X coordinate array.
* @param yPoints The Y coordinate array.
* @param npoints The number of points to draw.
*/
public abstract void drawPolyline(int xPoints[], int yPoints[], int npoints);
/*************************************************************************/
/**
* Draws a series of interconnected lines determined by the arrays
* of corresponding x and y coordinates. The figure is closed if necessary
* by connecting the first and last points.
*
* @param xPoints The X coordinate array.
* @param yPoints The Y coordinate array.
* @param npoints The number of points to draw.
*/
public abstract void drawPolygon(int xPoints[], int yPoints[], int npoints);
/*************************************************************************/
/**
* Draws the specified polygon.
*
* @param polygon The polygon to draw.
*/
public void drawPolygon(Polygon polygon) {
drawPolygon(polygon.xpoints, polygon.ypoints, polygon.npoints);
}
/*************************************************************************/
/**
* Fills the polygon determined by the arrays
* of corresponding x and y coordinates.
*
* @param xPoints The X coordinate array.
* @param yPoints The Y coordinate array.
* @param npoints The number of points to draw.
*/
public abstract void fillPolygon(int xPoints[], int yPoints[], int npoints);
/*************************************************************************/
/**
* Fills the specified polygon
*
* @param polygon The polygon to fill.
*/
public void fillPolygon(Polygon polygon) {
fillPolygon(polygon.xpoints, polygon.ypoints, polygon.npoints);
}
/*************************************************************************/
/**
* Draws the specified string starting at the specified point.
*
* @param string The string to draw.
* @param x The X coordinate of the point to draw at.
* @param y The Y coordinate of the point to draw at.
*/
public abstract void drawString(String string, int x, int y);
/*************************************************************************/
/**
* Draws the specified characters starting at the specified point.
*
* @param data The array of characters to draw.
* @param offset The offset into the array to start drawing characters from.
* @param length The number of characters to draw.
* @param x The X coordinate of the point to draw at.
* @param y The Y coordinate of the point to draw at.
*/
public void drawChars(char data[], int offset, int length, int x, int y) {
drawString(new String(data, offset, length), x, y);
}
/*************************************************************************/
/**
* Draws the specified bytes as text starting at the specified point.
*
* @param data The array of bytes to draw.
* @param offset The offset into the array to start drawing bytes from.
* @param length The number of bytes to draw.
* @param x The X coordinate of the point to draw at.
* @param y The Y coordinate of the point to draw at.
*/
public void drawChars(byte data[], int offset, int length, int x, int y) {
drawString(new String(data, offset, length), x, y);
}
/*
public abstract void drawString(AttributedCharacterIterator iterator,
int x, int y)
*/
public void drawBytes(byte[] data, int offset, int length, int x, int y) {
String str = new String(data, offset, length);
drawString(str, x, y);
}
/*************************************************************************/
/**
* Draws all of the image that is available and returns. If the image
* is not completely loaded, <code>false</code> is returned and
* the specified iamge observer is notified as more data becomes
* available.
*
* @param image The image to draw.
* @param x The X coordinate of the point to draw at.
* @param y The Y coordinate of the point to draw at.
* @param observer The image observer to notify as data becomes available.
*
* @return <code>true</code> if all the image data is available,
* <code>false</code> otherwise.
*/
public abstract boolean drawImage(Image image, int x, int y, ImageObserver observer);
/*************************************************************************/
/**
* Draws all of the image that is available and returns. The image
* is scaled to fit in the specified rectangle. If the image
* is not completely loaded, <code>false</code> is returned and
* the specified iamge observer is notified as more data becomes
* available.
*
* @param image The image to draw.
* @param x The X coordinate of the point to draw at.
* @param y The Y coordinate of the point to draw at.
* @param width The width of the rectangle to draw in.
* @param height The height of the rectangle to draw in.
* @param observer The image observer to notify as data becomes available.
*
* @return <code>true</code> if all the image data is available,
* <code>false</code> otherwise.
*/
public abstract boolean drawImage(Image image, int x, int y, int width, int height, ImageObserver observer);
/*************************************************************************/
/**
* Draws all of the image that is available and returns. If the image
* is not completely loaded, <code>false</code> is returned and
* the specified iamge observer is notified as more data becomes
* available.
*
* @param image The image to draw.
* @param x The X coordinate of the point to draw at.
* @param y The Y coordinate of the point to draw at.
* @param bgcolor The background color to use for the image.
* @param observer The image observer to notify as data becomes available.
*
* @return <code>true</code> if all the image data is available,
* <code>false</code> otherwise.
*/
public abstract boolean drawImage(Image image, int x, int y, Color bgcolor, ImageObserver observer);
/*************************************************************************/
/**
* Draws all of the image that is available and returns. The image
* is scaled to fit in the specified rectangle. If the image
* is not completely loaded, <code>false</code> is returned and
* the specified iamge observer is notified as more data becomes
* available.
*
* @param image The image to draw.
* @param x The X coordinate of the point to draw at.
* @param y The Y coordinate of the point to draw at.
* @param width The width of the rectangle to draw in.
* @param height The height of the rectangle to draw in.
* @param bgcolor The background color to use for the image.
* @param observer The image observer to notify as data becomes available.
*
* @return <code>true</code> if all the image data is available,
* <code>false</code> otherwise.
*/
public abstract boolean drawImage(Image image, int x, int y, int width, int height, Color bgcolor, ImageObserver observer);
/*************************************************************************/
/**
* FIXME: Write Javadocs for this when you understand it.
*/
public abstract boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer);
/*************************************************************************/
/**
* FIXME: Write Javadocs for this when you understand it.
*/
public abstract boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer);
/*************************************************************************/
/**
* Free any resources held by this graphics context immediately instead
* of waiting for the object to be garbage collected and finalized.
*/
public abstract void dispose();
/*************************************************************************/
/**
* Frees the resources held by this graphics context when it is
* garbage collected.
*/
public void finalize() {
dispose();
}
/*************************************************************************/
/**
* Returns a string representation of this object.
*
* @param A string representation of this object.
*/
public String toString() {
return (super.toString());
}
public boolean hitClip(int x, int y, int width, int height) {
throw new UnsupportedOperationException("not implemented yet");
}
public Rectangle getClipBounds(Rectangle r) {
Rectangle clipBounds = getClipBounds();
if (r == null)
return clipBounds;
r.x = clipBounds.x;
r.y = clipBounds.y;
r.width = clipBounds.width;
r.height = clipBounds.height;
return r;
}
} // class Graphics
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -