⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fontchooser.java

📁 用JAVA程序来上BBS?这就是一个这样的程序
💻 JAVA
字号:
package JTerm;

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


/**
 * <p>Title: JTerm </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: Tsinghua</p>
 * @author Frank.Wang
 * @version 1.0
 */

public class FontChooser extends JDialog {
  JPanel panel1 = new JPanel();
  JScrollPane jScrollPane1 = new JScrollPane();
  JList fontNameList = new JList();
  JCheckBox ItalyCheck = new JCheckBox();
  JCheckBox BoldCheck = new JCheckBox();
  JComboBox SizeComboBox = new JComboBox();
  JLabel jLabel1 = new JLabel();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  Font selectFont=null;

  JLabel jChinese=new JLabel();
  JLabel jEnglish=new JLabel();
  public FontChooser(Frame frame, String title, boolean modal) {
    super(frame, title, modal);
    try {
      jbInit();
      pack();
      setSize(350,280);
    //Center the window

     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
     Dimension frameSize = this.getSize();
     if (frameSize.height > screenSize.height) {
       frameSize.height = screenSize.height;
     }
     if (frameSize.width > screenSize.width) {
       frameSize.width = screenSize.width;
     }

     this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);

    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
  }

  public FontChooser() {
    this(null, "", false);
  }
  private void jbInit() throws Exception {
    panel1.setLayout(null);
    jScrollPane1.setBounds(new Rectangle(7, 6, 137, 216));
    ItalyCheck.setFont(new java.awt.Font("Monospaced", 0, 12));
    ItalyCheck.setText("斜体");
    ItalyCheck.setBounds(new Rectangle(237, 43, 83, 25));
    BoldCheck.setFont(new java.awt.Font("Monospaced", 0, 12));
    BoldCheck.setText("粗体");
    BoldCheck.setBounds(new Rectangle(151, 43, 83, 25));
    SizeComboBox.setEditable(true);
    SizeComboBox.setBounds(new Rectangle(226, 13, 83, 22));
    SizeComboBox.addItemListener(new FontChooser_SizeComboBox_itemAdapter(this));
    SizeComboBox.setEditable(true);
    jLabel1.setFont(new java.awt.Font("Monospaced", 0, 12));
    jLabel1.setText("字体大小");
    jLabel1.setBounds(new Rectangle(158, 14, 54, 16));
    jButton1.setBounds(new Rectangle(161, 192, 73, 25));
    jButton1.setFont(new java.awt.Font("Monospaced", 0, 12));
    jButton1.setText("确定");
    jButton1.addActionListener(new FontChooser_jButton1_actionAdapter(this));
    jButton2.setBounds(new Rectangle(249, 192, 73, 25));
    jButton2.setFont(new java.awt.Font("Monospaced", 0, 12));
    jButton2.setText("取消");
    jButton2.addActionListener(new FontChooser_jButton2_actionAdapter(this));


    jChinese.setFont(new java.awt.Font("Monospaced", 0, 14));
    jChinese.setHorizontalAlignment(SwingConstants.CENTER);
    jChinese.setText("水木清华");
    jChinese.setBounds(new Rectangle(155, 125, 152, 26));

    jEnglish.setFont(new java.awt.Font("Monospaced", 0, 14));
    jEnglish.setHorizontalAlignment(SwingConstants.CENTER);
    jEnglish.setText("ABCDEFG,1234567");
    jEnglish.setBounds(new Rectangle(155, 87, 152, 29));
    this.setModal(true);
    fontNameList.addMouseListener(new FontChooser_fontNameList_mouseAdapter(this));
    getContentPane().add(panel1);
    panel1.add(jScrollPane1, null);
    panel1.add(SizeComboBox, null);
    panel1.add(ItalyCheck, null);
    panel1.add(jLabel1, null);
    panel1.add(BoldCheck, null);
    panel1.add(jButton1, null);
    panel1.add(jButton2, null);
    panel1.add(jEnglish, null);
    panel1.add(jChinese, null);
    jScrollPane1.getViewport().add(fontNameList, null);



  }

