Criar fluxograma Java

Os fluxogramas podem ser úteis para entender algoritmos passo a passo para projetar a representação gráfica de fluxos de trabalho e processos. Em alguns cenários, pode ser necessário criar fluxogramas para resolução de problemas. Este artigo aborda como criar um diagrama de fluxograma programaticamente em Java.

Instale a API Java para fazer o diagrama de fluxograma

Você pode fazer diagramas de fluxograma usando a API Aspose.Diagram for Java. Ele suporta a criação ou edição de arquivos do Visio em VSD, VSDX e outros formatos suportados. Você pode instalar facilmente a API baixando o arquivo JAR da seção New Releases ou usando as seguintes especificações do Maven:

Repositório:

 <repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>http://repository.aspose.com/repo/</url>
    </repository>
</repositories>

Dependência:

 <dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-diagram</artifactId>
        <version>22.1</version>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

Faça fluxograma programaticamente em Java

Você pode fazer um fluxograma para explicar as etapas de uma sequência. Você precisa seguir as etapas abaixo para fazer fluxogramas:

  1. Em primeiro lugar, crie o esquema para criar o diagrama.
  2. Em segundo lugar, carregue um arquivo VSS como mestre para adicionar formas. usando a classe Diagrama.
  3. Adicionando formas e conectores do esquema.
  4. Defina o layout para o diagrama de fluxograma.
  5. Por fim, grave o arquivo de saída com o fluxograma no formato VSDX usando o método Save.

A amostra de código abaixo elabora como fazer um diagrama de fluxograma programaticamente em Java:

// Criar um novo diagrama 
int pageNumber = 0;
String rectangleMaster = "Process", decisionMaster = "Decision", connectorMaster = "Dynamic connector"; 

Diagram diagram = new Diagram("XANFLOWCHARTNEW.vss"); 

double width = 1, height = 1, pinX = 4, pinY = 10; 
long process1 = diagram.addShape(pinX, pinY, width, height, rectangleMaster, 0); 
Shape processShape1 = diagram.getPages().getPage(pageNumber).getShapes().getShape(process1); 

processShape1.getText().getValue().add(new Txt("PROCESS")); 
processShape1.setName("PROCESS"); 
processShape1.getXForm().getLocPinX().getUfe().setF("Width*0.5"); 
processShape1.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

pinY = pinY - 2; 

long decision1 = diagram.addShape(pinX, pinY, width, height, decisionMaster, 0);
Shape decisionShape1 = diagram.getPages().getPage(pageNumber).getShapes().getShape(decision1);

decisionShape1.getText().getValue().add(new Txt("DECISION")); 
decisionShape1.setName("DECISION"); 
decisionShape1.getXForm().getLocPinX().getUfe().setF("Width*0.5"); 
decisionShape1.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

pinY = pinY - 2; 
long process2 = diagram.addShape(pinX, pinY, width, height, rectangleMaster, 0); 
Shape processShape2 = diagram.getPages().getPage(pageNumber).getShapes().getShape(process2);

processShape2.getText().getValue().add(new Txt("PROCESS")); 
processShape2.setName("PROCESS");
processShape2.getXForm().getLocPinX().getUfe().setF("Width*0.5");
processShape2.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

pinY = pinY - 2; 
long process3 = diagram.addShape(pinX, pinY, width, height, rectangleMaster, 0);
Shape processShape3 = diagram.getPages().getPage(pageNumber).getShapes().getShape(process3);

processShape3.getText().getValue().add(new Txt("PROCESS")); 
processShape3.setName("PROCESS");
processShape3.getXForm().getLocPinX().getUfe().setF("Width*0.5");
processShape3.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

pinY = pinY - 2; 
long process4 = diagram.addShape(pinX, pinY, width, height, rectangleMaster, 0);
Shape processShape4 = diagram.getPages().getPage(pageNumber).getShapes().getShape(process4);

processShape4.getText().getValue().add(new Txt("PROCESS")); 
processShape4.setName("PROCESS");
processShape4.getXForm().getLocPinX().getUfe().setF("Width*0.5");
processShape4.getXForm().getLocPinY().getUfe().setF("Height*0.5"); 

long connecterId = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(process1, ConnectionPointPlace.BOTTOM, 
        decision1, ConnectionPointPlace.TOP, connecterId); 

long connecterId1 = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(decision1, ConnectionPointPlace.BOTTOM,
        process2, ConnectionPointPlace.TOP, connecterId1); 

long connecterId2 = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(process2, ConnectionPointPlace.BOTTOM,
        process3, ConnectionPointPlace.TOP, connecterId2); 

long connecterId3 = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(process3, ConnectionPointPlace.BOTTOM,
        process4, ConnectionPointPlace.TOP, connecterId3); 

long connecterId4 = diagram.addShape(new Shape(), connectorMaster, 0);
diagram.getPages().getPage(pageNumber).connectShapesViaConnector(decision1, ConnectionPointPlace.RIGHT,
        process4, ConnectionPointPlace.TOP, connecterId4);

// Definir opções de layout automático
LayoutOptions layoutOptions = new LayoutOptions();

// Método 
layoutOptions.setLayoutStyle(LayoutStyle.FLOW_CHART);
layoutOptions.setDirection(LayoutDirection.BOTTOM_TO_TOP);
diagram.layout(layoutOptions);

DiagramSaveOptions options = new DiagramSaveOptions(SaveFileFormat.VSDX);
diagram.save("sample.vsdx", options);

Visualização do fluxograma de saída de amostra

Criador de fluxogramas Java

Além disso, você pode querer baixar os arquivos de entrada e saída para verificar este recurso.

Obtenha licença de API gratuita

Você pode avaliar todos os recursos da API sem limitações solicitando uma licença temporária gratuita.

Conclusão

Concluindo, você aprendeu como criar ou fazer fluxogramas programaticamente usando Java. Você pode personalizar e alterar a direção ou as formas do fluxograma conforme suas necessidades. Assim, você pode incorporar facilmente esse recurso usando as chamadas de API de seu aplicativo Java. Além disso, você pode visitar a API documentação para verificar vários outros recursos da API. Você pode fazer qualquer uma de suas perguntas entrando em contato com o fórum.

Veja também