Eclipse rcp 一起使用Eclipse RCP和Apache Batik

Eclipse rcp 一起使用Eclipse RCP和Apache Batik,eclipse-rcp,batik,Eclipse Rcp,Batik,在EclipseRCP中开发的应用程序中是否可以使用所有Batik组件? 您能给我指一下相关文档吗。在eclipse RCP应用程序中可以使用蜡染,因为e4使用CSS引擎。请参阅最新的稳定版本,其中包括许多蜡染包。例如,在我们的RCP应用程序中,我们使用以下+一些支持w3c捆绑包: org.apache.batik.css_1.6.0.v201011041432.jar org.apache.batik.util_1.6.0.v201011041432.jar org.apache.batik.

在EclipseRCP中开发的应用程序中是否可以使用所有Batik组件?
您能给我指一下相关文档吗。

在eclipse RCP应用程序中可以使用蜡染,因为e4使用CSS引擎。请参阅最新的稳定版本,其中包括许多蜡染包。例如,在我们的RCP应用程序中,我们使用以下+一些支持w3c捆绑包:

org.apache.batik.css_1.6.0.v201011041432.jar
org.apache.batik.util_1.6.0.v201011041432.jar
org.apache.batik.util.gui_1.6.0.v201011041432.jar
org.apache.batik.xml_1.6.0.v201011041432.jar

请查看以下链接:

  • 您还可以使用
    SWT/AWT桥
    。见
  • >SWT/AWT和蜡染样品代码

    import java.awt.BorderLayout;
    import java.io.File;
    import java.io.IOException;
    
    import javax.swing.JComponent;
    import javax.swing.JPanel;
    
    import org.apache.batik.swing.JSVGCanvas;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.awt.SWT_AWT;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    
    public class BatikTest 
    {
    
        public static void main(String[] args) 
        {
            // Uncomment the below lines and set proper values if you are behind a proxy server
            ///System.setProperty("http.proxyHost", "");
            ///System.setProperty("http.proxyPort", ""); 
    
            final Display display = new Display();
            final Shell shell = new Shell(display);
            shell.setSize(200, 120);
            shell.setText("SWT Batik Example");
            shell.setLayout(new GridLayout());
            shell.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    
    
            Composite composite = new Composite(shell, SWT.EMBEDDED);
            composite.setLayout(new GridLayout());
            composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    
            java.awt.Frame locationFrame = SWT_AWT.new_Frame(composite);
            locationFrame.add(createComponents(new File("batik3D.svg")));
    
            locationFrame.pack();
            //shell.pack();
    
    
            shell.open();
            while(!shell.isDisposed()) {
                if (!display.readAndDispatch()) display.sleep();
            }
            display.dispose();
        }
    
        private static JComponent createComponents(File f) 
        {
            // Create a panel and add the button, status label and the SVG canvas.
            final JPanel panel = new JPanel(new BorderLayout());
            JSVGCanvas svgCanvas = new JSVGCanvas();
    
            panel.add("Center", svgCanvas);
    
    
            try {
                svgCanvas.setURI(f.toURI().toURL().toString());
            } catch (IOException ex) {
                ex.printStackTrace();
                return null;
            }   
    
            return panel;
        }
    }
    
    >输出

    import java.awt.BorderLayout;
    import java.io.File;
    import java.io.IOException;
    
    import javax.swing.JComponent;
    import javax.swing.JPanel;
    
    import org.apache.batik.swing.JSVGCanvas;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.awt.SWT_AWT;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    
    public class BatikTest 
    {
    
        public static void main(String[] args) 
        {
            // Uncomment the below lines and set proper values if you are behind a proxy server
            ///System.setProperty("http.proxyHost", "");
            ///System.setProperty("http.proxyPort", ""); 
    
            final Display display = new Display();
            final Shell shell = new Shell(display);
            shell.setSize(200, 120);
            shell.setText("SWT Batik Example");
            shell.setLayout(new GridLayout());
            shell.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    
    
            Composite composite = new Composite(shell, SWT.EMBEDDED);
            composite.setLayout(new GridLayout());
            composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    
            java.awt.Frame locationFrame = SWT_AWT.new_Frame(composite);
            locationFrame.add(createComponents(new File("batik3D.svg")));
    
            locationFrame.pack();
            //shell.pack();
    
    
            shell.open();
            while(!shell.isDisposed()) {
                if (!display.readAndDispatch()) display.sleep();
            }
            display.dispose();
        }
    
        private static JComponent createComponents(File f) 
        {
            // Create a panel and add the button, status label and the SVG canvas.
            final JPanel panel = new JPanel(new BorderLayout());
            JSVGCanvas svgCanvas = new JSVGCanvas();
    
            panel.add("Center", svgCanvas);
    
    
            try {
                svgCanvas.setURI(f.toURI().toURL().toString());
            } catch (IOException ex) {
                ex.printStackTrace();
                return null;
            }   
    
            return panel;
        }
    }