java GUI编程(swing)之八swing绘图

时间:2023-01-27 13:14:04
Graphics 类可以理解为画笔。它是java为我们提供的一个绘图类。
使用它可以画:
直线 drawLine(int x1, int y1, int x2, int y2)
矩形 drawRect(int x, int y, int width, int height)
圆形 drawOval(int x, int y, int width,int height)
填充矩形 fillRect(int x,int y, int width, int height)
填充圆形 fillOval(int x,int y, int width, int height)
图片 drawImage( Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int s ImageObserver observer)
字符串 drawString( AttributedCharacterIterator iterator, int x, int y)
设置画笔颜色setColor( Color c)
设置字体setFont( Font font)
等 功能
绘图一般是在JPanel上进行
 
例如我们画一个圆,一个矩形
package draws;
import javax.swing.*;
import java.awt.*;
/**
* swing 绘图技术
* Created by admin on 2017/7/19.
*/
public class Draw1 extends JFrame{
MyPanel myPanel;
public static void main(String[] args){
Draw1 draw1 = new Draw1();
}
public Draw1(){
myPanel = new MyPanel();
this.add(myPanel);
 
this.setTitle("记事本");
this.setResizable(false);
this.setLocation(500, 250);
this.setSize(350, 230);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
// 用于绘图和显示绘图的一个区域
// 继承了父类JPanel
class MyPanel extends JPanel{
// JPanel 里面有一个方法(paint)继承了之后需要重写
// Graphics是一个画笔 是绘图类的一个重要类
// 这个方法不需要显式的去调用,运行时候系统会自动调用
// 以下情况也会调用paint
// 最大化和最小化窗口时
// 改变窗体大小时
// repaint()方法被调用时
public void paint(Graphics graphics){
// 1.调用父类完成初始化任务
super.paint(graphics);
// 简单的画一个圆圈 使用该方法drawOval 参数为 x 坐标 y 坐标 宽度 高度 单位都是像素
// x 坐标和 y 坐标 为距离我们GUI界面左上角的位置的像素
graphics.drawOval(10, 10, 30, 30);
graphics.draw3DRect(50, 50, 50, 50, true);
}
}