Gwt表格问题
我有一个gwt表单,它有大约70-100个小部件(文本框、列表框、自定义小部件等) 我正在尝试在这个表单中实现剪切、复制的功能。为此,我在表单顶部有两个按钮 现在我遇到的问题是,当我点击复制按钮时,在表单中聚焦的小部件失去了焦点,我不知道要复制哪个文本(或者在焦点到达复制按钮之前,哪个小部件最后聚焦) 我曾计划在所有小部件上实现模糊处理程序,但我觉得这是一个非常费力的解决方案,不是一个好的解决方案 我怎样才能避开这个问题Gwt表格问题,gwt,Gwt,我有一个gwt表单,它有大约70-100个小部件(文本框、列表框、自定义小部件等) 我正在尝试在这个表单中实现剪切、复制的功能。为此,我在表单顶部有两个按钮 现在我遇到的问题是,当我点击复制按钮时,在表单中聚焦的小部件失去了焦点,我不知道要复制哪个文本(或者在焦点到达复制按钮之前,哪个小部件最后聚焦) 我曾计划在所有小部件上实现模糊处理程序,但我觉得这是一个非常费力的解决方案,不是一个好的解决方案 我怎样才能避开这个问题 谢谢也许有更深入的见解的人可以提供更好的方法,但我相信添加模糊处理程序是完
谢谢也许有更深入的见解的人可以提供更好的方法,但我相信添加模糊处理程序是完全有效的。我不太明白你为什么认为这会很费劲,毕竟你不需要为每个小部件使用不同的处理程序,你只需要一个就可以了(对于各种控件,最多一对),这里有一个非常简单的例子
public class CustomBlurHandler implements BlurHandler{
Object lastSource;
String text;
@Override
public void onBlur(BlurEvent event) {
if (event.getSource() instanceof TextBox) {
lastSource = event.getSource();
text = textBox.getSelectedText();
}
}
public Object getLastSource() {
return lastSource;
}
public String getText() {
return text;
}
}
和onModuleLoad:
public class Test implements EntryPoint {
CustomBlurHandler handler = new CustomBlurHandler();
public void onModuleLoad() {
TextBox text1 = new TextBox();
TextBox text2 = new TextBox();
text1.addBlurHandler(handler);
text2.addBlurHandler(handler);
Button b = new Button("Get last selected text");
b.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert(handler.getLastSource()+ " " + handler.getText());
}
});
RootPanel.get().add(text1);
RootPanel.get().add(text2);
RootPanel.get().add(b);
}
}
我在一定程度上利用了你的想法。在我的小部件中放入一个静态变量,每当文本框中的某些文本发生变化时,该变量就会得到更新。为静态文本输入getter和setter,效果非常好!!!