Tienda Web
Área de Clientes
MindFusion

P: ¿Puedo utilizar el control de diagramación Java en una aplicación SWT (Standard Widget Toolkit)?

R: JDiagram es un componente Swing, y puede ser embebido en la aplicación SWT usando la librería Puente SWT/AWT. Un programa mínimo SWT que crea y muestra un DiagramView desplazable se muestra a continuación.


import java.awt.Frame;
import java.awt.Panel;

import javax.swing.JScrollPane;

import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

import com.mindfusion.diagramming.DiagramView;

public class SwtApp
{ 
 public static void main(String[] args) 
 {
	 // create SWT main window
	 Display display = new Display ();
	 Shell shell = new Shell(display);
	 shell.setLayout(new FillLayout());
	 Composite composite = new Composite(shell, SWT.EMBEDDED | SWT.NO_BACKGROUND);

	 // add a Swing frame to the SWT composite control
	 Frame frame = SWT_AWT.new_Frame(composite);
	 Panel panel = new Panel(new java.awt.BorderLayout());
	 frame.add(panel);

	 // add a DiagramView to the Swing frame
	 DiagramView flowchart = new DiagramView();
	 JScrollPane scrollPane = new JScrollPane(flowchart);
	 panel.add(scrollPane);

	 // run the SWT event loop
	 shell.open();
	 while (!shell.isDisposed())
	 {
		 	if (!display.readAndDispatch())
		 		display.sleep();
	 }
	 display.dispose ();
 }
}

Tenga en cuenta que Swing y SWT procesan eventos en diferentes hilos. Por lo tanto, si usted necesita actualizar la interfaz de usuario SWT en respuesta a un evento del diagrama, usted debe correr el procesamiento de código SWT usando los métodos Display.asyncExec o Display.syncExec. Si usted necesita actualizar el diagrama en respuesta a un evento SWT, corra el código de procesamiento de diagrama usando los métodos SwingUtilities.invokeLater o SwingUtilities.invokeAndWait. Vea tópico de Integración Swing/SWT en eclipse.org para mayor información acerca de sincronización de hilos y consejos adicionales para conectar SWT/AWT.

Copyright © 2001-2024 MindFusion LLC. All rights reserved.
Terms of use - Contactos