UMLet 中的 UML 2 序列图符号?

UML 2 sequence diagram symbols in UMLet?

我想知道是否有可能在 UMLet 中表示序列图的 UML2 Boundary/Control/Entity 符号? (http://www.uml.org.cn/oobject/images/seq02.gif)

我必须自己编写他们的 java 代码还是它已经存在于某处?

我不确定你指的是 Sequence 还是 Sequence all-in-one。

虽然不支持这些新的生命线,但您可以轻松地向前者添加自定义元素。这里有一个关于如何添加新元素的简单易用的教程 http://www.umlet.com/ce/ce.htm

如果您想将它添加到一体机中,则需要深入研究内部结构,因为它还需要更改文本解析器。

这是我用来在 UMLet 中创建边界符号的片段。您可以根据需要进行更改。

int h = height - textHeight() * textlines.size();
int radius = h/2;
drawCircle(width-radius, radius, radius);
drawLine(0, 10, 0, h-10);
drawLine(0, radius, width-h, radius);

int y = textHeight()+5;
for(String textline : textlines) {
    printCenter(textline, height-3);
}

预览:

所以我做了一些基于诺亚自己的模型。它远不是专业的东西,而且是非常肮脏的代码,但我猜它在一段时间内起到了作用。因此,如果在 UMLet 中更好地实现这些符号之前有人遇到过与我相同的问题:

实体:

int h = height - textHeight() * textlines.size();
int radius = h*2/5;
int w = radius*2 ;

double x = (width - w)/2 + radius ;
double y = h/10 + radius;

double x2 = x + radius/4 * Math.sqrt(3);
double y2 = y - radius/4 ;

drawCircle((int)x, (int) y, radius);
drawLine((int)x-radius , (int)y + radius  ,  (int) x+ radius, (int) y+radius);
drawLine((int)x - radius , (int) y - 2*radius  , (int) x + radius, (int) y - 2*radius);

for(String textline : textlines) {
    printCenter(textline, h);
}

控制:

    int h = height - textHeight() * textlines.size();
int radius = h*2/5;
int w = radius*2 ;

double x1 = (width - w)/2 + radius ;
double y1 = h/10;

double x2 = x1 + radius/4 * Math.sqrt(3);
double y2 = y1 - radius/4 ;

double x3 =  x1 +  radius/4 * Math.sqrt(3);
double y3 =  y1 + radius/4;

drawCircle((int)x1, (int) y1+radius, radius);
drawLine((int)x1, (int) y1 , (int)x2, (int)y2);
drawLine((int)x1, (int) y1 , (int)x3, (int)y3);

int y = textHeight()+5;

for(String textline : textlines) {
    printCenter(textline, h);
}