KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > memoire > vainstall > xui > XuiTitle


1
2 package com.memoire.vainstall.xui;
3
4 import java.awt.*;
5 import javax.swing.*;
6 import javax.swing.border.*;
7
8 public class XuiTitle extends JComponent
9 {
10   public final static int LEFT =0;
11   public final static int CENTER=1;
12   public final static int RIGHT =2;
13
14   private String JavaDoc text_;
15   private int alignment_;
16
17   public XuiTitle(String JavaDoc _text)
18   {
19     this(_text,CENTER);
20   }
21
22   public XuiTitle(String JavaDoc _text, int _alignment)
23   {
24     text_=_text;
25     alignment_=_alignment;
26
27     setForeground(new Color(255,255,255,254));
28     setBackground(new Color(0,0,0,96));
29     setFont(new Font("SansSerif",Font.PLAIN,48));
30     setBorder(new EmptyBorder(4,4,4,4));
31     setOpaque(false);
32   }
33
34   public Dimension getPreferredSize()
35   {
36     FontMetrics fm=Toolkit.getDefaultToolkit().getFontMetrics(getFont());
37     int h =fm.getAscent()+fm.getDescent(); // getFont().getSize();
38
return new Dimension(1,h+5);
39   }
40
41   public void paint(Graphics _g)
42   {
43     ((Graphics2D)_g).setRenderingHint
44       (RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
45     super.paint(_g);
46   }
47
48   public void paintComponent(Graphics _g)
49   {
50     Font ft=getFont();
51     FontMetrics fm;
52
53     while(((fm=_g.getFontMetrics(ft))
54        .stringWidth(text_)+2>getWidth())
55       &&(ft.getSize()>=8))
56     ft=new Font(ft.getFamily(),ft.getStyle(),ft.getSize()-5);
57
58     int x,y;
59
60     switch(alignment_)
61     {
62     case 0: x=2; break;
63     case 2: x=getWidth()-2-fm.stringWidth(text_); break;
64     default: x=(getWidth()-fm.stringWidth(text_))/2; break;
65     }
66
67     y=(getHeight()-fm.getAscent()-fm.getDescent())/2;
68     y+=fm.getAscent();
69
70     Graphics2D g=(Graphics2D)_g;
71     g.setFont(ft);
72
73     //g.setColor(getForeground());
74
//g.drawString(text_,x,y);
75

76     g.setColor(getBackground());
77     g.drawString(text_,x-1,y-1);
78     g.drawString(text_,x+1,y-1);
79     g.drawString(text_,x-1,y+1);
80     g.drawString(text_,x+1,y+1);
81     g.setColor(getForeground());
82     g.drawString(text_,x,y);
83   }
84 }
85
86
Popular Tags