  public void showFrame(){
  	  fillFontNames();
  	  this.show();
  }
  public void setSelectFont(Font font){
    selectFont=font;
  }

  public Font getSelectFont(){
    return   selectFont;
  }

  private void fillFontNames() {
   GraphicsEnvironment   graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment();
   DefaultListModel list = new DefaultListModel();
   fontNameList.setModel(list);
   String fontname=selectFont.getFontName();//System.getProperties().getProperty("FontName");
   int    fontsize,fontstyle;
   fontsize = selectFont.getSize();//Integer.parseInt(System.getProperties().getProperty("FontSize"));
   fontstyle= selectFont.getStyle();//Integer.parseInt(System.getProperties().getProperty("FontStyle"));

   String[] fontlist=graphicsEnvironment.getAvailableFontFamilyNames(this.getLocale());
   int i,len;
   int sel=0;
   len=fontlist.length;
   for (i=0;i<len;i++){
     list.addElement(fontlist[i]);
     if (fontlist[i].compareTo(fontname)==0){
	     	sel=i;
	    }

   }
   this.fontNameList.setSelectedIndex(sel);

   DefaultComboBoxModel model=new DefaultComboBoxModel();
   SizeComboBox.setModel(model);
   sel=-1;
   for (i=0;i<20;i++)
   {
     model.addElement(String.valueOf(i*2+8));
     if (i*2+8==fontsize){
     	sel=i;
     }
  }
   if (sel==-1)
   	this.SizeComboBox.setSelectedItem(String.valueOf(fontsize));
   else
   	this.SizeComboBox.setSelectedIndex(sel);

   if ((fontstyle&Font.BOLD)>0){
   		this.BoldCheck.setSelected(true);
   	}

   if ((fontstyle&Font.ITALIC)>0){
   		this.ItalyCheck.setSelected(true);
   	}
 }

  void jButton1_actionPerformed(ActionEvent e) {
   selectFont=changeFont();
   System.gc();
   this.dispose();
  }

  void jButton2_actionPerformed(ActionEvent e) {
    selectFont=null;
    this.dispose();

  }

  Font changeFont(){
    int style=0;
    int size=8;
    if (BoldCheck.isSelected()) style|=Font.BOLD;
   if (ItalyCheck.isSelected()) style|=Font.ITALIC;
   try{
      size = Integer.parseInt( (String) SizeComboBox.getSelectedItem());
   }catch(Exception err){
              size=selectFont.getSize();
   }

    Font font=new Font((String)fontNameList.getSelectedValue(),style,size);
    jChinese.setFont(font);
    jEnglish.setFont(font);
    return font;
  }

  void fontNameList_mouseClicked(MouseEvent e) {
    changeFont();
  }

  void SizeComboBox_itemStateChanged(ItemEvent e) {
    changeFont();
  }

}

class FontChooser_jButton1_actionAdapter implements java.awt.event.ActionListener {
  FontChooser adaptee;

  FontChooser_jButton1_actionAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}

class FontChooser_jButton2_actionAdapter implements java.awt.event.ActionListener {
  FontChooser adaptee;

  FontChooser_jButton2_actionAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton2_actionPerformed(e);
  }
}

class FontChooser_fontNameList_mouseAdapter extends java.awt.event.MouseAdapter {
  FontChooser adaptee;

  FontChooser_fontNameList_mouseAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }
  public void mouseClicked(MouseEvent e) {
    adaptee.fontNameList_mouseClicked(e);
  }
}

class FontChooser_SizeComboBox_itemAdapter implements java.awt.event.ItemListener {
  FontChooser adaptee;

  FontChooser_SizeComboBox_itemAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }
  public void itemStateChanged(ItemEvent e) {
    adaptee.SizeComboBox_itemStateChanged(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -