1

指定されたExampleに Height 要素を追加できるかどうかを調べています。

指定できるように

public void drawString(Graphics g, String s, int x, int y, int width,int height)

テキストが高さを超えている場合、次のテキストに重なっています。

4

1 に答える 1

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;
    }
}
于 2012-12-21T11:18:21.147 に答える