当前位置:编程学习 > JAVA >>

Java--第13周实验--任务2--编写一个FontFamily类,该类对象获取当前机器可用的全部字体名称,编写一个对话框FontDialog,该对话

Test类:
[java] 
 * 程序的版权和版本声明部分   
 * Copyright (c) 2011, 烟台大学计算机学院学生    
 * All rights reserved.   
 * 文件名称:编写一个FontFamily类,该类对象获取当前机器可用的全部字体名称。
 * 作 者: 雷恒鑫    
 * 完成日期: 2012 年 11 月 20日   
 * 版 本 号: V1.0    
 * 对任务及求解方法的描述部分   
 * 输入描述:编写一个FontFamily类,该类对象获取当前机器可用的全部字体名称。
 * 输入描述:编写一个对话框FontDialog,该对话框是模式对话框,采用BorderLayout布局.
 * 输入描述:包含一个JComboBox放在北面显示全部字体的名称,包含一个JLabel放在中间,显示字体的效果,包含两个按钮放在南面.
 * 输入描述:点击YES,在对话框所依赖的窗口中设置字体的效果,点击Cancle取消。编写一个窗口FrameHaveDialog.
 * 输入描述:该窗口有一个按钮和一个文本区,当单击该按钮时,弹出对话框FontDialog.
 * 输入描述:然后根据用户在对话框下拉列表中选择的为显示文本区中的文本。最后编写一个程序执行入口进行测试。
 * 问题描述:
 * 程序输出:   
 * 程序头部的注释结束   
 */    
package task_two; 
 
public class Test { 
 
    /**
     * @param args
     */ 
    public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        new FrameHaveDialog(); 
    } 
 

 
 
Mypanel类:
[java] 
package task_two; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class Mypanel extends Panel { 
 
    JButton button1,button2; 
    public Mypanel(){ 
        button1 = new JButton("Yes"); 
        button2 = new JButton("Cancle"); 
        add(button1); 
        add(button2); 
    } 

 
 
FrameHaveDialog类:
[java] 
package task_two; 
 
import java.awt.FlowLayout; 
import java.awt.Font; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.FocusListener; 
 
import javax.swing.*; 
 
//该窗口有一个按钮和一个文本区,当单击该按钮时,弹出对话框FontDialog. 
//然后根据用户在对话框下拉列表中选择的为显示文本区中的文本。最后编写一个程序执行入口进行测试。 
public class FrameHaveDialog extends JFrame implements ActionListener{ 
    JTextArea text1; 
    JButton button; 
    FontDialog dialog; 
    public FrameHaveDialog(){ 
        text1 = new JTextArea(6,15); 
        button = new JButton("打开对话框"); 
        add(text1); 
        add(button); 
        button.addActionListener(this); 
        dialog = new FontDialog(this,"修改字体对话框",true); 
        setLayout(new FlowLayout()); 
        setBounds(200, 200, 200, 200); 
        setVisible(true); 
    } 
 
    public void actionPerformed(ActionEvent e) { 
        //int index = dialog.list.getSelectedIndex(); 
        //text1.setFont(new Font((String) dialog.list.getItemAt(index),Font.PLAIN,12)); 
        dialog.setVisible(true); 
        if(dialog.panel.button1.hasFocus()==true) 
        { 
             
        int index = dialog.list.getSelectedIndex(); 
        text1.setFont(new Font((String) dialog.list.getItemAt(index),Font.PLAIN,dialog.list.getFont().getSize())); 
        } 
         
    } 

 
 
FontFamily类:
[java] 
package task_two; 
 
import java.awt.GraphicsEnvironment; 
 
//编写一个FontFamily类,该类对象获取当前机器可用的全部字体名称。 
public class FontFamily { 
    public String[]  getfont(){ 
    GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
    String[] fontName = e.getAvailableFontFamilyNames(); 
    return fontName; 
    } 

 
 
 
FontDialog类:
[java] 
package task_two; 
 
import java.awt.BorderLayout; 
import java.awt.Font; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.ItemEvent; 
import java.awt.event.ItemListener; 
 
import javax.swing.*; 
 
//编写一个对话框FontDialog,该对话框是模式对话框,采用BorderLayout布局. 
//包含一个JComboBox放在北面显示全部字体的名称,包含一个JLabel放在中间,显示字体的效果,包含两个按钮放在南面. 
//点击YES,在对话框所依赖的窗口中设置字体的效果,点击Cancle取消。 
public class FontDialog extends JDialog implements ItemListener, ActionListener{ 
    JComboBox list; 
    JLabel lable; 
    Mypanel panel; 
    public FontDialog(JFrame f, String s, boolean b) { 
        super(f, s, b); 
        panel = new Mypanel(); 
        list = new JComboBox(); 
        lable = new JLabel("字体的效果"); 
        FontFamily fontFamily = new FontFamily(); 
        String[] s1 = fontFamily.getfont(); 
        for (int i = 0; i < s1.length; i++) { 
            list.addItem(s1[i]); 
        } 
         
        add(list,BorderLayout.NORTH); 
        add(lable,BorderLayout.CENTER); <

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,