Java設(shè)計(jì)GUI圖片查看器和A餐飲公司財(cái)務(wù)結(jié)構(gòu)決策分析_第1頁
Java設(shè)計(jì)GUI圖片查看器和A餐飲公司財(cái)務(wù)結(jié)構(gòu)決策分析_第2頁
Java設(shè)計(jì)GUI圖片查看器和A餐飲公司財(cái)務(wù)結(jié)構(gòu)決策分析_第3頁
Java設(shè)計(jì)GUI圖片查看器和A餐飲公司財(cái)務(wù)結(jié)構(gòu)決策分析_第4頁
Java設(shè)計(jì)GUI圖片查看器和A餐飲公司財(cái)務(wù)結(jié)構(gòu)決策分析_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

財(cái)務(wù)管理案例分析圖片查看器1.課程設(shè)計(jì)目的基于學(xué)習(xí)的Java知識(shí),用Eclipse和JDK軟件編寫一個(gè)小應(yīng)用程序,通過此次Java課程設(shè)計(jì),鞏固所學(xué)Java語言基本知識(shí),增進(jìn)Java語言編輯基本功,掌握J(rèn)DK、Eclipse、JCreator等開發(fā)工具的運(yùn)用,拓寬常用類庫、數(shù)據(jù)庫、小程序的應(yīng)用。深刻理解Java語言面向?qū)ο笤O(shè)計(jì)的原理,運(yùn)用于實(shí)際。將Java程序運(yùn)用于常用軟件的編寫。本課程設(shè)計(jì)GUI圖片查看器,它實(shí)現(xiàn)了在用戶選定的文件目錄下循環(huán)瀏覽指定后綴的圖片文件,并且可以對(duì)選擇的圖片進(jìn)行放大,縮小,左旋,右旋,另存,徹底刪除等操作。2.設(shè)計(jì)方案論證2.1設(shè)計(jì)思路2.1.1設(shè)計(jì)需求分析隨著數(shù)字產(chǎn)品漸進(jìn)人們的生活,網(wǎng)絡(luò)通信技術(shù)、圖像處理技術(shù)以及多媒體技術(shù)的發(fā)展,越來越多的用戶希望能夠?qū)σ延械臄?shù)字圖片進(jìn)行查看并能夠?qū)崿F(xiàn)簡單的操作。本圖片查看器以其簡潔明了易操作的特點(diǎn)實(shí)現(xiàn)圖片查看的基本功能,從而也就滿足了用戶的基本要求。2.1.2設(shè)計(jì)理想框架圖1設(shè)計(jì)框架2.1.3設(shè)計(jì)系統(tǒng)功能(1)本系統(tǒng)要用到以下的Java編程技術(shù)實(shí)現(xiàn)的功能:圖像顯示功能:用戶可以顯示指定路徑的圖片,識(shí)別多種格式圖片,并且在顯示圖片時(shí)用到了雙緩沖技術(shù)來消除閃爍問題。圖像放大、縮小功能:運(yùn)行程序成功之后,點(diǎn)擊“打開”,打開一張圖片,如果圖片沒有百分之百顯示,可以點(diǎn)擊下方的“縮小”按鈕,實(shí)現(xiàn)圖片縮小功能。放大功能與縮小功能使用方法相同。圖像的旋轉(zhuǎn)功能:程序中有右旋、左旋按鈕,實(shí)現(xiàn)圖片的旋轉(zhuǎn)功能,便于欣賞。圖像的轉(zhuǎn)換功能:可以查看上一幅或者下一副,可以連續(xù)觀看多張圖片。圖像的恢復(fù)原始形狀:可以將已經(jīng)需改后不滿意圖片,恢復(fù)到最開始的樣子。圖像的刪除功能:實(shí)現(xiàn)刪除圖片。2.1.4開發(fā)環(huán)境搭建(1)下載JDK在/technetwork/java/javase/downloads/index.html網(wǎng)址下載JDK,下載好JDK后雙擊運(yùn)行,然后根據(jù)提示進(jìn)行安裝。bin:存放java可執(zhí)行文件。如:javac.exe、java.exe等等include:java包含的本地類(如:C語言頭文件)lib:包含了java運(yùn)行庫及JDKAPI庫src.zip:解壓為src,表示java的類庫源代碼(2)配置環(huán)境變量右擊【計(jì)算機(jī)】,選擇【屬性】,點(diǎn)擊【高級(jí)系統(tǒng)設(shè)置】后,再點(diǎn)擊【環(huán)境變量】,打開設(shè)置環(huán)境界面。點(diǎn)擊【編輯】,按鈕打開如下窗口。在下面窗口添加如下值:變量名:classpath變量值:.;D:\ProgrammingSoftware\JDK7\lib變量名:java_home變量值:D:\ProgrammingSoftware\JDK7變量名:path變量值:;D:\ProgrammingSoftware\JDK7\bin(3)最后點(diǎn)擊【開始】菜單下面的【運(yùn)行】,輸入cmd打開DOS窗口,在DOS窗口中輸入javac,如果出現(xiàn)如下圖的信息,則表示配置jdk成功圖1Java安裝成功一個(gè)簡單的實(shí)例:publicclassTest{

publicstaticvoidmain(String[]args){

System.out.println("HelloWorld!");

}}運(yùn)行結(jié)果:HelloWorld!(4)下載Eclipse在Eclipse官網(wǎng)下載Eclipse軟件,下載之后,解壓壓縮包,直接打開應(yīng)用程序,一般工作空間都在C盤目錄下,采用默認(rèn)就可以,點(diǎn)擊“OK”,打開工作界面,創(chuàng)建NewJavaProject,在創(chuàng)建NewPackage,之后就可以創(chuàng)建類,建設(shè)以工作名稱作為類名,我本次所做的小程序類名為jiang。(5)類圖結(jié)構(gòu)系統(tǒng)中用到了一些基本類、實(shí)現(xiàn)了一些接口。系統(tǒng)所用到的類如圖1所示:PicViewerPicViewerActionListenerJpanelJLabelJButtonImageBufferedImageGraphics2DStringJfilechooseAppletJava.awt.*Javax.swing.*Java.io.*Java.applet.*extendsimplementimport圖2系統(tǒng)類圖2.1.3程序詳細(xì)設(shè)計(jì)(1)程序中引用的類①JPanel類程序中定義了三個(gè)Jpanel類分別是:pathBar,picContainer,ctrBar。用于圖片查看器的整體布局。其中pathBar為頂部路徑欄,picContainer為圖片顯示區(qū)域,ctrBar為底部控制欄。②JLabel類程序中定義了類名為pathInfo的JLabel類,用于實(shí)現(xiàn)頂部路徑欄,底部控制欄按鈕的文字顯示。③JButton類程序中定義了多個(gè)JButton類:openbtn,prebtn,nextbtn,zoominbtn,zoomoutbtn,oripicbtn,angleleftbtn,anglerightbtn,exitbtn,deletebtn,sav;為查看器的按鈕。④Image類程序中定義了名為pic的Image類用于對(duì)被查看的圖片的操作。⑤BufferedImage類此類為用于顯示的緩沖區(qū)圖像。在對(duì)圖像進(jìn)行操作前,都先將圖片讀進(jìn)預(yù)設(shè)的緩沖區(qū),然后再顯示在用戶前端,這樣雖然速度慢了點(diǎn),但很好的消除了圖片閃爍效果。⑥Graphics2D類此類與上面的BufferedImage類共同作用,通過運(yùn)用雙緩沖技術(shù)很好的消除屏閃問題。⑦String類程序中運(yùn)用了三個(gè)不同的String類,從而實(shí)現(xiàn)了需要查看的圖片的路徑的操作,并且在啟動(dòng)圖片查看器時(shí),圖片的路徑能夠在路徑欄顯示出來。同時(shí)還設(shè)置了String數(shù)組用于存儲(chǔ)用戶選定的目錄下所有指定格式的圖片,這樣可以實(shí)現(xiàn)循環(huán)瀏覽圖片等操作。(2)程序的構(gòu)造方法及其實(shí)現(xiàn)因?yàn)閳D片查看器可以實(shí)現(xiàn)對(duì)圖片不同的操作,程序中構(gòu)造了十多個(gè)方法以達(dá)到其目的。各構(gòu)造方法相互聯(lián)系共同完成圖片查看器的各項(xiàng)功能。各個(gè)方法描述如下:①publicvoidinit()本方法實(shí)現(xiàn)了對(duì)圖片查看器的界面的整體布局及按鈕的初始化。對(duì)頁面的總體布局采用了以下主要代碼進(jìn)行實(shí)現(xiàn):setLayout(newBorderLayout());add(pathBar,BorderLayout.NORTH);add(picContainer,BorderLayout.CENTER);add(ctrBar,BorderLayout.SOUTH);resize(640,400);設(shè)置頂部路徑欄,及其文字顯示;代碼如pathBar=newJPanel();pathBar.setLayout(newBorderLayout());pathInfo.setText("圖片查看器");pathBar.add(pathInfo);同時(shí)對(duì)圖片顯示區(qū)域,底部的控制欄的設(shè)置也運(yùn)用了相似的代碼進(jìn)行實(shí)現(xiàn),在此就不再重復(fù)。各按鈕除了“打開”一按鈕外,其他的各按鈕均設(shè)置為false。這是因?yàn)橹挥小按蜷_”圖片后才能進(jìn)行以下的像循環(huán)瀏覽,旋轉(zhuǎn),刪除等操作。具體方法的實(shí)現(xiàn)見附件。②publicvoidactionPerformed(ActionEvent)在本方法中主要實(shí)現(xiàn)了用戶對(duì)底部控制欄各按鈕的點(diǎn)擊后,圖片查看器進(jìn)行的相對(duì)應(yīng)的操作反應(yīng)。方法中一開始用JButtonclick=(JButton)e.getSource();獲取按鍵源,然后根據(jù)click與程序設(shè)定的已知的類進(jìn)行比較決定進(jìn)行相應(yīng)的反應(yīng)。if(click==openbtn);if(click==prebtn&&pic!=null);等一系列進(jìn)行判斷后,進(jìn)行或是打開文件open()方法的調(diào)用;或是pre()方法的調(diào)用;其他各操作也大同小異,在此就不再贅述。方法的詳細(xì)代碼見附件。③publicvoidopen()該方法實(shí)現(xiàn)了對(duì)用戶選定的文件路徑下的后綴為.jpg的圖片文件的打開操作。同時(shí)能夠?qū)υ撀窂较碌囊磺蟹蠗l件的文件進(jìn)行跟蹤處理。方法中的核心在于一個(gè)過濾操作:FileNameExtensionFilterfilter=newFileNameExtensionFilter("*.JPG","jpg");這樣就能實(shí)現(xiàn).jpg文件的瀏覽了。在選定了圖片后,相應(yīng)的按鈕值應(yīng)該被賦值為ture,以便進(jìn)行其他的操作。若沒有選定圖片則顯示“沒有選擇圖片”。④publicvoidsave()throwsIOException該方法是為了滿足用戶希望對(duì)圖片進(jìn)行另外存儲(chǔ)的操作,通過用戶自己的選擇重新選定圖片的存儲(chǔ)路徑。詳細(xì)實(shí)現(xiàn)見附件中代碼。⑤publicvoidpre()及publicvoidnext()Pre與next方法實(shí)現(xiàn)了對(duì)當(dāng)前圖片的上一張下一張的瀏覽。因?yàn)樵诘谝淮未蜷_文件時(shí)就將該路徑下所有符合要求的圖片存儲(chǔ)在String[]pics中。通過if(i==0){i=pics.length-1;}else{i--;}其中i為當(dāng)前的圖片位置數(shù)。通過dir=path+"\\"+pics[i];獲得文件的路徑,然后調(diào)用loadImage(dir);此方法將在后面介紹;與上面的方法相對(duì)應(yīng)的是此方法實(shí)現(xiàn)了對(duì)當(dāng)前圖片下一張的瀏覽,實(shí)現(xiàn)原理與上相同,if(i==pics.length-1){i=0;}else{i++;}通過調(diào)用loadImage(dir);一方法實(shí)現(xiàn)。⑥publicvoidpicTrans()如果bufImage為空則直接返回,之后進(jìn)行過濾圖像操作,2D仿射變換,設(shè)置仿射變換的比例因子transform.setToScale(scaleX,scaleY);創(chuàng)建仿射變換操作對(duì)象,過濾圖像,將目標(biāo)圖像存在filteredBufImage中,然后顯示。⑦publicvoidzoomin()此方法實(shí)現(xiàn)了對(duì)當(dāng)前的圖片進(jìn)行按設(shè)置比例縮小操作。在進(jìn)行縮小操作前,先對(duì)圖片的大小進(jìn)行判斷,看是否已經(jīng)縮小到最小,若最小則顯示提示信息“已經(jīng)縮至最??!”;否則進(jìn)行縮小操作。在此過程中調(diào)用了picTrans()方法,以及repaint();重繪組件的方法。⑧publicvoidoripic()及publicvoiddelete()方法實(shí)現(xiàn)了將放大或縮小后的圖片大小還原的操作。同時(shí)也調(diào)用了picTrans()方法,以及repaint();重繪組件的方法。具體的picTrans()方法將在下面詳細(xì)描述。此方法具體實(shí)現(xiàn)見附件;publicvoiddelete()方法將圖片徹底刪除,刪除后圖片徹底被粉碎,回收站里面都不能找到。因此要慎用此按鈕。⑨publicvoidangleleft()及publicvoidangleright()方法每次對(duì)圖片進(jìn)行45°的向左向右的旋轉(zhuǎn)操作。radius+=-Math.PI/2;用以控制,而這些操作后,每次都應(yīng)oripicbtn.setEnabled(true),也就是要將還原按鈕賦值為真。⑩publicvoidloadImage(StringfileName)及publicvoidexit()前一個(gè)方法通過增加圖像到加載器中,創(chuàng)建原始緩沖區(qū)圖像,創(chuàng)建bufImage的圖形環(huán)境:bufImageG=bufImage.createGraphics();傳輸源圖像數(shù)據(jù)到緩沖區(qū)圖像中一些列的操作,對(duì)圖片進(jìn)行了加載操作;publicvoidexit()方法是退出查看器的方法。3.設(shè)計(jì)結(jié)果與分析3.1系統(tǒng)測試使用eclipse運(yùn)行程序時(shí),會(huì)出現(xiàn)applet小程序的界面。并顯示程序已啟動(dòng)。顯示如圖3:圖3程序開始時(shí)的界面單擊“打開”按鈕后的效果圖如圖4:圖4選擇圖片文件選擇“打開”,選擇要打開的圖片后的效果圖如圖5:圖4打開文件夾中的圖片多次單擊“縮小”按鈕后的效果圖如圖6:圖6圖片縮小顯示單擊“左旋”按鈕后的效果圖如圖7:圖7圖片旋轉(zhuǎn)顯示圖8圖片放大顯示3.2遇到的問題和解決方法在用JAVA編寫程序時(shí),我遇到了很多困難,對(duì)很多的接口,類,方法都不是很熟悉,只好采用查看API文檔,一個(gè)一個(gè)進(jìn)行對(duì)照學(xué)習(xí),同時(shí)也上網(wǎng)查看了有關(guān)圖片查看器的相關(guān)描述,還向同學(xué)請(qǐng)教了,翻閱了相關(guān)的書籍。尤其是因?yàn)橛行┓椒ㄐ枰褂肑DK1.7才行,所以在學(xué)校網(wǎng)絡(luò)機(jī)房一開始不能運(yùn)行,在安裝了1.7版本后運(yùn)行正常了。還可以應(yīng)用Eclipse軟件解決此問題,另外文件在打開時(shí)會(huì)有嚴(yán)重的頻閃問題,在重寫了publicvoidupdate(Graphicsg){this.paint(g);}后解決了。4.設(shè)計(jì)體會(huì)在這次的面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)中,我進(jìn)一步熟悉了上一學(xué)期學(xué)習(xí)的JAVA語言中的包,類,方法:導(dǎo)入哪些包,繼承哪些類可以實(shí)現(xiàn)什么方法等。深刻感受到了面向?qū)ο笳Z言中類庫的強(qiáng)大功能。但是由于自己掌握的知識(shí)有限,圖片查看器的功能沒有做到盡善盡美,尤其是刪除操作,刪除掉以后就沒了,在回收站也找不到。還有就是單擊“保存”按鈕后似乎就不能進(jìn)行其他操作,但這樣的情況或有或無。通過這次的課程設(shè)計(jì),我懂得了要充分利用網(wǎng)絡(luò)資源查找資料同時(shí)要多向同學(xué)請(qǐng)教,大家互相討論進(jìn)步得會(huì)很快。通過幾天的努力,這次課程設(shè)計(jì)圓滿的結(jié)束了,在這個(gè)過程中,我收獲了很多的知識(shí),同時(shí)也非常感謝杭志老師幫助與指導(dǎo)。在以后的學(xué)習(xí)中,我會(huì)更加努力的學(xué)好專業(yè)知識(shí),并將所學(xué)知識(shí)用于實(shí)踐當(dāng)中去,以便牢固掌握知識(shí)。5.參考文獻(xiàn)[1]張鐵成.Java程序設(shè)計(jì)課程教學(xué)改革的探索與實(shí)踐[J].職業(yè),2015(23):38-40.[2]劉艷秋,

