📄 simplelabel.java
字号:
/*
$Author: $
$Date: $
$Revision: $
$NoKeywords: $
*/
package jp.co.ntl.awt;
import java.awt.Component;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.Image;
import java.awt.Font;
import jp.co.ntl.Util;
public class SimpleLabel extends Component {
/**
*
*/
private static final long serialVersionUID = 1L;
private static Font font = null;
public static final int CENTER = 0;
public static final int LEFT = 1;
public static final int RIGHT = 2;
private String text;
private int alignment;
public SimpleLabel() {
this(null);
}
public SimpleLabel(String text) {
this(text, LEFT);
}
public SimpleLabel(String text, int alignment) {
this.text = text;
this.alignment = alignment;
}
private static synchronized void setFontForClass(Font f) {
if (font == null && f != null) {
font = new Font(f.getName(), f.getStyle(), 12);
}
}
public void addNotify() {
setFontForClass(getFont());
if (font != null) {
setFont(font);
}
super.addNotify();
}
/**
*
*/
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
repaint();
}
/**
*
*/
public int getAlignment() {
return alignment;
}
/**
*
*/
public String getText() {
return text;
}
/**
*
*/
public void setAlignment(int alignment) {
this.alignment = alignment;
repaint();
}
/**
*
*/
public void setText(String text) {
this.text = text;
repaint();
}
public void update(Graphics g) {
paint(g);
}
private Image backImage = null;
private Graphics gImage = null;
public void paint(Graphics g) {
Dimension d = getSize();
if (d.width == 0 || d.height == 0) {
return;
}
if (backImage == null) {
backImage = createImage(d.width, d.height);
gImage = backImage.getGraphics();
}
paintComponent(gImage);
g.drawImage(backImage, 0, 0, this);
}
public void paintComponent(Graphics g) {
Dimension d = getSize();
g.setColor(getBackground());
g.fillRect(0, 0, d.width, d.height);
if (text == null) {
return;
}
if (font != null) {
g.setFont(font);
}
FontMetrics fm = g.getFontMetrics();
int x, y;
switch (alignment) {
case CENTER:
x = Util.basePointX(fm, text, d.width);
y = Util.basePointY(fm, text, d.height);
break;
case RIGHT:
x = d.width - fm.stringWidth(text);
y = Util.basePointY(fm, text, d.height);
break;
case LEFT:
default:
x = 0;
y = Util.basePointY(fm, text, d.height);
break;
}
if (isEnabled()) {
g.setColor(getForeground());
g.drawString(text, x, y);
} else {
g.setColor(Color.white);
g.drawString(text, x + 1, y + 1);
g.setColor(getBackground().darker());
g.drawString(text, x, y);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -