Topic: 求助~!!!怎样才能解决窗口拖动导致的重画问题~

  Print this page

1.求助~!!!怎样才能解决窗口拖动导致的重画问题~ Copy to clipboard
Posted by: 22750124
Posted on: 2005-07-15 23:05

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class DrawPanel extends JPanel {
public void paintComponent(Graphics g) {
  GraphicsEnvironment ge;
  ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
  Font[] f=ge.getAllFonts();
  g.drawString("系统中所有的字体="+String.valueOf(f.length),20,50);
  g.drawString("在工具包中的字体=",20,75);
  //Toolkit tk=Toolkit.getDefaultToolkit();
  //String[] str=tk.getFontList();
  String[] str=ge.getAvailableFontFamilyNames();
  int y=100;
  Font defaultFont=g.getFont();

  for(int i=0;i<str.length;i++){
    g.setFont(defaultFont);
    g.drawString("* "+str[i],50,y);
    
    //使用不同的字体
    g.setFont(new Font(str[i],Font.BOLD,14));
    g.drawString("Font",150,y);     
    g.setFont(new Font(str[i],Font.ITALIC,16));
    g.drawString("Font",250,y);     
    g.setFont(new Font(str[i],Font.BOLD+Font.ITALIC,20));
    g.drawString("Font",350,y);
    
    y=y+50;
  }
  
  //FontMetrics;getFontMetrics(); 自己看
  
}
}

public class FontsDemo extends JFrame{
FontsDemo(){
  //关闭窗口
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  

  setTitle("绘图模式");
  setSize(500,600);
  DrawPanel panel=new DrawPanel();
  
  //获得上下文引用,不能直接add
  Container c=getContentPane();
  c.add(panel);
}

public static void main(String[] args){
  FontsDemo f=new FontsDemo();
  f.setVisible(true);
}
}


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923