`
mengdejun
  • 浏览: 400037 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java 字体对话框

    博客分类:
  • Jav
阅读更多
package org.whsvc.font;

武汉软件工程职业学院 计算机应用系 孟德军
/************************************************************************/
/*             make0000@msn.com       */
/************************************************************************/

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

public class FontDialog {
private Dialog fontdialog;
private JButton okButton, cancelButton;
private int width = 450;
private int height = 250;
private String name = "Serif";
private int type = 0;
private int size = 12;
private static final int OK_OPTION = 0x00001;
private static final int CANCEL_OPTION = 0x00010;
private Font customFont = new Font("宋体", Font.ITALIC, 12);
private boolean okpressed = false;
private boolean cancelpressed = false;
private JLabel lbl1 = new JLabel("字体:");
private JLabel lbl2 = new JLabel("字形:");
private JLabel lbl3 = new JLabel("字号:");
private JTextArea area;
String[] zx = { "平体", "加粗", "斜体", "基线" };
JLabel lbl = new JLabel("字体样式Style");
private JComboBox cb1, cb3, cb2 = new JComboBox(zx);
private Container c;
private String[] zt;

public FontDialog(Frame owner, String title, boolean modal) {
   init();
   fontdialog = new Dialog(owner, title, modal);
   fontdialog.setLocation(owner.getLocation());
   fontdialog.setLayout(new FlowLayout());
   fontdialog.setSize(getWidth(), getHeight());
   fontdialog.add(lbl1);
   fontdialog.add(cb1);
   fontdialog.add(lbl2);
   fontdialog.add(cb2);
   fontdialog.add(lbl3);
   fontdialog.add(cb3);
   fontdialog.add(okButton);
   fontdialog.add(cancelButton);
   fontdialog.add(area);
   fontdialog.setResizable(false);
   fontdialog.setAlwaysOnTop(true);
   fontdialog.setBackground(new Color(145, 167, 220));
   cancelButton.addActionListener(new fontListener());
   okButton.addActionListener(new fontListener());
   fontdialog.addWindowListener(new fontListener());
   cb1.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent event) {
     int state = event.getStateChange();
     name = (String) event.getItem();
     setCustomFont(new Font(name, type, size));
    }
   });
   cb2.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent event) {
     int state = event.getStateChange();
     String s = (String) event.getItem();
     if (s.equals("平体")) {
      type = Font.PLAIN;
      setCustomFont(new Font(name, type, size));
     } else if (s.equals("加粗")) {
      type = Font.BOLD;
      setCustomFont(new Font(name, type, size));
     } else if (s.equals("斜体")) {
      type = Font.ITALIC;
      setCustomFont(new Font(name, type, size));
     } else {
      type = Font.CENTER_BASELINE;
      setCustomFont(new Font(name, type, size));
     }
    }
   });
   cb3.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent event) {
     String state = event.getItem().toString();
     size = Integer.parseInt(state);
     setCustomFont(new Font(name, type, size));
    }
   });
}

public Font showFontDialog() {
   fontdialog.setVisible(true);
   if (okpressed) {
    return getCustomFont();
   } else {
    return customFont;
   }
}

private void init() {
   okButton = new JButton("确定");
   cancelButton = new JButton("取消");
   GraphicsEnvironment ge = GraphicsEnvironment
     .getLocalGraphicsEnvironment();
   zt = ge.getAvailableFontFamilyNames();
   cb1 = new JComboBox(zt);
   cb1.setMaximumRowCount(6);
   area = new JTextArea(6, 30);
   cb3 = new JComboBox();
   for (int i = 1; i <= 72; i++) {
    if (i % 2 == 0) {
     cb3.addItem(i);
    }
   }
   okButton.setFocusable(true);
   area.setEditable(false);
   area.setText(new Date().toString());
   area.setBorder(new TitledBorder("字体样式"));
   area.setBackground(new Color(255, 122, 0));
   okButton.setBackground(new Color(122, 122, 122));
   cancelButton.setBackground(new Color(122, 122, 122));
}

public void setWidth(int width) {
   this.width = width;
}

public void setHeight(int height) {
   this.height = height;
}

private int getWidth() {
   return (this.width);
}

private int getHeight() {
   return (this.height);
}

private void setCustomFont(Font customFont) {
   this.customFont = customFont;
   area.setFont(customFont);
   area.revalidate();
}

public String toString() {
   return FontDialog.class.toString();
}

public Font getCustomFont() {
   return (this.customFont);
}

private class fontListener extends WindowAdapter implements ActionListener {
   public void windowClosing(WindowEvent e) {
    fontdialog.dispose();
   }

   public void actionPerformed(ActionEvent e) {
    if (e.getSource() == cancelButton) {
     fontdialog.dispose();
     cancelpressed = true;
    } else if (e.getSource() == okButton) {
     okpressed = true;
     setCustomFont(new Font(name, type, size));
     fontdialog.dispose();
    }
   }
}
}

 

 

分享到:
评论

相关推荐

    java字体对话框(附源码)

    java字体对话框 java字体对话框(附源代码) whsvc

    JAVA的字体格式设置对话框代码

    JAVA的字体格式设置对话框,用swing实现,可设置字体的大小,类型和样式。

    java 实现我的记事本

     新建:新建一个文本文件  打开:调用JDK提供的“打开”... 字体:调用“字体”对话框设置文本编辑区的字体、字形和大小  颜色:调用“颜色板”对话框设置文本编辑区的颜色  帮助主题:调用网上API文档网页

    Java窗体字体样式

    这是一个用Java做的小窗体,选择字体样式可以改变

    记事本(java)

    该记事本主要功能:主...格式菜单:包括自动换行、字体、颜色三个菜单项,主要实现了文档内容自动换行,调用Swing组件自带的颜色对话框,以及调用新创建的字体对话框;弹出式菜单:实现对文档的复制、剪切、粘贴功能。

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    JAVA写的windows记事本源代码

    所用工具:Jcreator ...八、字体(Ctrl+Q):点击或使用快捷弹出字体对话框 选择字体后,文字全部改变为所选字体 九、自动换行(Ctrl+Q):点击后实现自动换行 再点击后恢复 十、关于记事本(F1)

    进度条、对话框设计.rar_java 制作 进度条_java 进度条_组合框_组合框 颜色_进度条

    进度条的设计,掌握颜色选择器对话框的使用,文件选择器对话框的使用,使用JOptionPane类创建对话框,通过制作“设置字体”对话框,掌握列表框、单选按钮、组合框等组件的使用,了解打包工具JAR的使用

    java源码包---java 源码 大量 实例

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java记事本

    仿windows记事本,可以执行通常的编辑操作,复制,黏贴,剪切,删除,撤销,重做,查找,替换。保存文件,打开文件。有字体对话框和颜色对话框。功能很齐全。

    java2 实用教程(第三版) 实验指导 上机实验7 组件及事件处理(2)

    java2 实用教程(第三版) 实验指导 上机实验7 组件及事件处理(2) 方程求根 字体对话框 英语单词拼写训练

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java2实验实用模板代码

    实验2 字体对话框 36 实验3 华容道游戏 39 上机实践8 多线程 47 实验1 线程的4种状态 47 实验2 线程之间共享数据 49 实验3 挂起、恢复和终止线程 51 上机实践9 输入输出流 55 实验1 文件加密 55 实验2 给文件的内容...

    java记事本,具新建,保存,退出。模仿windows自带的。

    该记事本具有新建,保存,退出。可以进行一些简单的查找。拥有字体对话框,可以进行设置。

Global site tag (gtag.js) - Google Analytics