//这是我的想法,但不成熟.算是一种思路吧.
//还无法显示中文.可以在CSDN查查.
//在看看java2d一书的有关章节.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.geom.*;public class FontDisplay extends JPanel{
int size =50;
Font currentFont;
   JPanel buttonpanel = new JPanel();
JTextField sizes = new JTextField(15);
JTextField content = new JTextField(15);
   String text;

public FontDisplay(){
    
 buttonpanel.add(content);
    buttonpanel.add(sizes);
    
 content.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent se) { 
           text = content.getText(); 
        }
     });    
    sizes.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
        size = Integer.parseInt (sizes.getText().trim());
     }
    });
    
    add(buttonpanel);
}

public void update(Graphics g){
 g.clearRect(0,0,getWidth(),getHeight());
 paintComponent(g);
}

public void paintComponent(Graphics g){
 super.paintComponent(g);
 Graphics2D g2D = (Graphics2D)g;
 currentFont = new Font("Arial",Font.PLAIN,size);
 g2D.setFont(currentFont);
 if(text!=null)g2D.drawString(text,200,200);
 else g2D.drawString("i like you!",200,200);

}
public static void main(String args[]){
  JFrame frame = new JFrame();
     FontDisplay panel = new  FontDisplay();
     frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {System.exit(0);}
  });
  frame.getContentPane().add("Center", panel);
  frame.pack();
  frame.setVisible(true);
     frame.setSize(600,500);
   }
}