Utwórz schemat blokowy Java

Schematy blokowe mogą być pomocne w zrozumieniu algorytmów krok po kroku w celu zaprojektowania graficznej reprezentacji przepływów pracy i procesów. W niektórych scenariuszach może być konieczne utworzenie schematów blokowych do rozwiązywania problemów. W tym artykule opisano, jak programowo utworzyć diagram schematu blokowego w języku Java.

Zainstaluj Java API, aby utworzyć diagram schematu blokowego

Diagramy schematów blokowych można tworzyć za pomocą interfejsu API Aspose.Diagram for Java. Obsługuje tworzenie lub edytowanie plików Visio w formatach VSD, VSDX i innych obsługiwanych formatach. Możesz łatwo zainstalować API, pobierając plik JAR z sekcji New Releases lub korzystając z następujących specyfikacji Maven:

Magazyn:

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

Zależność:

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

Twórz schemat blokowy programowo w Javie

Możesz stworzyć schemat wyjaśniający kroki sekwencji. Aby utworzyć schematy blokowe, wykonaj poniższe czynności:

  1. Najpierw utwórz schemat tworzenia diagramu.
  2. Po drugie, załaduj plik VSS jako główny do dodawania kształtów. używając klasy Diagram.
  3. Dodawanie kształtów i łączników ze schematu.
  4. Ustaw układ diagramu schematu blokowego.
  5. Na koniec zapisz plik wyjściowy ze schematem blokowym w formacie VSDX przy użyciu metody Save.

Poniższy przykładowy kod wyjaśnia, jak programowo utworzyć schemat blokowy w Javie:

// Utwórz nowy diagram 
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);

// Ustaw automatyczne opcje układu
LayoutOptions layoutOptions = new LayoutOptions();

// metoda 
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);

Przykładowy podgląd schematu blokowego danych wyjściowych

Kreator schematów blokowych Java

Ponadto możesz chcieć pobrać pliki wejściowe i wyjściowe, aby sprawdzić tę funkcję.

Uzyskaj bezpłatną licencję API

Możesz ocenić wszystkie funkcje API bez żadnych ograniczeń, prosząc o bezpłatną licencję tymczasową.

Wniosek

Podsumowując, nauczyłeś się programowo tworzyć schematy blokowe przy użyciu języka Java. Możesz dostosować i zmienić kierunek lub kształty schematu blokowego zgodnie z własnymi wymaganiami. Możesz więc łatwo osadzić tę funkcję za pomocą wywołań API z poziomu aplikacji Java. Ponadto możesz odwiedzić API dokumentacja, aby sprawdzić kilka innych funkcji API. Wszelkie pytania możesz zadać na forum.

Zobacz też