Java--第13周实验--任务2--编写一个FontFamily类,该类对象获取当前机器可用的全部字体名称,编写一个对话框FontDialog,该对话框是模式对话框,采用BorderLayout布局
2012-11-28 13:29
513 查看
Test类:
Mypanel类:
FrameHaveDialog类:
FontFamily类:
FontDialog类:
运行结果:
/* (程序头部注释开始) * 程序的版权和版本声明部分 * 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); } } }
运行结果:
相关文章推荐
- Java--第13周实验--任务2--编写一个FontFamily类,该类对象获取当前机器可用的全部字体名称,编写一个对话框FontDialog,该对话框是模式对话框,采用BorderLayout布局
- JAVA--第五周实验--任务5--封装一类矩阵对象,该类对象具有初始化矩阵的功能、修改矩阵元素的功能
- 在窗体上放置一个标签、一个按钮、一个fontDialog控件。标签内容改为“烟台大学”。实现功能:1)程序运行时,单击打开字体对话框按钮,可选择字体,并以所选字体作为标签字体。
- C#--第六周实验--任务2--继续在Class类里编写一个方法,名称为Reconvert,参数一个,但可以是字符串、整数、单精度、双精度,方法功能返回参数的逆序
- java实现记事本基本功能:新建、打开、保存、另存为、退出、替换、全部替换、复制、剪切、粘贴、全选、获取当前时间日期、修改字体、颜色、自动换行等
- Java--第13周实验--封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame
- Java--第十三周实验--任务0--编写一个简单的Java应用程序
- 【Java】获取一个目录下的名称符合一定要求的全部文件+目录
- Java反射代码--01.通过类名称加载一个类并且获取当前类实例
- JAVA--第12周实验--任务1--编写一个Panel的子类MyPanel,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器
- Java基础之扩展GUI——使用字体对话框(Sketcher 5 displaying a font dialog)
- 分享java程序设计中一个小程序:获取当前系统日期和时间在小程序中显示出来
- 一个java获取当前项目路径的方法
- VisualFC使用 - DialogFont(对话框字体设计)
- python学习之获取当前时间的方法(可以任意取时间的任何一个对象显示)
- 第九周实验报告任务4 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- java获取对象属性类型、属性名称、属性值
- C#--第七周实验--任务5--编写一个控制台应用,实现输出一个从1开始到511*511长度的随机数序列
- Java 通过反射获取一个Field对象的泛型类型
- java--第14周实验--任务1--.编写多线程程序