新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论SVG, GML, X3D, VRML, VML, XAML, AVALON, Batik等基于XML的图形技术,以及有关GIS的应用。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 SVG/GML/VRML/X3D/XAML 』 → java  batik对SVG文件解析的问题,请帮忙解决一下,谢谢! 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 7238 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: java  batik对SVG文件解析的问题,请帮忙解决一下,谢谢! 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     mxr 美女呀,离线,快来找我吧!
      
      
      等级:大二(研究C++)
      文章:39
      积分:264
      门派:XML.ORG.CN
      注册:2004/4/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给mxr发送一个短消息 把mxr加入好友 查看mxr的个人资料 搜索mxr在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看mxr的博客楼主
    发贴心情 java  batik对SVG文件解析的问题,请帮忙解决一下,谢谢!

    下面是我写的SVG文件解析的程序,但是总是取不到图形对象,请帮忙看一下.
    我的JAVA基础不好,程序写的可能很乱,请见谅!

    import java.awt.Button;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import javax.swing.JFrame;
    import org.apache.batik.swing.JSVGCanvas;
    import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;
    import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
    import org.apache.batik.swing.svg.GVTTreeBuilderAdapter;
    import org.apache.batik.swing.svg.GVTTreeBuilderEvent;
    import org.apache.batik.swing.svg.SVGDocumentLoaderAdapter;
    import org.apache.batik.swing.svg.SVGDocumentLoaderEvent;
    import org.w3c.dom.Element;
    import org.w3c.dom.svg.SVGDocument;


    public class application{
       JFrame frame = new JFrame();                 
        JSVGCanvas canvas=new JSVGCanvas();
        File f=new File("dom.svg");   
        
        public static void main(String[] args) {
            new application().init();
        }  
        
        public void init() {
                      canvas.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
                            public void documentLoadingStarted(SVGDocumentLoaderEvent e) {
                             System.out.println("Document Loading...");
                            }
                            public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
                             System.out.println("Document Loaded.");
                            }
                        });

                     canvas.addGVTTreeBuilderListener(new GVTTreeBuilderAdapter() {
                            public void gvtBuildStarted(GVTTreeBuilderEvent e) {
                             System.out.println("Build Started...");
                            }
                            public void gvtBuildCompleted(GVTTreeBuilderEvent e) {
                             System.out.println("Build Done.");
                                frame.pack();
                            }
                        });

                     canvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {
                            public void gvtRenderingPrepare(GVTTreeRendererEvent e) {
                             System.out.println("Rendering Started...");
                            }
                            public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
                             System.out.println("Rendering Done");
                            }
                        });
                     
                     Button bt=new Button("ok");                  
                     canvas.setURI(f.toURI().toString());
                     
                     bt.addActionListener(new ActionListener()
                     {
                  public void actionPerformed(ActionEvent e)
                  {
                    final SVGDocument svgDoc= canvas.getSVGDocument();
                          Element elt = svgDoc.getElementById("elt-id");//这是dom.svg里的一个元素,已经定义;
                          System.out.println(elt);//这里已经可以找到对象
         //   elt.setAttribute("fill", "black"); 请问怎么在这里实现鼠标点击事件,通过点击对象改变对象的填充色?
                  }
                       });
            frame.add(bt,"East"); 
            frame.add(canvas);
            frame.setSize(400, 300);
            frame.setVisible(true);
     }  
    }

    [此贴子已经被作者于2006-6-26 14:39:23编辑过]

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/24 11:05:00
     
     mxr 美女呀,离线,快来找我吧!
      
      
      等级:大二(研究C++)
      文章:39
      积分:264
      门派:XML.ORG.CN
      注册:2004/4/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给mxr发送一个短消息 把mxr加入好友 查看mxr的个人资料 搜索mxr在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看mxr的博客2
    发贴心情 
    请各位高手帮帮忙,这个问题困扰我几天了,JAVA对我来说实在是太难了,郁闷阿!!!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/26 17:42:00
     
     qwer1234 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:57
      门派:XML.ORG.CN
      注册:2006/6/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给qwer1234发送一个短消息 把qwer1234加入好友 查看qwer1234的个人资料 搜索qwer1234在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看qwer1234的博客3
    发贴心情 
    不懂,最近我也在研究,能不能讨论一下。QQ:49877582
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/26 20:33:00
     
     mxr 美女呀,离线,快来找我吧!
      
      
      等级:大二(研究C++)
      文章:39
      积分:264
      门派:XML.ORG.CN
      注册:2004/4/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给mxr发送一个短消息 把mxr加入好友 查看mxr的个人资料 搜索mxr在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看mxr的博客4
    发贴心情 
    实现了,哈哈
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/27 15:26:00
     
     east1713 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:66
      门派:XML.ORG.CN
      注册:2006/4/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给east1713发送一个短消息 把east1713加入好友 查看east1713的个人资料 搜索east1713在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看east1713的博客5
    发贴心情 
    是不是因为elt-id的属性fill还没取得的原因?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/28 17:24:00
     
     mxr 美女呀,离线,快来找我吧!
      
      
      等级:大二(研究C++)
      文章:39
      积分:264
      门派:XML.ORG.CN
      注册:2004/4/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给mxr发送一个短消息 把mxr加入好友 查看mxr的个人资料 搜索mxr在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看mxr的博客6
    发贴心情 
    canvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);

    这句很重要,没有就实现不了。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/30 15:21:00
     
     letle 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:16
      积分:137
      门派:XML.ORG.CN
      注册:2006/8/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给letle发送一个短消息 把letle加入好友 查看letle的个人资料 搜索letle在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看letle的博客7
    发贴心情 
    我最近也在搞这个,能不能交流一下?


    [此贴子已经被admin于2009-9-11 21:12:13编辑过]

    ----------------------------------------------

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/9 9:41:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/13 11:27:44

    本主题贴数7,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms