資源簡(jiǎn)介
1. 畫板UI設(shè)計(jì)(總體布局)
(1)創(chuàng)建窗體并設(shè)置相關(guān)屬性;
(2)給整個(gè)窗體添加一個(gè)中間容器用來(lái)覆蓋整個(gè)窗體;
(3)設(shè)置邊框布局,因?yàn)檎麄€(gè)畫板大致為左邊部分,中間部分,菜單欄三個(gè)部分,用邊框布局比較合適;
(4)給窗體添加左面板,中間面板;
(5)給左面板添加按鈕,并設(shè)置按鈕圖片和效果;
(6)給左面板添加左子面板,用來(lái)存放顏色按鈕;
2.畫板功能設(shè)計(jì)
(1)給左畫板中的按鈕組中的每個(gè)按鈕添加鼠標(biāo)監(jiān)聽(tīng)器;
(2)點(diǎn)擊不同按鈕,繪制不同的圖形;
(3)給左子面板中的每個(gè)顏色按鈕添加鼠標(biāo)監(jiān)聽(tīng)器;
(4)根據(jù)下面板中選中的顏色按鈕,來(lái)獲取按鈕的背景顏色,并將該顏色設(shè)置成畫筆的顏色;
(5)鉛筆功能
1、鉛筆是鼠標(biāo)拖動(dòng)時(shí)畫的線,所需要實(shí)現(xiàn)鼠標(biāo)移動(dòng)監(jiān)聽(tīng)器,我們采用一個(gè)類來(lái)實(shí)現(xiàn)多個(gè)接口;
2、添加新的鼠標(biāo)監(jiān)聽(tīng)器類;
3、在鼠標(biāo)移動(dòng)時(shí)間中實(shí)現(xiàn)畫筆的邏輯(其實(shí)就是繪制直線,鼠標(biāo)每移動(dòng)一個(gè)像素,就會(huì)觸發(fā)移動(dòng)事件,通過(guò)移動(dòng)事件獲取鼠標(biāo)的坐標(biāo),與上一次移動(dòng)的坐標(biāo)連線就可以了;
(6)刷子功能
刷子其實(shí)就是加粗的畫筆,畫出來(lái)的直線更粗,這里需要用到Graphic2D畫筆來(lái)設(shè)置畫筆的粗細(xì)。
(7)橡皮擦功能
橡皮擦就是把畫筆顏色設(shè)置成相同的背景顏色就可以了,拖動(dòng)鼠標(biāo)時(shí)進(jìn)行擦除,所以在鼠標(biāo)拖動(dòng)事件中編寫。
(8)噴桶功能
1、定位方法:鼠標(biāo)拖動(dòng)事件實(shí)現(xiàn);
2、隨機(jī)數(shù)生成:Random;
3、實(shí)現(xiàn)原理,在鼠標(biāo)拖動(dòng)附近繪制很多的原點(diǎn);
3. 畫板的保存和重繪的設(shè)計(jì)
(1)給我們的畫板添加菜單條、菜單以及菜單項(xiàng)
(2)給每個(gè)菜單項(xiàng)添加監(jiān)聽(tīng)器
(3)點(diǎn)擊不同的菜單項(xiàng)實(shí)現(xiàn)相應(yīng)的功能
(4)圖形保存功能:利用對(duì)象輸出流,將容器對(duì)象寫入文件;
(5)打開(kāi)圖形功能:利用對(duì)象輸入流,將容器對(duì)象讀入,然后將容器里面的圖形對(duì)象在畫板上繪制出來(lái)
(6)新建文件功能:新建文件,將畫板上繪制的內(nèi)容清空(清空之前可以確認(rèn)是否需要進(jìn)行保存)清屏(重繪)功能依次方法;
(7)文件保存格式為BMP格式;
(8)文字功能:讀取文本框中的文本并打印到屏幕鼠標(biāo)的相應(yīng)的響應(yīng)位置,傳入輸入的文字大小的參數(shù),以此來(lái)改變文字的大小;
4.彈泡泡功能的設(shè)計(jì)
根據(jù)Java多線程來(lái)實(shí)現(xiàn)彈泡泡功能;泡泡的位置顏色隨機(jī)出現(xiàn),并且做到碰到邊框會(huì)變色;

代碼片段和文件信息
package?com.picture;
import?com.picture.com.ButtonListener;
import?com.picture.com.DrawListener;
import?java.awt.Graphics2D;
import?java.awt.*;
import?javax.swing.*;
import?javax.swing.JMenu;
import?javax.swing.JMenuBar;
import?javax.swing.JMenuItem;
import?javax.swing.border.BevelBorder;
import?java.util.ArrayList;
import?java.lang.Exception;
import?com.picture.com.com.com.com.Point;
import?sun.font.EAttribute;
import?java.awt.Desktop;
import?javax.swing.JScrollPane;
import?javax.swing.JTextArea;
import?javax.swing.UnsupportedLookAndFeelException;
public?class?Imageframe?extends?Jframe{
????//聲明顏色屬性,并賦默認(rèn)值
????public?Color?c=Color.RED;
????//按鈕屬性
????public??static???JTextField?textField;
????public??static???JTextField?textField1;
????public?JButton??bt?;
????public?JPanel?panelcenter;
????public?Graphics2D?g;
????ArrayList?list?=?new?ArrayList();//容器
????public?void?initframe()?throws?Exception{
//設(shè)置窗體相關(guān)屬性
????????this.setSize(700600);
????????this.settitle(“圖?畫?板“);
????????this.setDefaultCloseOperation(3);
????????this.setLocationRelativeTo(null);
????????//把添加菜單作為一個(gè)方法封裝起來(lái)
???????addMenu();
//窗體添加主面板
????????JPanel?panel?=?new?JPanel();
????????panel.setLayout(new?BorderLayout());
????????this.add(panel);
????????panelcenter?=?new?JPanel(){
????????????public?void?paint(Graphics?g1)?{
????????????????g=(Graphics2D)g1;
????????????????super.paint(g);
????????????????for?(int?i?=?0;?i? ????????????????????Point?point?=(Point)?list.get(i);
????????????????????point.Draw(g);
????????????????}
????????????}
????????};
????????panelcenter.setBackground(Color.white);
????????panel.add(panelcenter);
//主面板添加左面板
????????JPanel?panelleft?=?new?JPanel();
????????panelleft.setPreferredSize(new?Dimension(500));
????????panelleft.setLayout(new?FlowLayout(FlowLayout.LEFT00));
????????panelleft.setBackground(new?Color(235233238));
????????panel.add(panelleftBorderLayout.WEST);
//面板中添加按鈕
????????ButtonGroup?bg?=?new?ButtonGroup();//畫板中的按鈕統(tǒng)一管理,互相排斥,保證只能選擇一個(gè)按鈕
????????for(int?i=0;i<15;i++)?{
????????????JRadioButton?jrb?=?new?JRadioButton();
//給按鈕添加圖片
//按鈕設(shè)置
????????????if?(i?!=?0?&&?i?!=?1?&&?i?!=?4?&&?i?!=?5?&&?i?!=?9?&&?i?!=?11?&&?i?!=?13)?{
????????????????String?str1?=?“/draw“?+?i?+?“.jpg“;
????????????????String?str2?=?“/draw“?+?i?+?“-1.jpg“;
????????????????String?str3?=?“/draw“?+?i?+?“-2.jpg“;
????????????????String?str4?=?“/draw“?+?i?+?“-3.jpg“;
????????????????ImageIcon?img1?=?new?ImageIcon(this.getClass().getResource(str1));
????????????????ImageIcon?img2?=?new?ImageIcon(this.getClass().getResource(str2));
????????????????ImageIcon?img3?=?new?ImageIcon(this.getClass().getResource(str3));
????????????????ImageIcon?img4?=?new?ImageIcon(this.getClass().getResource(str4));
????????????????jrb.setIcon(img1);//默認(rèn)圖片
????????????????jrb.setRolloverIcon(img2);//鼠標(biāo)停留在按鈕上顯示的圖片
????????????????jrb.setPressedIcon(img3);//鼠標(biāo)按下按鈕顯示的圖片
??????????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????116197??2017-09-01?13:12??Java畫板\emmmmm.jar
?????文件?????186524??2017-09-01?21:53??Java畫板\Java畫圖板技術(shù)報(bào)告.docx
?????文件????????511??2017-08-31?16:32??Java畫板\畫板\emmmmm.iml
?????文件?????????97??2017-08-18?16:30??Java畫板\畫板\.idea\desc
?????文件????????499??2017-08-18?16:30??Java畫板\畫板\.idea\misc.xm
?????文件????????279??2017-08-18?16:33??Java畫板\畫板\.idea\modules.xm
?????文件?????????91??2017-08-18?16:30??Java畫板\畫板\.idea\project-template.xm
?????文件??????51691??2017-09-01?13:13??Java畫板\畫板\.idea\workspace.xm
?????文件???????8792??2017-09-01?11:14??Java畫板\畫板\.idea\uiDesigner.xm
?????文件????????564??2017-09-01?13:12??Java畫板\畫板\.idea\artifacts\emmmmm_jar.xm
?????文件??????61231??2017-08-31?17:00??Java畫板\畫板\images\Ball.gif
?????文件????????356??2016-11-09?20:44??Java畫板\畫板\images\cursorPen.gif
?????文件????????611??2016-11-09?20:44??Java畫板\畫板\images\cursorPen.png
?????文件????????607??2016-11-09?20:44??Java畫板\畫板\images\draw10-1.jpg
?????文件????????601??2016-11-09?20:44??Java畫板\畫板\images\draw10-2.jpg
?????文件????????628??2016-11-09?20:44??Java畫板\畫板\images\draw10-3.jpg
?????文件????????522??2016-11-09?20:44??Java畫板\畫板\images\draw10.jpg
?????文件????????571??2016-11-09?20:44??Java畫板\畫板\images\draw12-1.jpg
?????文件????????597??2016-11-09?20:44??Java畫板\畫板\images\draw12-2.jpg
?????文件????????575??2016-11-09?20:44??Java畫板\畫板\images\draw12-3.jpg
?????文件????????542??2016-11-09?20:44??Java畫板\畫板\images\draw12.jpg
?????文件????????606??2016-11-09?20:44??Java畫板\畫板\images\draw14-1.jpg
?????文件????????653??2016-11-09?20:44??Java畫板\畫板\images\draw14-2.jpg
?????文件????????671??2016-11-09?20:44??Java畫板\畫板\images\draw14-3.jpg
?????文件????????507??2016-11-09?20:44??Java畫板\畫板\images\draw14.jpg
?????文件????????787??2016-11-09?20:44??Java畫板\畫板\images\draw2-1.jpg
?????文件????????729??2016-11-09?20:44??Java畫板\畫板\images\draw2-2.jpg
?????文件????????783??2016-11-09?20:44??Java畫板\畫板\images\draw2-3.jpg
?????文件???????9489??2016-11-09?20:44??Java畫板\畫板\images\draw2.jpg
?????文件????????784??2016-11-09?20:44??Java畫板\畫板\images\draw3-1.jpg
............此處省略151個(gè)文件信息
評(píng)論
共有 條評(píng)論