样品:
i_in = np.nonzero( (data_array[1:] - data_array[:-1]) == 1 )[0] +1
i_out = np.nonzero( (data_array[1:] - data_array[:-1]) == -1 )[0] +1
i_return_in_time = (i_in - i_out[:i_in.size] )
ChangeHandler不起作用。虽然在官方的例子中它工作正常 (http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwListBox )。但它并没有在这段代码中工作。没有错误。
private Widget getSelectBox() {
HorizontalPanel hPanel = new HorizontalPanel();
hPanel.setSpacing(20);
final ListBox dropBox = new ListBox(false);
String[] listTypes = {"1", "2", "3"};
for (int i = 0; i < listTypes.length; i++) {
dropBox.addItem(listTypes[i]);
}
dropBox.ensureDebugId("cwListBox-dropBox");
dropBox.getElement().setId("cms-dropBox");
VerticalPanel dropBoxPanel = new VerticalPanel();
dropBoxPanel.setSpacing(4);
dropBoxPanel.add(dropBox);
hPanel.add(dropBoxPanel);
dropBox.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent event) {
Window.alert("change fired");
dropBox.addItem("else");
consoleLog("selected: "+ dropBox.getSelectedIndex());
}
});
return hPanel;
}
这种方式既不起作用。
upd:所有在MainEntryPoint类中都有效,但是需要panel.add(new SomeClass()。getWidget()),这是不行的
答案 0 :(得分:0)
因此,您只需要从另一个类连接一个ListBox ChangeEvent
。你可以通过很多方式实现这一目标。这是两种简单的方法。
我们假设在class A
中定义了一个ListBox,并且您需要class B
中的处理程序。
class A
公开一个ListBox,并在class B
中使用它来设置处理程序。class A
中添加一个公共方法,在ListBox上设置处理程序,这将在class B
中使用。您需要将class A
的实例传递给class B
的构造函数。
public class A {
private ListBox dropBox;
public A() {
// constructor - set up dropBox
...
}
// first method - expose a dropBox
public ListBox getDropBox() {
return dropBox;
}
// second method - allow external handlers
public HandlerRegistration addListBoxChangeHandler(ChangeHandler handler) {
return dropBox.addChangeHandler(handler);
}
}
public class B {
private A instanceOfClassA;
public B(A instanceOfClassA) {
// constructor
this.instanceOfClassA = instanceOfClassA;
...
// first method - dropBox is exposed in class A
instanceOfClassA.getDropBox().addChangeHandler(handler);
// second method - add external handler
instanceOfClassA.addListBoxChangeHandler(handler);
}
}
第二种方法更优雅。
答案 1 :(得分:0)
不使用eventListener的原因:注意力不集中。
在使用eventListener 添加任何小部件之后,不要覆盖像<?php
// Creates a page full of jpg images found in the specified directory (current one if none specified)
function showFiles($findMe)
{
foreach (glob($findMe) as $filename)
echo "<img src='$filename'/>";
}
showFiles("*.jpg");
?>
这样的现成DOM的html内容