南昌大学java实验报告3.doc_第1页
南昌大学java实验报告3.doc_第2页
南昌大学java实验报告3.doc_第3页
南昌大学java实验报告3.doc_第4页
南昌大学java实验报告3.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南昌大学实验报告学生姓名: 学 号: 5 专业班级: 网络工程091 实验类型: 验证 综合 设计 创新 实验日期: 2012.5.18 实验成绩: 实验三 设计一个文字字体设计窗体一、实验目的设计一个文字字体设计窗体,在该窗体中可以设置要显示文字的字体内容,包括字体名称、字体大小、粗体和斜体等字体风格。二、实验要求写出完整的可以实现的程序,并要求测试成功三、实验原理获取本地计算机字体名称的方法: GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); fontNames=ge.getAvailableFontFamilyNames();/获得系统中所有字体的名字;颜色按钮和输入框回车的动作事件处理函数模板:public void actionPerformed(ActionEvent e) if(e.getSource()=colorBtn)/改变颜色 colorStyle=JColorChooser.showDialog(this,选择字体颜色,colorStyle); colorBtn.setForeground(colorStyle); txtArea.setForeground(colorStyle); else if(e.getSource()=inputText)/将输入文字在文字显示区表示; txtArea.setText(inputText.getText(); 四、实验步骤设计思想:本实验需建立三个label标签,字体组合框,大小组合框,粗体、斜体复选框,颜色设置按钮,文本输入框和文本输入域。采用三个面板,第一个面板设置字体、字体大小,粗体、斜体复选框以及颜色按钮;第二个面板放输入框标签和文本输入框;第三个面板采用边界布局容纳第一和第二个面板。用一个滚动面板来放文本域。实验设计代码如下所示:package setFont;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class SetFont extends JFrame implements ActionListener JComboBox fontType,fontSize; Checkbox boldBx;/粗体按钮 Checkbox italicBx;/斜体按钮 JButton colorBtn;/颜色按钮; String fontNames;/字体名称; String fontSizes;/字体尺寸; JLabel label;/输入提示标签; JTextField inputText;/文字输入框; JTextArea textArea;/文字显示区; JPanel fontPanel;/字体设置; JPanel showPanel;/显示效果区 Font font; int boldStyle,italicStyle,underlineStyle; int fontSizeStyle; String fontNameStyle; Color colorStyle=Color.black;/设置字体的默认颜色为黑色; public SetFont() super(字体设置); /设置默认字体 boldStyle=0; italicStyle=0; underlineStyle=0; fontSizeStyle=10; fontNameStyle=宋体; font=new Font(fontNameStyle,boldStyle+italicStyle,fontSizeStyle); fontPanel=new JPanel(); fontPanel.setLayout(new FlowLayout(); /设置字体名字 GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); fontNames=ge.getAvailableFontFamilyNames();/获得系统中所有字体的名字; fontType=new JComboBox(fontNames); fontType.setEditable(false); fontType.setMaximumRowCount(10); fontType.addItemListener(new ItemListener() public void itemStateChanged(ItemEvent e)/实现监听字体名字改变的事件 fontNameStyle=(String)fontType.getSelectedItem(); font=new Font(fontNameStyle,boldStyle+italicStyle,fontSizeStyle); textArea.setFont(font); textArea.setForeground(colorStyle); ); /设置字体大小 fontSizes=new String63; for(int i=0;i63;i+) fontSizesi=Integer.toString(i+10); fontSize=new JComboBox(fontSizes); fontSize.setEditable(false); fontSize.setMaximumRowCount(10); fontSize.addItemListener(new ItemListener() public void itemStateChanged(ItemEvent e)/实现监听字体大小改变的方法 fontSizeStyle=Integer.parseInt(String)fontSize.getSelectedItem(); font=new Font(fontNameStyle,boldStyle+italicStyle,fontSizeStyle); textArea.setFont(font); textArea.setForeground(colorStyle); ); /设置粗体选择按钮; boldBx=new Checkbox(粗体); boldBx.addItemListener(new ItemListener() public void itemStateChanged(ItemEvent e)/实现监听选择粗体状态改变的方法 if(boldBx.getState() boldStyle=Font.BOLD; else boldStyle=0; font=new Font(fontNameStyle,boldStyle+italicStyle,fontSizeStyle); textArea.setFont(font); textArea.setForeground(colorStyle); ); /设置斜体选择按钮; italicBx=new Checkbox(斜体); italicBx.addItemListener(new ItemListener() public void itemStateChanged(ItemEvent e) /实现监听选择斜体状态改变的方法 if(italicBx.getState() italicStyle=Font.BOLD; else italicStyle=0; font=new Font(fontNameStyle,boldStyle+italicStyle,fontSizeStyle); textArea.setFont(font); textArea.setForeground(colorStyle); ); /设置颜色选择; colorBtn=new JButton(颜色); colorBtn.addActionListener(this);/监听颜色按钮 /设置字体面板; fontPanel.add(fontType); fontPanel.add(fontSize); fontPanel.add(boldBx); fontPanel.add(italicBx); fontPanel.add(colorBtn); /设置输入提示标签 label=new JLabel(输入); /设置文本输入框; inputText=new JTextField(30); inputText.addActionListener(this); /设置文本显示区; textArea=new JTextArea(10,80);/20行80列; textArea.setFont(font); /设置文本面板; showPanel=new JPanel(); showPanel.add(label); showPanel.add(inputText); showPanel.setLayout(new FlowLayout(); showPanel.add(new JScrollPane(textArea); /设置容器; Container container=getContentPane(); container.setLayout(new BorderLayout(); container.add(fontPanel,BorderLayout.NORTH); container.add(showPanel,BorderLayout.CENTER); setSize(500,300); setVisible(true); public void actionPerformed(ActionEvent e) if(e.getSource()=colorBtn)/改变颜色 colorStyle=JColorChooser.showDialog(this,选择字体颜色,colorStyle); colorBtn.setForeground(colorStyle); textArea.setForeground(colorStyle); else if(e.getSource()=inputText)/将输入文字在文字显示区表示; textArea.setText(inputText.getText(); public static void main(String args) SetFont artFont=new SetFont(); artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 五、实验结果六、思考题进一步改进任务: 在上述的基础上,同时可以选择显示外观的字体选择窗体。答:显示观感按钮的代码:public void actionPerformed(ActionEvent e)if(e.getSource()=button1) /显示Windows观感showFeelAndLook(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);else if(e.getSource()=button2) /显示Unix观感showFeelAndLook(com.sun.java.swing.plaf.motif.MotifLookAndFeel);try UIManager.setLookAndFeel(lookValue); /按指定名设置观感SwingUtilities.updateComponentTreeUI(this); /修改组件观感catch(Excepti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论