📄 syntaxstyle.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 + -