> Java > java지도 시간 > 본문

java에서 페인트 메소드를 사용하여 그림을 그리는 방법

little bottle
풀어 주다: 2019-04-28 15:09:05
앞으로
5376명이 탐색했습니다.

이 글의 주요 내용은 Java에서 그림을 그리는 페인트 방법에 관한 것입니다. 관심 있는 친구들이 더 많은 것을 배울 수 있으니, 그것이 당신에게 도움이 되기를 바랍니다.

java는 그림을 그리기 위해 페인트 메소드를 사용합니다

창을 그리려면 JFrame 클래스를 상속해야 합니다=> {}
setTitle(String s); //창 제목 설정
setLocation(int x, int y); //창 위치 설정
setSize(int 너비, int 높이); //창 너비와 높이 설정# 🎜🎜#setVisible(true); //창이 보이도록 설정합니다. 기본값은 flase입니다. 이 메서드는 setLocation() 및 setSize 뒤에 배치하는 것이 더 좋습니다. 창은 검은색으로, 기본값은 흰색입니다
#🎜 🎜#

페인트 메서드 그리기정의 후 자동으로 호출됨

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") ; //그림을 저장하기 위해 이미지 패키지를 만들었습니다. 인용문은 이미지의 경로입니다. g.drawImage(imag, x, y, width, height, null) //imag image, position, width and 높이, 관찰자

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 너비, int 높이, int 힌트 ) //힌트 - 이미지 리샘플링에 사용되는 알고리즘 유형을 나타내는 플래그(이 문장이 무슨 뜻인지는 모르겠지만 그냥 아래와 같이 작성하세요)

Image img = GameUtil.getImage("images/text1.jpg");img = img.getScaledInstance(width, height, Image.SCALE_DEFAULT);
로그인 후 복사
크기를 구하고 싶다면 그림에서는 getWidth() 및 getHeight() 메서드를 사용하세요.# 🎜🎜#
width = img.getWidth();height = img.getheight();
로그인 후 복사

깜박임을 해결하는 이중 버퍼링 기술

원칙 아마도: 먼저 버퍼에 그려야 하는 것을 로드한 다음 버퍼에 있는 모든 내용을 화면에 그려서 화면에 너무 많은 항목이 로드되어 화면이 심하게 깜박이는 것을 방지하세요.


위 내용은 java에서 페인트 메소드를 사용하여 그림을 그리는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