前两天在调用TextArea的getSelectedText()时总是报索引值越界的错误,让我很是纳闷...
折腾了半天,搬开GXT源代码看。由于TextArea的getSelectedText()方法是从TextField方法继承而来.. so.. 在TextField.java中翻getSelectedText()的实现。
TextField中的getSelectedText()方法实现如下。
/**
* Returns the selected text.
*
* @return the selected text
*/
public String getSelectedText() {
int start = getCursorPos(), length = getSelectionLength();
return getRawValue().substring(start, start + length);
}
从此得知跟该方法有关的还有两个方法: getCursorPos()和getSelectionLength() 。。。
那么错误肯定处在这两个方法上, 于是写了个Demo来分别测试这两个方法, 最后发现是getCursorPos()无法在IE下取得正确的数值。
百般无奈之下,试了试GWT中的TextArea组件。。 惊奇的发现没有GXT中的错误。 取值很正确...
最后想了一个解决方案, 重新创建一个TextArea组件,继承与GWT的TextArea.. 然后使用Ext中的样式即可..
随后对Ext JS的TextArea组件的UI进行分析... 得出如下 css 样式设置:
1. 普通状态: 采用 x-form-field 样式
2. 获得焦点: 添加 x-form-focus 样式
3. 失去交单: 移除 x-form-focus 样式即可
具体代码如下:
import com.google.gwt.user.client.ui.FocusListener;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.Widget;
public class TransferTextArea extends TextArea {
public TransferTextArea() {
this.setStyleName("x-form-field");
final TransferTextArea instance = this;
this.addFocusListener(new FocusListener() {
public void onFocus(Widget sender) {
instance.addStyleName("x-form-focus");
}
public void onLostFocus(Widget sender) {
instance.removeStyleName("x-form-focus");
}
});
}
}
分享到:
相关推荐
这个是官方的英文帮助,对大家开发有帮助。里面描述所有gxt 的类的用法
GXT 学习的好书, 帮助你尽快进入GXT.
GXT Cascade ComboBox Samples
gxt初学进阶教程,教你一步一步使用gxt,容易上手,例子很详细
浪曦原创]GXT系列+第1讲+GXT_GWT的安装.
这是GTA4里的源文件american.gxt
贡献一个GXT项目给大家,希望对大家有所帮助!
gwt 文件上传 gxt文件上传
GXT 下拉树(Combo Tree)基本实现GXT 下拉树(Combo Tree)基本实现GXT 下拉树(Combo Tree)基本实现GXT 下拉树(Combo Tree)基本实现GXT 下拉树(Combo Tree)基本实现GXT 下拉树(Combo Tree)基本实现GXT 下拉树(Combo ...
gxt-api-2.2.1帮助文档 。
extjs gwt gxt 学习资源 ajax技术
本资源是目前的最新版本(9/15/11) gxt的工具非常之少,在CSDN还有一个gxt-2.1.1(2/2/2010)链接就不提供了,大家根据需要选择下载。
gxt-api-2.2.5 sdk doc 即ext-gwt api doc
GWT,GXT的JAR包以及源代码,需要的朋友可以下载。 谷歌推出的WebUI的JAVA的库。谢谢大家下载
一步一步教你新建GXT(EXT-GWT)项目
GXT2.2.4 GXT2.2.4 GXT2.2.4GXT2.2.4 GXT2.2.4 GXT2.2.4GXT2.2.4 GXT2.2.4 GXT2.2.4GXT2.2.4 GXT2.2.4 GXT2.2.4GXT2.2.4 GXT2.2.4 GXT2.2.4 jar
gxt.jar
gwt+gxt jar 包。。基于java语言编写前台界面,java语言最终会被编译成js。方便了不会js的java程序员编写前台
目前最适合gxt初学者学习的教程
gwt gxt 开发的项目。花了三、四个星期才写完的。