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 ,