在做项目的时候,遇到屏幕分行显示文字的问题,参考了部分资料之后,写了如下解决方案(没有考虑英文单词避免换行的问题):

public void paint(Graphics g) {
    Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,
                             Font.SIZE_MEDIUM);

    g.setColor(125, 125, 125);
    g.fillRect(0, getHeight() / 2, getWidth(), getHeight());
    g.setFont(font);
    g.setColor(0, 0, 0);
    Vector vc = MulString("屏幕分行显示解决方法!屏幕分行显示解决方法!屏幕分行显示解决方法!");
    for (int i = 0; i < vc.size(); i++) {
        g.drawString(vc.elementAt(i).toString(), 0,
                     (getHeight() / 2 + getHeight() / 4 + font.getHeight() * i),
                     0);
    }
}

protected Vector MulString(String string) {
    Vector vc = new Vector();

    Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,
                             Font.SIZE_MEDIUM);
    int width = 0; //记录当前宽度,如果大于屏幕宽度,就添加到Vector
    int iPre = 0; //添加到Vector中字符串在原字符串中的起始位
    int iNum = 0; //原字符串的总长度
    for (int i = 0; i < string.length(); i++) {
        iNum++;
        width += font.charWidth(string.charAt(i));
        if (width >= (getWidth() - 2)) {
            vc.addElement(string.substring(iPre, i));
            iPre = i;
            width = 0;
        }
    }
    vc.addElement(string.substring(iPre, iNum));
    return vc;
}