如何解决TextField-在用户开始键入文本之前显示提示
| 我正在开发Blackberry应用程序。我想在用户开始输入之前在TextField中显示提示文本。当用户开始输入时,提示文本应该消失,当TextField中有0个字符时,它应该显示。有人实现了吗?然后分享。解决方法
protected void paint(Graphics g)
{
if(super.getText().length() == 0)
{
g.setColor(Color.GRAY);
g.drawText(\"MMYY\",0);
}
g.setColor(Color.BLACK);
super.paint(g);
};
, 这是我的尝试-这是完整的代码,您可以在JDE 6.x中运行它。
当您键入内容时,灰色字符串“搜索”将消失:
border.png:
src \\ mypackage \\ MyEdit.java:
package mypackage;
import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.decor.*;
public class MyEdit extends UiApplication {
public static void main(String args[]) {
MyEdit app = new MyEdit();
app.enterEventDispatcher();
}
public MyEdit() {
pushScreen(new MyScreen());
}
}
class MyScreen extends MainScreen {
Border myBorder = BorderFactory.createBitmapBorder(
new XYEdges(20,16,27,23),Bitmap.getBitmapResource(\"border.png\"));
BasicEditField myField = new BasicEditField(TextField.NO_NEWLINE) {
protected void paint(Graphics g) {
if (getTextLength() == 0) {
g.setColor(Color.LIGHTGRAY);
g.drawText(\"Search\",0);
}
g.setColor(Color.BLACK);
super.paint(g);
}
};
public MyScreen() {
myField.setBorder(myBorder);
setTitle(myField);
}
}
, 这是paint()方法中的实现
String test = super.getText();
if ( test == null || test.length() < 1 ) {
graphics.setColor( 0x00a0a0a0 );
graphics.drawText(hint,0);
}
这是感谢peter_strange的来源
http://supportforums.blackberry.com/t5/Java-Development/Prompt-hint-place-holder-text-on-a-Numeric-Password-edit-field/m-p/990817#M151704
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。