Блок-схеми можуть бути корисними для розуміння покрокових алгоритмів для розробки графічного представлення робочих процесів і процесів. У деяких сценаріях вам може знадобитися створити блок-схеми для вирішення проблем. У цій статті розповідається про те, як програмно створити блок-схему в Java.
- Встановіть Java API для створення блок-схеми
- Створення блок-схеми програмним шляхом за допомогою Java
Встановіть Java API для створення блок-схеми
Ви можете створювати блок-схеми за допомогою API Aspose.Diagram for Java. Він підтримує створення або редагування файлів Visio у VSD, VSDX та інших підтримуваних форматах. Ви можете легко встановити API, завантаживши файл JAR із розділу Нові випуски або скориставшись наступними специфікаціями Maven:
Репозиторій:
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
</repositories>
Залежність:
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-diagram</artifactId>
<version>22.1</version>
<classifier>jdk16</classifier>
</dependency>
</dependencies>
Створіть блок-схему програмно в Java
Ви можете створити блок-схему для пояснення кроків послідовності. Щоб створити блок-схеми, потрібно виконати наведені нижче дії.
- Спочатку створіть схему для створення діаграми.
- По-друге, завантажте файл VSS як майстер для додавання фігур. за допомогою класу Diagram.
- Додавання фігур і сполучних елементів зі схеми.
- Встановіть макет блок-схеми.
- Нарешті, запишіть вихідний файл із блок-схемою у форматі VSDX за допомогою методу Save.
У наведеному нижче прикладі коду пояснюється, як програмно створити блок-схему в Java:
// Створіть нову діаграму
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);
// Встановіть автоматичні параметри макета
LayoutOptions layoutOptions = new LayoutOptions();
// метод
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);
Попередній перегляд блок-схеми вихідних даних
Крім того, ви можете завантажити вхідні та вихідні файли, щоб перевірити цю функцію.
Отримайте безкоштовну ліцензію API
Ви можете оцінити всі функції API без будь-яких обмежень, надіславши запит на безкоштовну тимчасову ліцензію.
Висновок
Підсумовуючи, ви навчилися програмно створювати або робити блок-схеми за допомогою Java. Ви можете налаштувати та змінити напрямок або форми блок-схеми відповідно до ваших вимог. Тож ви можете легко вбудувати цю функцію за допомогою викликів API із програми Java. Крім того, ви можете відвідати [документацію] API 8, щоб перевірити кілька інших функцій API. Ви можете поставити будь-яке запитання на форумі.