字体对话框剖析.docx
- 文档编号:25045766
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:22
- 大小:390.21KB
字体对话框剖析.docx
《字体对话框剖析.docx》由会员分享,可在线阅读,更多相关《字体对话框剖析.docx(22页珍藏版)》请在冰豆网上搜索。
字体对话框剖析
中南林业科技大学
课程设计报告
设计名称:
字体对话框
姓名:
张旭学号:
20124575
专业班级:
计算机科学与技术一班
院(系):
计算机与信息工程学院
设计时间:
2014年01月10日
设计地点:
电子信息楼603机房
指导教师评语:
成绩:
签名:
2013年1月11日
Java程序设计课程设计任务书
计算机与信息工程院系计算机科学与技术教研室
学号
20124575
学生姓名
张旭
专业(班级)
计算机科学
与技术2012级
设计题目
字体对话框
设计目的
1.深入理解Java面向对象的设计思想
2.提高用Java语言编程的能力
3.学会制作软件开发文档
设
计
要
求
1.编写一个FontFamily类,该类对象可以获取当前机器可用的全部字体名称;
2.编写一个Dialog的子类:
FontDialog,该类为FontFamily对象维护的数据提供视图;
3.编写一个窗口,该窗口有“设置字体”按钮和一个文本区对象,当单击该按钮时,弹出一个FontDialog创建的对话框,然后根据用户在对话框下拉列表中选择的字体来显示文本区中的文本;
4.在FontDialog对话框中设置字体字号、加粗、倾斜、下划线等功能。
工
作
计
划
1.概要设计(说明本程序中用到的所有数据的定义、程序的流程图以及各程序模块之间的调用关系)
2.详细设计(列出关键代码的设计与分析,关键代码后必须有中文注释)
3.程序测试(列出测试结果,包括输入和输出,测试数据应该完整和严格)
4.制作API文档
5.编写课程设计说明书
工
作
成
果
1.按要求写出课程设计说明书(含电子文档)
2.提供完整的源程序代码
3.提供API文档
参
考
资
料
1.Java程序设计教程(第2版)雍俊海编著清华大学出版社
2.Java2实用教程(第4版)耿祥义等编著清华大学出版社
指导教师签字
教研室主任签字
2013年12月30日
设计思想概述:
本程序的要求为:
1.编写一个FontFamily类,该类对象可以获取当前机器可用的全部字体名称;
2.编写一个Dialog的子类:
FontDialog,该类为FontFamily对象维护的数据提供视图;
3.编写一个窗口,该窗口有“设置字体”按钮和一个文本区对象,当单击该按钮时,弹出一个FontDialog创建的对话框,然后根据用户在对话框下拉列表中选择的字体来显示文本区中的文本;
4.在FontDialog对话框中设置字体字号、加粗、倾斜、下划线等功能。
字体对话框主体结构
(1)创建一个窗口容器container,设置窗口布局,给窗口添加背景颜色,然后在container里声明要添加文本框按钮。
(2)创建监听器(给按钮添加监视)
(3)创建一个新的JFontDialog类的窗口,设置布局再向窗口添加文本框按钮,设置窗口位置,窗口可见,在创建监听器(定义菜单监视器)
(4)给字体添加功能:
读取Windows中已有的字体,改变字体颜色,改变字体大小,改变字体样式等功能添加到窗口中。
程序流程图:
字体对话框流程图
源代码:
类一:
Test
importjavax.swing.JFrame;
/**
*在主类中创建一个对象dialog
*@author张旭
*@version1.0
*/
publicclassTest{
publicstaticvoidmain(String[]lsg){
JFontDialogTestdialog=newJFontDialogTest();
dialog.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
类二:
JFontDialog
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
importjavax.swing.event.*;
importjavax.swing.border.*;
/**
*在JFontDialog类中声明文本框,声明一个按钮型的数组,声明一个JFontDialogTest类对象
*创建Color型数组并赋值
*
*/
publicclassJFontDialogextendsJDialog{
privatestaticfinallongserialVersionUID=1L;//?
JListfontpolics,fontstyle,fontsize,fontcolor;
JTextFieldfontpolict,fontstylet,fontsizet,fontcolort;//声明文本框
JButton[]ColorButton;//声明一个按钮型的数组
privateJFontDialogTestframe;//声明一个JFontDialogTest类对象
JPanelFontSet,FontView;
JLabelFontResolvent;
JButtonbuttonok,buttoncancel;
//创建Color型数组并赋值
Color[]colors={Color.BLACK,Color.BLUE,Color.CYAN,Color.DARK_GRAY,
Color.GRAY,Color.GREEN,Color.LIGHT_GRAY,Color.MAGENTA,
Color.ORANGE,Color.PINK,Color.RED,Color.WHITE,Color.YELLOW};
String[]colornames={"BLACK","BLUE","CYAN","DARK_GRAY","GRAY",
"GREEN","LIGHT_GRAY","MAGENTA","ORANGE","PINK","RED","WHITE",
"YELLOW"};
Stringexample="张旭";
/**
*
*@param定义JFontDialog的构造方法
*@param创建container
*用panel.setLayout设置该容器的布局
*创建FontResolvent标签并设置了其位ListSelectionListener定义菜单选择监视器定义键盘监视器
*设置修改字体,大小,样式,颜色的方法
*/
publicJFontDialog(JFontDialogTestowner,Stringtitle,booleanmodal){//定义JFontDialog的构造方法
super(owner,title,modal);//?
Containercontainer=getContentPane();
container.setLayout(newBorderLayout());
this.frame=owner;//?
JPanelpanel=newJPanel();
panel.setLayout(newGridLayout(2,1));//设置该容器的布局
FontSet=newJPanel(newGridLayout(1,4));
FontView=newJPanel(newGridLayout(1,2));
//this.add(panel,BorderLayout.CENTER);
//this.setBounds(280,100,800,600);
//this.setVisible(true);
FontResolvent=newJLabel(example,JLabel.CENTER);//创建了该标签并设置了其位置
FontResolvent.setBackground(Color.WHITE);
//定义菜单选择监视器
ListSelectionListenerselectionListener=newListSelectionListener(){//匿名类,ListSelectionListener的子类对象
//处理事件,根据所选的菜单来进行不同类型的处理
publicvoidvalueChanged(ListSelectionEvente){
if(((JList)e.getSource()).getName().equals("polic")){
fontpolict.setText((String)fontpolics.getSelectedValue());
FontResolvent.setFont(newFont(fontpolict.getText(),FontResolvent.getFont().getStyle(),FontResolvent.getFont().getSize()));
}
if(((JList)e.getSource()).getName().equals("style")){
fontstylet.setText((String)fontstyle.getSelectedValue());
FontResolvent.setFont(newFont(FontResolvent.getFont().getFontName(),fontstyle.getSelectedIndex(),FontResolvent.getFont().getSize()));
}
if(((JList)e.getSource()).getName().equals("size")){
fontsizet.setText((String)fontsize.getSelectedValue());
try{
Integer.parseInt(fontsizet.getText());
}catch(ExceptionexcepInt){
fontsizet.setText(FontResolvent.getFont().getSize()+"");
}
FontResolvent.setFont(newFont(FontResolvent.getFont().getFontName(),FontResolvent.getFont().getStyle(),Integer.parseInt(fontsizet.getText())));
}
if(((JList)e.getSource()).getName().equals("color")){
fontcolort.setText(colornames[fontcolor.getSelectedIndex()]);
FontResolvent.setForeground(colors[fontcolor.getSelectedIndex()]);
}
}
};
//定义键盘监视器
/*KeyListenerkeyListener=newKeyListener(){
//处理键盘事件
publicvoidkeyPressed(KeyEvente){
if(e.getKeyCode()==10){
if(((JTextField)e.getSource()).getName().equals("polic")){
FontResolvent.setFont(newFont(fontpolict.getText(),FontResolvent.getFont().getStyle(),FontResolvent.getFont().getSize()));
}
if(((JTextField)e.getSource()).getName().equals("style")){
fontstylet.setText((String)fontstyle.getSelectedValue());
FontResolvent.setFont(newFont(FontResolvent.getFont().getFontName(),fontstyle.getSelectedIndex(),FontResolvent.getFont().getSize()));
}
if(((JTextField)e.getSource()).getName().equals("size")){
try{
Integer.parseInt(fontsizet.getText());
}catch(ExceptionexcepInt){
fontsizet.setText(FontResolvent.getFont().getSize()+"");
}
FontResolvent.setFont(newFont(FontResolvent.getFont().getFontName(),FontResolvent.getFont().getStyle(),Integer.parseInt(fontsizet.getText())));
}
}
}
@Override
publicvoidkeyTyped(KeyEvente){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidkeyReleased(KeyEvente){
//TODOAuto-generatedmethodstub
}
};*/
//字体
JPanelFontpolic=newJPanel();
Borderborder=BorderFactory.createLoweredBevelBorder();
border=BorderFactory.createTitledBorder(border,"字体");
Fontpolic.setBorder(border);
Font[]fonts=java.awt.GraphicsEnvironment
.getLocalGraphicsEnvironment().getAllFonts();
inttaille=fonts.length;
String[]policnames=newString[taille];
for(inti=0;i policnames[i]=fonts[i].getName(); } fontpolics=newJList(policnames); fontpolics.setName("polic"); fontpolics.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fontpolics.addListSelectionListener(selectionListener); fontpolics.setVisibleRowCount(6); fontpolict=newJTextField(policnames[0]); fontpolict.setName("polic"); //fontpolict.addKeyListener(keyListener); JScrollPanejspfontpolic=newJScrollPane(fontpolics); Fontpolic.setLayout(newBoxLayout(Fontpolic,BoxLayout.PAGE_AXIS)); Fontpolic.add(fontpolict); Fontpolic.add(jspfontpolic); //样式 JPanelFontstyle=newJPanel(); border=BorderFactory.createLoweredBevelBorder(); border=BorderFactory.createTitledBorder(border,"样式"); Fontstyle.setBorder(border); String[]styles={"PLAIN","BOLD","ITALIC","BOLDITALIC"}; fontstyle=newJList(styles); fontstyle.setName("style"); fontstyle.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fontstyle.addListSelectionListener(selectionListener); fontstyle.setVisibleRowCount(6); fontstylet=newJTextField(styles[0]); fontstylet.setName("style"); //fontstylet.addKeyListener(keyListener); JScrollPanejspfontstyle=newJScrollPane(fontstyle); Fontstyle.setLayout(newBoxLayout(Fontstyle,BoxLayout.PAGE_AXIS)); Fontstyle.add(fontstylet); Fontstyle.add(jspfontstyle); //大小 JPanelFontsize=newJPanel(); border=BorderFactory.createLoweredBevelBorder(); border=BorderFactory.createTitledBorder(border,"大小"); Fontsize.setBorder(border); String[]sizes={"30","40","50","60","70","80"}; fontsize=newJList(sizes); fontsize.setName("size"); fontsize.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fontsize.addListSelectionListener(selectionListener); fontsize.setVisibleRowCount(6); fontsizet=newJTextField(sizes[0]); fontsizet.setName("size"); //fontsizet.addKeyListener(keyListener); JScrollPanejspfontsize=newJScrollPane(fontsize); Fontsize.setLayout(newBoxLayout(Fontsize,BoxLayout.PAGE_AXIS)); Fontsize.add(fontsizet); Fontsize.add(jspfontsize); //颜色 JPanelFontcolor=newJPanel(); Borderbordercolor=BorderFactory.createLoweredBevelBorder(); bordercolor=BorderFactory.createTitledBorder(bordercolor,"颜色"); Fontcolor.setBorder(bordercolor); fontcolor=newJList(colornames); fontcolor.setName("color"); fontcolor.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); fontcolor.addListSelectionListener(selectionListener); fontcolor.setVisibleRowCount(6); fontcolort=newJTextField(colornames[0].toString()); fontcolort.setName("color"); //fontcolort.addKeyListener(keyListener); JScrollPanejspfontcolor=newJScrollPane(fontcolor); Fontcolor.setLayout(newBoxLayout(Fontcolor,BoxLayout.PAGE_AXIS)); Fontcolor.add(fontcolort); Fontcolor.add(jspfontcolor); FontSet.add(Fontpolic); FontSet.add(Fontstyle); FontSet.add(Fontsize); FontSet.add(Fontcolor); FontView.add(FontResolvent); panel.add(FontSet); panel.add(FontView); JPanelpanelnorth=newJPanel(); panelnorth.setLayout(newFlowLayout()); buttonok=newJButton("确定"); buttoncancel=newJButton("取消"); panelnorth.add(buttonok); panelnorth.add(buttoncancel); buttonok.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ frame.testLabel.setFont(FontReso
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字体 对话框 剖析
![提示](https://static.bdocx.com/images/bang_tan.gif)