0

在 GEF 形状示例中,有两种类型的连接,它们仅在线条样式上有所不同(int Graphics.LINE_DASHint Graphics.LINE_SOLID)。

现在我想null为其中一个更改 TargetDecoration (或者更确切地说将其设置为 )。我该怎么做呢?

我尝试了if以下方法(以下是原文),但没有任何效果。我试着if (getCastedModel().getLineStyle() != Graphics.LINE_DASH) connections.setTargetDecoration(null)让他保持原样。

protected IFigure createFigure() {
    PolylineConnection connection = (PolylineConnection) super
            .createFigure();
    connection.setTargetDecoration(new PolygonDecoration()); // arrow at
                                                                // target
                                                                // endpoint
    connection.setLineStyle(getCastedModel().getLineStyle()); // line

                                                                // style
    return connection;
}

谢谢!

4

1 回答 1

0

以下代码有效(更改了返回前的最后两行):

protected IFigure createFigure() {
    PolylineConnection connection = (PolylineConnection) super.createFigure();
    connection.setTargetDecoration(new PolygonDecoration()); 
    connection.setLineStyle(getCastedModel().getLineStyle()); 
    if(getCastedModel().getLineStyle() == Graphics.LINE_DASH) {
        connection.setTargetDecoration(null);
    }
    return connection;
}

这是结果:

在此处输入图像描述

奇怪的是这对你不起作用......

于 2012-03-20T13:40:16.527 回答