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
- Utwórz diagram schematu blokowego programowo przy użyciu języka 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:
- Najpierw utwórz schemat tworzenia diagramu.
- Po drugie, załaduj plik VSS jako główny do dodawania kształtów. używając klasy Diagram.
- Dodawanie kształtów i łączników ze schematu.
- Ustaw układ diagramu schematu blokowego.
- 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
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.