צור תרשים זרימה Java

תרשימי זרימה יכולים להיות מועילים להבנת אלגוריתמים שלב אחר שלב לעיצוב הייצוג הגרפי של זרימות עבודה ותהליכים. בתרחישים מסוימים, ייתכן שיהיה עליך ליצור תרשימי זרימה לפתרון בעיות. מאמר זה מכסה כיצד ליצור תרשים זרימה באופן תכנותי ב-Java.

התקן את Java API כדי ליצור תרשים זרימה

אתה יכול ליצור דיאגרמות תרשים זרימה באמצעות Aspose.Diagram for Java API. הוא תומך ביצירה או עריכה של קבצי 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

אתה יכול ליצור תרשים זרימה להסבר השלבים של רצף. עליך לבצע את השלבים הבאים כדי ליצור תרשימי זרימה:

  1. ראשית, צור סכימה ליצירת הדיאגרמה.
  2. שנית, טען קובץ VSS כמאסטר להוספת צורות. באמצעות המחלקה דיאגרמה.
  3. הוספת צורות ומחברים מהסכמה.
  4. הגדר פריסה עבור תרשים הזרימה.
  5. לבסוף, כתוב את קובץ הפלט עם תרשים זרימה בפורמט 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);

תצוגה מקדימה של תרשים זרימה של פלט

יוצר תרשימי זרימה Java

יתר על כן, ייתכן שתרצה להוריד את קבצי הקלט והפלט כדי לבדוק תכונה זו.

קבל רישיון API בחינם

אתה יכול להעריך את כל התכונות של ה-API ללא כל הגבלה על ידי בקשת [רישיון זמני חינם].

סיכום

לסיכום, למדת כיצד ליצור או ליצור תרשימי זרימה באופן פרוגרמטי באמצעות Java. אתה יכול להתאים אישית ולשנות את הכיוון או הצורות של תרשים הזרימה בהתאם לדרישות שלך. אז אתה יכול בקלות להטמיע תכונה זו באמצעות קריאות API מתוך אפליקציית Java שלך. יתר על כן, אתה יכול לבקר ב-API תיעוד כדי לבדוק כמה תכונות אחרות של ה-API. אתה יכול לשאול כל אחת מהשאלות שלך על ידי יצירת קשר בפורום.

ראה גם