java cansvas 画虚线要怎么设置?

 我来答
金刚钻Johnny
推荐于2018-03-14 · TA获得超过356个赞
知道小有建树答主
回答量:314
采纳率:100%
帮助的人:56.7万
展开全部

java cansvas 画虚线通过Graphics2D setStroke(BasicStroke) 设置笔画虚线模式。

BasicStroke是JDK中提供的一个基本的画笔类,我们对他设置画笔的粗细,就可以在drawPanel上任意画出自己想要的图形了。其中这个构造函数就是用来创建虚线的:

public BasicStroke(float width,   int cap,  int join, float miterlimit, float[] dash,  float dash_phase);

 构造方法参数说明:

1  width这个参数最容易理解,表示线条的宽度

2  cap只能取三个值:CAP_BUTT, CAP_ROUND or CAP_SQUARE,表示不同的线端。

3  join这个参数表示当两条线连接时,连接处的形状,可以取JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER三个值。

 


4  miterlimit当你使用JOIN_MITER这种策略来表示连接处形状的时候,由于两根线的连接角度可能很小,那么,就会导致延伸出来的那个角特别长!本参数用来限制那个尖角的最大长度!当你使用JOIN_MITER策略的时候,本参数必须大于1,本参数的默认值是10.0f 。

5  dash[]画虚线的时候,使用这个参数,虚线是由:“线+缺口+线+缺口+线+缺口……”来组成的。所以本参数就是定义的这些线、缺口的长度:{线的长度,缺口的长度,线的长度,缺口的长度……}

6  dash_phase最后一个参数是跟dash[]这个数组配合的参数,表示在画虚线的时候,从一定的偏移量处开始画。

下面这个图,统一说明了dash[]和dash_phase的意思:

Stroke dash = new BasicStroke(2.5f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND,
3.5f,new float[]{15,10,},0f);

hitzsf
推荐于2016-06-23 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1164万
展开全部
Graphics2D setStroke() 设置笔画样式
BasicStroke 有虚线模式
追问
能说下具体用法吧,谢谢
追答
import java.awt.*;
import java.awt.geom.Line2D;
import javax.swing.*;

public class DashedModelFrame extends JFrame {
public static void main(String args[]) {
DashedModelFrame frame = new DashedModelFrame();
frame.setVisible(true);
}

public DashedModelFrame() {
super();
setTitle("设置虚线模式");
setBounds(100, 100, 326, 220);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new DashedModelPanel());
}

class DashedModelPanel extends JPanel {
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
float[] arr = {4.0f,2.0f};
// float[] arr = {5.0f,3.0f,2.0f,3.0f}; //另一种虚线模型
BasicStroke stroke = new BasicStroke(1,
BasicStroke.CAP_BUTT,
BasicStroke.JOIN_BEVEL,
1.0f,arr,0);
g2.setStroke(stroke);
Line2D.Float line = new Line2D.Float(20,50,300,50);
g2.draw(line);
}
}
}

发个例子,你看了就明白了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式