91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java使用paint方法畫圖的方法

發布時間:2020-08-24 12:06:15 來源:億速云 閱讀:349 作者:小新 欄目:編程語言

小編給大家分享一下java使用paint方法畫圖的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

java使用paint方法畫圖

需要繼承JFrame類來畫窗口 => public class Game extends JFrame {}
setTitle(String s);   //設置窗口標題
setLocation(int x, int y); //設置窗口位置
setSize(int width, int height);   //設置窗口寬和高
setVisible(true);   //設置窗口可見,默認為flase,這個方法放在setLocation()和setSize后面較好,我放在前面窗口為黑色,本來默認為白色的

paint方法畫圖
定義后自動調用

public class paint(Graphics g) {
        Color c = g.getColor();   //記錄原來的顏色
        Font f = g.getFont();     //記錄原來的字體
        g.setColor(Color.BLACK);  //設置畫線的顏色
        g.drawLine(int x1, int y1, int x2, int y2); //兩點畫直線
        g.drawRect(int x, int y, int width, int height);  //左上角頂點加寬高畫矩形
        g.fillRect(int x, int y, int width, int height);  //畫填充矩形
        g.setFont(new Font("楷體", Font.BOLD, 40));   //設置字體為楷體,粗體,大小為40
        g.drawString(str, int x, int y);  //畫出str字符串
        g.setColor(c);  //變回原來的顏色
        g.setFont(f);   //變回原來的字體}

GameUtil工具類導入圖片

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class GameUtil {
    // 工具類最好將構造器私有化。
    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類里面調用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);             //設置線體顏色
                g.drawLine(100, 100, 650, 100);     //直線
                g.drawRect(50, 150, 200, 200);      //空心矩形
                g.fillRect(550, 150, 200, 200);      //實體矩形
                g.drawOval(300, 150, 200, 200);      //圓形
                g.setFont(new Font("楷體", Font.BOLD, 90));   //設置字體
                g.drawString("How are you?", 100, 100);      //寫字
                g.drawImage(imag, 250, 400, 300, 300, null);   //插入圖片
                g.setColor(c);     //線條顏色變為原來的樣子
                g.setFont(f);      //字體變為原來的樣子
        }
        public void launchJFrame() {
                this.setTitle("我的游戲");       //設置窗口標題
                this.setSize(800, 800);        //設置窗口大小
                this.setLocation(100, 100);    //設置窗口位置
                this.setVisible(true);         //設置窗口可見
                /*this.addWindowListener(new WindowAdapter() {    //叉掉窗口后,結束窗口所在的應用程序
                        @Override
                        public void windowClosing(WindowEvent e) {
                                System.exit(0);
                        }
                });     */
                this.setDefaultCloseOperation(EXIT_ON_CLOSE);   //叉掉窗口后,結束窗口所在的應用程序

        }
        public static void main(String args[]) {
                        MyGame game = new MyGame();
                        game.launchJFrame();
                }}

設置圖片的大小
public Image getScaledInstance(int width, int height, int hints) ?//hints - 指示用于圖像重新取樣的算法類型的標志(這句話不知道是什么意思,照著下面的寫就對了)

Image img = GameUtil.getImage("images/text1.jpg");img = img.getScaledInstance(width, height, Image.SCALE_DEFAULT);

如果是要獲取圖片的大小,直接使用getWidth()和getHeight()方法就可以了

width = img.getWidth();height = img.getheight();

雙緩沖技術解決閃爍
原理大概是:先將所需要畫的東西加載到緩沖區,然后將緩沖區中的內容全部畫到屏幕上,這樣就可以避免因為屏幕加載的東西太多導致屏幕瘋狂閃爍

public void paint(Graphics g){
        BufferedImage imag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   //構建緩沖區
        Graphics g2 = imag.creatGraphics();   //新建一支畫筆,使用這支畫筆來將內容畫到緩沖區中
        g2.drawRect(...);    //括號里面的參數就不寫了,此處用來說明一些畫圖操作
        g2.drawImag(...);
        g2.fillOval(...);
        g.drawImage(imag, x, y, width, height, null);   //將內容畫到屏幕上}

看完了這篇文章,相信你對java使用paint方法畫圖的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鹰潭市| 双辽市| 湖北省| 车险| 彩票| 巴楚县| 南和县| 资讯| 白玉县| 崇州市| 武宣县| 杭州市| 镇沅| 麻栗坡县| 建平县| 大城县| 乐业县| 喀喇沁旗| 缙云县| 渝北区| 沈阳市| 佛冈县| 永宁县| 沂南县| 江口县| 辽阳县| 娱乐| 玉屏| 宜春市| 兴海县| 丽江市| 油尖旺区| 洛宁县| 海南省| 永济市| 邮箱| 易门县| 云浮市| 汝州市| 武夷山市| 博野县|