製作一個簡單的繪圖軟體(讓人頭大的JAVA期末作業)
- 2019 年 11 月 8 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/weixin_42449444/article/details/84859910
寫在前面:
超級無敵巨想吐槽我們學校的課程設置,這TM也太不合理吧。上學期我C和Python一起學(最後Python98 C語言只有79 C實驗93),這學期C++和JAVA一起學。。。。圖形用戶介面、多執行緒飛起講,只用了12周(每周2大節理論1大節實驗)就把300多頁內容講完了,然後給我們布置這個製作一個繪圖軟體的期末大作業,好了 說多了都是淚,預習開始。
製作一個簡單的繪圖軟體
實驗要求:
1、軟體包括菜單「Start」,「Start」菜單下有「New」、「DrawLine」「Exit」菜單項。New實現清空畫布;DrawLine菜單右拉出菜單DrawLineA(從滑鼠左鍵按下到滑鼠左鍵放開劃線),DrawLineB(從滑鼠左鍵按下開始,隨滑鼠拖動劃直線),DrawLineC(滑鼠左鍵按下,隨滑鼠移動化任意曲線);Exit實現退出程式。
2、添加工具欄,工具欄上添加JComboBox組件,用於選擇線條的寬度。在工具欄上添加三個JRadioButton按鈕,分別表示畫圓、畫矩形、劃直線(點下滑鼠左鍵後,拖動滑鼠線條隨之移動,釋放左鍵後划出直線),一個JButton按鈕用於打開顏色選擇對話框,選擇線條的顏色;添加一個JButton按鈕,標題為「Eraser」,用於擦除影像。
預習開始:
我遇到的第一個難題就是:菜單欄的菜單Start的子菜單DrawLine下還有子菜單DrawLineA,DrawLineB,DrawLineC,如何通過程式碼來實現。於是我預習的第一個知識點是:菜單欄/菜單/子菜單組件JMenuBar/JMenu/JMenuItem (來源作者:Thinkd00r)。
這部分內容的預習已經完成了,看下預習的成果。

接著我發現DrawLine菜單下應該是三個單選按鈕,而不是像我的上圖那樣,於是我遇到了第二個難題,怎麼設置複選框和單選按鈕組,並且每次只允許選擇一個按鈕呢?單選按鈕又如何添加監聽事件呢?預習第二個知識點出現了:單選按鈕:JRadioButton(來源作者:藍藍223)。
這部分內容的預習已經完成了,看下預習的成果。

預習的第三部分內容:實現三種滑鼠畫線方式DrawLineA、B、C的畫線操作。這部分 我是參考教材電子工業出版社的《JAVA程式設計實用教程第4版》上面的177頁例6.8來實現的,看下效果。

點擊Exit按鈕退出程式,這個比較好實現 不用預習,到這裡老師給定的實驗要求1就全實現了。Exit功能如下圖。

預習的第四部分內容是如何創建工具欄並添加工具欄組件?預習的第四個知識點: JToolBar(工具欄)(來源作者:xietansheng)。工具欄是可以拖動的,看下效果。



預習的第五部分內容是如何創建一個下拉列表框?預習的第五個知識點:JComboBox(下拉列表框)(來源作者:xietansheng)。 下拉列表框建立好了之後,先用sysout來看下監聽事件是否也添加成功,看下效果。

預習的第六部分內容是如何根據下拉列表框的選項,來改變畫布中的畫線的寬度? 預習的第六個知識點:如何設置java drawLine畫的線的粗細(來源作者: MingChaoSun)。我是用了一個char型來記錄下拉列表框的選項是'粗'、'中'還是'細',然後再在內部類DrawLineCanvas畫線時實現的,看下效果。

預習的第七部分是如何在點擊Circle、Matrix、Line、Eraser(才發現我上面寫的是eraser,首字母忘記大寫了)這些工具欄按鈕後,出現相應的畫圖功能? 預習的第七個知識點是在教材上。看下畫橢圓、畫矩陣、畫直線和橡皮擦的效果:


預習的第八部分是如何添加顏色選擇器來改變畫筆的顏色?預習的第八個知識點來自:JColorChooser(顏色選擇器)(來源作者:xietansheng)。看下預習效果:

