01: /*
02: * Created on 14/10/2004
03: *
04: * Swing Components - visit http://sf.net/projects/gfd
05: *
06: * Copyright (C) 2004 Igor Regis da Silva Simões
07: *
08: * This program is free software; you can redistribute it and/or
09: * modify it under the terms of the GNU General Public License
10: * as published by the Free Software Foundation; either version 2
11: * of the License, or (at your option) any later version.
12: *
13: * This program is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16: * GNU General Public License for more details.
17: *
18: * You should have received a copy of the GNU General Public License
19: * along with this program; if not, write to the Free Software
20: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21: *
22: */
23: package br.com.gfpshare.plaf;
24:
25: import java.awt.Graphics;
26: import java.awt.Graphics2D;
27: import java.awt.RenderingHints;
28:
29: import javax.swing.JComponent;
30: import javax.swing.plaf.ComponentUI;
31: import javax.swing.plaf.metal.MetalTextFieldUI;
32:
33: /**
34: *
35: * Classe que representa a UI do coponente JTextField.
36: * O método paint foi sobrescrito para acrescentar a capacidade de pintar
37: * fontes com suavização de borda, melhorando sua aparencia no Linux e no OS/2.
38: *
39: * @author Igor Regis da Silva Simões
40: */
41: public class IgorTextFieldUI extends MetalTextFieldUI {
42:
43: /** O método paintSafely foi sobrescrito para acrescentar a capacidade de pintar
44: * fontes com suavização de borda, melhorando sua aparencia no Linux e no OS/2.
45: * @param g Contexto gráfico
46: */
47: @Override
48: protected void paintSafely(Graphics g) {
49: if (g != null) {
50: Graphics2D g2d = (Graphics2D) g;
51: g2d.addRenderingHints(new RenderingHints(
52: RenderingHints.KEY_TEXT_ANTIALIASING,
53: RenderingHints.VALUE_TEXT_ANTIALIAS_ON));
54: }
55: super .paintSafely(g);
56: }
57:
58: /** Método que retorna uma instância deste componente que será responsável pelo
59: * look and feel do componete JTextArea.
60: * <p>
61: * Obs.: Os componentes que fazem algum tipo de edição de texto devem retornar
62: * uma nova instancia dessa classe para cada componente que será renderizado, ao
63: * contrário dos demais que usam uma referencia a uma única instância que é usada
64: * para renderizar todos os componetes presentes numa mesmo JVM.
65: * Este procedimento evita problemas de "paint" dos dados na tela da aplicação.
66: * Por este motivo este método retorna com um "new" e não com uma referência a uma
67: * propriedade estática da classe.
68: * @param c Componete o qual seseja-se criar um componente UI
69: * @return Componente responsável pela UI
70: */
71: public static ComponentUI createUI(JComponent c) {
72: return new IgorTextFieldUI();
73: }
74: }
|