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

📄 simplelabel.java

📁 打印管理程序,测试完全通过.windows开发环境.
💻 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 + -