import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
public class MyDrawString extends JFrame {
/**
* 这里this当做观察类存在,当g的图片发生更改时调用this的imageUpdate()方法
*/
Image img = null;
Graphics g = null;
final int width = 400;
final int height = 300;
public static void main(String[] args) {
MyDrawString mds = new MyDrawString();
mds.draw();
}
/**
*
*/
public MyDrawString() {
setSize(width, height);
setVisible(true);
draw();
}
void draw() {
// 创建画布,设置画布的宽高及类型
img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 创建绘图的基类(创建绘图的笔)
g = img.getGraphics();
// 设置画笔颜色为白色
g.setColor(Color.white);
// 填充整个画布,等于将背景色设置为白色
g.fillRect(0, 0, width, height);
// 画图片
Graphics2D g2d = (Graphics2D) g.create();
// 从本地读取一张图片
String filepath = "abcd/demo.jpg";
Image image = Toolkit.getDefaultToolkit().getImage(filepath);
// 绘制图片(如果宽高传的不是图片原本的宽高, 则图片将会适当缩放绘制)
g2d.drawImage(image, 50, 50, image.getWidth(this), image.getHeight(this), this);
g2d.dispose();
// 修改画笔颜色
g.setColor(Color.RED);
// 画文字
g.drawString("myString", 200, 200);
// 画框
g.drawRect(20, 50, width / 2, height / 2);
// 画圆弧
g.drawArc(100, 100, 100, 100, 0, -180);
// 画线
g.drawLine(100, 100, 200, 200);
}
/**
* 此写法为套路写法
*/
@Override
public void paint(Graphics g) {
if (img != null) {
g.drawImage(img, 0, 0, this);
}
}
}
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
public class MyDrawString extends JFrame {
/**
* @author 张永志 1279938986@qq.com
*自己将java画图分两种模式 1、直接在paint(Graphics g)方法中绘制 2、在paint(Graphics
* g)方法中调用g.drawImage(image, 0, 0, this)语句* 这里this当做观察类存在,当g的图片发生更改时调用this的imageUpdate()方法
*/
Image img = null;
Graphics g = null;
final int width = 400;
final int height = 300;
public static void main(String[] args) {
MyDrawString mds = new MyDrawString();
mds.draw();
}
/**
*
*/
public MyDrawString() {
setSize(width, height);
setVisible(true);
draw();
}
void draw() {
// 创建画布,设置画布的宽高及类型
img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 创建绘图的基类(创建绘图的笔)
g = img.getGraphics();
// 设置画笔颜色为白色
g.setColor(Color.white);
// 填充整个画布,等于将背景色设置为白色
g.fillRect(0, 0, width, height);
// 画图片
Graphics2D g2d = (Graphics2D) g.create();
// 从本地读取一张图片
String filepath = "abcd/demo.jpg";
Image image = Toolkit.getDefaultToolkit().getImage(filepath);
// 绘制图片(如果宽高传的不是图片原本的宽高, 则图片将会适当缩放绘制)
g2d.drawImage(image, 50, 50, image.getWidth(this), image.getHeight(this), this);
g2d.dispose();
// 修改画笔颜色
g.setColor(Color.RED);
// 画文字
g.drawString("myString", 200, 200);
// 画框
g.drawRect(20, 50, width / 2, height / 2);
// 画圆弧
g.drawArc(100, 100, 100, 100, 0, -180);
// 画线
g.drawLine(100, 100, 200, 200);
}
/**
* 此写法为套路写法
*/
@Override
public void paint(Graphics g) {
if (img != null) {
g.drawImage(img, 0, 0, this);
}
}
}