单击Vaadin画布上的“提交”按钮后如何填充文本?

时间:2018-12-21 05:53:35

标签: java canvas drawing vaadin

我有一个画布,可以绘制边界框。在mouseDown函数上,将起始xy坐标作为对象推送到数组中,在mouseUp侦听器上,即在实际绘制框并绘制框之后,它将访问相同的数组并编辑框。宽度和高度等值。在我的MainLayout中,我有一个提交按钮,用于将框名传递到相同的对象数组中。但是,我现在要做的是,一旦单击“提交”按钮,框名称就会显示在框顶部(使用fillText)。我尝试将fillText放入mouseUp侦听器中,但是由于在用户单击“提交”之前尚未传递框名称,因此该框不起作用。

这是Canvas.java中的mouseDown和mouseUp侦听器:

array:4 [▼
  0 => array:3 [▼
    "id" => "157"
    "unit_sales_managers" => array:7 [▶]
    "policies" => array:3007 [▶]
  ]
  1 => array:3 [▼
    "id" => "73401"
    "unit_sales_managers" => array:8 [ …8]
    "policies" => array:2226 [ …2226]
  ]
  2 => array:3 [▼
    "id" => "0"
    "unit_sales_managers" => array:1 [ …1]
    "policies" => array:162 [ …162]
  ]
  3 => array:3 [▼
    "id" => "76300"
    "unit_sales_managers" => array:1 [ …1]
    "policies" => array:1 [ …1]
  ]
]

MainLayout.java:

//Loop through all the arrays
@foreach ($asm as $r)
<div class="panel-group" id="hierachy">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a data-toggle="collapse" href="#collapse1"> {{ dd($r['id']) }}</a>
      </h4>
    </div>
    <div id="collapse1" class="panel-collapse collapse">
      <div class="panel-body">Panel Body</div>
      <div class="panel-footer">Panel Footer</div>
    </div>
  </div>
</div>
@endforeach

我们非常感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

也许只是Canvas中绘制文本的一种方法

submitButton.addClickListener(event -> {
    BoundingBox box = bb.get(bb.size() - 1);
    box.setName(boxname.getValue());
    box.setBoxcategory(boxcategory.getValue());
    Canvas.redrawBox(box);
    boxname.clear();
    boxcategory.clear();
}

在Canvas.java中

public static void redrawBox(BoundingBox box) {
    // Insert real code to draw text here
    context.doSomething(box.getName());
}