HOY_StyledText.java



//EJEMPLO DE DIFERENTES TIPOS DE LETRA
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;

public class StyledText extends Frame {
 static final int width = 600;
 static final int height = 400;
 MyMenuBar menuBar;
 EventHandler eh = new EventHandler(); 
 FontRenderContext frc;
 public static void main(String args[]){
  StyledText app = new StyledText();
 }
 public StyledText() {
  super("Estilos de texto");
  setupMenuBar();
  add("Center",new MyCanvas());
  setSize(width,height);
  addWindowListener(eh);
  setVisible(true);
 }
 void setupMenuBar(){
  Object menuItems[][] = {{"Archivo","Salir"}};
  menuBar = new MyMenuBar(menuItems,eh,eh);
  setMenuBar(menuBar);
 }
 class MyCanvas extends Canvas {
  public void paint(Graphics graphics) {
   Graphics2D g = (Graphics2D) graphics;
   frc = g.getFontRenderContext();
   TextLayout[] s = createStyledStrings();
   int yOffset = 0;
   for(int i=0;i<s.length;++i) {
    s[i].draw(g,100,100+yOffset);
    yOffset += s[i].getAscent()+s[i].getDescent()+s[i].getLeading();
   }
  }
 }
 TextLayout[] createStyledStrings() {
  TextLayout[] s = new TextLayout[3];
  Font f1 = new Font("Helvetica",Font.BOLD,24);
  Font f2 = new Font("TimesRoman",Font.ITALIC,14);
  Font f3 = new Font("Helvetica",Font.PLAIN,12);
  s[0] = new TextLayout("Esta es la linea uno.",f1,frc);
  s[1] = new TextLayout("Esta es la linea dos.",f2,frc);
  s[2] = new TextLayout("Esta es la linea tres.",f3,frc);
  return s;
 }
 class EventHandler extends WindowAdapter implements ActionListener,
   ItemListener {
  public void actionPerformed(ActionEvent e){
   String selection=e.getActionCommand();
   if("Salir".equals(selection)){
    System.exit(0);
   }
  }
  public void itemStateChanged(ItemEvent e){
  }
  public void windowClosing(WindowEvent e){
   System.exit(0);
  }
 }
}