您的位置:首页 > 编程语言 > Java开发

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

2012-11-28 13:29 513 查看
Test类:

/* (程序头部注释开始)   
 * 程序的版权和版本声明部分   
 * 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类:

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类:

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类:

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类:

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);
		add(panel,BorderLayout.SOUTH);
		list.addItemListener(this);
		panel.button1.addActionListener(this);
		panel.button2.addActionListener(this);
		setBounds(380, 380, 380, 380);
	}

	
	public void itemStateChanged(ItemEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource()==list)
		{
			String name = (String)list.getSelectedItem();
			//UIManager.put("Label.font", new Font(name,Font.BOLD,12));
			//System.out.print(list.getItemAt(6));
			lable.setFont(new Font(name,Font.PLAIN,list.getFont().getSize()));
		}
		
	}
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==panel.button1)
		{
			//int i = list.getSelectedIndex();
			//FrameHaveDialog frameHaveDialog = new FrameHaveDialog();
			//int index = list.getSelectedIndex();
			//lable.setFont(new Font((String) list.getItemAt(index),Font.PLAIN,list.getFont().getSize()));
			//System.out.print(0);
			setVisible(false);
			//System.exit(0);
		}
		else if(e.getSource()==panel.button2)
		{
			//System.out.print(1);
			setVisible(false);
			//System.exit(0);
		}
		
	}

}






运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