User interface 仅在BlackBerry的文本框中更改特定文本的颜色
如何仅在Blackberry应用程序的文本框中更改特定文本的颜色?您是否签出了ActiveRichTextField?我自己只使用过RichTextField,但它看起来像ActiveRichTextField允许您为文本区域指定字体和格式之外的颜色。要让这些字段运行起来需要一点设置,但是查看javadoc for RichTextField,它给出了一个很好的解释 下面是一些示例代码:User interface 仅在BlackBerry的文本框中更改特定文本的颜色,user-interface,blackberry,java-me,User Interface,Blackberry,Java Me,如何仅在Blackberry应用程序的文本框中更改特定文本的颜色?您是否签出了ActiveRichTextField?我自己只使用过RichTextField,但它看起来像ActiveRichTextField允许您为文本区域指定字体和格式之外的颜色。要让这些字段运行起来需要一点设置,但是查看javadoc for RichTextField,它给出了一个很好的解释 下面是一些示例代码: int offsets[] = new int[]{0, 5, 11}; Font[] fonts = ne
int offsets[] = new int[]{0, 5, 11};
Font[] fonts = new Font[]{Font.getDefault(), Font.getDefault()};
int bg[] = new int[]{Color.WHITE, Color.WHITE};
int fg[] = new int[]{Color.BLACK, Color.GREEN};
byte attributes[] = new byte[]{0, 1};
add(new ActiveRichTextField("Hello world", offsets, attributes, fonts, fg, bg, 0));
正如Fostah在评论中所说,TextBox类在改变外观方面不是很灵活。甚至许多“Field”类的外观也很难改变 但是,如果您有一定的灵活性,可以使用诸如EditField(或其变体)之类的字段来代替TextBox,那么它应该只是覆盖paint方法的情况。比如:
protected void paint(Graphics graphics) {
graphics.setColor(Color.RED);
super.paint(graphics);
}
不幸的是,答案是滚动你自己的-没有可编辑的文本字段控件可以让你改变字体颜色@马克·诺瓦科夫斯基的答案是解决这个问题的标准方法,但会将所有文本更改为一种颜色 如果您不担心支持Pearl风格的SureType键盘,那么您可以覆盖ActiveRichTextField上的keyChar并手动向ActiveRichTextField中的文本添加字符 对于SureType字段,答案更糟-对于非qwerty手机(Pearl系列),您没有对SureType API的低级别访问权限(用于正确处理预测文本弹出),因此您必须求助于一些真正的技巧,以获得一个完全自定义的文本字段,以便在这些设备上正确运行。这可能归结为必须在一个管理器中安排多个EditField,例如,覆盖一个EditField以显示read(如Marks的回答)。这里的技巧是根据需要动态创建和添加文本字段
是的,有时候RIMAPI让简单的事情变得容易,而困难的事情几乎不可能。你是说TextField吗?TextBox是J2ME的lcdui的一部分,你不能改变它的外观。是的,我只是指TextField。想用红色指定一些文本的颜色,其余的用黑色…我试着用ActiveRichTextField。它给了我我想要的完美的东西。但是上面的文本字段不允许我编辑文本…我尝试将此ActiveRichTextField的属性设置为可编辑,但它不起作用…Jazz,您希望用户可以编辑该字段吗?还是你?你想让这个用户输入的文本变成红色吗??