Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 仅在BlackBerry的文本框中更改特定文本的颜色_User Interface_Blackberry_Java Me - Fatal编程技术网

User interface 仅在BlackBerry的文本框中更改特定文本的颜色

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

如何仅在Blackberry应用程序的文本框中更改特定文本的颜色?

您是否签出了ActiveRichTextField?我自己只使用过RichTextField,但它看起来像ActiveRichTextField允许您为文本区域指定字体和格式之外的颜色。要让这些字段运行起来需要一点设置,但是查看javadoc for RichTextField,它给出了一个很好的解释

下面是一些示例代码:

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,您希望用户可以编辑该字段吗?还是你?你想让这个用户输入的文本变成红色吗??