Java-绘图相关技术
生活随笔
收集整理的這篇文章主要介紹了
Java-绘图相关技术
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//學(xué)了太多的基礎(chǔ),感覺一直沒太大的進(jìn)步,因此,我決定增加以下學(xué)習(xí)的難度,以此來增加自己的學(xué)習(xí)興趣;
/*** Java 繪圖相關(guān)技術(shù)的學(xué)習(xí)*Graphics類相關(guān)技術(shù)知識:* 1.Graphics類是所有圖像繪圖的基類,是一個(gè)抽象類;* 2.Graphic2D繼承Graphics類,對Graphics類進(jìn)行了擴(kuò)展。* 3.我們?nèi)绻枰獎?chuàng)建一個(gè)繪圖類,推薦使用Graphics2D,該類分別使用不同的類來表示圖形;* 1.對于該類圖形,我們使用GraphicsD類的draw()方法繪制,使用fill()進(jìn)行填充;* 2.在java.awt.geom包中,實(shí)現(xiàn)了Shape接口的圖形類可以上述兩個(gè)方法。例如Line2D;** 3.在各類圖形類中,我們使用Double和Float這兩個(gè)實(shí)現(xiàn)類進(jìn)行圖形的不同精度構(gòu)造,不同的精度需要的內(nèi)存也不同。** 相關(guān)繪圖知識介紹* 1.顏色類Color* 1.可以創(chuàng)建任何顏色,與平臺無關(guān);* 2.Color(int r,int g,int b)或者Color(int rgb);* 3.該類還定義了許多靜態(tài)顏色常量,可以通過Color.RED訪問;* 4.設(shè)置顏色setColor()* * 2.畫筆* 1.在GraphicsD類可以通過setStroke(Strock strock)方法設(shè)置畫筆的屬性,包括線條的粗細(xì),虛實(shí)和線段端點(diǎn)的樣式。* 2.Strock接口作為參數(shù)* * 3.文本* 1.Font(String name ,int style,int size);字體名字,類型和大小* 2.SetFont(Font font);* 3.drawString(String str,int x,int y):通過Graphics2D類中的方法來繪制顯示字體;* * * 4.圖像繪制* 1.獲取圖片資源路徑getResource();* 2.獲取圖片getImage();* 3.drawImage()繪制顯示圖片* * 4.jSlider.getValue():可通過滑動組件來控制圖片的縮放比例* * * */
package app;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import java.net.*;//包含有main函數(shù)的類的類名和文件名必須保持一致
public class ImageShape extends JFrame
{/****/private static final long serialVersionUID = 1L;private final int width = 700;private final int height = 700;private Image img;private Shape Rect;private Font font;public ImageShape(){super();init();}private void init(){this.setSize(width, height);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置窗體面板為繪圖面板對象this.setContentPane(new Canvas());this.setTitle("繪圖");}public static void main(String[] args){new ImageShape().setVisible(true);}class Canvas extends JPanel{/****/private static final long serialVersionUID = 1678373920467727747L;public void paint(Graphics g){super.paint(g);//Graphics用法g.setColor(new Color(255, 0, 0));g.fill3DRect(100, 100, 200, 200, true);g.setColor(Color.GRAY);g.fillRect(350, 100, 200, 200);//Graphics2D的用法Graphics2D g1 = (Graphics2D) g;g1.setColor(new Color(0,255,0));Shape[] shape = new Shape[2];shape[0] = new Ellipse2D.Double(100, 350, 200, 250);shape[1] = new Rectangle2D.Double(150, 400, 100, 100);g1.draw(shape[0]);g.setColor(new Color(0,0,255));g1.fill(shape[1]);//相關(guān)用法Graphics2D g2 = (Graphics2D) g;g2.setColor(Color.BLACK);g2.setFont(new Font("宋體", Font.BOLD, 15));g2.drawString("Java 繪圖學(xué)習(xí).", 400, 400);//圖片繪制URL url = ImageShape.class.getResource("lena.jpg");img = Toolkit.getDefaultToolkit().getImage(url);Graphics2D g3 = (Graphics2D) g;/* g3.drawImage(img, 0, 0, this);*///圖片的縮放int w = img.getWidth(this) * 30 / 100;int h = img.getHeight(this) * 30 / 100;g3.drawImage(img, 400,450,w,h,this);}}
}
? ? ? ? ? ? ? ? ? ? ?
總結(jié)
以上是生活随笔為你收集整理的Java-绘图相关技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux的基础知识——捕捉SIGCHL
- 下一篇: 计算机网络——因特网的接入技术