- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
以JFrame视窗为画布
Java繪圖和JPanel容器
1. 前言 2
2. Graphics 類別 3
3. 以JFrame視窗為畫布 4
(1). paint()方法 4
(2). 範例練習:exp9_2_1.java 5
(3). JFrame視窗的座標系統 7
(4). getGraphics()方法 8
(5). 範例練習:exp9_2_2.java 8
4. 以JPanel容器為畫布 10
(1). paintComponent()方法 10
(2). 範例練習:exp9_3_1.java 10
(3). getGraphics()方法 13
(4). 範例練習:exp9_3_2.java 13
5. 設定顏色與字形 15
(1). 設定顏色 15
(2). 設定字形 16
(3). 範例練習:exp9_4_1.java 17
6. 繪圖方法 20
(1). 常用的繪圖方法 20
(2). 範例練習:exp9_5_1.java 23
(3). Point類別 25
(4). 範例練習:exp9_5_2.java 26
(5). 重繪方法repaint() 28
(6). 範例練習:exp9_5_3.java 28
7. 影像處理 31
(1). 在畫布顯示影像 31
(2). 範例練習:exp9_6_1.java 32
(3). 影像變形 34
(4). 範例練習:exp9_6_2.java 35
8. 設定物件的邊框 39
(1). 線條邊框 39
(2). 立體邊框 39
(3). 範例練習:exp9_7_1.java 40
9. JPanel容器類別的使用 43
(1). 範例練習:exp9_8_1.java 43
10. 實例:exp9_9_1.java 47
前言
螢幕上的顯示畫面是由很多像素(Pixel)所組成,利用這些像素的明暗度與色彩的配合,可以構成變化多端的文字、圖形與影像。Java.awt套件內Graphics類別可用來繪製圖形和顯示文字,Image類別可用來進行影像的處理。若要在螢幕上繪製文字,還可以指定字型、樣式、大小…等格式來呈現文字的外貌。
在圖形使用介面(GUI)中的任何文字、圖形、影像,都是由一點一點的像素所組成,而這些五顏六色的像素必須有一塊畫板來顯示,也就是畫布,或者說是繪圖的環境。Java提供了JFrame(視窗)或JPanel(容器)…等元件當畫布,其中JFrame(視窗)在第7、8章與和讀者見過幾次面,而JPanel(容器)在本章及未來的章節也會時常和大家見面。
Graphics 類別
用Java的Graphics類別來產生的繪圖物件,可以在JFrame(視窗)上及JPanel(容器)上繪圖。這時候,需用到下面兩個套件
import java.awt.*;
import javax.swing.*;
進行繪圖時,會使用到paint()、getGraphics()、paintComponent()方法來取得Graphics類別的繪圖物件,以進行繪製文字、線段、矩形、橢圓、扇型、多邊形…等圖形。
本章我們先介紹畫布的使用,這期間會使用到Graphics類別的繪圖物件來繪製文字。其使用情形如下:
1. 行01:宣告Graphics類別的繪圖物件g。
2. 行02:在(x, y)座標處,顯示s字串。
以JFrame視窗為畫布
以JFrame(視窗)為畫布,整個視窗內部範圍皆屬繪圖區的範圍。
paint()方法
使用paint()方法取得Graphics物件,可在JFrame視窗上繪圖。在顯示視窗時,系統會自動呼叫paint()方法取得Graphics物件重新繪製圖形或文字。
範例練習:exp9_2_1.java
1. 行01:在Java中,凡是與繪圖有關的敘述,皆需套用java.awt.* 套件。
2. 行10~12:paint()方法,是當畫布需要重繪時會自動執行,如視窗的開啟或程式流程遇到repaint()敘述(參閱9.5.3節),皆會使畫布重繪。
3. 行10:使用paint()方法,必須傳遞一個Graphics類別物件的參數,本行的Graphics類別物件名稱定義為「g」。
4. 行11:g.drawString()方法可用來繪製文字。本行將 大家來學 Java2 ! 文字內容繪製在座標(50, 70)處。
JFrame視窗的座標系統
在JFrame視窗上繪圖的座標系統,以視窗JFrame外殼的左上角為座標原點(0, 0),而往右則X軸向正遞增;往下則Y軸向正遞增,以像素為單位。而用drawString()所繪製的文字,其出現的位置座標,是以字串第一個字的左下角相對於視窗原點的位置。如下圖所示:
真正可以顯示繪圖的區域是在視窗JFrame內
您可能关注的文档
最近下载
- 《客户服务与管理》教案 第5课 学会使用即时通信工具.pdf VIP
- 民爆信息系统网路服务平台.pptx VIP
- 《QCNPC41-2001-防喷器判废技术条件》.pdf VIP
- 《客户服务与管理》(李清文)718-1教案 第2课 熟悉客户服务人员的综合素质要求.docx VIP
- 《客户服务与管理》(李清文)718-1教案 第3课 学会使用电话服务工具.docx VIP
- 3《峨日朵雪峰之侧》同步练习(含答案)统编版高中语文必修上册.docx VIP
- 第2课 让美德照亮幸福人生.pptx VIP
- 《峨日朵雪峰之侧》同步练习 统编版高中语文必修上册.docx VIP
- 海马普力马PREEMA 1.8L、1.6升 电路图07-发动机和变速箱控制.pdf VIP
- 《客户服务与管理》教案 第1课 初识客户服务与管理.docx
文档评论(0)