`
mengdejun
  • 浏览: 410265 次
  • 性别: 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 Swing库中的一个组件,用于在应用程序中与用户交互,允许他们选择字体、字号和样式。在Java编程中,我们通常使用`JOptionPane`或自定义的`JFrame`来创建这样的对话框。这个压缩包文件可能包含...

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

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

    Java文件对话框---FileDialog.pdf

    在某些操作系统中,`FileDialog`还可能提供额外的特性,如字体、颜色、打印机等特定类型的对话框。不过,这些特性可能会因操作系统的不同而有所差异。尽管如此,`FileDialog`仍然是Java应用程序中进行基本文件操作的...

    使用颜色字体对话框

    在这个特定的场景中,我们讨论的是如何在程序中实现“使用颜色字体对话框”,这涉及到动态改变字体颜色的功能。下面我们将详细探讨这个主题。 首先,我们需要了解颜色对话框的基本概念。在Windows API中,`...

    java 字体选择器插件

    在这里,我们将深入探讨Java字体选择器插件的原理、使用方法以及它在Java开发中的作用。 首先,我们需要理解Java中处理字体的基本概念。在Java中,字体是由`Font`类表示的,它可以指定字体家族、样式(如粗体、斜体...

    一个java字体选择器

    Java字体选择器是一个实用工具,它允许用户在Java应用程序中浏览和选择系统上可用的字体。这个项目展示了如何利用Java的图形用户界面(GUI)组件和字体管理功能来创建一个自定义的字体选取界面。下面将详细介绍这个...

    java获取系统安装字体

    在实际应用中,这个工具类可以用于创建自定义的字体选择对话框,或者用于在应用程序中动态地调整文本显示的字体。开发者可以根据需求,进一步扩展这个工具类,例如添加过滤特定字体类型(如TrueType或OpenType)、按...

    swing中自定义对话框的几种实际用法

    除了基本的组件外,还可以通过调整背景色、边框、字体等属性,以及使用自定义图标,来进一步定制对话框的外观,使其更符合应用的整体风格。 总结,Swing中的自定义对话框是提高用户体验和增强应用功能的重要手段。...

    Java窗体字体样式

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

    常用对话框的使用

    四、字体对话框 FontDialog FontDialog对话框用于让用户选择字体、字号和样式。在Windows Forms中,`FontDialog.ShowDialog()`方法能打开字体选择对话框,`FontDialog.Font`属性则返回用户选定的字体对象。 五、...

    字体,颜色对话框和exit编辑框设置颜色和button控件颜色及平面效果和取屏幕上任意一点的颜色

    本文将深入探讨标题和描述中提及的几个关键知识点:字体对话框、颜色对话框、Exit编辑框颜色设置、Button控件的颜色和平面效果,以及如何获取屏幕上的任意一点颜色。 首先,字体对话框(Font Dialog)允许用户选择...

    对话框继承、分屏、改变大小、设计字体、布局

    本主题将深入探讨对话框的继承、分屏、改变大小、设计字体以及布局等关键知识点。 1. 对话框继承:在面向对象编程中,对话框通常是作为基类(如`Dialog`或`JDialog`)的子类来创建的。通过继承,我们可以获取基类的...

    Java_Swing-fontchoose.rar_java控件字体_swing Font

    在描述中提到的字体选择器实现中,开发者可能自定义了一个组件或者对话框来模拟 `JFontChooser` 的功能,因为 `JFontChooser` 在Java Swing的标准库中并不是一个公开可用的类。这可能涉及到创建 `JComboBox` 或 `...

    模拟MSN弹出式对话框示例

    8. **自定义样式和主题**:为了让弹出式对话框更具个性化,可以允许用户自定义对话框的外观,如背景颜色、字体大小等。 在实际应用中,你可能还会遇到性能优化、资源管理、异常处理等问题。通过深入学习这些知识点...

    各种风格对话框

    通过Java代码动态修改对话框的样式,如改变字体颜色、大小,或者添加动画效果: ```java AlertDialog dialog = builder.create(); dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override ...

    JavaBean字体选择器,跟windows一样方便

    在这个场景中,"JavaBean字体选择器"是指一个基于JavaBean设计原则的组件,它模拟了Windows操作系统中的字体选择对话框,为用户提供便捷的字体选取功能。 字体选择器是用户界面中常见的一种组件,它允许用户在各种...

    好用的仿IOS对话框

    2. **自定义能力**:检查库是否允许自定义对话框的颜色、字体、按钮文本等,以适应应用的品牌风格。 3. **性能优化**:考虑库的内存占用和渲染效率,避免对应用性能造成负面影响。 4. **交互一致性**:虽然外观上...

Global site tag (gtag.js) - Google Analytics