JAVA學習AWT繪圖
package com.graphics; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; /** * 1:Graphics類是所有圖形上下文的抽象基類。 * * 2:Graphics2D繼承了Graphics類,實現了功能更加強大的繪圖操作的集合。 * 由於Graphics2D類是Graphics類的擴充套件,也是推薦使用的java繪圖類 * 所以本章主要介紹使用Graphics2D類實現JAVA繪圖 * * 3:Graphics類使用的不同的方法實現不同的繪製 * @author biexiansheng * */ public class DrawCircle extends JFrame{ private final int OVAL_WIDTH=80;//圓形的寬 private final int OVAL_HEIGHT=80;//圓形的高 public DrawCircle(){ super(); initialize();//呼叫初始化方法 } //初始化方法 private void initialize(){ this.setSize(300, 200);//設定窗體的大小 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設定窗體的關閉方式 setContentPane(new DrawPanel());//設定窗體皮膚為繪圖皮膚物件 this.setTitle("繪圖例項2");//設定窗體標題 } class DrawPanel extends JPanel{ public void paint(Graphics g){ super.paint(g); g.drawOval(10, 10, OVAL_WIDTH, OVAL_HEIGHT);//繪製第1個圓形 g.drawOval(80, 10, OVAL_WIDTH, OVAL_HEIGHT);//繪製第2個圓形 g.drawOval(150, 10, OVAL_WIDTH, OVAL_HEIGHT);//繪製第3個圓形 g.drawOval(50, 70, OVAL_WIDTH, OVAL_HEIGHT);//繪製第4個圓形 g.drawOval(120, 70, OVAL_WIDTH, OVAL_HEIGHT);//繪製第5個圓形 } } public static void main(String[] args) { // TODO Auto-generated method stub DrawCircle dc=new DrawCircle();//初始化物件且呼叫構造方法 dc.setVisible(true);//窗體視覺化 } }
案例執行結果如下
package com.graphics; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.geom.Ellipse2D; import java.awt.geom.Rectangle2D; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; /** * 1:Graphics2D是繼承Graphics類編寫的,它包含了Graphics類的繪圖方法並新增了更強的功能 * 是推薦使用的繪圖類, * Graphics2D可以分別使用不同的類表示不同的形狀,如Line2D,Rectangle2D等。 * * 2:要繪製指定形狀的圖形,需要先建立並初始化該圖型別的物件,這些圖形類必須是Shape介面 * 的實現類,然後使用Graphics2D類的draw()方法繪製該圖形物件或者使用fill()方法填充 * 該圖形物件 * 語法如下 * draw(Shape form)或者fill(Shape form) * 其中form指實現Shape介面的物件。 * @author biexiansheng * */ public class DrawFrame extends JFrame{ public DrawFrame(){ super(); initialize();//呼叫初始化方法 } //初始化方法 public void initialize(){ this.setSize(300, 200);//設定窗體大小 //設定窗體的關閉方式 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); add(new CanvasPanel());//設定窗體皮膚為繪圖皮膚物件 this.setTitle("繪圖例項2");//設定窗體標題 } //建立內部類 class CanvasPanel extends JPanel{ public void paint(Graphics g){ super.paint(g); Graphics2D g2=(Graphics2D)g;//強制型別轉換位Graphics2D型別 //Graphics2D是推薦使用的繪圖類,但是程式設計中提供的繪圖物件大多是 //Graphics類的例項,這時應該使用強制型別轉換將其轉換為Graphics Shape[] shapes=new Shape[4];//宣告圖形陣列 shapes[0]=new Ellipse2D.Double(5, 5, 100, 100);//建立圓形物件 //建立矩形物件 shapes[1]=new Rectangle2D.Double(110,5,100,100);// shapes[2]=new Rectangle2D.Double(15, 15, 80, 80);//建立矩形物件 shapes[3]=new Ellipse2D.Double(120, 15, 80, 80);//建立圓形物件 for(Shape shape:shapes){//遍歷圖型陣列 Rectangle2D bounds=shape.getBounds2D(); if(bounds.getWidth()==80){ g2.fill(shape);//填充圖形 }else{ g2.draw(shape);//繪製圖形 } } } } public static void main(String[] args) { // TODO Auto-generated method stub DrawFrame df=new DrawFrame(); df.setVisible(true); } }
案例執行結果如下,
可以設定顏色,或可以直接使用g2.setColor(Color.RED);
相關文章
- Java學習之AWT GUI程式設計JavaGUI程式設計
- 學習筆記之JAVA圖形設計卷I AWT——第3章 圖 形 (轉)筆記Java
- Java AWTJava
- opencv學習(三)——繪圖功能OpenCV繪圖
- 10/15AWT元件學習(1)元件
- Flutter Canvas學習之繪圖篇FlutterCanvas繪圖
- canvas繪製圖片drawImage學習Canvas
- 學習筆記之JAVA圖形設計卷I AWT——第一章緒論 (轉)筆記Java
- awt&swing 學習筆記(3)筆記
- awt&swing 學習筆記(2)筆記
- 新手如何學習Java——Java學習路線圖Java
- Java學習圖譜Java
- java:繪製圖形Java
- java.awt.headless 模式Java模式
- Java 學習路線圖Java
- JAVA SWING/AWT/SWT DEVELOPER WANTEDJavaDeveloper
- 使用java繪圖類Graphics繪製圓圈Java繪圖
- java知識點學習圖Java
- Java學習路線圖應該怎麼學習?Java
- 深度學習量化交易---0.1.股票K線圖繪製深度學習
- Java GUI入門手冊-AWT篇JavaGUI
- servlet awt隨機圖片驗證碼Servlet隨機
- (資料科學學習手札130)利用geopandas快捷繪製線上地圖資料科學地圖
- java-GUI程式設計之AWT元件JavaGUI程式設計元件
- java,awt,中文方框,中文亂碼10/16Java
- 化學繪圖軟體ChemDraw,繪製簡單的化學元素繪圖
- python matplot繪圖工具練習Python繪圖
- 圖靈書單:Java學習路線☕️圖靈Java
- 【java學習】GUI 圖形程式設計JavaGUI程式設計
- Java新手入門學習路線圖Java
- HTML5學習手筆二:canvasAPI繪製樹形圖案AHTMLCanvasAPI
- java學習之道 --- 如何學習java?Java
- (資料科學學習手札133)利用geopandas繪製拓撲著色地圖資料科學地圖
- Java學習課件框架,12月最新Java學習路線圖(完整詳細版)Java框架
- MeteoInfo-Java解析與繪圖教程(一)Java繪圖
- MeteoInfo-Java解析與繪圖教程(三)Java繪圖
- MeteoInfo-Java解析與繪圖教程(五)Java繪圖
- MATLAB圖形繪製練習(一)Matlab