本篇文章的主要内容是关于在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视频教程
以上就是java怎样运用paint要领绘图的细致内容,更多请关注ki4网别的相干文章!