/* * Copyright 2004 - 2008 Christian Sprajc. All rights reserved. * * This file is part of PowerFolder. * * PowerFolder is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. * * PowerFolder is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PowerFolder. If not, see <http://www.gnu.org/licenses/>. * * $Id$ */ package de.dal33t.powerfolder.ui.widget; import javax.swing.*; import java.awt.*; /** * A Label which supported antialiasing. * * @author <a href="mailto:totmacher@powerfolder.com">Christian Sprajc</a> * @version $Revision: 1.5 $ */ public class AntialiasedLabel extends JLabel { private static final int AA_TRIGGER_FONT_SIZE = 14; private boolean antialiased; public AntialiasedLabel() { super(); } public AntialiasedLabel(Icon image, int horizontalAlignment) { super(image, horizontalAlignment); } public AntialiasedLabel(Icon image) { super(image); } public AntialiasedLabel(String text, Icon icon, int horizontalAlignment) { super(text, icon, horizontalAlignment); } public AntialiasedLabel(String text, int horizontalAlignment) { super(text, horizontalAlignment); } public AntialiasedLabel(String text) { super(text); } public void paintComponent(Graphics g) { if (antialiased) { ((Graphics2D) g).addRenderingHints(new RenderingHints( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON)); } super.paintComponent(g); } private void setAntialiased(boolean newValue) { boolean oldValue = antialiased; antialiased = newValue; if (newValue != oldValue) { repaint(); } } @Override public void setFont(Font font) { if (font.getSize() > AA_TRIGGER_FONT_SIZE) { setAntialiased(true); } super.setFont(font); } }