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

📄 fontchooser.java~147~

📁 源码为科学出版社出版的英文<java设计模式>(影印版)所用的所有例子程序
💻 JAVA~147~
字号:
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
import java.awt.event.*;
import com.borland.jbcl.layout.*;
import java.util.Vector;

public class FontChooser
    extends JDialog
    implements ActionListener {
  JPanel jPanel1 = new JPanel();
  BorderLayout borderLayout1 = new BorderLayout();
  JPanel jPanel3 = new JPanel();
  JPanel jPanel4 = new JPanel();
  BorderLayout borderLayout2 = new BorderLayout();
  JLabel jLabel1 = new JLabel();
  JLabel jLabel2 = new JLabel();
  Font font = null;
  String selectFont;
  boolean select = false;
  int selectFontSize = 8;

  String[] fontSize = {
      "8", "9", "10", "11", "12", "14", "16", "17", "18", "20", "22", "24",
      "26", "28", "36", "48", "72", "100", "120", "二号", "三号", "四号", "五号"};
  JComboBox jComboBoxFontSize = new JComboBox(fontSize);

  GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
  String[] allFonts = env.getAvailableFontFamilyNames();

  JComboBox jComboBoxFontName = new JComboBox(allFonts);
  TitledBorder titledBorder1;
  Border border1;
  TitledBorder titledBorder2;
  TitledBorder titledBorder3;
  JButton jButtonOK = new JButton();
  JButton jButtonCancel = new JButton();
  Border border2;
  TitledBorder titledBorder4;
  Border border3;
  JPanel jPanel2 = new JPanel();
  JTextArea jTextArea1 = new JTextArea();
  CardLayout cardLayout1 = new CardLayout();
  TitledBorder titledBorder5;
  XYLayout xYLayout1 = new XYLayout();
  Border border4;
  public FontChooser(Frame _frame, String _title, boolean _model) throws
      HeadlessException {
    super(_frame, _title, _model);
    try {
      jbInit();
      showDialag(_frame);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static FontChooser showFontChooser(Frame frame, String title, boolean modal) {
    FontChooser fontChooser = new FontChooser(frame, title, modal);
    return fontChooser;
  }
  public boolean isSelectFont(){
     return select;
  }

  public static void main(String[] args) throws HeadlessException {
//    FontChooser fontChooser1 = new FontChooser(frame,true);
  }

  private void jbInit() throws Exception {

    titledBorder1 = new TitledBorder("");
    border1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,
        new Color(148, 145, 140)), "Sample");
    titledBorder2 = new TitledBorder(BorderFactory.createBevelBorder(
        BevelBorder.LOWERED, Color.white, Color.white, new Color(103, 101, 98),
        new Color(148, 145, 140)), "Sample");
    titledBorder3 = new TitledBorder("");
    border2 = BorderFactory.createBevelBorder(BevelBorder.LOWERED, Color.white,
                                              Color.white,
                                              new Color(103, 101, 98),
                                              new Color(148, 145, 140));
    titledBorder4 = new TitledBorder(BorderFactory.createEtchedBorder(Color.
        white, new Color(148, 145, 140)), "Sample");
    border3 = BorderFactory.createCompoundBorder(new TitledBorder(BorderFactory.
        createEtchedBorder(Color.white, new Color(148, 145, 140)), "Sample"),
                                                 BorderFactory.
                                                 createEmptyBorder(6, 6, 6, 6));
    titledBorder5 = new TitledBorder("");
    border4 = BorderFactory.createEmptyBorder();
    this.setModal(true);
    this.setResizable(true);
    this.setTitle("Select Font");
    this.getContentPane().setLayout(borderLayout1);
    jPanel1.setBackground(Color.pink);
    jPanel1.setMaximumSize(new Dimension(300, 180));
    jPanel1.setMinimumSize(new Dimension(300, 180));
    jPanel1.setOpaque(false);
    jPanel1.setPreferredSize(new Dimension(300, 180));
    jPanel1.setRequestFocusEnabled(true);
    jPanel1.setLayout(borderLayout2);
    jPanel3.setBackground(Color.green);
    jPanel3.setMaximumSize(new Dimension(300, 40));
    jPanel3.setMinimumSize(new Dimension(300, 40));
    jPanel3.setOpaque(false);
    jPanel3.setPreferredSize(new Dimension(300, 40));
    jPanel4.setBackground(Color.red);
    jPanel4.setFont(new java.awt.Font("Dialog", 0, 11));
    jPanel4.setMaximumSize(new Dimension(300, 50));
    jPanel4.setMinimumSize(new Dimension(300, 50));
    jPanel4.setOpaque(false);
    jPanel4.setPreferredSize(new Dimension(300, 50));
    jPanel4.setLayout(xYLayout1);
    jLabel1.setDebugGraphicsOptions(0);
    jLabel1.setText("Font Size");
    jLabel2.setText("Font Name");
    jButtonOK.setMaximumSize(new Dimension(80, 25));
    jButtonOK.setMinimumSize(new Dimension(80, 25));
    jButtonOK.setPreferredSize(new Dimension(80, 25));
    jButtonOK.setText("OK");
    jButtonOK.addActionListener(new FontChooser_jButtonOK_actionAdapter(this));
    jButtonCancel.setMaximumSize(new Dimension(80, 25));
    jButtonCancel.setMinimumSize(new Dimension(80, 25));
    jButtonCancel.setPreferredSize(new Dimension(80, 25));
    jButtonCancel.setText("Cancel");
    jButtonCancel.addActionListener(new FontChooser_jButtonCancel_actionAdapter(this));
    jPanel2.setBorder(border3);
    jPanel2.setLayout(cardLayout1);
    jTextArea1.setBorder(BorderFactory.createLoweredBevelBorder());
    jTextArea1.setEditable(false);
    jTextArea1.setText("jTextArea1");

    jComboBoxFontName.addActionListener(new
        FontChooser_jComboBoxFontName_actionAdapter(this));
    jComboBoxFontName.setBackground(Color.white);
    jComboBoxFontName.setBorder(BorderFactory.createLoweredBevelBorder());
    jComboBoxFontName.setOpaque(false);
    jComboBoxFontName.addItemListener(new
                                      FontChooser_jComboBoxFontName_itemAdapter(this));
    jComboBoxFontSize.addItemListener(new
                                      FontChooser_jComboBoxFontSize_itemAdapter(this));
    jComboBoxFontSize.setBorder(BorderFactory.createLoweredBevelBorder());
    jComboBoxFontSize.setOpaque(false);
    this.getContentPane().add(jPanel1, BorderLayout.CENTER);
    jPanel1.add(jPanel4, BorderLayout.NORTH);
    jPanel4.add(jComboBoxFontSize, new XYConstraints(201, 25, 60, 25));
    jPanel4.add(jLabel1, new XYConstraints(201, 0, 114, 25));
    jPanel4.add(jComboBoxFontName, new XYConstraints(9, 25, 179, 25));
    jPanel4.add(jLabel2, new XYConstraints(9, 0, 179, 25));
    jPanel1.add(jPanel3, BorderLayout.SOUTH);
    jPanel3.add(jButtonOK, null);
    jPanel3.add(jButtonCancel, null);
    jPanel1.add(jPanel2, BorderLayout.CENTER);
    jPanel2.add(jTextArea1, "jTextArea1");
  }

  public void actionPerformed(ActionEvent e) {
    /**@todo Implement this java.awt.event.ActionListener method*/
    throw new java.lang.UnsupportedOperationException(
        "Method actionPerformed() not yet implemented.");
  }

  void jButtonCancel_actionPerformed(ActionEvent e) {
    if (e.getSource() == jButtonCancel) {
      cancel();
    }
  }

  void cancel() {
    select = false;
    dispose();
  }

  void ok() {
    select = true;
    hide();

  }

  void showDialag(Frame frame) {
    Dimension size =this.getPreferredSize();
    Dimension frmSize = frame.getSize();
    Point loc = this.getLocation();
    setLocation( (frmSize.width - size.width) / 2 + loc.x,
                (frmSize.height - size.height) / 2 + loc.y);

    pack();
    show();

  }

  void jComboBoxFontName_actionPerformed(ActionEvent e) {

  }

  void jComboBoxFontName_itemStateChanged(ItemEvent e) {
    selectFont = jComboBoxFontName.getSelectedItem().toString();
    font = new Font(selectFont, Font.BOLD, selectFontSize);
    jTextArea1.setFont(font);
  }

  void jComboBoxFontSize_itemStateChanged(ItemEvent e) {
    String fontSize;
    fontSize = (String) jComboBoxFontSize.getSelectedItem();
    selectFontSize = Integer.parseInt(fontSize);
    font = new Font(selectFont, Font.BOLD, selectFontSize);
    jTextArea1.setFont(font);
  }

  void jButtonOK_actionPerformed(ActionEvent e) {
    ok();
  }

  public Font getSelectFont() {
    return font;
  }
}

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

  FontChooser_jComboBoxFontName_actionAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jComboBoxFontName_actionPerformed(e);
  }
}

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

  FontChooser_jButtonCancel_actionAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButtonCancel_actionPerformed(e);
  }
}

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

  FontChooser_jComboBoxFontName_itemAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }

  public void itemStateChanged(ItemEvent e) {
    adaptee.jComboBoxFontName_itemStateChanged(e);
  }
}

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

  FontChooser_jComboBoxFontSize_itemAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }

  public void itemStateChanged(ItemEvent e) {
    adaptee.jComboBoxFontSize_itemStateChanged(e);
  }
}

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

  FontChooser_jButtonOK_actionAdapter(FontChooser adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButtonOK_actionPerformed(e);
  }
}

⌨️ 快捷键说明

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