我正在查看是否可以在给定的Example中添加高度元素。
这样我就可以指定
public void drawString(Graphics g, String s, int x, int y, int width,int height)
现在,如果我的文字超过高度,则它会在下一个文本上重叠。
答案 0 :(得分:0)
我没有测试过,但这可能会帮助你解决问题..
public void drawString(Graphics g, String s, int x, int y, int width, int height) {
// FontMetrics gives us information about the width,
// height, etc. of the current Graphics object's Font.
FontMetrics fm = g.getFontMetrics();
int lineHeight = fm.getHeight();
int curX = x;
int curY = y;
int totalHeight = 0;
String[] words = s.split(" ");
String word = "";
// end of words array wasn't reached and still some space left
for(int i = 0; i < words.length && totalHeight <= height; i++) {
// Find out thw width of the word.
int wordWidth = fm.stringWidth(word + " ");
// If text exceeds the width, then move to next line.
if (curX + wordWidth >= x + width) {
curY += lineHeight;
totalHeight += lineHeight;
curX = x;
}
g.drawString(word, curX, curY);
// Move over to the right for next word.
curX += wordWidth;
}
}