有没有办法将clickhandlers(或任何类型的处理程序)添加到网格中的行标题中?
yi0zb3m41#
使用一些小部件作为标题(a) Label 例如)并向该小部件添加处理程序:
Label
Grid grid = new Grid(5, 5); for(int col = 0; col < 5; col++) { Label headerLabel = new Label("Header " + col); headerLabel.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Window.alert("Click!"); } }); grid.setWidget(0, col, headerLabel); } for(int row = 1; row < 5; row++) { for(int col = 0; col < 5; col++) grid.setText(row, col, row + ", " + col); }
l7mqbcuq2#
你可以延长 com.google.gwt.user.cellview.client.Header 并重写以下方法以获取单击事件:
com.google.gwt.user.cellview.client.Header
public void onBrowserEvent(Cell.Context context, Element elem, NativeEvent nativeEvent)
例如:
private abstract class ClickableTextHeader extends Header<String> { private String colmName; public ClickableTextHeader(String colmName) { super(new ClickableTextCell()); this.colmName = colmName; } @Override public String getValue() { return colmName; } @Override public void onBrowserEvent(Cell.Context context, Element elem, NativeEvent nativeEvent) { //Window.alert("foo!!!"); // Call your onClick() method: onClick(elem.getAbsoluteLeft(), elem.getAbsoluteTop()); } /** * Override this method to handle click event. */ abstract protected void onClick(int buttonLeftPos, int buttonTopPos); }
2条答案
按热度按时间yi0zb3m41#
使用一些小部件作为标题(a)
Label
例如)并向该小部件添加处理程序:l7mqbcuq2#
你可以延长
com.google.gwt.user.cellview.client.Header
并重写以下方法以获取单击事件:例如: