CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

求教虚线 的绘制方法(20)

楼主oneonone()2003-11-04 11:47:14 在 Java / J2SE / 基础类 提问

请教虚线的绘制,除了画一大堆线段外有没有更高效的方法? 问题点数:20、回复次数:8Top

1 楼kypfos(不在寻梦)回复于 2003-11-04 12:28:28 得分 5

用java2D,Graphics2D;  
   
                        BasicStroke   b   =   new   BasicStroke(1.0f,   BasicStroke.CAP_BUTT,    
                                                                  BasicStroke.JOIN_MITER,   10.0f,   dash,   0.0f);  
                          g2.setStroke(b);  
                          g2.drawLine(20,   y,   w-20,   y);Top

2 楼kinzey34(无声之舞)回复于 2003-11-04 12:46:09 得分 5

你可以自己定义一个绘制虚线的方法  
  比如如下的drawNewLine()  
   
  import   java.awt.*;  
  import   javax.swing.*;  
   
  public   class   DrawLine   extends   JApplet  
  {  
    public   void   init(){}  
    public   void   paint(Graphics   g)  
    {  
      g.setColor(Color.BLACK);  
      g.drawLine(100,100,300,100);  
      drawNewLine(100,120,300,120,2,2,g);  
      drawNewLine(100,140,300,140,5,2,g);  
      drawNewLine(100,160,300,160,5,5,g);  
      drawNewLine(100,180,300,180,2,5,g);  
      drawNewLine(100,200,300,200,20,2,g);  
    }  
    //绘制虚线  
    public   void   drawNewLine(int   x,int   y,int   ex,int   ey,  
                  int   seeWidth,int   emptyWidth,Graphics   g)  
    {  
      g.drawLine(x,y,ex,ey);  
      g.setColor(Color.WHITE);  
      for(int   dx=x+seeWidth;dx<ex;dx+=seeWidth+emptyWidth)  
          g.drawLine(dx,y,dx+emptyWidth,y);  
      g.setColor(Color.BLACK);      
    }  
  }  
   
  你做个HTML把这个APPLET嵌入看看  
  当然我做的是只可以绘制水平方向的虚线,你也可以做个全功能的,然后一劳永逸Top

3 楼d992901(沉思)回复于 2003-11-04 12:54:44 得分 5

graphics2d   g2d;  
  float   TypeArray[]   =   {3,2,1}  
  stroke   =   new   BasicStroke(1   ,   1   ,   1   ,   1   ,   TypeArray   ,   1)   ;  
  g2d.setStroke(stroke)   ;  
  tyepeArray的意思是画一条虚线格式是   3,   2,1,3代表三个像素,2代表2个  
  按这个例子画出来的样子是  
  ---   --   -   ---   --   -   。。。。。  
  Top

4 楼oneonone()回复于 2003-11-04 13:00:06 得分 0

可是这样的话不如调用库函数执行效率高啊。Top

5 楼d992901(沉思)回复于 2003-11-04 13:04:24 得分 2

库里好像就这一种方法把,我就只知道这一种了   :(  
  自己写的函数,不一定有这效率高呢,好像挺麻烦的Top

6 楼oneonone()回复于 2003-11-04 13:30:02 得分 0

对不起,我是说kinzey34(无声之舞)   的方法可能效率不太高,但是还是要谢谢你们大家!!  
   
  :)问题终于解决了.Top

7 楼kinzey34(无声之舞)回复于 2003-11-04 13:39:36 得分 3

楼主,我的小程序是画了1条实线和5条不同的虚线Top

8 楼oneonone()回复于 2003-11-04 16:59:09 得分 0

to:kinzey34(无声之舞)  
  衷心地感谢你的帮助,循环调用drawLine函数的方法,在每次调用时都会产生时间消耗,我想毕竟不如Java自己的库函数只调用五次(1条实线和5条不同的虚线)效率高些.Top

相关问题

  • SOS..Java中矢量图绘制方法
  • 绘制统计图的方法?
  • 如何直接在屏幕桌面上绘制移动的三角形?粗边框的,类似拖动Win98的窗口时的那种粗虚线边框。
  • VB6中如何用绘图得方法绘制一个字符?
  • 在onPaint()方法中,如何将图绘制到panel中?
  • 急寻甘特图控件或绘制方法,高分相赠!
  • 求如下航路图的绘制方法?
  • 有没有种简单的方法,绘制反走样文本?
  • drawLine画虚线?
  • 各位大虾是如何绘制工具栏上按钮的图标的?用手绘制码?有没有又快又好的方法?

关键词

  • drawnewline
  • 虚线
  • 绘制
  • basicstroke
  • drawline
  • 方法
  • graphics
  • public void

得分解答快速导航

  • 帖主:oneonone
  • kypfos
  • kinzey34
  • d992901
  • d992901
  • kinzey34

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo