//这是我的想法,但不成熟.算是一种思路吧.
//还无法显示中文.可以在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);
}
}
//还无法显示中文.可以在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);
}
}
2。建立最大的font
3。把string 写到image1
4 建立image对象image2(对应于draw 到屏幕上的图像)
5。把image1的一部分(按照需要放大倍数和image2的大小算出来)draw到image2
6 把image2画到屏幕上