王國春,

彭馨儀.

Java程序設(shè)計(jì)課程分層次教學(xué)模式的研究與實(shí)踐[J].

信息化建設(shè),

2015(06).[3]尉哲明,冀素琴.基于Java的綜合課程設(shè)計(jì)研究與實(shí)踐[J].計(jì)算機(jī)教育,2015(03).[4]田小玲.JAVA程序設(shè)計(jì)課程資源建設(shè)與探索[J].軟件導(dǎo)刊:教育技術(shù),2015(10).6.附錄:packagejiang; importjava.awt.*; importjava.awt.event.*; importjava.awt.geom.*; importjava.awt.image.*; importjavax.swing.*; importjavax.swing.filechooser.*; importjava.io.*; importjava.applet.*; publicclassPicViewextendsAppletimplementsActionListener{ JPanelpathBar,picContainer,ctrBar; JLabelpathInfo; JButtonopenbtn,prebtn,nextbtn,zoominbtn,zoomoutbtn,oripicbtn,angleleftbtn, anglerightbtn,exitbtn,deletebtn,savebtn; Imagepic;//查看的圖片 BufferedImagebufImage;//用于顯示的緩沖區(qū)圖像 BufferedImageoriBufImage;//原始緩沖區(qū)圖像 Graphics2DbufImageG;//緩沖區(qū)圖像的圖形環(huán)境 Stringpath,filename,dir;//需要查看圖片的路徑 String[]pics;//目錄下所有指定格式的圖片 intpicWidth,picHeight;//圖片大小 inti=0; finaldoubleZOOM_PERCENT=0.15;//每次放大和縮小的倍率 finalStringFILE_TYPE=".jpg"; booleanhasPic,isangled; doublescaleX;//圖像水平方向的縮放因子 doublescaleY;//圖像豎直方向的縮放因子 doubleradius;//旋轉(zhuǎn)角度 FilterfilterJpg; publicvoidinit(){ //頂部路徑欄 pathBar=newJPanel(); pathBar.setLayout(newBorderLayout()); pathInfo=newJLabel(); pathInfo.setText("圖片查看器"); pathBar.add(pathInfo); //圖片顯示區(qū)域 picContainer=newJPanel(); picContainer.setBackground(Color.LIGHT_GRAY); //底部控制欄 ctrBar=newJPanel(); openbtn=newJButton("打開"); openbtn.addActionListener(this); savebtn=newJButton("保存"); savebtn.addActionListener(this); prebtn=newJButton("上一幅"); prebtn.addActionListener(this); nextbtn=newJButton("下一幅"); nextbtn.addActionListener(this); zoominbtn=newJButton("放大"); zoominbtn.addActionListener(this); zoomoutbtn=newJButton("縮小"); zoomoutbtn.addActionListener(this); oripicbtn=newJButton("原始"); oripicbtn.addActionListener(this); angleleftbtn=newJButton("左旋"); angleleftbtn.addActionListener(this); anglerightbtn=newJButton("右旋"); anglerightbtn.addActionListener(this); deletebtn=newJButton("刪除"); deletebtn.addActionListener(this); exitbtn=newJButton("退出"); exitbtn.addActionListener(this); ctrBar.add(openbtn); ctrBar.add(zoominbtn); ctrBar.add(zoomoutbtn); ctrBar.add(oripicbtn); ctrBar.add(prebtn); ctrBar.add(nextbtn); ctrBar.add(angleleftbtn); ctrBar.add(anglerightbtn); ctrBar.add(deletebtn); ctrBar.add(savebtn); ctrBar.add(exitbtn); //界面總布局 setLayout(newBorderLayout()); add(pathBar,BorderLayout.NORTH); add(picContainer,BorderLayout.CENTER); add(ctrBar,BorderLayout.SOUTH); resize(640,480); scaleX=1.0; scaleY=1.0; radius=0.0; hasPic=false; isangled=false; dir=""; prebtn.setEnabled(false); nextbtn.setEnabled(false); zoominbtn.setEnabled(false); zoomoutbtn.setEnabled(false); angleleftbtn.setEnabled(false); anglerightbtn.setEnabled(false); oripicbtn.setEnabled(false); deletebtn.setEnabled(false); savebtn.setEnabled(false); } publicvoidactionPerformed(ActionEvente){ JButtonclick=(JButton)e.getSource();//獲取按鍵源 if(click==openbtn){ open(); } if(click==prebtn&&pic!=null){ pre(); } if(click==nextbtn&&pic!=null){ next(); } if(click==zoominbtn&&pic!=null){ pathInfo.setForeground(Color.BLACK); pathInfo.setText("放大圖片..."); zoomin(); } if(click==zoomoutbtn&&pic!=null){ pathInfo.setForeground(Color.BLACK); pathInfo.setText("縮小圖片..."); zoomout(); } if(click==oripicbtn&&pic!=null){ oripic(); } if(click==angleleftbtn&&pic!=null){ angleleft(); } if(click==anglerightbtn&&pic!=null){ angleright(); } if(click==exitbtn){ exit(); } if(click==deletebtn&&pic!=null) { pathInfo.setForeground(Color.BLACK); pathInfo.setText("刪除圖片"); delete(); } if(click==savebtn&&pic!=null) { pathInfo.setForeground(Color.BLACK); pathInfo.setText("復(fù)制圖片"); try { save(); }catch(Exceptionee) {} } } //line1,打開需要查看的圖片文件 publicvoidopen(){ JButtonmsg=newJButton(); JFileChooserchooser=newJFileChooser(); //只顯示文件夾和jpg格式的文件 FileNameExtensionFilterfilter=newFileNameExtensionFilter("*.JPG","jpg");//建立過濾器,只顯示jpg chooser.setFileFilter(filter); chooser.setCurrentDirectory(newFile("")); intreturnVal=chooser.showOpenDialog(msg); //根據(jù)返回值判斷是否選擇了文件 if(returnVal==JFileChooser.APPROVE_OPTION){ //獲取文件名 filename=chooser.getSelectedFile().getName(); //獲取文件路徑 path=chooser.getCurrentDirectory().getPath(); //獲取文件路徑下所有jpg文件 filterJpg=newFilter(FILE_TYPE); Filefile=newFile(path); pics=file.list(); pics=file.list(filterJpg); //跟蹤選中的圖片 for(intj=0;j<pics.length;j++) if(pics[j].equalsIgnoreCase(filename)) { i=j; break; } dir=path+"\\"+filename; hasPic=true; loadImage(dir); pathInfo.setForeground(Color.BLACK); pathInfo.setText(path+"\\"+filename); prebtn.setEnabled(true); nextbtn.setEnabled(true); zoominbtn.setEnabled(true); zoomoutbtn.setEnabled(true); angleleftbtn.setEnabled(true); anglerightbtn.setEnabled(true); deletebtn.setEnabled(true); savebtn.setEnabled(true); }else{ hasPic=false; pathInfo.setForeground(Color.RED); pathInfo.setText("沒有選擇文件!"); } } //保存文件 publicvoidsave()throwsIOException{ JButtonmsgsave=newJButton(); JFileChooserchooser=newJFileChooser(); //只顯示文件夾和jpg格式的文件 FileNameExtensionFilterfilter=newFileNameExtensionFilter( "*.JPG","jpg");//建立過濾器,只顯示jpg chooser.setFileFilter(filter); Filefin=newFile(path+"\\"+pics[i]); Filef=newFile(""+"\\"+pics[i]); chooser.setSelectedFile(f); intreturnVal=chooser.showSaveDialog(msgsave); //根據(jù)返回值判斷是否選擇了文件路徑 if(returnVal==JFileChooser.APPROVE_OPTION){ //獲取文件路徑 path=chooser.getCurrentDirectory().getPath(); Filefileout=newFile(path+"\\"+chooser.getSelectedFile().getName()); FileInputStreamisr=newFileInputStream(fin); FileOutputStreamfout=newFileOutputStream(fileout); byteb[]=newbyte[200]; intcount=0; while((count=isr.read(b,0,200))!=-1) fout.write(b,0,count); isr.close(); fout.flush(); fout.close(); } } //line2,查看上一幅圖片 publicvoidpre(){ //循環(huán)瀏覽圖片 if(i==0){ i=pics.length-1; }else{ i--; } dir=path+"\\"+pics[i]; pathInfo.setText(dir); hasPic=true; isangled=false; scaleX=1.0; scaleY=1.0; loadImage(dir); oripicbtn.setEnabled(false); } //line3,查看下一幅圖片 publicvoidnext(){ if(i==pics.length-1){ i=0; }else{ i++; } dir=path+"\\"+pics[i]; pathInfo.setText(dir); hasPic=true; isangled=false; scaleX=1.0; scaleY=1.0; loadImage(dir); oripicbtn.setEnabled(false); } //line4,放大圖片 publicvoidzoomin(){ if(scaleX<1.7){ scaleX+=ZOOM_PERCENT; scaleY+=ZOOM_PERCENT; }else{ scaleX=1.8; scaleY=1.8; pathInfo.setForeground(Color.RED); pathInfo.setText("已經(jīng)放到最大!"); } hasPic=true; picTrans(); repaint();//重繪組件 pathInfo.setForeground(Color.BLACK); pathInfo.setText(dir); if(scaleX==1){ oripicbtn.setEnabled(false); }else{ oripicbtn.setEnabled(true); } } //line5,縮小圖片 publicvoidzoomout(){ if(scaleX>0.8){ scaleX-=ZOOM_PERCENT; scaleY-=ZOOM_PERCENT; }else{ scaleX=0.2; scaleY=0.2; pathInfo.setForeground(Color.RED); pathInfo.setText("已經(jīng)縮至最??!"); } hasPic=true; picTrans(); repaint();//重繪組件 pathInfo.setForeground(Color.BLACK); pathInfo.setText(dir); if(scaleX==1){ oripicbtn.setEnabled(false); }else{ oripicbtn.setEnabled(true); } } //line6,回復(fù)圖片原始狀態(tài) publicvoidoripic(){ scaleX=1; scaleY=1; radius=0; hasPic=true; picTrans(); repaint();//重繪組件 pathInfo.setForeground(Color.BLACK); pathInfo.setText(path+"\\"+filename); oripicbtn.setEnabled(false); } //line7,將圖片逆時(shí)針旋轉(zhuǎn) publicvoidangleleft(){ isangled=true; radius+=-Math.PI/2;//設(shè)置每次左旋45度角 repaint(); oripicbtn.setEnabled(true); } //line8,將圖片順時(shí)針旋轉(zhuǎn) publicvoidangleright(){ isangled=true; radius+=Math.PI/2;//設(shè)置每次右旋45度角 repaint(); oripicbtn.setEnabled(true); } //圖片刪除 publicvoiddelete(){ Filef=newFile(path+"\\"+pics[i]); if(f.exists()) f.delete(); else { pathInfo.setForeground(Color.BLACK); pathInfo.setText("文件不存在"); } for(intj=i;j<pics.length-1;j++) pics[j]=pics[j+1]; if(i==pics.length-1) i=0; dir=path+"\\"+pics[i]; loadImage(dir); } //line9,退出圖片查看器 publicvoidexit(){ hasPic=false; System.exit(1); } //line10,加載圖像 publicvoidloadImage(StringfileName){ pic=this.getToolkit().getImage(fileName);//取得圖像 MediaTrackermt=newMediaTracker(this);//實(shí)例化媒體加載器,跟蹤多種媒體對(duì)象狀態(tài) mt.addImage(pic,0);//增加圖像到加載器中 picWidth=pic.getWidth(this); picHeight=pic.getHeight(this); try{ mt.waitForAll();//等待圖片加載 }catch(Exceptione){ e.printStackTrace();//輸出出錯(cuò)信息 } oriBufImage=newBufferedImage(pic.getWidth(this),pic.getHeight(this),BufferedImage.TYPE_INT_ARGB); //創(chuàng)建原始緩沖區(qū)圖像 bufImage=oriBufImage; bufImageG=bufImage.createGraphics();//創(chuàng)建bufImage的圖形環(huán)境 bufImageG.drawImage(pic,0,0,this);//傳輸源圖像數(shù)據(jù)到緩沖區(qū)圖像中 repaint();//重繪組件 } //line11,圖像轉(zhuǎn)換處理 publicvoidpicTrans(){ if(bufImage==null) return;//如果bufImage為空則直接返回 BufferedImagefilteredBufImage=newBufferedImage((int)(pic.getWidth(this)*scaleX),(int)(pic.getHeight(this)*scaleY),BufferedImage.TYPE_INT_ARGB);//過濾后的圖像 AffineTransformtransform=newAffineTransform();//2D仿射變換 transform.setToScale(scaleX,scaleY);//設(shè)置仿射變換的比例因子 AffineTransformOpimageOp=newAffineTransformOp(transform,null);//創(chuàng)建仿射變換操作對(duì)象 imageOp.filter(oriBufImage,filteredBufImage);//過濾圖像,目標(biāo)圖像在filteredBufImage bufImage=filteredBufImage;//讓用于顯示的緩沖區(qū)圖像指向過濾后的圖像 } //重寫update(),消除閃爍 publicvoidupdate(Graphicsg){ this.paint(g); } //line12,圖片繪制 publicvoidpaint(Graphicsg){ intpanelWidth=this.getWidth(); intpanelHeight=this.getHeight(); super.paint(g); //判斷是否需要旋轉(zhuǎn)圖片 if(bufImage!=null&&isangled==true){ Graphics2Dg2=(Graphics2D)g; AffineTransformtx=newAffineTransform(); //按照角度,根據(jù)中心旋轉(zhuǎn) tx.rotate(radius,panelWidth/2,panelHeight/2); g2.setTransform(tx); picTrans(); g2.drawImage(bufImage,(panelWidth-bufImage.getWidth())/2,(panelHeight-bufImage.getHeight())/2,this); //繪制圖片 pathInfo.setForeground(Color.BLACK); pathInfo.setText(path+"\\"+filename); isangled=false; }elseif(bufImage!=null){ Graphics2Dg2=(Graphics2D)g; picTrans(); g2.drawImage(bufImage,(panelWidth-bufImage.getWidth())/2,(panelHeight-bufImage.getHeight())/2,this);//繪制圖片 } } //line13,文件類型過濾 publicclassFilterimplementsFilenameFilter{ Stringextension; Filter(Stringextension){ this.extension=extension; } //FilenameFilter接口的一個(gè)方法,必須實(shí)現(xiàn)它 publicbooleanaccept(Filedirectory,Stringfilename){ returnfilename.endsWith(extension); } } }上海建橋?qū)W院財(cái)務(wù)管理案例分析院系:專業(yè):班級(jí):學(xué)號(hào):姓名:指導(dǎo)教師:日期:A餐飲公司財(cái)務(wù)結(jié)構(gòu)決策分析A餐飲公司主營快餐和飲料,在全國擁有三個(gè)連鎖店。該公司根據(jù)經(jīng)營特點(diǎn)和實(shí)際情況,經(jīng)過多年探索,創(chuàng)建了所謂“凈債率”的資本結(jié)構(gòu)管理目標(biāo),并力圖使凈債率保持在20%~25%之間。A餐飲公司的凈債率是以市場價(jià)值為基礎(chǔ)計(jì)算的。計(jì)算公式如下:NDR=式中,NDR表示凈債率;L表示長期負(fù)債的市場價(jià)值;S表示短期負(fù)債的市場價(jià)值;C表示現(xiàn)金和銀行存款;M表示有價(jià)證券的價(jià)值;N表示普通股股份數(shù);P表示普通股每股市價(jià)。A餐飲公司20×8年度財(cái)務(wù)報(bào)告提供的有關(guān)資料整理如表6—26所示。表6—26資本種類賬面價(jià)值(萬元)市場價(jià)值(萬元)長期負(fù)債資本短期負(fù)債資本現(xiàn)金和銀行存款有價(jià)證券價(jià)值普通股股份數(shù)(萬股)普通股每股市價(jià)(元)4200800500500200045009005004505A餐飲公司及同行業(yè)主要科比公司20×8年度

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論