我在JPanel
中有2 JFrame
个对象,我想在1个面板中显示文本,在另一个面板中显示图片。但是当文字太长时间它消失在图像后面时,我不希望这种情况发生,但我也不希望这个词被分开,所以如果这个词对于其余部分来说太长了它应该转到下一行。
顺便说一句,我使用paintcomponent绘制文本,我使用g.drawstring。
我的代码如下所示:
StringBuilder sb = new StringBuilder($question.getQuestion());
/* After every 30 characters place a \n character, here is where the string will go to the nextline and write the rest of the question there */
int x = 0;
while ((x = sb.indexOf(" ", x + 30)) != -1) {
sb.replace(x, x + 1, "\n");
}
/* Reset x for drawing purposes with a decent offset */
x = 0;
/* Split the string on \n now */
for (String line : sb.toString().split("\n")){
g.drawString(line, 20, 120 + (x*75)); /* Draw the part of the question, x*75 is used for spacing between the substrings of the question */
x++; /* Increment x for drawing purposes with a decent offset */
}
但是这仍然不起作用,如果它是一个非常长的词,它不能分割出来。 编辑:我发现问题是我正在寻找一个' ',但如果该空间不会很快发生,它将继续将字符写在另一个jpanel后面。我该如何解决这个问题?
有什么想法吗?