Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义gxt单元格,该单元格可能包含小部件_Java_Gwt_Grid_Gxt - Fatal编程技术网

Java 自定义gxt单元格,该单元格可能包含小部件

Java 自定义gxt单元格,该单元格可能包含小部件,java,gwt,grid,gxt,Java,Gwt,Grid,Gxt,我需要一个专栏,其中可以放置一个小部件。 我有这个: import com.google.gwt.cell.client.AbstractCell; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.user.client.ui.Widget; public class WidgetGridCell extends AbstractCell<Widget> { Widg

我需要一个专栏,其中可以放置一个小部件。 我有这个:

import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.ui.Widget;

public class WidgetGridCell extends AbstractCell<Widget> {

    Widget widget;

    public WidgetGridCell(Widget widget) {
        this.widget = widget;
    }

    @Override
    public void render(Context paramContext,
            Widget param, SafeHtmlBuilder pb) {

    }
}
import com.google.gwt.cell.client.AbstractCell;
导入com.google.gwt.safehtml.shared.SafeHtmlBuilder;
导入com.google.gwt.user.client.ui.Widget;
公共类WidgetGridCell扩展了AbstractCell{
小部件;
公共WidgetGridCell(小部件){
this.widget=widget;
}
@凌驾
公共void呈现(上下文参数上下文,
小部件参数,安全HTMLBuilder pb){
}
}
但是我不知道如何在HTML中包含这个小部件

不管是不是Widget,只有GWT按钮适合我。

请参阅AbstractCell实现的一些示例

要回答有关GWT按钮的问题,请执行以下操作:

import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.ui.Widget;

public class WidgetGridCell extends AbstractCell<Widget> {

  Widget widget;

  public WidgetGridCell(Widget widget) {
      this.widget = widget;
  }

  @Override
  public void render(Context paramContext,
          Widget param, SafeHtmlBuilder pb) {
    Button aButton = new Button();
    // add text to the button, etc...
    pb.append(SafeHtmlUtils.fromTrustedString(aButton.toString()));
  }
}
import com.google.gwt.cell.client.AbstractCell;
导入com.google.gwt.safehtml.shared.SafeHtmlBuilder;
导入com.google.gwt.user.client.ui.Widget;
公共类WidgetGridCell扩展了AbstractCell{
小部件;
公共WidgetGridCell(小部件){
this.widget=widget;
}
@凌驾
公共void呈现(上下文参数上下文,
小部件参数,安全HTMLBuilder pb){
按钮邻接=新按钮();
//向按钮添加文本等。。。
append(SafeHtmlUtils.fromTrustedString(aButton.toString());
}
}
尝试在单元格元素中呈现整个小部件在很大程度上是不可行的(也是不可取的),但听起来好像您真的在尝试从单元格中呈现按钮

AbstractCell是Cell接口的一个实现,它允许您定义要在单元格中呈现的HTML。如果需要可以响应事件的按钮,则需要定义自定义单元格以处理浏览器事件(例如单击事件)。谷歌在他们关于自定义单元格的文档中做得很好,解释了如何做到这一点

请参阅此链接:

有关AbstractCell实现的一些示例,请参阅

要回答有关GWT按钮的问题,请执行以下操作:

import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.ui.Widget;

public class WidgetGridCell extends AbstractCell<Widget> {

  Widget widget;

  public WidgetGridCell(Widget widget) {
      this.widget = widget;
  }

  @Override
  public void render(Context paramContext,
          Widget param, SafeHtmlBuilder pb) {
    Button aButton = new Button();
    // add text to the button, etc...
    pb.append(SafeHtmlUtils.fromTrustedString(aButton.toString()));
  }
}
import com.google.gwt.cell.client.AbstractCell;
导入com.google.gwt.safehtml.shared.SafeHtmlBuilder;
导入com.google.gwt.user.client.ui.Widget;
公共类WidgetGridCell扩展了AbstractCell{
小部件;
公共WidgetGridCell(小部件){
this.widget=widget;
}
@凌驾
公共void呈现(上下文参数上下文,
小部件参数,安全HTMLBuilder pb){
按钮邻接=新按钮();
//向按钮添加文本等。。。
append(SafeHtmlUtils.fromTrustedString(aButton.toString());
}
}
尝试在单元格元素中呈现整个小部件在很大程度上是不可行的(也是不可取的),但听起来好像您真的在尝试从单元格中呈现按钮

AbstractCell是Cell接口的一个实现,它允许您定义要在单元格中呈现的HTML。如果需要可以响应事件的按钮,则需要定义自定义单元格以处理浏览器事件(例如单击事件)。谷歌在他们关于自定义单元格的文档中做得很好,解释了如何做到这一点


查看此链接:

我有一篇关于向单元格添加小部件的帖子。看看它是否对你有帮助

正如科林所说,除非小部件的HTML再次推送到页面,否则不会使用小部件上的更改。在这篇文章的评论中,我有一些关于处理事件的方法的注释。阅读评论,了解如何使用我在帖子中的类

正如科林在这里所说的,要小心,确保你理解你在做什么,以及小部件是如何从未真正附加到页面中的HTML的


顺便说一下。。你说你想要一个按钮。为什么不使用GWT

我有一篇关于向单元格添加小部件的帖子。看看它是否对你有帮助

正如科林所说,除非小部件的HTML再次推送到页面,否则不会使用小部件上的更改。在这篇文章的评论中,我有一些关于处理事件的方法的注释。阅读评论,了解如何使用我在帖子中的类

正如科林在这里所说的,要小心,确保你理解你在做什么,以及小部件是如何从未真正附加到页面中的HTML的


顺便说一下。。你说你想要一个按钮。为什么不使用GWT

在调用类似按钮的小部件上的
toString()
之前,请仔细考虑-如果以后调用
aButton.setText
,它将无效,并且不会调用任何单击处理程序。这不是一个好主意,根本不应该被鼓励。@ColinAlworth-是的,我同意这一点,但我尽了最大努力直接回答这个问题。但是你的观点很好,我也不推荐这种方法。@L00der-按照我答案末尾的链接进行操作。其中有一个名为“从单元格处理事件”的部分,提供了AbstractCell实现的代码示例,该实现可以响应单击事件。在类似按钮的小部件上调用
toString()
之前,请仔细考虑-如果以后调用
aButton.setText
,则不会产生任何效果,并且不会调用任何单击处理程序。这不是一个好主意,根本不应该被鼓励。@ColinAlworth-是的,我同意这一点,但我尽了最大努力直接回答这个问题。但是你的观点很好,我也不推荐这种方法。@L00der-按照我答案末尾的链接进行操作。其中有一个称为“处理单元格中的事件”的部分,它提供了AbstractCell实现的代码示例,该实现可以响应单击事件。