最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx

上传人:b****5 文档编号:21483748 上传时间:2023-01-30 格式:DOCX 页数:24 大小:130.08KB
下载 相关 举报
最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx_第1页
第1页 / 共24页
最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx_第2页
第2页 / 共24页
最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx_第3页
第3页 / 共24页
最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx_第4页
第4页 / 共24页
最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx

《最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx》由会员分享,可在线阅读,更多相关《最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

最新《Java程序设计》期末上机考试试题2套及答案合集文档格式.docx

点击“按钮1”,则向文本区中追加一行字符串“java程序设计”,图(b)是点击该按钮3次后的显示结果;

点击“按钮2”,则弹出颜色选择对话框,并将选择的颜色设置为文本区中文字的颜色;

点击“按钮3”,则弹出颜色选择对话框,并将选择的颜色设置为文本区的背景颜色。

(a)(b)

4、请按照下面的描述编写以下两个java程序:

Test4.java和DrawPanel.java。

DrawPanel是继承自面板JPanel的面板子类,面板背景颜色设置为白色,大小为400×

400像素,该类实现了鼠标移动监听接口,响应鼠标移动和拖动事件,拖动鼠标时,把鼠标指针形状设置为十字形状,并通过面板的paint方法在面板中沿拖动路径画图(画笔的宽度设置为3.0f),为了能够将所画图形保存为jpg图片文件,首先把鼠标拖动所绘制的图形画在图像缓冲区(BufferedImage)中,然后将缓冲区的内容显示在面板中。

Test4类继承自JFrame,窗口大小为400×

400像素,窗口标题为“第4题”,窗口内容面板的布局为边框布局(BorderLayout),中间放置绘图面板类DrawPanel的对象,Test4类中设置了菜单条,并在菜单条上添加一个菜单“File”,该菜单下有3个菜单项:

“New”、“Save”和“Exit”,下图(a)所示,并按图示设置他们的快捷键。

各个菜单项的事件响应按下面的描述实现:

选择菜单项“New”,则把中间面板对象的背景色设置为白色,清除所画图形;

选择菜单项“Save”,则弹出文件保存对话框(JFileChooser),把中间面板中所画图形保存为jpg文件,下图(b)所示;

选择菜单项“Exit”,则退出程序的运行。

《Java程序设计》课程期末机考

卷A参考答案

(200x—200x学年第x学期)

______专业______年级本□专科☑A卷☑B卷□C卷□

1.(25分)参考程序:

importjava.awt.*;

importjavax.swing.*;

importjava.util.*;

