华联学院《Java程序设计》期末机考卷A及参考答案_第1页
华联学院《Java程序设计》期末机考卷A及参考答案_第2页
华联学院《Java程序设计》期末机考卷A及参考答案_第3页
华联学院《Java程序设计》期末机考卷A及参考答案_第4页
华联学院《Java程序设计》期末机考卷A及参考答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、XXXXXX大学 XXX学院 第 PAGE 8 页 共 NUMPAGES 8 页(密封线内勿答题) 姓名 学号 学院(系) 专业 年级 班(密封线内勿答题) Java程序设计课程 期末机考卷(200 x200 x学年 第x学期) 本科 专科 A卷 B卷 C卷(考试时间180分钟)题号一二三四总分分数1、编写图形界面的应用程序:该类继承自JFrame类,窗口大小为400160像素,窗口标题为“第一题”,窗口内容面板的布局为边框布局(BorderLayout),窗口中间放置一个10行20列的文本区(JTextArea)。程序中定义一个有5个元素的字符串数组,使用JOptionPane类中的show

2、InputDialog方法创建文本输入对话框,给字符串数组的5个元素赋值,并使用Arrays类的sort方法对字符串数组按升序排序。要求将字符串数组中的5个元素在排序前和排序后的结果按下图所示显示在文本区中。(25分)2、编写命令行界面的应用程序,程序中使用File类及该类的方法mkdirs()创建目录树d:xxxyyyzzz,使用File类的方法createNewFile()创建该目录下的文件1.txt。然后使用字符串类的方法getBytes()将字符串“I like java.”转化为字节数组,并通过FileOutputStream类对象的方法write(byte b)将该数组中的所有字节

3、数据写到文件1.txt中;然后将26个大写字母写到文件1.txt中。最后创建FileInputStream类对象读取文件1.txt,并把读取的内容显示在命令行界面。(25分)3、编写下图(a)所示的图形界面的应用程序:该类继承自JFrame类,窗口大小为400300像素,窗口标题为“第3题”,窗口内容面板的布局为边框布局(BorderLayout):窗口北边放置3个按钮;窗口中间放置一个20行、20列的文本区(JTextArea),并设置文本区的字体名称为“楷体_gb2312”、字体风格为普通体、字号大小为30。三个按钮的事件响应按下面的描述实现:点击“按钮1”,则向文本区中追加一行字符串“j

4、ava程序设计”,图(b)是点击该按钮3次后的显示结果; 点击“按钮2”,则弹出颜色选择对话框,并将选择的颜色设置为文本区中文字的颜色;点击“按钮3”,则弹出颜色选择对话框,并将选择的颜色设置为文本区的背景颜色。(25分) (a) (b)4、请按照下面的描述编写以下两个java程序:Test4.java 和DrawPanel.java。DrawPanel是继承自面板JPanel的面板子类,面板背景颜色设置为白色,大小为400400像素,该类实现了鼠标移动监听接口,响应鼠标移动和拖动事件,拖动鼠标时,把鼠标指针形状设置为十字形状,并通过面板的paint方法在面板中沿拖动路径画图(画笔的宽度设置为

5、3.0f),为了能够将所画图形保存为jpg图片文件,首先把鼠标拖动所绘制的图形画在图像缓冲区(BufferedImage)中,然后将缓冲区的内容显示在面板中。Test4类继承自JFrame,窗口大小为400400像素,窗口标题为“第4题”,窗口内容面板的布局为边框布局(BorderLayout),中间放置绘图面板类DrawPanel的对象,Test4类中设置了菜单条,并在菜单条上添加一个菜单“File”,该菜单下有3个菜单项:“New”、“Save”和“Exit”,下图(a)所示,并按图示设置他们的快捷键。各个菜单项的事件响应按下面的描述实现:选择菜单项“New”,则把中间面板对象的背景色设置

6、为白色,清除所画图形;选择菜单项“Save”,则弹出文件保存对话框(JFileChooser),把中间面板中所画图形保存为jpg文件,下图(b)所示;选择菜单项“Exit”,则退出程序的运行。(25分) (a) (b)Java程序设计课程 期末机考卷A参考答案(200 x200 x学年 第x学期)_专业_年级 本 专科 A卷 B卷 C卷 1(25分)参考程序:import java.awt.*;import javax.swing.*;import java.util.*;public class Test1 extends JFrame JTextArea text; public Test

7、1(String s) super(s); Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout( ); text=new JTextArea(10,20); / String str=new String5; String s1=排序前:n; for(int i=0;istr.length;i+) stri=JOptionPane.showInputDialog(请输入字符串); s1+=stri+t; text.setText(s1); Arrays.sort(str); Strin

8、g s2=n排序后:n; for(int i=0;istr.length;i+) s2+=stri+t; text.append(s2); / contentPane.add(text,BorderLayout.CENTER); setSize(400,160); setVisible(true); public static void main (String args) Test1 w=new Test1(第一题); 2、(25分)参考程序:import java.io.*;public class Test2 public static void main(String args)thr

9、ows IOExceptionFile file1=new File(d:xxxyyyzzz); file1.mkdirs(); File file2=new File(file1,1.txt); file2.createNewFile(); String s=I like java.; byte b=s.getBytes(); FileOutputStream out=new FileOutputStream(file2); out.write(b); for(char ch=a;ch=z;ch+) out.write(ch); out.close(); / FileInputStream

10、readfile=new FileInputStream(file2);int b1;while(b1=readfile.read()!=-1)System.out.print(char)b1); readfile.close();3、(25分)参考程序:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Test3 extends JFrame JTextArea text;/文本区 JButton btn=new JButton3; public Test3(String str) supe

