设置颜色与画笔

  • 设置画笔 默认情况下,Graphics绘图类 使用的画笔属性是粗细为I个像素的正方形,而Graphics2D类可以调用 setStroke()方法 设置画笔的属性,如改变线条的粗细、虚实和定义线段端点的形状、风格等。setStroke()方法 语法:
setStroke(stroke stroke);
// stroke:是Stroke接口的实现类

setStroke()方法 必须接受一个 Stroke接口 的实现类作参数, java.awt包中提供了BasicStroke类,它实现了Stroke接口,并且通过不同的构造方法创建画笔属性不同的对象。BasicStroke类 的构造方法:

BasicStroke();
BasicStroke(float width); //设置画笔宽度
BasicStroke(float width , int cap , int join); //设置画笔宽度、末端效果、交汇效果
BasicStroke(float width , int cap , int join , float miterlimit); //设置画笔宽度、末端效果、交汇效果、斜切处的剪裁限制
BasicStroke(float width , int cap , int join , float miterlimit , float[] dash , float dash_phase); //设置画笔宽度、末端效果、交汇效果、斜切处的剪裁限制、虚线模式的数组、虚线模式的偏移量
/*
    cap参数的三个常量:
        圆角:BasicStroke.CAP_ROUND
        无修饰:BasicStroke.CAP_BUTT
        正方形:BasicStroke.CAP_SQUARE

    join参数的三个常量:
         平角:BasicStroke.JOIN_BEVEL
         尖角:BasicStroke.JOIN_MITER
         圆角:BasicStroke.JOIN_ROUND
*/

设置画笔 实例:

import javax.swing.*;
import java.awt.*;

public class Demo2 extends JFrame {
    public Demo2(){
        super();
        init();
    }

    public void init(){
        this.setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        add(new MyCanvas());
    }

    public static void main(String[] arge){
        new Demo2().setVisible(true);
    }

    class MyCanvas extends Canvas {
        public void paint(Graphics g){
            Graphics2D g2 = (Graphics2D) g;

            // 直线
            Stroke stroke = new BasicStroke(8); //设置画笔宽度
            g2.setStroke(stroke); //加载画笔
            g2.drawLine(20, 30, 120, 30);

            // 多边线
            int x[] = {150,200,180};
            int y[] = {30,30,80};
            /*
                末端效果:
                圆角:BasicStroke.CAP_ROUND
                无修饰:BasicStroke.CAP_BUTT
                正方形:BasicStroke.CAP_SQUARE

                角的交汇效果:
                平角:BasicStroke.JOIN_BEVEL
                尖角:BasicStroke.JOIN_MITER
                圆角:BasicStroke.JOIN_ROUND
             */
            Stroke stroke1 = new BasicStroke(12,BasicStroke.CAP_SQUARE,BasicStroke.JOIN_ROUND); //设置画笔宽度、末端效果、角的交汇效果
            g2.setStroke(stroke1); //加载画笔
            g2.drawPolyline(x,y,3);
        }
    }
}

设置画笔 实例输出结果:

Original: https://www.cnblogs.com/TeaTracing/p/16320700.html
Author: TeaTracing
Title: 设置颜色与画笔

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622455/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球