java能画虚线吗

我现在要画个虚线,有没有这个方法??....知道有就给我说一下嘛,真是的!!... 我现在要画个虚线,有没有这个方法??
....
知道有就给我说一下嘛,真是的!!
展开
 我来答
小傻

推荐于2016-01-31 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

java swing中是可以绘制虚线的,主要是使用paint画笔工具绘制,如下代码:

package com.qiu.lin.he;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Stroke;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Ceshi {
public static void main(String[] args) {
JPanel p = new JPanel() {
//使用画笔绘制虚线
public void paint(Graphics gr) {
Graphics2D g = (Graphics2D) gr;
g.setBackground(Color.black);
g.clearRect(0, 0, getWidth(), getHeight());
Stroke dash = new BasicStroke(2.5f, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_ROUND, 3.5f, new float[] { 15, 10, },
0f);
g.setStroke(dash);
g.setColor(Color.yellow);
g.drawRect(20, 20, getWidth() - 40, getHeight() - 40);
g.dispose();
}
};
//新建一个窗口
JFrame f = new JFrame("Dash Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(p);
p.setPreferredSize(new Dimension(400, 300));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}

运行结果如下:

岑行柏3204
推荐于2016-06-22 · TA获得超过2435个赞
知道大有可为答主
回答量:1549
采纳率:0%
帮助的人:1333万
展开全部
如何还没解决,请参考:http://java.sun.com/javase/6/docs/api/java/awt/BasicStroke.html
这是一个笔触类,其中这个构造函数就是用来创建虚线的:

BasicStroke

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

Constructs a new BasicStroke with the specified attributes.

Parameters:
width - the width of this BasicStroke. The width must be greater than or equal to 0.0f. If width is set to 0.0f, the stroke is rendered as the thinnest possible line for the target device and the antialias hint setting.
cap - the decoration of the ends of a BasicStroke
join - the decoration applied where path segments meet
miterlimit - the limit to trim the miter join. The miterlimit must be greater than or equal to 1.0f.
dash - the array representing the dashing pattern
dash_phase - the offset to start the dashing pattern
Throws:
IllegalArgumentException - if width is negative
IllegalArgumentException - if cap is not either CAP_BUTT, CAP_ROUND or CAP_SQUARE
IllegalArgumentException - if miterlimit is less than 1 and join is JOIN_MITER
IllegalArgumentException - if join is not either JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER
IllegalArgumentException - if dash_phase is negative and dash is not null
IllegalArgumentException - if the length of dash is zero
IllegalArgumentException - if dash lengths are all zero.

正在下载JDK中,如果一个小时后你仍没解决,我给你一个小实例

DashStroke.java
-----------------
import java.awt.*;
import javax.swing.*;
public class DashStroke{
public static void main(String[] args){
JPanel p = new JPanel(){
public void paint(Graphics gr){
Graphics2D g = (Graphics2D)gr;
g.setBackground(Color.black);
g.clearRect(0,0,getWidth(),getHeight());
Stroke dash = new BasicStroke(2.5f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_ROUND,
3.5f,new float[]{15,10,},0f);
g.setStroke(dash);
g.setColor(Color.yellow);
g.drawRect(20,20,getWidth()-40,getHeight()-40);
g.dispose();
}};
JFrame f= new JFrame("Dash Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setContentPane(p);
p.setPreferredSize(new Dimension(400,300));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-03-21
展开全部
可以的,看一下Graphics2D 的一个方法 setStroke (Stroke stroke);
然后将stroke设置成虚线就成了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-03-21
展开全部
有~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我已成仙ya
2009-03-21 · 超过16用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:60万
展开全部
看看javaME
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式