publicclassTest1extendsJFrame{

JTextAreatext;

publicTest1(Strings){

super(s);

ContainercontentPane=getContentPane();

contentPane.setLayout(newBorderLayout());

text=newJTextArea(10,20);

//

Stringstr[]=newString[5];

Strings1="

排序前:

\n"

;

for(inti=0;

i<

str.length;

i++){

str[i]=JOptionPane.showInputDialog("

请输入字符串"

);

s1+=str[i]+"

\t"

}

text.setText(s1);

Arrays.sort(str);

Strings2="

\n排序后:

s2+=str[i]+"

text.append(s2);

contentPane.add(text,BorderLayout.CENTER);

setSize(400,160);

setVisible(true);

}

publicstaticvoidmain(String[]args){

Test1w=newTest1("

第一题"

}

2、(25分)参考程序:

importjava.io.*;

publicclassTest2{

publicstaticvoidmain(Stringargs[])throwsIOException{

Filefile1=newFile("

d:

\\xxx\\yyy\\zzz"

file1.mkdirs();

Filefile2=newFile(file1,"

1.txt"

file2.createNewFile();

Strings="

Ilikejava."

byte[]b=s.getBytes();

FileOutputStreamout=newFileOutputStream(file2);

out.write(b);

for(charch='

a'

ch<

='

z'

ch++){

out.write(ch);

out.close();

///////////////////////////

FileInputStreamreadfile=newFileInputStream(file2);

intb1;

while((b1=readfile.read())!

=-1){

System.out.print((char)b1);

}

readfile.close();

3、(25分)参考程序:

importjava.awt.event.*;

publicclassTest3extendsJFrame{

//文本区

JButtonbtn[]=newJButton[3];

publicTest3(Stringstr){

super(str);

contentPane.setLayout(newBorderLayout());

text=newJTextArea(20,20);

text.setFont(newFont("

楷体_gb2312"

Font.PLAIN,30));

//将文本区添加到窗口中间

JPanelpanel=newJPanel();

//创建缺省布局方式(FlowLayout)的面板

btn.length;

i++){//初始化5个按钮并添加到面板中

btn[i]=newJButton("

按钮"

+(i+1));

//循环创建5个按钮

panel.add(btn[i]);

//将按钮添加到面板中

//

btn[0].addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

text.append("

java程序设计\n"

});

btn[1].addActionListener(newActionListener(){

Colorcr=JColorChooser.showDialog(null,"

调色板"

Color.red);

text.setForeground(cr);

btn[2].addActionListener(newActionListener(){

text.setBackground(cr);

contentPane.add(panel,BorderLayout.NORTH);

//将面板添加到窗口北边

setSize(400,300);

publicstaticvoidmain(Stringargs[]){

newTest3("

第3题"

4、(25分)参考程序:

importjava.awt.event.*;

importjavax.swing.*;

importjava.awt.image.BufferedImage;

importjava.io.*;

importcom.sun.image.codec.jpeg.*;

publicclassTest4extendsJFrame{

DrawPaneldrawPanel;

publicTest4(){

super("

第4题"

ContainercontentPane=this.getContentPane();

drawPanel=newDrawPanel();

contentPane.add(drawPanel,BorderLayout.CENTER);

JMenumyMenu=buildMenu();

//菜单条

JMenuBarmenuBar=newJMenuBar();

//创建菜单条

setJMenuBar(menuBar);

//设置窗口具有菜单条

menuBar.add(myMenu);

//菜单添加到菜单条

this.setSize(400,400);

this.setVisible(true);

privateJMenubuildMenu(){

//菜单

JMenufileMenu=newJMenu("

File"

//菜单

fileMenu.setMnemonic(KeyEvent.VK_F);

//设置快捷键:

ALT+'

F'

//菜单项"

New"

JMenuItemfileNew=newJMenuItem("

//菜单项

fileNew.setMnemonic(KeyEvent.VK_N);

fileNew.addActionListener(newActionListener(){//菜单项事件处理

publicvoidactionPerformed(ActionEvente){//设置文本区字体大小

drawPanel.state=DrawPanel.CLEAR;

drawPanel.repaint();

fileMenu.add(fileNew);

Save"

JMenuItemfileSave=newJMenuItem("

fileSave.setMnemonic(KeyEvent.VK_S);

fileSave.addActionListener(newActionListener(){//菜单项事件处理

saveJPG(drawPanel.buffImage);

fileMenu.add(fileSave);

Exit"

JMenuItemfileExit=newJMenuItem("

fileExit.setMnemonic(KeyEvent.VK_X);

fileExit.addActionListener(newActionListener(){//菜单项事件处理

System.exit(0);

fileMenu.add(fileExit);

returnfileMenu;

//自定义方法:

打开保存文件对话框,保存缓冲区数据为jpg图像文件

privatevoidsaveJPG(BufferedImagebuffImage){

JFileChooserfilechooser=newJFileChooser("

./"

//文件选择器:

当前目录

intresult=filechooser.showSaveDialog(this);

//显示保存文件选择对话框

if(result==filechooser.APPROVE_OPTION){//点击对话框的"

保存"

按钮

Filefile=filechooser.getSelectedFile();

//得到保存文件对象

try{

FileOutputStreamout=newFileOutputStream(file);

//创建字节输出流

//将字节输出流out接上JPG编码器对象encoder

JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);

encoder.encode(buffImage);

//图像数据编码并输出到文件file保存

//关闭流

catch(IOExceptionee){

ee.printStackTrace();

elseif(result==filechooser.CANCEL_OPTION){//点击对话框的"

撤消"

JOptionPane.showMessageDialog(null,"

图片没有保存"

"

提示信息"

JOptionPane.PLAIN_MESSAGE);

publicstaticvoidmain(String[]args){

newTest4();

}

//////////////////////////////////////////////

DrawPanel.java

importjava.awt.image.BufferedImage;

//程序中用到缓冲区画图

importjava.util.ArrayList;

//使用ArrayList保存鼠标拖动路径上的所有点

publicclassDrawPanelextendsJPanelimplementsMouseMotionListener{

intwidth=400,height=400;

staticfinalintDRAW=1,CLEAR=2;

intstate=0;

ArrayListarray=newArrayList();

//保存鼠标移动路径上的点坐标

BufferedImagebuffImage;

//图像缓冲区

Graphics2Dgg;

//图像缓冲区画笔

publicDrawPanel(){//构造方法

setBackground(Color.white);

//设置面板背景色为白色

//创建图像缓冲区,大小为480、400

buffImage=newBufferedImage(width,height,

BufferedImage.TYPE_INT_RGB);

gg=buffImage.createGraphics();

//创建缓冲区画笔

gg.setColor(Color.white);

//设置缓冲区画笔颜色

gg.fillRect(0,0,width,height);

//画缓冲区的白色背景

addMouseMotionListener(this);

//对面板增加鼠标监听

//把鼠标拖动路径上的点先画在缓冲区中,再把缓冲区画在在面板中

publicvoidpaint(Graphicsg){

super.paint(g);

gg.setColor(Color.red);

Graphics2Dg2d=(Graphics2D)g;

//把父类对象强制转化为子类对象

if(state==DRAW){//state值为1,表示画图

gg.setStroke(newBasicStroke(3.0f));

//设置缓冲区画笔的宽度

Pointp1,p2;

//声明两个点类对象

array.size()-1;

i++){//循环array的所有点

p1=(Point)array.get(i);

//得到第1个点

p2=(Point)array.get(i+1);

//得到相邻的下一个点

gg.drawLine(p1.x,p1.y,p2.x,p2.y);

//画相邻两点间的线

elseif(state==CLEAR){//state值为2,表示清除面板上的画图

gg.setColor(getBackground());

//设置缓冲区画笔为当前背景颜色white

//画缓冲区为背景颜色---清除画图

//把缓冲区中的画图显示在面板上

g2d.drawImage(buffImage,0,0,width,height,this);

publicDimensiongetPreferredSize(){

returnnewDimension(width,height);

//面板显示大小为450×

400像素

//鼠标移动时:

清空array中所有元素,为下一次拖动初始化array

publicvoidmouseMoved(MouseEvente){

//设置鼠标移动时,鼠标光标形状为:

手形

setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

array.clear();

//清空array中所有元素

//鼠标拖动时,得到拖动路径上的所有点

publicvoidmouseDragged(MouseEvente){

state=DRAW;

//设置鼠标拖动时,鼠标光标形状为:

十字形

setCu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1