设置颜色与画笔

  • 设置画笔 默认情况下,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)

大家都在看

  • maven配置本地仓库

    https://www.cnblogs.com/javajetty/p/10051156.html maven配置本地仓库 Original: https://www.cnblog…

    数据库 2023年6月9日
    0114
  • Spring Boot之WebSocket

    1、项目地址:https://github.com/hqzmss/test01-springboot-websocket.git 2、IDE:IntelliJ IDEA 2018….

    数据库 2023年6月9日
    0127
  • Activiti7 多实例子流程

    顾名思义,子流程是一个包含其他活动、网关、事件等的活动,这些活动本身形成了一个流程,该流程是更大流程的一部分。 使用子流程确实有一些限制: 一个子流程只能有一个none类型的启动事…

    数据库 2023年6月14日
    0179
  • 新买的百度云服务器随便玩玩之部署简单页面

    新买的百度云服务器随便玩玩之部署简单页面 1.vscode 连接百度云服务器 vscode下载拓展 2.在远程资源管理器中添加新的远程资源管理 3.输入云服务器公网ip地址;输入密…

    数据库 2023年6月16日
    0146
  • MySQL中的触发器

    1.定义: 触发器和存储过程相似,都是嵌入到 MySQL 中的一段程序。触发器是由事件来触发某个操作。当数据库执行这些事件时,就会激活触发器来执行相应的操作。这些事件称为触发条件,…

    数据库 2023年6月16日
    0155
  • Java8 Stream

    什么是Stream Java8 API添加了一个新的抽象称为流Stream,可以以一种声明的方式处理数据,给我们操作集合(Collection)提供了极大的便利。Stream将要处…

    数据库 2023年6月6日
    0123
  • 线程池系列一:线程池原来是个外包公司,打工人我悟了

    我们在工作中经常用到线程池,线程池(Thread Pool)是一种基于池化思想管理线程的工具。 线程的作用是处理任务,而池则是帮助我们实现资源的重复利用和管理。线程池就是帮助我们异…

    数据库 2023年6月6日
    0127
  • day03-2无异常退出

    多用户即时通讯系统03 4.编码实现02 4.3功能实现-无异常退出系统 4.3.1思路分析 上述代码运行时,在客户端选择退出系统的时候,可以发现程序并没有停止运行,原因是: 退出…

    数据库 2023年6月11日
    0116
  • Redis 生产架构选型对比,一文整治选择困难症

    前言 在写开源项目的时候,想到了要支持多种redis部署方式,于是对于这块的生产环境的架构选型展开调研。 一、引擎版本 推荐使用更新的引擎版本以支持更多的特性, Redis 6.0…

    数据库 2023年6月14日
    0126
  • mysql关于权限

    use db; select user(),database();— 建立账号 create user user1; create user user2@’192,16…

    数据库 2023年6月9日
    0110
  • Java韩顺平

    慢慢更新 什么是程序 程序是有序指令的集合 CMD编译执行Java文件 编译:javac 文件名.java执行:java 文件名 文件夹地址栏 输入 CMD 弹出本文件夹命令行 J…

    数据库 2023年6月11日
    092
  • 排查线上问题的9种方式

    德国科技管理专家斯坦门茨早年移居美国,他以非凡的才能成为美国企业界的佼佼者。一次,美国著名的福特公司的一组电机发生故障,在束手无策之时,公司请斯坦门茨出马解决问题。 斯坦门茨在电机…

    数据库 2023年6月6日
    0122
  • mysql常用操作汇总

    工作中经常用会遇到这种情况,可以访问mysql所在的服务器,但是服务器端口不对外暴露(通常因为安全原因)。这时,操作数据库只能通过命令行和 mysql client窗口来实现。我对…

    数据库 2023年6月14日
    0127
  • pg数据库匹配正则

    select ‘41142619960609331x’ ~ ‘^[1-9]\d{5}\d{4}((0[1-9])|(10|11|12))(([0…

    数据库 2023年6月16日
    0139
  • 使用MySQL Shell创建MGR

    本篇知识点: 配置MGR所需的参数 使用MySQL Shell配置MGR shell.connect() var 设定临时变量 dba.createCluster() dba.ge…

    数据库 2023年6月16日
    0154
  • ZooKeeper集群部署

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    0138
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球