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-如何使用复选框在ListField中进行文本包装?_User Interface_Blackberry_Custom Controls_Word Wrap_Listfield - Fatal编程技术网

User interface Blackberry-如何使用复选框在ListField中进行文本包装?

User interface Blackberry-如何使用复选框在ListField中进行文本包装?,user-interface,blackberry,custom-controls,word-wrap,listfield,User Interface,Blackberry,Custom Controls,Word Wrap,Listfield,我正在创建一个列表字段,其中包含来自 但我不知道如何在列表字段中将文本换行。 我引用了线程 这里写的是 如果所有显示的都是文本,那么我将使用rab建议的方法 我只在列表字段中显示文本,如果列表字段不适合设备屏幕,我想将其包装。 但我没有得到“rab建议的方法”,在其中如何计算 String[]linesToDraw=根据行宽计算行数 我被这件事搞砸了,关于这个问题有什么细节吗 用你的逻辑我明白了 * split text on words * create string array and

我正在创建一个列表字段,其中包含来自
但我不知道如何在列表字段中将文本换行。
我引用了线程

这里写的是

如果所有显示的都是文本,那么我将使用rab建议的方法

我只在列表字段中显示文本,如果列表字段不适合设备屏幕,我想将其包装。
但我没有得到“rab建议的方法”,在其中如何计算

String[]linesToDraw=根据行宽计算行数

我被这件事搞砸了,关于这个问题有什么细节吗


用你的逻辑我明白了

* split text on words
* create string array and while words array not empty do
      o create string lineStr
      o while getFont().getAdvance(lineStr+" "+words[i]) < row width move words[i] to lineStr
*在单词上拆分文本
*创建字符串数组,而单词数组不为空
o创建字符串lineStr
o而getFont().getAdvance(lineStr+“”+words[i])<行宽将words[i]移动到lineStr
我是这样做的

if(getFont().getAdvance(lineStr+" "+words[i]) < Display.getWidth())
{
    lineStr += words[i];
}
if(getFont().getAdvance(lineStr+“”+words[i])
&我将线条str存储在向量linesToDraw中,与我用于存储下一行文本的线条str相同

&最后我在画画

for (int i = 0; i < linesToDraw.size(); i++)
{ 
          String textToDraw = (String)linesToDraw.elementAt(i);
          graphics.drawText(textToDraw, 0, y, 0, w);
          y += fontHeight;
}
for(int i=0;i
但是如何计算行数和行高

因此,使用此行高,我可以编写setRowHeight(rowHeight),因为不同行的行高不同


我根据行宽正确地得到行数并将其存储在向量中&我正在做

int fontHeight = this.getFont().getHeight();

     for (int i = 0; i < linesToDraw .size(); i++)
    {           
        textToDraw = (String)linesToDraw.elementAt(i);
        graphics.drawText(textToDraw, xpos, ypos, 0 , width);
        ypos += fontHeight;
    }
int-fontHeight=this.getFont().getHeight();
对于(int i=0;i
现在,它将绘制线,但默认情况下是在上一行的上方绘制listField。setRowHeight()只绘制一行。如果有r 2行,那么我在drawListRow()中写入setRowHeight(getFont().getHeight()*2),但随后它进入循环

如果我在创建ListField时写入setRowHeight(),则它会正常运行,但对于所有行,都会设置相同的行高

我在运行时获取要绘制的字符串&对于不同的行,行高应该是可变的,那么我如何使用什么参数设置行高(),使用哪种方法?

我认为“根据行宽计算行数”意味着:

  • 分词
  • 创建字符串数组,而单词数组不为空
    • 创建字符串lineStr
    • 而getFont().getAdvance(lineStr+“”+words[i])<行宽将words[i]移动到lineStr
最终,您将获得:

  • 字符串[]行与行之间的行
  • 行高=行长*(getFont().getHeight()+topMargin+bottomMargin)

好的。谢谢我将尝试使用它。@NullUserException刚才编辑的所有文本是从哪里来的?@MichaelDonohue来自我删除的OP发布的“答案”。@NullUserException谢谢。看起来像是SO的一些新功能,因为我看到很多黑莓问题现在都有了这个编辑。@MichaelDonohue,它已经存在了一段时间了。此外,当你达到1万个信誉点后,你会看到被删除的帖子。另请参见