在canvas里面怎么实现文本框的输入???

CityofSky 2003-09-29 04:27:32
一般情况下把textfield添加到form里面来实现对文本框的输入。但是这样的话,界面很难看,我就想创建一个canvas,在canvas里面实现这样的功能,不知能否解决?
...全文
1785 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
MrYoucheng 2004-02-11
  • 打赏
  • 举报
回复
说过中文不可能了 为什么不相信呢
自己用canvas写中文输入框是不可能的
简单的说是你不能控制输入法
深入的说是你不能调用native方法(输入法是用native控制的),我已经反编译过api的代码了

nomenn(西风瘦马) 的方法是唯一可行的方法 比较适合字母和数字
luler(高手,站住!你别跑!) 的方法应该不是楼主要的效果吧

大道理我也不说了 哪怕是国内顶级的公司,你看到过它们的j2me游戏中的排行榜输入姓名用了自己绘制的支持中文的文本输入框了嘛?

nomenn 2004-02-08
  • 打赏
  • 举报
回复
Display.getDisplay(BustRoyal.instance).setCurrent(this);//这样显示的话不是把原来的Canvas画面给替盖掉了?我觉得楼主的意思不是这样的吧??

我也碰到了这样的情况:自己写的一个Canvas中,如果想要求可以输入字母(这里使用英文就可以了),前提条件是显示的Display还是我自己所写的Canvas,如果这样的话 应该怎么实现呢?
难道首先画出一个监听键盘按键,然后判断什么字母,最后调用repaint(...)函数重新绘画么?
luler 2004-02-07
  • 打赏
  • 举报
回复
刚看到的,还没仔细看呢,您先看吧.
luler 2004-02-07
  • 打赏
  • 举报
回复
在canvas类里调用textbox
/**
* TextBox's instance
*/
private TextBox inputName = null;

/**
* 「cancel」Command
* command in TextBox
*/
private Command cCancel = new Command("cancel", Command.CANCEL, 1);

/**
* 「ok」Command
* command in TextBox
*/
private Command cOK = new Command("ok", Command.OK, 1);

/**
* 保存在TextBox中已输入的值
*/
private String name = "";

/**
* 调用TextBox
* The method disposes the key pressing action
* the code of pressed key
* @param key
*/
public void keyPressed(int key) {
if (key == Canvas.FIRE) {
inputName = new TextBox("请输入姓名", name, 8, TextField.ANY);
inputName.addCommand(cCancel);
inputName.addCommand(cOK);
inputName.setCommandListener(this);
Display.getDisplay(BustRoyal.instance).setCurrent(inputName);
//其中BustRoyal.instance为MIDlet的实例
}
}


/**
* TextBox中的command的处理
*/
public void commandAction(Command c, Displayable d) {
if (c == cCancel) {
Display.getDisplay(BustRoyal.instance).setCurrent(this);
} else if (c == cOK) {
name = inputName.getString().trim();
Display.getDisplay(BustRoyal.instance).setCurrent(this);
}
}
hx 2004-02-07
  • 打赏
  • 举报
回复
最简单的方法,做一个高级图层,切换一下。
hx 2004-02-07
  • 打赏
  • 举报
回复
可以。。
MrYoucheng 2003-10-01
  • 打赏
  • 举报
回复
如果输入中文 那么不可能
(如果中文的字符集比较小也可能 要自己做的表)
flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 1.3节.创建ActionScript项目 1.4节.在FlexBuilder中设置MXML编译器选项 1.5节.在FlexBuilder外部编译Flex项目 1.6节.在MXML中添加事件监听器 1.7节.设置子节点属性 1.8节.定义数组和对象 1.9节.在ActionScript中设置变量的作用域 1.10节.在ActionScript中创建组件 1.11节.使用事件冒泡机制 1.12节.使用代码隐藏模式分离MXML和ActionScript 1.13节.组件属性绑定 1.14节.使用自定义事件以及事件数据传递 1.15节.监听键盘事件 1.16节.定义方法参数 1.17节.检测对象数据类型 1.18节.接口的定义和实现 第二章. 控件与菜单(37) 2.1节. 监听按钮点击 2.2节. 创建一组状态按钮 2.3节. 使用ColorPicker设置Canvas颜色 2.4节. 使用SWFLoader载入SWF 2.5节. 设置组件的标签索引 2.6节. 设置控件的labelFunction 2.7节. 提供菜单数据 2.8. 动态填充菜单 2.9节. 为菜单类控件创建事件处理函数 2.10节. 显示一个通知窗口 2.11节. 使用Calendar控件 2.12节. 弹出窗口的显示和位置 2.13节. 自定义弹出式窗口边框 2.14节. 处理focusIn和focusOut事件 第三章容器(65) 3.1 节使用布局管理器布置子组件 3.2 节通过百分比方式配置容器的布局和尺寸 3.3节. 以不同的坐标系统跟踪鼠标位置 3.4 节在容器中动态添加和移除子组件 3.5 节对容器使用基于约束的布局 3.6 节在容器内为子组件设置最大、最小尺寸 3.7 节为容器指定行和列的约束 3.8 节使用约束条件为文本创建排版流程(Layout Flows) 3.9 节在容器内控制滚动和溢出 3.10 节控制Box 组件的布局 3.11 节使用容器初始化 3.12 节创建TitleWindow 3.13 节通过LinkBar 控制ViewStack 3.14 节将ViewStack 的选中索引数绑定到一个变量上 3.15 节使用延迟实例化提高启动效率 3.16 节创建并控制可调整大小的容器 3.17节在TabNavigator内创建、启用和禁用TAB组件(TabControls) 3.18 节使用可关闭Tabs 创建一个TabNavigator 3.19 节创建和控制Alert 3.20 节根据呼出组件设置对话框的尺寸和位置 3.21 节管理多个弹出对话框 3.22 节在容器中滚动到某个指定的子组件 3.23 节使用IdeferredInstance 创建模板 3.24 节手动布局容器 3.25 节测量并改变容器尺寸 3.26 节控制子组件的可见性和布局 3.27 节用简单重组行为创建Tile 容器 3.28 节给Hbox 设置背景图片和圆角 3.29 节控制子组件的位置和滚动 第四章文本(121) 4.1节正确的设置一个文本对象的值 4.2节. 将TextInput绑定一个值 4.3节. 创建一个具有文字提示的文本输入框 4.4节. 创建一个合适的编辑器 4.5节. 确定用户电脑上安装的所有字体 4.6节. 创建一个自定义的TextInput 4.7节. 为一段文本设置风格属性 4.8节.在HTML里显示图片和SWF文档 4.9节. 在一个搜索域中高亮显示用户输入 4.10节. 把字符当作独立图像处理 4.11节. 指定TextField中的HTML样式 4.12节. 使用RichTextEditor 4.13节. 在HTML中应用嵌入字体 4.14节. 给一个Text 组件中的文本添加拖拽阴影 4.15节. 找出一个TextArea 中最后显示的字符 第五章Lists,Tiles,和Trees(147) 5.1 节.创建可编辑的list 组件 5.2节.为List的某项设置图标 5.3 节. 为List的内容变更添加特效 5.4为TileList创建一个基本的条目渲染器 5.5节.为Tree设置XML数据 5.6节.为Tree创建项渲染器 5.7节.在Tree控件中使用复杂数据对象 5.8节.只允许List的某一项可被选中 5.9节.为List的项编辑器添加格式化和验证数据 5.10节.跟踪TileList中所有被选中的子节点 5.11节.使用和显示项渲染器的N

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