11、r(str); Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout(); text=new JTextArea(20,20); text.setFont(new Font(楷体_gb2312,Font.PLAIN,30); contentPane.add(text,BorderLayout.CENTER);/将文本区添加到窗口中间 JPanel panel=new JPanel();/创建缺省布局方式(FlowLayout)的面板 for(int i=0;ibtn.length;i+)

12、/初始化5个按钮并添加到面板中 btni=new JButton(按钮+(i+1);/循环创建5个按钮 panel.add(btni);/将按钮添加到面板中 / btn0.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.append(java程序设计n); ); btn1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) Color cr=JColorCho

13、oser.showDialog(null,调色板,Color.red); text.setForeground(cr); ); btn2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) Color cr=JColorChooser.showDialog(null,调色板,Color.red); text.setBackground(cr); ); / contentPane.add(panel,BorderLayout.NORTH);/将面板添加到窗口北边 setSize(400

14、,300); setVisible(true); public static void main(String args) new Test3(第3题); 4、(25分)参考程序:import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.image.BufferedImage; import java.io.*; import com.sun.image.codec.jpeg.*; public class Test4 extends JFrame DrawPanel drawPanel;

15、 public Test4() super(第4题); Container contentPane = this.getContentPane(); contentPane.setLayout(new BorderLayout(); drawPanel=new DrawPanel(); contentPane.add(drawPanel,BorderLayout.CENTER); JMenu myMenu=buildMenu(); /菜单条 JMenuBar menuBar = new JMenuBar(); /创建菜单条 setJMenuBar(menuBar);/设置窗口具有菜单条 men

16、uBar.add(myMenu); /菜单添加到菜单条 this.setSize(400,400); this.setVisible(true); private JMenu buildMenu() /菜单 JMenu fileMenu = new JMenu(File); /菜单 fileMenu.setMnemonic(KeyEvent.VK_F); /设置快捷键:ALT+F /菜单项 New JMenuItem fileNew= new JMenuItem(New); /菜单项 fileNew.setMnemonic(KeyEvent.VK_N); fileNew.addActionLi

17、stener(new ActionListener()/菜单项事件处理 public void actionPerformed(ActionEvent e) /设置文本区字体大小 drawPanel.state=DrawPanel.CLEAR; drawPanel.repaint(); ); fileMenu.add(fileNew); /菜单项 Save JMenuItem fileSave= new JMenuItem(Save); /菜单项 fileSave.setMnemonic(KeyEvent.VK_S); fileSave.addActionListener(new Action

18、Listener()/菜单项事件处理 public void actionPerformed(ActionEvent e) /设置文本区字体大小 saveJPG(drawPanel.buffImage); ); fileMenu.add(fileSave); /菜单项 Exit JMenuItem fileExit= new JMenuItem(Exit); /菜单项 fileExit.setMnemonic(KeyEvent.VK_X); fileExit.addActionListener(new ActionListener()/菜单项事件处理 public void actionPer

19、formed(ActionEvent e) /设置文本区字体大小 System.exit(0); ); fileMenu.add(fileExit); return fileMenu; /自定义方法:打开保存文件对话框,保存缓冲区数据为jpg图像文件 private void saveJPG(BufferedImage buffImage) JFileChooser filechooser=new JFileChooser(./); /文件选择器:当前目录 int result=filechooser.showSaveDialog(this); /显示保存文件选择对话框 if(result=f

20、ilechooser.APPROVE_OPTION) /点击对话框的保存按钮 File file=filechooser.getSelectedFile(); /得到保存文件对象 try FileOutputStream out=new FileOutputStream(file); /创建字节输出流 /将字节输出流out接上JPG编码器对象encoder JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out); encoder.encode(buffImage); /图像数据编码并输出到文件file保存 out.close(); /

21、关闭流 catch(IOException ee) ee.printStackTrace(); else if(result=filechooser.CANCEL_OPTION) /点击对话框的撤消按钮 JOptionPane.showMessageDialog(null, 图片没有保存, 提示信息,JOptionPane.PLAIN_MESSAGE ); public static void main(String args) new Test4(); /DrawPanel.javaimport java.awt.*;import java.awt.event.*;import javax.

22、swing.*;import java.awt.image.BufferedImage; /程序中用到缓冲区画图import java.util.ArrayList; /使用ArrayList保存鼠标拖动路径上的所有点public class DrawPanel extends JPanel implements MouseMotionListener int width=400,height=400; static final int DRAW=1,CLEAR=2; int state=0; ArrayList array=new ArrayList();/保存鼠标移动路径上的点坐标 Buf

23、feredImage buffImage;/图像缓冲区 Graphics2D gg;/图像缓冲区画笔 public DrawPanel() /构造方法 setBackground(Color.white);/设置面板背景色为白色 /创建图像缓冲区,大小为480、400 buffImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB ); gg = buffImage.createGraphics();/创建缓冲区画笔 gg.setColor(Color.white); /设置缓冲区画笔颜色 gg.fillRect(

24、0,0,width,height); /画缓冲区的白色背景 addMouseMotionListener(this); /对面板增加鼠标监听 /把鼠标拖动路径上的点先画在缓冲区中,再把缓冲区画在在面板中 public void paint( Graphics g ) super.paint(g); gg.setColor(Color.red); Graphics2D g2d=(Graphics2D)g;/把父类对象强制转化为子类对象 if(state=DRAW)/state值为1,表示画图 gg.setStroke(new BasicStroke(3.0f);/设置缓冲区画笔的宽度 Point p1,p2;/声明两个点类对象 for(int i=0;iarray.size()-1;i+) /循环array的所有点 p1=

温馨提示

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

评论

0/150

提交评论