




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、計算機與信息工程系JAVA程序設(shè)計課程設(shè)計畫圖板專業(yè)計算機班級計000001學(xué)號00000姓名0000E-Mail電話時間2000006承德石油高等專科學(xué)校摘要:本程序通過調(diào)用JAVA提供的BorderLayout,Button,Color;Container;Graphics;Panel;ButtonGroup;JFrame;JPanel;UIManager等基本類進行了簡單的界面設(shè)計,運用了JAVA中類的繼承特性實現(xiàn)了對父類方法的調(diào)用,并多次使用CASE語句實現(xiàn)繪圖菜單的選擇,運用了適配器類簡化了監(jiān)聽器類的重寫工作。關(guān)鍵字:UIManager、ActionListener1. 課程設(shè)計介紹
2、本程序完成的是一個類似于Windows畫圖板的繪圖程序。由于不是開發(fā)和設(shè)計專業(yè)的繪圖和圖像制作軟件,所以,完成的程序的簡單功能包括以下幾項:1. 新建一個空白圖形文件:用于繪制新的圖形。2. 打開或保存一個圖形文件,便于對圖形文件的管理。3. 繪制一些基本的畫圖組件:直線、矩形、實心矩形、橢圓、實心橢圓、圓、實心圓、圓角矩形、實心圓角矩形等。4. 可以用鼠標(biāo)在繪圖面板上單擊拖動進行隨筆畫。5. 橡皮擦:可以將已繪制好的圖形擦掉。6. 添加文字:可以在繪圖區(qū)域內(nèi)添加文字。7. 選擇文字的字體:通過一個下拉式的選擇條,可以選中所需要的字體。本程序中包括:宋體、隸書、華文彩云、仿宋_GB2312、華
3、文行楷、方正舒體、Times New Roman、Serif、Monospaced、SonsSerif、Garamond。當(dāng)然,在下面的的程序分析中可以看到,由于我們靈活設(shè)置了字體數(shù)組,是的可以隨意添加系統(tǒng)支持的任何字體。大大方便和簡化了程序設(shè)計。8. 選擇文字的字體風(fēng)格:通過兩個復(fù)選框按鈕,可以選擇需要的字體風(fēng)格,包括:粗體、斜體,使用者有三種選擇方式,包括:同時選中兩者、只選擇其中一種、兩者都不選中。9. 設(shè)置畫筆的顏色:可以選擇當(dāng)前繪制圖形的畫筆顏色,讓圖形更加豐富多彩、生動活潑。10. 設(shè)置畫筆的粗細:該選項在作用于基本圖形組件和文字時,它的效果是不一樣的。當(dāng)作用于繪制圖形組件時,它的
4、作用是改變畫筆繪制線條的粗細;當(dāng)作用于文字時,它的作用是改變文字的大小。2. 系統(tǒng)設(shè)計21 需求分析用過微軟Windows操作系統(tǒng)的人一定都對Windows自帶的畫圖板非常的熟悉。同圖像處理軟件界的“大哥大”Photoshop比起來,它雖然不及Photoshop的功能強大、內(nèi)容豐富,但是作為Windows一直以來都內(nèi)帶的附件程序,它具有小巧玲瓏、簡單實用等其它繪圖軟件所不具備的優(yōu)點。同時它的風(fēng)格也被許多其它繪圖軟件所效仿。22 總體設(shè)計本程序主體為一個文件:QingDrawPad.java。其中包括的程序段有: QingDrawPad():構(gòu)造函數(shù),用以初始化。 chooseColor():選
5、擇當(dāng)前繪圖顏色程序段。 setStroke():設(shè)置當(dāng)前畫筆粗細程序段。 loadFile():調(diào)用圖形文件程序段。 newFile():新建一個圖形文件程序段。 saveFile():保存當(dāng)前所繪制圖形程序段。 creatNewItem():新建一個基本圖形單元程序段。相應(yīng)的內(nèi)部類有: ButtonHandler:用來處理基本圖形單元的按鈕事件。 ButtonHandler1:用來處理New、Open、Save三個操作按鈕的按鈕事件。 DrawPanel:用來創(chuàng)建繪圖區(qū)域的子類。 MouseA:繼承了MouseAdapter,用來完成鼠標(biāo)相應(yīng)事件的操作,如單擊、松開、進入和離開等。 Mous
6、eB:繼承了MouseMotionAdapter,用來完成鼠標(biāo)拖動和鼠標(biāo)移動的相應(yīng)事件操作。此外,還繼承了父類drawings的基本圖形子類,如前所述,這里不再重復(fù)。2.3系統(tǒng)功能設(shè)計畫板主要由以下幾個部分組成:1. 主窗體的設(shè)計。主類(QingDrawPad)用來生成主界面,完成畫圖板的主要框架。主類由JFrame派生出來。主界面由菜單欄、工具欄和畫圖區(qū)域三部分組成,布局格式采用BorderLayout布局形式。2. 菜單欄和工具欄的設(shè)計。菜單欄包括文件菜單欄、顏色菜單欄、線條粗細菜單欄和提示菜單欄。其中文件菜單欄包括文件的新建、打開、保存等選項;顏色菜單欄可以進行顏色選擇;線條粗細菜單欄設(shè)
7、置線條的粗細;提示菜單欄給出提示信息。工具欄由新建、打開和保存文件按鈕、基本圖形的按鈕、選擇字體風(fēng)格復(fù)選框和字體下拉列表框組成。在主類中添加并對菜單欄和工具欄添加事件監(jiān)聽。3. 事件響應(yīng)的處理。對菜單欄、工具欄和用鼠標(biāo)畫圖的事件響應(yīng)進行處理。 菜單欄中文件的新建、打開和保存菜單事件的處理:Java把每個文件都視作順序字節(jié)流。如果要在Java中進行文件處理,則必須用到Java.io包。這個包定義了一些流類,選用FileInputStream(從文件中讀入數(shù)據(jù))和FIleOutputStream(向文件輸出數(shù)據(jù)),通過建立這些文件的對象便可以打開文件。這些流相應(yīng)地從InputStream和Outp
8、utStream派生,這些文件均使用文件流,所以必須將文件結(jié)構(gòu)化以適應(yīng)程序的要求。我們需要對保存的對象序列化,然后以輸出流的方式保存。在程序中用newFile()、loadFile()和saveFile()三個函數(shù)分別實現(xiàn)文件的新建、打開和保存。 工具欄事件的處理:主要有一些Button組成。我們用ButtonHandler內(nèi)部類處理基本單元事件,ButtonHandler1內(nèi)部類處理新建、打開和保存文件按鈕,在畫圖類DrawPanel中定義CreateNewItem()函數(shù)處理工具欄中的畫圖事件。 鼠標(biāo)畫圖:由于畫圖板主要是用來畫圖,所以需要在程序中添加對鼠標(biāo)按下、拖動、進入、退出、移動和單
9、機事件進行監(jiān)聽并進行處理。內(nèi)部類mouseA定義了完成鼠標(biāo)按下、松開、進入、退出事件響應(yīng)。內(nèi)部類mouseB完成鼠標(biāo)拖動和移動事件響應(yīng)。4. 畫圖的基本功能。在程序設(shè)計中用到了動態(tài)綁定,我們可以提取他們的公共屬性,先建立一個父類,然后建立各個子類,繼承父類中的方法并將父類中的draw函數(shù)重寫。一些關(guān)于圖形形狀的類,最主要是用于畫圖、字體和橡皮擦等基本類型。如Circle、Triangle、Rectangle,它們都是有超類(Object類)派生的。在面向?qū)ο缶幊讨?,每個類都有畫出自己的能力,每個類都有自己的draw函數(shù),但每種形狀的draw函數(shù)都不一樣,但在繪制任何形狀時,只需簡單調(diào)用父類dr
10、awing的draw方法,然后讓程序動態(tài)地根據(jù)對象的類型決定使用哪個子類的draw方法。為了使畫出的圖形更加美觀,我們在draw函數(shù)中使用了Graphics2D的對象的引用。這樣可以在不改變原程序的情況下,添加擴展的圖形,是程序變得更加強大。同時,為了文件的保存,父類實現(xiàn)Serialize接口,將對象線性化。3. 系統(tǒng)各功能模塊設(shè)計 31 界面設(shè)計我們可以看到,整個程序界面很簡潔,而且界面操作、提示內(nèi)容全部是中文,一目了然。在左上方的菜單欄里有文件、顏色、線條粗細、幫助4個下拉式菜單,可以對繪圖文件進行相應(yīng)的操作。下面一排是工具欄的工具按鈕,從左到右依次為:新建文件、打開文件、保存文件、隨筆畫
11、、直線、空心矩形、實心矩形、空心橢圓、空心圓、實心圓、空心圓角矩形、實心圓角矩形、橡皮擦、顏色選擇按鈕、線條粗細設(shè)置按鈕、文字添加按鈕、粗體字體選擇框、斜體字體選擇框、字體選擇下拉式選擇框。整個工具欄是可以拖動的,可以將它拖動到程序窗口的任意位置。工具欄下面的整個白色區(qū)域就是繪圖區(qū)域,即繪圖面板,它的大小可以隨著窗口的大小自動調(diào)整。在窗口的最底部是程序設(shè)計作者標(biāo)注,以及鼠標(biāo)狀態(tài)提示條,可以顯示當(dāng)前的鼠標(biāo)狀態(tài),包括進出窗口、移動、單擊、松開等。具體效果如下列圖所示:32 功能實現(xiàn)(一):程序基本組成框架和結(jié)構(gòu)1. 一組基本圖形按鈕,包括:Pencil(隨筆畫)、Line(直線)、Rect(矩形)
12、、FRect(實心矩形)、Oval(橢圓)、FOval(實心橢圓)、Circle(圓)、FCircle(實心圓)、RoundRect(圓角矩形)、FrRect(實心圓角矩形)、Rubber(橡皮擦)、Word(文字)。這些基本圖形都繼承于同一個父類:drawings。drawings 具有變量(屬性):int x1,x2,y1,y2; /用來存放相應(yīng)圖形元素的坐標(biāo)int R,G,B; /用來存放圖形色彩顏色信息float stroke; /用來存放畫筆粗細int type; /用來保存圖形類型String s1; /用來保存輸入文字字符串String s2; /用來保存字體類型字符串void
13、draw ( Graphics2D g2d ) ;draw()方法中用到了Java繪圖里面的Graphics2D類,所有繼承drawings類的圖形子類都重寫了此方法。這就是Java程序中類的繼承的概念。它對于程序代碼的重用是很重要的,將極大的方便和簡略程序代碼。2. 此外,程序中還包括一下三個基本操作按鈕: 新建(New):新建一個圖形文件。 打開(Open):打開一個圖形文件。 保存(Save):保存當(dāng)前圖形文件。3. 選擇顏色和設(shè)置當(dāng)前畫筆粗細的按鈕分別為:顏色(Color)、線條粗細(Stroke)。4. 選擇當(dāng)前字體風(fēng)格的選擇框為:粗體(BOLD)、斜體(ITALIC),用以設(shè)置當(dāng)前
14、字體的風(fēng)格。5. 選擇當(dāng)前字體的下拉式復(fù)選框為:Styles。6. 菜單條及其組成: 文件(File)菜單項,包括:New(新建一個圖形文件)、Load(打開一個圖形文件)、Save(保存當(dāng)前圖形文件)、Exit(退出程序)。 顏色(Color)菜單項:用來設(shè)置當(dāng)前顏色。 線條粗細(Stroke)菜單項:用來設(shè)置當(dāng)前畫筆粗細。 幫助(Help)菜單項:有關(guān)的程序幫助提示。(二):畫圖板相關(guān)操作1. 新建一個圖形文件單擊工具欄上的圖標(biāo),或選擇FileNew菜單,則清除當(dāng)前所繪制的圖像,回到初始畫面。2. 打開已有的文件單擊工具欄上的圖標(biāo),或選擇FileLoad菜單,則清除當(dāng)前所繪制的圖像,并彈出
15、打開文件對話框要求選擇要打開的文件。如下圖:3. 保存單擊工具欄上的圖標(biāo),或選擇FileSave菜單,則彈出要求保存文件對話框。如下圖:4. 繪制基本圖形基本圖形包括以下幾種:Pencil:隨筆畫,圖標(biāo)為:。Line:直線,圖標(biāo)為:。Rect:矩形,圖標(biāo)為:。FRect:實心矩形,圖標(biāo)為:。Oval:橢圓,圖標(biāo)為:。FOval:實心橢圓,圖標(biāo)為:。Circle:圓,圖標(biāo)為:。FCircle:實心圓,圖標(biāo)為:。RoundRect:圓角矩形,圖標(biāo)為:。FrRect:實心圓角矩形,圖標(biāo)為:。Rubber:橡皮擦,圖標(biāo)為:。繪圖時,單擊工具欄上相應(yīng)圖形的圖標(biāo),然后用鼠標(biāo)拖動,在繪圖區(qū)域內(nèi)進行繪圖即可。
16、5. 設(shè)置畫筆大小單擊工具欄上的圖標(biāo),或單擊StrokeSet Stroke菜單,則彈出相應(yīng)的設(shè)置當(dāng)前畫筆粗細對話框。如下圖:6. 選擇顏色單擊工具欄區(qū)域,或單擊ColorChoose Color菜單,則彈出相應(yīng)的選擇當(dāng)前畫圖顏色對話框。如下圖:7. 選擇字體風(fēng)格在工具欄區(qū)域 ,可以選擇相應(yīng)的字體風(fēng)格,有粗體、斜體和粗斜體三種可供選擇。8. 選擇字體在工具欄區(qū)域,可以選擇字體,本程序中有如下幾種字體可供選擇:宋體、隸書、華文彩云、仿宋_GB2312、華文行楷、方正舒體、Time New Roman、Serif、Monospaced、SonsSerif、Garamond。4. 課程設(shè)計總結(jié)和體會
17、內(nèi)容作為一名計算機系大二的學(xué)生,我覺得能做類似的課程設(shè)計是十分有意義,而且是十分必要的。在已度過的大二的時間里我們大多數(shù)接觸的是專業(yè)基礎(chǔ)課。我們在課堂上掌握的僅僅是專業(yè)基礎(chǔ)課的理論面,如何去鍛煉我們的實踐面?如何把我們所學(xué)到的專業(yè)基礎(chǔ)理論知識用到實踐中去呢?我想做類似的大作業(yè)就為我們提供了良好的實踐平臺。在做本次課程設(shè)計的過程中,我感觸最深的當(dāng)數(shù)查閱大量的書籍了。為了讓自己的設(shè)計更加完善,更加符合軟件工程標(biāo)準(zhǔn),一次次翻閱各種參考資料是十分必要的,同時也是必不可少的。我們是在作設(shè)計,但我們不是藝術(shù)家。他們可以拋開實際,盡情在幻想的世界里翱翔,我們是軟件設(shè)計師,一切都要有據(jù)可依.有理可尋,不切實際
18、的構(gòu)想永遠只能是構(gòu)想,永遠無法升級為設(shè)計。作為一名專業(yè)學(xué)生掌握一門或幾門程序設(shè)計語言是必不可少的,由于本次課程設(shè)計要求用java進行開發(fā),在這過程中我對各種的開發(fā)環(huán)境進行了探索,其中有vb.c+等,這使我對java的集成開發(fā)環(huán)境有了更深刻的理解雖然去從未獨立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率好高,記得大一學(xué)c+好難就是因為我們沒有把自己放在使用者的角度,單單是為了學(xué)而學(xué),這樣效率當(dāng)然不會高。邊學(xué)邊用這樣才會提高效率,這是我作本次課程設(shè)計的第二大收獲。但是由于水平有限,難免會有錯誤,還望老師批評指正。5.參考文獻1java編程思想,機械工業(yè)出版社,1999年4月2java項目設(shè)計
19、與開發(fā)范例,電子工業(yè)出版社,2005年4月,唐小軍等3標(biāo)準(zhǔn)java 2 使用手冊,電子工業(yè)出版社,2005年1月,魏海萍4java開放源碼編程,電子工業(yè)出版社,2005年1月,沃納斯6致謝我要感謝劉延嶺老師的教導(dǎo),同時還要感謝課程設(shè)計過程中給予我?guī)椭耐瑢W(xué)。附錄import java.awt.*;import java.awt.geom.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class QingDrawPad extends JFrame /主類,擴展了
20、JFrame類,用來生成主界面 private ObjectInputStream input; private ObjectOutputStream output; /定義輸入輸出流,用來調(diào)用和保存圖像文件 private JButton choices; /按鈕數(shù)組,存放以下名稱的功能按鈕 private String names = "New", "Open", "Save", /這三個是基本操作按鈕,包括"新建"、"打開"、"保存" /*下面是我們的畫圖板上面有的基本
21、的幾個繪圖單元按鈕*/ "Pencil", "Line", "Rect", "FRect", "Oval", "FOval", "Circle", "FCircle", "RoundRect", "FrRect", "Rubber", "Color", "Stroke", "Word" ; private String
22、 styleNames= " 宋體 " , " 隸書 " , " 華文彩云 " , " 仿宋_GB2312 " , " 華文行楷 " , " 方正舒體 " , " Times New Roman " , " Serif " , " Monospaced " , " SonsSerif " , " Garamond " ; private Icon items; private
23、String tipText= /這里是鼠標(biāo)移動到相應(yīng)按鈕上面上停留時給出的提示說明條 "新建一個文件", "打開一個文件", "保存當(dāng)前文件", "繪制線條", "繪制直線", "繪制空心矩形", "繪制實心矩形", "繪制空心橢圓", "繪制實心橢圓", "繪制空心圓形", "繪制實心圓形", "繪制空心圓角矩形", "繪制實心圓角矩形&quo
24、t;, "橡皮擦", "選擇顏色", "設(shè)置線條粗細", "輸入文字" ; JToolBar buttonPanel ; /定義按鈕面板 private JLabel statusBar; /顯示鼠標(biāo)狀態(tài)的提示條 private DrawPanel drawingArea; /畫圖區(qū)域 private int width=850,height=550; drawings itemList=new drawings5000; /用來存放基本圖形的數(shù)組 private int currentChoice=3; /設(shè)置默
25、認畫圖狀態(tài)為隨筆畫 int index=0; /當(dāng)前已經(jīng)繪制的圖形數(shù)目 private Color color=Color.black; /當(dāng)前畫筆顏色 int R,G,B; /用來存放當(dāng)前色彩值 int f1,f2; /用來存放當(dāng)前字體風(fēng)格 String style1; /用來存放當(dāng)前字體 private float stroke=1.0f; /設(shè)置畫筆粗細,默認值為1.0f JCheckBox bold,italic; /bold為粗體,italic為斜體,二者可以同時使用 JComboBox styles; public QingDrawPad() super("繪圖畫板&qu
26、ot;); JMenuBar bar=new JMenuBar();/定義菜單條 JMenu fileMenu=new JMenu("文件"); /fileMenu.setMnemonic('F');/新建文件菜單條 JMenuItem newItem=new JMenuItem("新建"); newItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) newFile();/如果被觸發(fā),則調(diào)用新建文件函數(shù)段 ); fi
27、leMenu.add(newItem);/保存文件菜單項 JMenuItem saveItem=new JMenuItem("保存"); saveItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) saveFile();/如果被觸發(fā),則調(diào)用保存文件函數(shù)段 ); fileMenu.add(saveItem);/打開文件菜單項 JMenuItem loadItem=new JMenuItem("打開"); loadItem.addAct
28、ionListener( new ActionListener() public void actionPerformed(ActionEvent e) loadFile();/如果被觸發(fā),則調(diào)用打開文件函數(shù)段 ); fileMenu.add(loadItem); fileMenu.addSeparator();/退出菜單項 JMenuItem exitItem=new JMenuItem("退出"); exitItem.addActionListener( new ActionListener() public void actionPerformed(ActionEve
29、nt e) System.exit(0);/如果被觸發(fā),則退出畫圖板程序 ); fileMenu.add(exitItem); bar.add(fileMenu);/設(shè)置顏色菜單條 JMenu colorMenu=new JMenu("顏色");/選擇顏色菜單項 JMenuItem colorItem=new JMenuItem("選擇顏色"); colorItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) chooseColor(
30、);/如果被觸發(fā),則調(diào)用選擇顏色函數(shù)段 ); colorMenu.add(colorItem); bar.add(colorMenu);/設(shè)置線條粗細菜單條 JMenu strokeMenu=new JMenu("線條粗細");/設(shè)置線條粗細菜單項 JMenuItem strokeItem=new JMenuItem("設(shè)置線條粗細"); strokeItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) setStroke(); );
31、 strokeMenu.add(strokeItem); bar.add(strokeMenu);/設(shè)置提示菜單條 JMenu helpMenu=new JMenu("幫助");/設(shè)置提示菜單項 JMenuItem aboutItem=new JMenuItem("關(guān)于畫板"); aboutItem.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(null, "畫板n作
32、者:王曉紅n指導(dǎo)教師:劉延嶺n于2011年12月26日,承德石油高等??茖W(xué)校 ", " 畫圖板說明 ", JOptionPane.INFORMATION_MESSAGE ); ); helpMenu.add(aboutItem); bar.add(helpMenu); items=new ImageIconnames.length;/創(chuàng)建各種基本圖形的按鈕 drawingArea=new DrawPanel(); choices=new JButtonnames.length; buttonPanel = new JToolBar( JToolBar.VERTIC
33、AL ) ; buttonPanel = new JToolBar( JToolBar.HORIZONTAL) ; ButtonHandler handler=new ButtonHandler(); ButtonHandler1 handler1=new ButtonHandler1();/導(dǎo)入我們需要的圖形圖標(biāo),這些圖標(biāo)都存放在與源文件相同的目錄下面 for(int i=0;i<choices.length;i+) itemsi=new ImageIcon(namesi + ".gif"); choicesi=new JButton("",it
34、emsi); choicesi.setToolTipText(tipTexti); buttonPanel.add(choicesi); /將動作偵聽器加入按鈕里面 for(int i=3;i<choices.length-3;i+) choicesi.addActionListener(handler); choices0.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) newFile(); ); choices1.addActionListener( new Acti
35、onListener() public void actionPerformed(ActionEvent e) loadFile(); ); choices2.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) saveFile(); ); choiceschoices.length-3.addActionListener(handler1); choiceschoices.length-2.addActionListener(handler1); choiceschoices.l
36、ength-1.addActionListener(handler1);/字體風(fēng)格選擇 styles=new JComboBox(styleNames); styles.setMaximumRowCount(8); styles.addItemListener( new ItemListener() public void itemStateChanged(ItemEvent e) style1=styleNamesstyles.getSelectedIndex(); );/字體選擇 bold=new JCheckBox("粗體"); italic=new JCheckBo
37、x("斜體"); checkBoxHandler cHandler=new checkBoxHandler(); bold.addItemListener(cHandler); italic.addItemListener(cHandler); JPanel wordPanel=new JPanel(); buttonPanel.add(bold); buttonPanel.add(italic); buttonPanel.add(styles); styles.setMinimumSize( new Dimension ( 50, 20 ) ); styles.setMa
38、ximumSize(new Dimension ( 100, 20 ) ); Container c=getContentPane(); super.setJMenuBar( bar ); c.add(buttonPanel,BorderLayout.NORTH); c.add(drawingArea,BorderLayout.CENTER); statusBar=new JLabel(); c.add(statusBar,BorderLayout.SOUTH); statusBar.setText(" 歡迎使用卿樂繪圖畫板O(_)O作者:王曉紅指導(dǎo)教師:劉延嶺"); cr
39、eateNewItem(); setSize(width,height); show(); /按鈕偵聽器ButtonHanler類,內(nèi)部類,用來偵聽基本按鈕的操作public class ButtonHandler implements ActionListener public void actionPerformed(ActionEvent e) for(int j=3;j<choices.length-3;j+) if(e.getSource()=choicesj) currentChoice=j; createNewItem(); repaint(); /按鈕偵聽器ButtonH
40、anler1類,用來偵聽顏色選擇、畫筆粗細設(shè)置、文字輸入按鈕的操作public class ButtonHandler1 implements ActionListener public void actionPerformed(ActionEvent e) if(e.getSource()=choiceschoices.length-3) chooseColor(); if(e.getSource()=choiceschoices.length-2) setStroke(); if(e.getSource()=choiceschoices.length-1) JOptionPane.show
41、MessageDialog(null, "請點擊繪圖板選擇輸入文本的位置", "提示",JOptionPane.INFORMATION_MESSAGE ); currentChoice=14; createNewItem(); repaint(); /鼠標(biāo)事件mouseA類,繼承了MouseAdapter,用來完成鼠標(biāo)相應(yīng)事件操作 class mouseA extends MouseAdapter public void mousePressed(MouseEvent e) statusBar.setText(" 作者:王曉紅承德石油高等專科學(xué)
42、校鼠標(biāo)按下位置:" + e.getX() + ", " + e.getY() + "");/設(shè)置狀態(tài)提示 itemListindex.x1=itemListindex.x2=e.getX(); itemListindex.y1=itemListindex.y2=e.getY(); /如果當(dāng)前選擇的圖形是隨筆畫或者橡皮擦,則進行下面的操作 if(currentChoice=3|currentChoice=13) itemListindex.x1=itemListindex.x2=e.getX(); itemListindex.y1=itemLis
43、tindex.y2=e.getY(); index+; createNewItem(); /如果當(dāng)前選擇的圖形式文字輸入,則進行下面操作 if(currentChoice=14) itemListindex.x1=e.getX(); itemListindex.y1=e.getY(); String input; input=JOptionPane.showInputDialog( "請輸入你想要輸入的文本"); itemListindex.s1=input; itemListindex.x2=f1; itemListindex.y2=f2; itemListindex.s
44、2=style1; index+; currentChoice=14; createNewItem(); drawingArea.repaint(); public void mouseReleased(MouseEvent e) statusBar.setText(" 作者:王曉紅承德石油高等專科學(xué)校鼠標(biāo)松開位置:" + e.getX() + ", " + e.getY() + ""); if(currentChoice=3|currentChoice=13) itemListindex.x1=e.getX(); itemListi
45、ndex.y1=e.getY(); itemListindex.x2=e.getX(); itemListindex.y2=e.getY(); repaint(); index+; createNewItem(); public void mouseEntered(MouseEvent e) statusBar.setText(" 作者:王曉紅承德石油高等專科學(xué)校鼠標(biāo)進入位置:" + e.getX() + ", " + e.getY() + ""); public void mouseExited(MouseEvent e) stat
46、usBar.setText(" 作者:王曉紅承德石油高等專科學(xué)校鼠標(biāo)退出位置:" + e.getX() + ", " + e.getY() + ""); /鼠標(biāo)事件mouseB類繼承了MouseMotionAdapter,用來完成鼠標(biāo)拖動和鼠標(biāo)移動時的相應(yīng)操作 class mouseB extends MouseMotionAdapter public void mouseDragged(MouseEvent e) statusBar.setText(" 作者:王曉紅承德石油高等專科學(xué)校鼠標(biāo)拖動位置:" + e.g
47、etX() + ", " + e.getY() + ""); if(currentChoice=3|currentChoice=13) itemListindex-1.x1=itemListindex.x2=itemListindex.x1=e.getX(); itemListindex-1.y1=itemListindex.y2=itemListindex.y1=e.getY(); index+; createNewItem(); else itemListindex.x2=e.getX(); itemListindex.y2=e.getY(); repaint(); public void mouseMoved(MouseEvent e) statusBar.setText(" 作者:王曉紅承德石油高等??茖W(xué)校鼠標(biāo)移動位置:" + e.getX() + ", " + e.getY() + ""); /選擇字體風(fēng)格時候用到的事件偵聽器類,加入到字體風(fēng)格的選擇框中private class checkBoxHandler implements ItemListener public
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023七年級數(shù)學(xué)上冊 第二章 有理數(shù)及其運算12 用計算器進行運算教學(xué)設(shè)計 (新版)北師大版
- 2025年公共營養(yǎng)師考試學(xué)習(xí)資源整合試題及答案
- 商務(wù)星球版七年級上冊第四章第五節(jié)《形成氣候的主要因素》教學(xué)設(shè)計
- 2025年青海交通職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))歷年真題考點含答案解析
- 2025年陜西郵電職業(yè)技術(shù)學(xué)院高職單招語文2019-2024歷年真題考點試卷含答案解析
- 2025年鐵門關(guān)職業(yè)技術(shù)學(xué)院高職單招語文2019-2024歷年真題考點試卷含答案解析
- 2025年醫(yī)學(xué)影像分析技能試題及答案
- 2024年系統(tǒng)規(guī)劃與管理師考試動態(tài)試題及答案咨詢
- 中藥學(xué)基礎(chǔ)考查試題及答案
- 2024年系統(tǒng)架構(gòu)設(shè)計師考點透視試題及答案
- 腫瘤外科的治療原則課件
- 微信生態(tài)運營全景解讀
- 工業(yè)廠房中英文對照施工組織設(shè)計土建、水電安裝(423頁)
- HACCP計劃書蠟基類化妝品
- 曼昆微觀經(jīng)濟學(xué)經(jīng)濟學(xué)十大原理英文版.ppt
- -三自由度機械手設(shè)計
- 循環(huán)系統(tǒng)總論
- 第二章空氣動力學(xué)
- 會計師事務(wù)所11內(nèi)部分配和考核晉升制度
- 淺談如何搞好班組安全管理工作
- 第七章_材料顯微斷口分析
評論
0/150
提交評論