我正在使用Eclipse Juno(具有最新的修补程序),最新的GWT和Java。在动态加载的图像上捕获点击事件的最佳方式
我将图像加载到一个可伸缩的相关姓氏和名字连接并显示在每个图像下7 x n网格。我现在想要做的是给每个图像一个独特的名称,并为其分配一个点击处理程序。然后,我会在图像上选取一个点击事件,并在下一个视图中显示该人的详细信息。
是一个可以灵活使用的正确的小部件或者我应该使用不同的小部件来包含图像和名称?
如何给每个图像一个唯一的名称,以便我知道哪个图像被选中?
如何将唯一图像名称传递给onClick监听器?
这是我使用的代码:
public void renderYouthMemberTable(List<YouthMember> youthMemberList) {
if (youthMemberList != null) {
int row = 0;
int col = 0;
flexTable.clear();
for (YouthMember youthMember : youthMemberList) {
String imageDataString = youthMember.getPhotograph();
//Display each image with the name under it.
Image image = new Image(imageDataString);
flexTable.setWidget(row, col, image);
flexTable.setWidget(row + 1, col, new Label(youthMember.getSurname() + ", " + youthMember.getFirstname()));
//Add click handler
image.addClickHandler((ClickHandler) this);
//Go to next column and if the end of the columns
//drop two rows and go to the first column
col = col + 1;
if (col > 7) {
row = row + 2;
col = 0;
}
}
}
}
public void onClick(ClickEvent event) {
// note that in general, events can have sources that are not Widgets.
Widget sender = (Widget) event.getSource();
if (sender == image) {
// handle image1 being clicked
}
else if (sender == image2) {
// handle image2 being clicked
}
}
的onClick尚不能工作。这只是为了展示我想要达到的目标。
感谢您的帮助,
格林
是'//手柄此搜索是clicked'和'//处理图像2是clicked'做同样的事情只是一个不同的形象? – NickD 2013-02-13 00:49:19
嗨NickD,是的,他们将(和所有其他人)将控制权传递给下一个视图,其中包含所选人员的ID,以便人员的详细信息显示在视图中。谢谢,格林。 – Glyn 2013-02-13 01:05:41
image.addClickHandler((ClickHandler)这个)看起来很腥吗?什么类型是“这个”!!!! – SSR 2013-02-13 03:33:04