版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、XXXXXX大學(xué) XXX學(xué)院 第 PAGE 8 頁 共 NUMPAGES 8 頁(密封線內(nèi)勿答題) 姓名 學(xué)號 學(xué)院(系) 專業(yè) 年級 班(密封線內(nèi)勿答題) Java程序設(shè)計課程 期末機考卷(200 x200 x學(xué)年 第x學(xué)期) 本科 專科 A卷 B卷 C卷(考試時間180分鐘)題號一二三四總分分數(shù)1、編寫圖形界面的應(yīng)用程序:該類繼承自JFrame類,窗口大小為400160像素,窗口標題為“第一題”,窗口內(nèi)容面板的布局為邊框布局(BorderLayout),窗口中間放置一個10行20列的文本區(qū)(JTextArea)。程序中定義一個有5個元素的字符串數(shù)組,使用JOptionPane類中的show
2、InputDialog方法創(chuàng)建文本輸入對話框,給字符串數(shù)組的5個元素賦值,并使用Arrays類的sort方法對字符串數(shù)組按升序排序。要求將字符串數(shù)組中的5個元素在排序前和排序后的結(jié)果按下圖所示顯示在文本區(qū)中。(25分)2、編寫命令行界面的應(yīng)用程序,程序中使用File類及該類的方法mkdirs()創(chuàng)建目錄樹d:xxxyyyzzz,使用File類的方法createNewFile()創(chuàng)建該目錄下的文件1.txt。然后使用字符串類的方法getBytes()將字符串“I like java.”轉(zhuǎn)化為字節(jié)數(shù)組,并通過FileOutputStream類對象的方法write(byte b)將該數(shù)組中的所有字節(jié)
3、數(shù)據(jù)寫到文件1.txt中;然后將26個大寫字母寫到文件1.txt中。最后創(chuàng)建FileInputStream類對象讀取文件1.txt,并把讀取的內(nèi)容顯示在命令行界面。(25分)3、編寫下圖(a)所示的圖形界面的應(yīng)用程序:該類繼承自JFrame類,窗口大小為400300像素,窗口標題為“第3題”,窗口內(nèi)容面板的布局為邊框布局(BorderLayout):窗口北邊放置3個按鈕;窗口中間放置一個20行、20列的文本區(qū)(JTextArea),并設(shè)置文本區(qū)的字體名稱為“楷體_gb2312”、字體風(fēng)格為普通體、字號大小為30。三個按鈕的事件響應(yīng)按下面的描述實現(xiàn):點擊“按鈕1”,則向文本區(qū)中追加一行字符串“j
4、ava程序設(shè)計”,圖(b)是點擊該按鈕3次后的顯示結(jié)果; 點擊“按鈕2”,則彈出顏色選擇對話框,并將選擇的顏色設(shè)置為文本區(qū)中文字的顏色;點擊“按鈕3”,則彈出顏色選擇對話框,并將選擇的顏色設(shè)置為文本區(qū)的背景顏色。(25分) (a) (b)4、請按照下面的描述編寫以下兩個java程序:Test4.java 和DrawPanel.java。DrawPanel是繼承自面板JPanel的面板子類,面板背景顏色設(shè)置為白色,大小為400400像素,該類實現(xiàn)了鼠標移動監(jiān)聽接口,響應(yīng)鼠標移動和拖動事件,拖動鼠標時,把鼠標指針形狀設(shè)置為十字形狀,并通過面板的paint方法在面板中沿拖動路徑畫圖(畫筆的寬度設(shè)置為
5、3.0f),為了能夠?qū)⑺媹D形保存為jpg圖片文件,首先把鼠標拖動所繪制的圖形畫在圖像緩沖區(qū)(BufferedImage)中,然后將緩沖區(qū)的內(nèi)容顯示在面板中。Test4類繼承自JFrame,窗口大小為400400像素,窗口標題為“第4題”,窗口內(nèi)容面板的布局為邊框布局(BorderLayout),中間放置繪圖面板類DrawPanel的對象,Test4類中設(shè)置了菜單條,并在菜單條上添加一個菜單“File”,該菜單下有3個菜單項:“New”、“Save”和“Exit”,下圖(a)所示,并按圖示設(shè)置他們的快捷鍵。各個菜單項的事件響應(yīng)按下面的描述實現(xiàn):選擇菜單項“New”,則把中間面板對象的背景色設(shè)置
6、為白色,清除所畫圖形;選擇菜單項“Save”,則彈出文件保存對話框(JFileChooser),把中間面板中所畫圖形保存為jpg文件,下圖(b)所示;選擇菜單項“Exit”,則退出程序的運行。(25分) (a) (b)Java程序設(shè)計課程 期末機考卷A參考答案(200 x200 x學(xué)年 第x學(xué)期)_專業(yè)_年級 本 專科 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;/文本區(qū) 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);/將文本區(qū)添加到窗口中間 JPanel panel=new JPanel();/創(chuàng)建缺省布局方式(FlowLayout)的面板 for(int i=0;ibtn.length;i+)
12、/初始化5個按鈕并添加到面板中 btni=new JButton(按鈕+(i+1);/循環(huán)創(chuàng)建5個按鈕 panel.add(btni);/將按鈕添加到面板中 / btn0.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) text.append(java程序設(shè)計n); ); btn1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) Color cr=JColorCho
13、oser.showDialog(null,調(diào)色板,Color.red); text.setForeground(cr); ); btn2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) Color cr=JColorChooser.showDialog(null,調(diào)色板,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(); /創(chuàng)建菜單條 setJMenuBar(menuBar);/設(shè)置窗口具有菜單條 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); /設(shè)置快捷鍵:ALT+F /菜單項 New JMenuItem fileNew= new JMenuItem(New); /菜單項 fileNew.setMnemonic(KeyEvent.VK_N); fileNew.addActionLi
17、stener(new ActionListener()/菜單項事件處理 public void actionPerformed(ActionEvent e) /設(shè)置文本區(qū)字體大小 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) /設(shè)置文本區(qū)字體大小 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) /設(shè)置文本區(qū)字體大小 System.exit(0); ); fileMenu.add(fileExit); return fileMenu; /自定義方法:打開保存文件對話框,保存緩沖區(qū)數(shù)據(jù)為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); /創(chuàng)建字節(jié)輸出流 /將字節(jié)輸出流out接上JPG編碼器對象encoder JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out); encoder.encode(buffImage); /圖像數(shù)據(jù)編碼并輸出到文件file保存 out.close(); /
21、關(guān)閉流 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; /程序中用到緩沖區(qū)畫圖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;/圖像緩沖區(qū) Graphics2D gg;/圖像緩沖區(qū)畫筆 public DrawPanel() /構(gòu)造方法 setBackground(Color.white);/設(shè)置面板背景色為白色 /創(chuàng)建圖像緩沖區(qū),大小為480、400 buffImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB ); gg = buffImage.createGraphics();/創(chuàng)建緩沖區(qū)畫筆 gg.setColor(Color.white); /設(shè)置緩沖區(qū)畫筆顏色 gg.fillRect(
24、0,0,width,height); /畫緩沖區(qū)的白色背景 addMouseMotionListener(this); /對面板增加鼠標監(jiān)聽 /把鼠標拖動路徑上的點先畫在緩沖區(qū)中,再把緩沖區(qū)畫在在面板中 public void paint( Graphics g ) super.paint(g); gg.setColor(Color.red); Graphics2D g2d=(Graphics2D)g;/把父類對象強制轉(zhuǎn)化為子類對象 if(state=DRAW)/state值為1,表示畫圖 gg.setStroke(new BasicStroke(3.0f);/設(shè)置緩沖區(qū)畫筆的寬度 Point p1,p2;/聲明兩個點類對象 for(int i=0;iarray.size()-1;i+) /循環(huán)array的所有點 p1=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版金融理財顧問服務(wù)合同范本協(xié)議書
- 二零二五年公路橋梁施工勞務(wù)分包合同示范2篇
- 2024年物流運輸與人力資源服務(wù)合同
- 2024煤礦安全生產(chǎn)責(zé)任轉(zhuǎn)移合同協(xié)議6篇
- 2024版公司承包合同參考范文
- 2019-2025年中國皮茄克行業(yè)市場深度分析及發(fā)展前景預(yù)測報告
- 2025版建筑行業(yè)勞務(wù)派遣服務(wù)合同標準版3篇
- 2025版電梯安裝與節(jié)能運行維護合同范本2篇
- 2025年鑄物頂項目可行性研究報告
- 2024版供貨商混凝土銷售合同2篇
- 公交車站臺服務(wù)規(guī)范與安全意識
- 2024電商消費趨勢年度報告-flywheel飛未-202412
- 《農(nóng)機安全》課件
- 公共廁所清潔保養(yǎng)協(xié)議
- 浙江省溫州市2023-2024學(xué)年六年級上學(xué)期期末科學(xué)試卷(含答案)3
- 深圳大學(xué)《激光原理與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西安市高新第一中學(xué)八年級上冊地理期末試卷(含答案)
- 2024年廣東省深圳市中考英語適應(yīng)性試卷
- 普法學(xué)法知識考試題庫(100題附答案)
- DB37-T 1722-2024公路工程高性能瀝青混合料施工技術(shù)規(guī)范
- 四年級數(shù)學(xué)上冊期末試卷
評論
0/150
提交評論