List of usage examples for java.awt Graphics fillRect
public abstract void fillRect(int x, int y, int width, int height);
From source file:org.pmedv.blackboard.components.BoardEditor.java
public void updateStatusBar() { log.debug("editor update"); StringBuffer text = new StringBuffer(); if (snapToGrid) text.append(resources.getResourceByKey("mode.snap")); else/* w ww.j a v a 2 s . c o m*/ text.append(resources.getResourceByKey("mode.nosnap")); text.append(" | "); if (editorMode.equals(EditorMode.SELECT)) text.append(resources.getResourceByKey("mode.select")); else if (editorMode.equals(EditorMode.DRAW_LINE)) text.append(resources.getResourceByKey("mode.line")); else if (editorMode.equals(EditorMode.DRAW_RECTANGLE)) text.append(resources.getResourceByKey("mode.box")); else if (editorMode.equals(EditorMode.DRAW_ELLIPSE)) text.append(resources.getResourceByKey("mode.ellipse")); else if (editorMode.equals(EditorMode.CHECK_CONNECTIONS)) text.append(resources.getResourceByKey("mode.check")); else if (editorMode.equals(EditorMode.MOVE)) text.append(resources.getResourceByKey("mode.move")); text.append(" | "); if (magnetic) text.append(resources.getResourceByKey("mode.magnetic")); BufferedImage image = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB); Graphics g = image.getGraphics(); g.setColor(palette.getCurrentColor()); g.fillRect(0, 0, 16, 16); win.getStatusLabel().setText(text.toString()); win.getStatusLabel().setIcon(new ImageIcon(image)); if (saveBoardCommand != null && fileState != null) saveBoardCommand.setEnabled(fileState.equals(FileState.DIRTY)); refresh(); }
From source file:com.hexidec.ekit.component.RelativeImageView.java
/** * Paints the image./*from w w w.j ava 2 s. c om*/ * * @param g the rendering surface to use * @param a the allocated region to render into * @see View#paint */ public void paint(Graphics g, Shape a) { Color oldColor = g.getColor(); fBounds = a.getBounds(); int border = getBorder(); int x = fBounds.x + border + getSpace(X_AXIS); int y = fBounds.y + border + getSpace(Y_AXIS); int width = fWidth; int height = fHeight; int sel = getSelectionState(); // If no pixels yet, draw gray outline and icon if (!hasPixels(this)) { g.setColor(Color.lightGray); g.drawRect(x, y, width - 1, height - 1); g.setColor(oldColor); loadImageStatusIcons(); Icon icon = ((fImage == null) ? sMissingImageIcon : sPendingImageIcon); if (icon != null) { icon.paintIcon(getContainer(), g, x, y); } } // Draw image if (fImage != null) { g.drawImage(fImage, x, y, width, height, this); } // If selected exactly, we need a black border & grow-box Color bc = getBorderColor(); if (sel == 2) { // Make sure there's room for a border int delta = 2 - border; if (delta > 0) { x += delta; y += delta; width -= delta << 1; height -= delta << 1; border = 2; } bc = null; g.setColor(Color.black); // Draw grow box g.fillRect(x + width - 5, y + height - 5, 5, 5); } // Draw border if (border > 0) { if (bc != null) { g.setColor(bc); } // Draw a thick rectangle: for (int i = 1; i <= border; i++) { g.drawRect(x - i, y - i, width - 1 + i + i, height - 1 + i + i); } g.setColor(oldColor); } }
From source file:savant.view.swing.Ruler.java
/** * Render the background of this graphpane * @param g The graphics object to use/*ww w. j av a 2 s . c om*/ */ private void renderBackground(Graphics g) { Graphics2D g2 = (Graphics2D) g; try { Image image = javax.imageio.ImageIO .read(getClass().getResource("/savant/images/bar_selected_glossy.png")); Composite originalComposite = ((Graphics2D) g).getComposite(); ((Graphics2D) g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.85F)); g.drawImage(image, -getWidth(), 0, getWidth() * 3, getHeight(), this); ((Graphics2D) g).setComposite(originalComposite); } catch (Exception e) { LOG.error("Error drawing image background"); } Range r = locationController.getRange(); // At early points in the GUI initialisation, the range has not yet been set. if (r == null) { return; } int[] tickPositions = MiscUtils.getTickPositions(r); int separation = tickPositions.length > 1 ? tickPositions[1] - tickPositions[0] : 0; int xEnd = Integer.MIN_VALUE; FontMetrics fm = g2.getFontMetrics(); for (int p : tickPositions) { int x = MiscUtils.transformPositionToPixel(p, getWidth(), r); if (x > xEnd + 10) { g2.setColor(new Color(50, 50, 50, 50)); //BrowserDefaults.colorAxisGrid); g2.drawLine(x, 0, x, getHeight()); String numStr = MiscUtils.posToShortStringWithSeparation(p, separation); g2.setColor(Color.black); g2.drawString(numStr, x + 3, getHeight() / 2 + 3); xEnd = x + fm.stringWidth(numStr) + 3; } } if (r.getLength() >= locationController.getRangeStart()) { try { Image image_left_cap = javax.imageio.ImageIO .read(getClass().getResource("/savant/images/round_cap_left_bordered.png")); int pos = getLeftCapPos(); g.drawImage(image_left_cap, pos, 0, CAP_WIDTH, CAP_HEIGHT, this); g.setColor(Savant.getInstance().getBackground()); g.fillRect(pos, 0, -getWidth(), getHeight()); } catch (IOException ex) { LOG.error("Drawing failed.", ex); } } if (r.getLength() >= locationController.getMaxRangeEnd() - locationController.getRangeEnd()) { try { Image image_right_cap = javax.imageio.ImageIO .read(getClass().getResource("/savant/images/round_cap_right_bordered.png")); int pos = MiscUtils.transformPositionToPixel(locationController.getMaxRangeEnd(), getWidth(), locationController.getRange()); g.drawImage(image_right_cap, pos - CAP_WIDTH, 0, CAP_WIDTH, CAP_HEIGHT, this); g.setColor(Savant.getInstance().getBackground()); g.fillRect(pos, 0, this.getWidth(), this.getHeight()); } catch (IOException ex) { LOG.error("Drawing failed.", ex); } } }
From source file:ded.ui.DiagramController.java
/** Check to see if the font is rendering properly. I have had a * lot of trouble getting this to work on a wide range of * machines and JVMs. If the font rendering does not work, just * alert the user to the problem but keep going. */ public void checkFontRendering() { // Render the glyph for 'A' in a box just large enough to // contain it when rendered properly. int width = 9; int height = 11; BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics g = bi.createGraphics(); ColorModel colorModel = bi.getColorModel(); g.setColor(Color.WHITE);/*from w w w. j av a 2 s . c o m*/ g.fillRect(0, 0, width, height); g.setColor(Color.BLACK); g.setFont(this.dedWindow.diagramFont); g.drawString("A", 0, 10); // Print that glyph as a string. StringBuilder sb = new StringBuilder(); for (int y = 0; y < height; y++) { int bits = 0; for (int x = 0; x < width; x++) { int pixel = bi.getRGB(x, y); int red = colorModel.getRed(pixel); int green = colorModel.getGreen(pixel); int blue = colorModel.getBlue(pixel); int alpha = colorModel.getAlpha(pixel); boolean isWhite = (red == 255 && green == 255 && blue == 255 && alpha == 255); boolean isBlack = (red == 0 && green == 0 && blue == 0 && alpha == 255); sb.append( isWhite ? "_" : isBlack ? "X" : ("(" + red + "," + green + "," + blue + "," + alpha + ")")); bits <<= 1; if (!isWhite) { bits |= 1; } } sb.append(String.format(" (0x%03X)\n", bits)); } // Also include some of the font metrics. FontMetrics fm = g.getFontMetrics(); sb.append("fm: ascent=" + fm.getAscent() + " leading=" + fm.getLeading() + " charWidth('A')=" + fm.charWidth('A') + " descent=" + fm.getDescent() + " height=" + fm.getHeight() + "\n"); String actualGlyph = sb.toString(); g.dispose(); // The expected glyph and metrics. String expectedGlyph = "_________ (0x000)\n" + "____X____ (0x010)\n" + "___X_X___ (0x028)\n" + "___X_X___ (0x028)\n" + "__X___X__ (0x044)\n" + "__X___X__ (0x044)\n" + "__XXXXX__ (0x07C)\n" + "_X_____X_ (0x082)\n" + "_X_____X_ (0x082)\n" + "_X_____X_ (0x082)\n" + "_________ (0x000)\n" + "fm: ascent=10 leading=1 charWidth('A')=9 descent=3 height=14\n"; if (!expectedGlyph.equals(actualGlyph)) { // Currently, this is known to happen when using OpenJDK 6 // and 7, with 6 being close to right and 7 being very bad. // I also have reports of it happening on certain Mac OS/X // systems, but I haven't been able to determine what the // important factor there is. String warningMessage = "There is a problem with the font rendering. The glyph " + "for the letter 'A' should look like:\n" + expectedGlyph + "but it renders as:\n" + actualGlyph + "\n" + "This probably means there is a bug in the TrueType " + "font library. You might try a different Java version. " + "(I'm working on how to solve this permanently.)"; System.err.println(warningMessage); this.log(warningMessage); SwingUtil.errorMessageBox(null /*component*/, warningMessage); } }
From source file:org.processmining.analysis.performance.dottedchart.ui.DottedChartPanel.java
/** * convenience method for internal use. paints a log item handle * visualization.//ww w. jav a 2 s.c o m * * @param x * horizontal anchor coordinate of the handle * @param y * vertical anchor coordinate of the handle * @param g * the Graphics object used for painting */ protected void paintHighligtedItem(int x, int y, Graphics g, String shape) { Color color = g.getColor(); if (shape.equals(STR_NONE)) { return; } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_DOT)) { if (!color.equals(Color.red)) g.setColor(Color.red); else g.setColor(Color.black); g.fillOval(x - 3, y - 3, 6, 6); g.setColor(color); g.fillOval(x - 2, y - 2, 4, 4); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_BOX)) { if (!color.equals(Color.black)) g.setColor(Color.black); else g.setColor(Color.red); g.fillRect(x - 6, y - 6, 12, 12); g.setColor(color); g.fill3DRect(x - 5, y - 5, 10, 10, false); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_CIRCLE)) { if (!color.equals(Color.black)) g.setColor(Color.black); else g.setColor(Color.red); g.fillOval(x - 6, y - 6, 13, 13); g.setColor(color); g.fillOval(x - 5, y - 5, 11, 11); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_RHOMBUS)) { int rhombX[] = { x, x - 5, x, x + 5 }; int rhombY[] = { y - 5, y, y + 5, y }; g.fillPolygon(rhombX, rhombY, 4); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_TRIANGLE)) { int triX[] = { x, x - 5, x + 5 }; int triY[] = { y + 5, y - 5, y - 5 }; g.fillPolygon(triX, triY, 3); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_ROUND_BOX)) { if (!color.equals(Color.black)) g.setColor(Color.black); else g.setColor(Color.red); g.fillRoundRect(x - 6, y - 6, 13, 13, 2, 2); g.setColor(color); g.fillRoundRect(x - 5, y - 5, 10, 10, 2, 2); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_DRAW_BOX)) { g.drawRect(x - 5, y - 5, 10, 10); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_DRAW_CIRCLE)) { if (!color.equals(Color.black)) g.setColor(Color.black); else g.setColor(Color.red); g.fillOval(x - 6, y - 6, 13, 13); g.setColor(color); g.drawOval(x - 5, y - 5, 11, 11); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_DRAW_RHOMBUS)) { int rhombX[] = { x, x - 5, x, x + 5 }; int rhombY[] = { y - 5, y, y + 5, y }; g.drawPolygon(rhombX, rhombY, 4); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_DRAW_TRIANGLE)) { int triX[] = { x, x - 5, x + 5 }; int triY[] = { y + 5, y - 5, y - 5 }; g.drawPolygon(triX, triY, 3); } else if (shape.equals(DottedChartPanel.ITEM_HANDLE_DRAW_ROUND_BOX)) { g.drawRoundRect(x - 5, y - 5, 10, 10, 2, 2); } }
From source file:com.projity.contrib.calendar.JXXMonthView.java
/** * Paints the background of the month string. The bounding box for this * background can be modified by setting its insets via * setMonthStringInsets. The color of the background can be set via * setMonthStringBackground.//from www . j a v a2 s .com * * @see #setMonthStringBackground * @see #setMonthStringInsets * @param g * Graphics object to paint to. * @param x * x-coordinate of upper left corner. * @param y * y-coordinate of upper left corner. * @param width * width of the bounding box. * @param height * height of the bounding box. */ protected void paintMonthStringBackground(Graphics g, int x, int y, int width, int height) { // Modify bounds by the month string insets. x = _ltr ? x + _monthStringInsets.left : x + _monthStringInsets.left; y = y + _monthStringInsets.top; width = width - _monthStringInsets.left - _monthStringInsets.right; height = height - _monthStringInsets.top - _monthStringInsets.bottom; g.setColor(_monthStringBackground); g.fillRect(x, y, width, height); }
From source file:org.pmedv.core.components.RelativeImageView.java
/** * Paints the image./*w ww.j a v a 2s . co m*/ * * @param g * the rendering surface to use * @param a * the allocated region to render into * @see View#paint */ public void paint(Graphics g, Shape a) { Color oldColor = g.getColor(); fBounds = a.getBounds(); int border = getBorder(); int x = fBounds.x + border + getSpace(X_AXIS); int y = fBounds.y + border + getSpace(Y_AXIS); int width = fWidth; int height = fHeight; int sel = getSelectionState(); // If no pixels yet, draw gray outline and icon if (!hasPixels(this)) { g.setColor(Color.lightGray); g.drawRect(x, y, width - 1, height - 1); g.setColor(oldColor); loadImageStatusIcons(); Icon icon = ((fImage == null) ? sMissingImageIcon : sPendingImageIcon); if (icon != null) { icon.paintIcon(getContainer(), g, x, y); } } // Draw image if (fImage != null) { g.drawImage(fImage, x, y, width, height, this); } // If selected exactly, we need a black border & grow-box Color bc = getBorderColor(); if (sel == 2) { // Make sure there's room for a border int delta = 2 - border; if (delta > 0) { x += delta; y += delta; width -= delta << 1; height -= delta << 1; border = 2; } bc = null; g.setColor(Color.black); // Draw grow box g.fillRect(x + width - 5, y + height - 5, 5, 5); } // Draw border if (border > 0) { if (bc != null) { g.setColor(bc); } // Draw a thick rectangle: for (int i = 1; i <= border; i++) { g.drawRect(x - i, y - i, width - 1 + i + i, height - 1 + i + i); } g.setColor(oldColor); } }
From source file:org.pmedv.blackboard.components.BoardEditor.java
@Override protected void paintComponent(Graphics g) { Boolean useLayerColor = (Boolean) Preferences.values .get("org.pmedv.blackboard.BoardDesignerPerspective.useLayerColor"); // clear all // g.clearRect(0, 0, getWidth(), getHeight()); g.setColor(BLANK);//ww w .j a v a 2 s. c om g.fillRect(0, 0, getWidth(), getHeight()); // some nice anti aliasing... Graphics2D g2 = (Graphics2D) g; RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); rh.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2.setRenderingHints(rh); // TODO : Should this be done here? // Sort layers by z-index g2.setColor(Color.LIGHT_GRAY); g2.setStroke(BoardUtil.stroke_1_0f); Collections.sort(model.getLayers()); for (int i = model.getLayers().size() - 1; i >= 0; i--) { // Sort items by z-index Collections.sort(model.getLayers().get(i).getItems()); drawLayer(model.getLayers().get(i), g2); } // draw selection border if (state.equals(SelectionState.DRAGGING_NEW_SELECTION) && button1Pressed) { g2.setColor(Color.GREEN); g2.setStroke(BoardUtil.stroke_1_0f); if (dragStopX < dragStartX && dragStopY > dragStartY) { selectionBorder.setSize(dragStartX - dragStopX, dragStopY - dragStartY); selectionBorder.setLocation(dragStopX, dragStartY); } else if (dragStopY < dragStartY && dragStopX > dragStartX) { selectionBorder.setSize(dragStopX - dragStartX, dragStartY - dragStopY); selectionBorder.setLocation(dragStartX, dragStopY); } else if (dragStopX < dragStartX && dragStopY < dragStartY) { selectionBorder.setSize(dragStartX - dragStopX, dragStartY - dragStopY); selectionBorder.setLocation(dragStopX, dragStopY); } else { selectionBorder.setSize(dragStopX - dragStartX, dragStopY - dragStartY); selectionBorder.setLocation(dragStartX, dragStartY); } g2.draw(selectionBorder); } // display shape currently being drawed if (lineStartX > 0 && lineStartY > 0 && lineStopX > 0 && lineStopY > 0) { if (useLayerColor) g2.setColor(model.getCurrentLayer().getColor()); else g2.setColor(palette.getCurrentColor()); g2.setStroke((BasicStroke) shapesPanel.getThicknessCombo().getSelectedItem()); // draw new line if (editorMode.equals(EditorMode.DRAW_LINE)) { if (useLayerColor) currentDrawingLine.setColor(model.getCurrentLayer().getColor()); else currentDrawingLine.setColor(palette.getCurrentColor()); currentDrawingLine.setStartType((LineEdgeType) shapesPanel.getStartLineCombo().getSelectedItem()); currentDrawingLine.setEndType((LineEdgeType) shapesPanel.getEndLineCombo().getSelectedItem()); currentDrawingLine.setStroke((BasicStroke) shapesPanel.getThicknessCombo().getSelectedItem()); currentDrawingLine.getStart().setLocation(lineStartX, lineStartY); currentDrawingLine.getEnd().setLocation(lineStopX, lineStopY); currentDrawingLine.draw(g2); } else if (editorMode.equals(EditorMode.DRAW_MEASURE)) { currentDrawingLine.setStroke(Measure.DEFAULT_STROKE); currentDrawingLine.getStart().setLocation(lineStartX, lineStartY); currentDrawingLine.getEnd().setLocation(lineStopX, lineStopY); currentDrawingLine.draw(g2); } // draw new box or ellipse else if (editorMode.equals(EditorMode.DRAW_RECTANGLE) || editorMode.equals(EditorMode.DRAW_ELLIPSE)) { int xLoc = lineStartX; int yLoc = lineStartY; int width = lineStopX - lineStartX; int height = lineStopY - lineStartY; ShapeStyle style = (ShapeStyle) shapesPanel.getStyleCombo().getSelectedItem(); if (style == null || style.equals(ShapeStyle.FILLED)) { if (editorMode.equals(EditorMode.DRAW_RECTANGLE)) { g2.fillRect(xLoc, yLoc, width, height); } else { g2.fillOval(xLoc, yLoc, width, height); } } else if (style.equals(ShapeStyle.OUTLINED)) { g2.setStroke((BasicStroke) shapesPanel.getThicknessCombo().getSelectedItem()); if (editorMode.equals(EditorMode.DRAW_RECTANGLE)) { g2.drawRect(xLoc, yLoc, width, height); } else { g2.drawOval(xLoc, yLoc, width, height); } } } } // draw selection handles if (selectedItem != null) { g2.setStroke(BoardUtil.stroke_1_0f); g2.setColor(Color.GREEN); selectedItem.drawHandles(g2, 8); } // draw border if (zoomLayer != null) { TransformUI ui = (TransformUI) (Object) zoomLayer.getUI(); DefaultTransformModel xmodel = (DefaultTransformModel) ui.getModel(); if (xmodel.isMirror()) { g2.setColor(Color.RED); } else { g2.setColor(Color.GREEN); } } else { g2.setColor(Color.GREEN); } g2.setStroke(DEFAULT_STROKE); Rectangle border = new Rectangle(0, 0, model.getWidth() - 1, model.getHeight() - 1); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f)); g2.draw(border); if (model.getType().equals(BoardType.STRIPES) || model.getType().equals(BoardType.HOLES)) { g2.setColor(Color.BLACK); g2.setFont(miniFont); int index = 1; for (int x = 12; x < model.getWidth() - 16; x += 16) { g2.drawString(String.valueOf(index++), x, 8); } index = 1; for (int y = 18; y < model.getHeight(); y += 16) { g2.drawString(String.valueOf(index++), 3, y); } } if (editorMode.equals(EditorMode.CHECK_CONNECTIONS)) { if (connectedLines != null) { for (Line line : connectedLines) { line.drawFat(g2); } } } if (drawing) { g2.setColor(Color.BLUE); g2.setStroke(DEFAULT_STROKE); if (selectedPin != null) { g2.drawRect(lineStopX - 8, lineStopY - 8, 16, 16); } } super.paintComponents(g2); }
From source file:Animator.java
/** * Paint the current frame.//from www .j av a2s. c o m */ public void paint(Graphics g) { if (error || !loaded) { if (startUpImage != null) { if (tracker.checkID(STARTUP_ID)) { g.drawImage(startUpImage, 0, 0, this); } } else { if (backgroundImage != null) { if (tracker.checkID(BACKGROUND_ID)) { g.drawImage(backgroundImage, 0, 0, this); } } else { g.clearRect(0, 0, maxWidth, maxHeight); } } } else { if ((images != null) && (images.size() > 0)) { if (frameNum < images.size()) { if (backgroundImage == null) { offScrGC.fillRect(0, 0, maxWidth, maxHeight); } else { offScrGC.drawImage(backgroundImage, 0, 0, this); } Image image = (Image) images.elementAt(frameNum); Point pos = null; if (positions != null) { pos = (Point) positions.get(frameNumKey); } if (pos != null) { xPos = pos.x; yPos = pos.y; } offScrGC.drawImage(image, xPos, yPos, this); g.drawImage(offScrImage, 0, 0, this); } else { // no more animation, but need to draw something dbg("No more animation; drawing last image."); if (backgroundImage == null) { g.fillRect(0, 0, maxWidth, maxHeight); } else { g.drawImage(backgroundImage, 0, 0, this); } g.drawImage((Image) images.lastElement(), 0, 0, this); } } } }
From source file:com.jcraft.weirdx.Draw.java
static void reqImageText8(Client c, XDrawable d, GC gc, int x, int y) throws IOException { int len = c.data; int n = c.length; //int foo;//w ww. j a v a 2 s. c o m InputOutput io = c.client; Graphics graphics = d.getGraphics(gc, GC.GCFunction | GC.GCFont); if (graphics == null) { io.readPad(n * 4); return; } if (gc.clip_mask != null && gc.clip_mask instanceof ClipRectangles) { java.awt.Rectangle rec = (Rectangle) (gc.clip_mask.getMask()); if (rec == null) { io.readPad(4 * n); return; } } XFont font = gc.font; { io.readByte(c.bbuffer, 0, len); //java.awt.FontMetrics metric=graphics.getFontMetrics(); Color tmp = graphics.getColor(); graphics.setColor(d.getColormap().getColor(gc.bgPixel)); if (len > 0) { io.readPad((-len) & 3); } if (font.encoding != null) { len = font.encode(c.bbuffer, 0, len, c.cbuffer); } else { char ccc = 0; for (int i = 0; i < len; i++) { ccc = c.cbuffer[i] = (char) (c.bbuffer[i] & 0xff); if (ccc < 0x20) { if (ccc == 11) c.cbuffer[i] = (char) '+'; else if (ccc == 12) c.cbuffer[i] = (char) '+'; else if (ccc == 13) c.cbuffer[i] = (char) '+'; else if (ccc == 14) c.cbuffer[i] = (char) '+'; else if (ccc == 15) c.cbuffer[i] = (char) '+'; else if (ccc == 18) c.cbuffer[i] = (char) '-'; else if (ccc == 21) c.cbuffer[i] = (char) '+'; else if (ccc == 22) c.cbuffer[i] = (char) '+'; else if (ccc == 23) c.cbuffer[i] = (char) '+'; else if (ccc == 24) c.cbuffer[i] = (char) '+'; else if (ccc == 25) c.cbuffer[i] = (char) '|'; else c.cbuffer[i] = (char) 0x20; } } } graphics.fillRect(x, y - (font.ascent), font.charsWidth(c.cbuffer, 0, len), font.ascent + font.descent); graphics.setColor(tmp); graphics.drawChars(c.cbuffer, 0, len, x, y); } if (d instanceof XWindow) { ((XWindow) d).draw(x, y - (font.ascent), font.charsWidth(c.cbuffer, 0, len), font.ascent + font.descent); } if (gc.function == GC.GXxor || gc.function == GC.GXinvert) { graphics.setPaintMode(); } if (gc.clip_mask != null && gc.clip_mask instanceof ClipRectangles) { d.restoreClip(); } }