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实现的代码示例,该实现可以响应单击事件。