使标签检票口不可见

时间:2012-01-17 17:55:16

标签: java label wicket

我试图按如下方式隐藏标签:

  Form form = new Form("form");

  Label myLabel = new Label("myLabel", new ResourceModel("mylabel.text").getObject());
  if(hide == true){
        myLabel.setVisible(Boolean.FALSE);
  }
  form.add(myLabel);

  ..

但标签仍然出现。有谁知道为什么?

3 个答案:

答案 0 :(得分:5)

您应该覆盖标签的isVisible方法。

Label label = new Label(...) {
  @Override
  public boolean isVisible() {
    return !hide;
  }
};
form.add(...)
...

答案 1 :(得分:0)

实际上你正在制作隐形标签,问题是重绘html页面,你可以刷新页面或借助ajax

答案 2 :(得分:0)

以下信息适用于Wicket 1.4(现已相当陈旧)。

对于Wicket 1.5和6.x(又名1.6),正确的方法是覆盖组件的onConfigure()并从那里调用setVisible()

@Override
protected void onConfigure()
{
    super.onConfigure();
    boolean flag = myDbDAO.getVisibilityOfThisPanel()
    this.setVisible(flag);
}

保持component.isVisible()点亮,每个请求应该多次调用它,因此长计算任务会降低页面/面板加载速度。将繁重的流程(数据库,数学)放在onConfigure()中,然后根据需要调用isVisible()