最代碼廣告位
丶男兒當自強的gravatar頭像
丶男兒當自強2015-08-06 18:20:50

java swing經典繪圖板程序,讓你再次領略Java swing繪圖的魅力

好久沒來給大家分享了,嘿嘿,上家公司沒有網絡,有心無力,最近找了一份新的工作,下周就去入職了,借這個讓我高興的時刻,再次給大家分享一個小demo,幫助大家對Java的繪圖技術有更好的了解。

demo功能描述:

設置:1、對每個圖形的畫筆顏色、大小進行設置

      2、對畫板背景色進行設置(背景圖片加上了縮放功能,拖動縮放和鼠標滾動縮放,為了讓大家更好的看到功能,這里對背景圖片大小做了設置,避免過大圖片失真,縮放到了圖片原始大小,就不再讓其放大了)

圓形:1、點擊此按鈕之后,就可以在畫板上拖動鼠標繪制圓形

      2、繪制完圖形之后點擊鼠標左鍵,當前圓形會隨著鼠標而移動

      3、繪制完圖形之后點擊鼠標右鍵,對當前圓形進行個性化設置

三角:1、點擊此按鈕之后,就可以在畫板上拖動鼠標繪制三角形

      2、繪制完圖形之后點擊鼠標左鍵,當前三角形會隨著鼠標而移動

      3、繪制完圖形之后點擊鼠標右鍵,對當前三角形進行個性化設置

線條:1、點擊此按鈕之后,就可以在畫板上拖動鼠標繪制直線

      2、繪制完圖形之后點擊鼠標右鍵,對當前直線進行個性化設置

文字:1、點擊此按鈕之后,就可以在畫板上拖動鼠標繪制文字

      2、繪制完圖形之后點擊鼠標左鍵,當前文字會隨著鼠標而移動

      3、繪制完圖形之后點擊鼠標右鍵,對當前文字進行個性化設置

撤銷:按照時間順序將界面上圖形都清除掉,但保留的有副本

回退:按照時間順序將界面上圖形都還原回來,需要依賴撤銷時保留的副本

清屏:清除畫板上所有圖形,此時撤銷和回退會失效

生成圖片:將畫板上繪制的圖形,保存到本地文件夾

切換背景:改變背景圖片,但是不會對背景色有影響

退出:退出系統

 

好了,還是先來說一下我的一些理解(其實在之前的分享中提到過一些,我再啰嗦一下)。

Java繪圖,需要了解兩個概念,畫板和畫筆。畫板,大家簡單理解為Jpanel這種組件;畫筆,就是Java的Graphics對象。我們在畫圖的時候,就可以在圖形對象里面獲取到Graphics這個畫筆,然后畫圓畫方想畫什么畫什么。繪圖的機制就是鼠標動一下就重新繪制,所以會非常頻繁的調用繪圖API,這樣,大家肯定能想到效率不高的問題,所以若是畫圖板之外的Swing程序,大家在UI方面還是盡量考慮使用圖片會好一些。

可能大家對我所說的圖形對象不是很了解,沒關系,我們來看一個例子:圓形對象(就是畫一個圓)

package com.jumao.itms.ui;

import java.awt.*;

/**
 * 圓形
 * @author SongFei
 * @date 2015年8月6日
 */
public class Oval extends Shape {

	private static final long serialVersionUID = 1L;

	public Oval(Color color, float stroke, String type, int x, int y) {
		super(color, stroke, type, x, y);
	}

	public void draw(Graphics2D graphics2d) {
		// 設置畫筆顏色
		graphics2d.setColor(color);
		// 設置畫筆粗細
		graphics2d.setStroke(new BasicStroke(stroke));
		// 進行繪制
		graphics2d.drawOval(currentX, currentY, currentD, currentD);
	}
}

大家可以看到,這里面在構造方法里面對一個圓形的坐標進行了設置,真正繪圖的時候只需要調用一下draw方法,這個方法需要一個Graphics2D參數,這時候大家似乎理解了吧,對,沒錯,這個就是畫筆,就是畫板的Graphics對象(畫板是一個Jpanel組件)。

好了,說了這么多,給大家看看效果如何:

java swing經典繪圖板程序,讓你再次領略Java swing繪圖的魅力java swing經典繪圖板程序,讓你再次領略Java swing繪圖的魅力java swing經典繪圖板程序,讓你再次領略Java swing繪圖的魅力java swing經典繪圖板程序,讓你再次領略Java swing繪圖的魅力

繪制圖形可以拖動改變大小,改變位置,我這里只能對當前繪制的圖形進行這些操作,沒有對圖形進行定位獲取,嘿嘿,大家看看就好。

OK,東西沒多少,感覺也沒啥說的了,這里撤銷、回退、縮放圖片這些功能大家本地運行看看,截圖看不明白。

嘿嘿,圖形只選了幾個常用圖形,語言組織的也不太好,大家莫怪,之前的分享中對repaint、paintComponent這兩個API詳細講解了一下,這次的分享對畫板和畫筆這兩個理論性的東西講解了一下,經過這兩次,大家對Java的繪圖有沒有清楚一些了呢?


打賞

文件名:Draw.rar,文件大小:1586.703K下載
  • /
      • /Draw
        • /Draw/.classpath
        • /Draw/.project
          • /Draw/.settings
            • /Draw/.settings/org.eclipse.core.resources.prefs
          • /Draw/images
            • /Draw/images/back.png
            • /Draw/images/cancel.png
            • /Draw/images/clear.png
            • /Draw/images/config.png
            • /Draw/images/exit.png
            • /Draw/images/export.png
            • /Draw/images/line.png
最代碼最近下載分享源代碼列表最近下載
wei112233 LV154月2日
月亮月亮月亮星星星星星星
sungaga LV153月24日
月亮月亮月亮星星星星星星
15966848095 LV132月8日
月亮月亮月亮星星
635969151 LV92019年12月14日
月亮月亮星星
chenweistudy LV22019年10月20日
星星星星
hsbr2002 LV12019年9月25日
星星
小小滑頭魚 LV262019年6月20日
太陽月亮月亮星星星星
卡布奇諾_懵懂 LV32019年6月14日
星星星星星星
13683980377 LV62019年6月9日
月亮星星星星
fanxuan33 LV12019年4月18日
星星
最代碼最近瀏覽分享源代碼列表最近瀏覽
光翟00015月17日
暫無貢獻等級
菜雞回車 LV15月15日
星星
jinglogo5月13日
暫無貢獻等級
liuyuanyuan4月26日
暫無貢獻等級
煩得很1 LV14月26日
星星
abc cafe4月22日
暫無貢獻等級
335261607 LV14月13日
星星
xmapollo4月8日
暫無貢獻等級
游江輝4月5日
暫無貢獻等級
太上問情4月3日
暫無貢獻等級
頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
2008大乐透走势图