日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java paint 怎么用_java如何使用paint方法画图

發(fā)布時間:2024/10/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java paint 怎么用_java如何使用paint方法画图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

詳細(xì)內(nèi)容

本篇文章的主要內(nèi)容是關(guān)于在Java里用paint方法畫圖,具有一定參考價(jià)值,感興趣的朋友可以了解一下,希望能對你有所幫助。

java使用paint方法畫圖

需要繼承JFrame類來畫窗口 => public class Game extends JFrame {}

setTitle(String s); //設(shè)置窗口標(biāo)題

setLocation(int x, int y); //設(shè)置窗口位置

setSize(int width, int height); //設(shè)置窗口寬和高

setVisible(true); //設(shè)置窗口可見,默認(rèn)為flase,這個方法放在setLocation()和setSize后面較好,我放在前面窗口為黑色,本來默認(rèn)為白色的

paint方法畫圖

定義后自動調(diào)用public class paint(Graphics g) {

Color c = g.getColor(); //記錄原來的顏色

Font f = g.getFont(); //記錄原來的字體

g.setColor(Color.BLACK); //設(shè)置畫線的顏色

g.drawLine(int x1, int y1, int x2, int y2); //兩點(diǎn)畫直線

g.drawRect(int x, int y, int width, int height); //左上角頂點(diǎn)加寬高畫矩形

g.fillRect(int x, int y, int width, int height); //畫填充矩形

g.setFont(new Font("楷體", Font.BOLD, 40)); //設(shè)置字體為楷體,粗體,大小為40

g.drawString(str, int x, int y); //畫出str字符串

g.setColor(c); //變回原來的顏色

g.setFont(f); //變回原來的字體}

GameUtil工具類導(dǎo)入圖片import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.net.URL;

import javax.imageio.ImageIO;

public class GameUtil {

// 工具類最好將構(gòu)造器私有化。

private GameUtil() {

}

public static Image getImage(String path) {

BufferedImage bi = null;

try {

URL u = GameUtil.class.getClassLoader().getResource(path);

bi = ImageIO.read(u);

} catch (IOException e) {

e.printStackTrace();

}

return bi;

}}

在Game類里面調(diào)用GameUtil

Image imag = GameUtil.getImage(“images/picture.png”); //我建立的一個images包,用來存儲圖片,引號里面為圖片的路徑

g.drawImage(imag, x, y, width, height, null); //imag圖片,位置,寬高,觀察者import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Image;

import javax.swing.JFrame;

public class MyGame extends JFrame{

Image imag = GameUtil.getImage("images/text1.png"); //指定圖片

@Override

public void paint(Graphics g) {

Color c = g.getColor();

Font f = g.getFont();

g.setColor(Color.BLUE); //設(shè)置線體顏色

g.drawLine(100, 100, 650, 100); //直線

g.drawRect(50, 150, 200, 200); //空心矩形

g.fillRect(550, 150, 200, 200); //實(shí)體矩形

g.drawOval(300, 150, 200, 200); //圓形

g.setFont(new Font("楷體", Font.BOLD, 90)); //設(shè)置字體

g.drawString("How are you?", 100, 100); //寫字

g.drawImage(imag, 250, 400, 300, 300, null); //插入圖片

g.setColor(c); //線條顏色變?yōu)樵瓉淼臉幼?/p>

g.setFont(f); //字體變?yōu)樵瓉淼臉幼?/p>

}

public void launchJFrame() {

this.setTitle("我的游戲"); //設(shè)置窗口標(biāo)題

this.setSize(800, 800); //設(shè)置窗口大小

this.setLocation(100, 100); //設(shè)置窗口位置

this.setVisible(true); //設(shè)置窗口可見

/*this.addWindowListener(new WindowAdapter() { //叉掉窗口后,結(jié)束窗口所在的應(yīng)用程序

@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}); */

this.setDefaultCloseOperation(EXIT_ON_CLOSE); //叉掉窗口后,結(jié)束窗口所在的應(yīng)用程序

}

public static void main(String args[]) {

MyGame game = new MyGame();

game.launchJFrame();

}}

設(shè)置圖片的大小

public Image getScaledInstance(int width, int height, int hints) ?//hints - 指示用于圖像重新取樣的算法類型的標(biāo)志(這句話不知道是什么意思,照著下面的寫就對了)Image img = GameUtil.getImage("images/text1.jpg");img = img.getScaledInstance(width, height, Image.SCALE_DEFAULT);

如果是要獲取圖片的大小,直接使用getWidth()和getHeight()方法就可以了width = img.getWidth();height = img.getheight();

雙緩沖技術(shù)解決閃爍

原理大概是:先將所需要畫的東西加載到緩沖區(qū),然后將緩沖區(qū)中的內(nèi)容全部畫到屏幕上,這樣就可以避免因?yàn)槠聊患虞d的東西太多導(dǎo)致屏幕瘋狂閃爍public void paint(Graphics g){

BufferedImage imag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //構(gòu)建緩沖區(qū)

Graphics g2 = imag.creatGraphics(); //新建一支畫筆,使用這支畫筆來將內(nèi)容畫到緩沖區(qū)中

g2.drawRect(...); //括號里面的參數(shù)就不寫了,此處用來說明一些畫圖操作

g2.drawImag(...);

g2.fillOval(...);

g.drawImage(imag, x, y, width, height, null); //將內(nèi)容畫到屏幕上}

相關(guān)教程:Java視頻教程

總結(jié)

以上是生活随笔為你收集整理的java paint 怎么用_java如何使用paint方法画图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。