⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syntaxstyle.java

📁 报表设计软件,很好的
💻 JAVA
字号:
package org.jfree.designer.text.jedit.syntax;

/*
 * SyntaxStyle.java - A simple text style class
 * Copyright (C) 1999 Slava Pestov
 *
 * You may use and modify this package for any purpose. Redistribution is
 * permitted, in both source and binary form, provided that this notice
 * remains intact in all source distributions of this package.
 */

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;

/**
 * A simple text style class. It can specify the color, italic flag, and bold flag of a
 * run of text.
 *
 * @author Slava Pestov
 * @version $Id: SyntaxStyle.java,v 1.2 2004/04/20 18:54:52 taqua Exp $
 */
public final class SyntaxStyle
{
  /**
   * Creates a new SyntaxStyle.
   *
   * @param color  The text color
   * @param italic True if the text should be italics
   * @param bold   True if the text should be bold
   */
  public SyntaxStyle (final Color color, final boolean italic, final boolean bold)
  {
    this.color = color;
    this.italic = italic;
    this.bold = bold;
  }

  /**
   * Returns the color specified in this style.
   */
  public final Color getColor ()
  {
    return color;
  }

  /**
   * Returns true if no font styles are enabled.
   */
  public final boolean isPlain ()
  {
    return !(bold || italic);
  }

  /**
   * Returns true if italics is enabled for this style.
   */
  public final boolean isItalic ()
  {
    return italic;
  }

  /**
   * Returns true if boldface is enabled for this style.
   */
  public final boolean isBold ()
  {
    return bold;
  }

  /**
   * Returns the specified font, but with the style's bold and italic flags applied.
   */
  private Font getStyledFont (final Font font)
  {
    if (font == null)
    {
      throw new NullPointerException("font param must not"
              + " be null");
    }
    if (font.equals(lastFont))
    {
      return lastStyledFont;
    }
    lastFont = font;
    lastStyledFont = new Font(font.getFamily(),
            (bold ? Font.BOLD : 0)
            | (italic ? Font.ITALIC : 0),
            font.getSize());
    return lastStyledFont;
  }

  /**
   * Returns the font metrics for the styled font.
   */


  public final FontMetrics getFontMetrics (final Component c, final Font font)
  {
    if (font == null)
    {
      throw new NullPointerException("font param must not"
              + " be null");
    }
    if (font.equals(lastFont) && fontMetrics != null)
    {
      return fontMetrics;
    }
    lastFont = font;
    lastStyledFont = new Font(font.getFamily(),
            (bold ? Font.BOLD : 0)
            | (italic ? Font.ITALIC : 0),
            font.getSize());
    fontMetrics = c.getFontMetrics(lastStyledFont);
    return fontMetrics;
  }


  /**
   * Sets the foreground color and font of the specified graphics context to that
   * specified in this style.
   *
   * @param gfx  The graphics context
   * @param font The font to add the styles to
   */
  public final void setGraphicsFlags (final Graphics gfx, final Font font)
  {
    final Font _font = getStyledFont(font);
    gfx.setFont(_font);
    gfx.setColor(color);
  }

  /**
   * Returns a string representation of this object.
   */
  public final String toString ()
  {
    return getClass().getName() + "[color=" + color +
            (italic ? ",italic" : "") +
            (bold ? ",bold" : "") + "]";
  }

  // private members
  private final Color color;
  private final boolean italic;
  private final boolean bold;
  private Font lastFont;
  private Font lastStyledFont;
  private FontMetrics fontMetrics;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -