protected void paintSyntaxLine( Graphics gfx, TokenMarker tokenMarker, int line, Font defaultFont, Color defaultColor, int x, int y) { textArea.getLineText(currentLineIndex, currentLine); currentLineTokens = tokenMarker.markTokens(currentLine, currentLineIndex); paintHighlight(gfx, line, y); gfx.setFont(defaultFont); gfx.setColor(defaultColor); y += fm.getHeight(); x = SyntaxUtilities.paintSyntaxLine(currentLine, currentLineTokens, styles, this, gfx, x, y); /* * Draw characters via input method. */ if (compositionTextPainter != null && compositionTextPainter.hasComposedTextLayout()) { compositionTextPainter.draw(gfx, lineHighlightColor); } if (eolMarkers) { gfx.setColor(eolMarkerColor); gfx.drawString(".", x, y); } }
protected void paintPlainLine( Graphics gfx, int line, Font defaultFont, Color defaultColor, int x, int y) { paintHighlight(gfx, line, y); textArea.getLineText(line, currentLine); gfx.setFont(defaultFont); gfx.setColor(defaultColor); y += fm.getHeight(); x = Utilities.drawTabbedText(currentLine, x, y, gfx, this, 0); // Draw characters via input method. if (compositionTextPainter != null && compositionTextPainter.hasComposedTextLayout()) { compositionTextPainter.draw(gfx, lineHighlightColor); } if (eolMarkers) { gfx.setColor(eolMarkerColor); gfx.drawString(".", x, y); } }
@Override public void paintComponent(Graphics g) { super.paintComponent(g); if (image != null) { Dimension imageSize = calcDimension(image); System.out.println(imageSize + " or " + imageSize.getWidth()); g.drawImage( image, getWidth() / 2 - imageSize.width / 2, getHeight() / 2 - imageSize.height / 2, imageSize.width, imageSize.height, this); g.setXORMode(Color.white); Font font = g.getFont().deriveFont(8); g.setFont(font); int fileNameWidth = g.getFontMetrics(font).stringWidth(fileName); if (fileNameWidth > imageSize.width) { pathStrings = fileName.split("\\\\"); result = pathStrings[0] + "\\...\\" + pathStrings[pathStrings.length - 1]; resultWidth = g.getFontMetrics(font).stringWidth(result); // TODO: // Add another if for truncating to just a few letters if needed. } else { result = fileName; resultWidth = g.getFontMetrics(font).stringWidth(result); } g.drawString( result, getWidth() / 2 + imageSize.width / 2 - resultWidth - 5, getHeight() / 2 + imageSize.height / 2 - 5); } else g.drawImage(image, 0, 0, this); }
public int print(Graphics g, PageFormat pf, int pageIndex) { Font f1 = new Font("SERIF", Font.PLAIN, 8); FontMetrics metric = g.getFontMetrics(f1); int lineHeight = metric.getHeight(); if (pageBreak == null) { initLines(); int s = (numLines % 3); if (s > 0) numLines = numLines + (3 - s); numLines /= 3; int linesPerPage = (int) (pf.getImageableHeight() / lineHeight); int numBreaks = (numLines / linesPerPage); pageBreak = new int[numBreaks]; for (int b = 0; b < numBreaks; b++) { pageBreak[b] = (b + 1) * linesPerPage; } } if (pageIndex > pageBreak.length) { return NO_SUCH_PAGE; } Graphics2D g2d = (Graphics2D) g; g2d.translate(pf.getImageableX(), pf.getImageableY()); int y = 0; g.setFont(new Font("SERIF", Font.PLAIN, 9)); int start = 0; if (pageIndex == 0) start = 0; else start = pageBreak[pageIndex - 1]; int end = 0; if (pageIndex == pageBreak.length) end = numLines; else end = pageBreak[pageIndex]; if (chk % 2 == 1 && (end - start) != lineHeight) { for (int line = start; line < end && i < x; line += 9) { y += (2 * lineHeight); g.drawString("" + textLines[i][0], 30, y); g.drawString(textLines[i][1], 30, y + lineHeight); g.drawString(textLines[i][2], 30, y + 2 * lineHeight); g.drawString(textLines[i][3], 30, y + 3 * lineHeight); g.drawString(textLines[i][4], 30, y + 4 * lineHeight); g.drawString(textLines[i][5], 30, y + 5 * lineHeight); g.drawString(textLines[i][6], 30, y + 6 * lineHeight); if ((i + 1) < x) { g.drawString(textLines[i + 1][0], 225, y); g.drawString(textLines[i + 1][1], 225, y + lineHeight); g.drawString(textLines[i + 1][2], 225, y + 2 * lineHeight); g.drawString(textLines[i + 1][3], 225, y + 3 * lineHeight); g.drawString(textLines[i + 1][4], 225, y + 4 * lineHeight); g.drawString(textLines[i + 1][5], 225, y + 5 * lineHeight); g.drawString(textLines[i + 1][6], 225, y + 6 * lineHeight); } if ((i + 2) < x) { g.drawString(textLines[i + 2][0], 415, y); g.drawString(textLines[i + 2][1], 415, y + lineHeight); g.drawString(textLines[i + 2][2], 415, y + 2 * lineHeight); g.drawString(textLines[i + 2][3], 415, y + 3 * lineHeight); g.drawString(textLines[i + 2][4], 415, y + 4 * lineHeight); g.drawString(textLines[i + 2][5], 415, y + 5 * lineHeight); g.drawString(textLines[i + 2][6], 415, y + 6 * lineHeight); } y += 7 * lineHeight; i += 3; } } else { for (int line = start; line < end && i < x; line += 8) {} } chk++; return PAGE_EXISTS; }