⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringlayout.java

📁 这是一个毕业设计的泡泡堂源代码
💻 JAVA
字号:
package com.cpiz.poptang;
import java.util.Vector;

import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;

/**
 * <p>
 * Title:
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2004
 * </p>
 * <p>
 * Company: Bluecell
 * </p>
 * 
 * @author not attributable
 * @version 1.0
 */

public class StringLayout
{
    public int layoutWidth, layoutHeight, layoutX, layoutY;
    private int lineGap;
    private String text;
    private int fontHeight;
    private int lineCount;
    private Vector line;
    private Font font = null;
    private int currLine = 0;
    public boolean isChange = false;

    /**
     * 构造函数
     * @param Str 布局中的字符串
     * @param LayoutX 布局顶点X
     * @param LayoutY 布局顶点Y
     * @param LayoutWidth 布局宽度
     * @param LayoutHeight 布局高度
     * @param Gap 行距
     * @param font 字体
     */
    public StringLayout(String Str, int LayoutX, int LayoutY, int LayoutWidth,
            int LayoutHeight, int Gap, Font font)
    {
        text = Str;
        layoutX = LayoutX;
        layoutY = LayoutY;
        layoutWidth = LayoutWidth;
        layoutHeight = LayoutHeight;
        lineGap = Gap;
        this.font = font;

        int begin = 0;
        fontHeight = font.getHeight();
        lineCount = 0;
        line = new Vector(5, 2);
        for (int i = 0; i < text.length(); i++)
        {
            char ch = text.charAt(i);
    
            if (font.stringWidth(text.substring(begin, i + 1)) >= layoutWidth
                    || i == text.length() - 1 || ch == '\n')
            { // layoutWidth-3中的3为偏移值
                if(i == text.length() - 1)
                    i++;
                line.addElement(text.substring(begin, i));
                if (ch == '\n')
                    begin = i + 1;
                else
                    begin = i;
                lineCount++;
            }
        }
    }

    /**
     * 画出字符串
     */
    public void draw(Graphics g, int x, int y)
    {
        int i1 = g.getClipX();
        int j1 = g.getClipY();
        int k1 = g.getClipWidth();
        int l1 = g.getClipHeight();

        g.setClip(layoutX, layoutY, layoutWidth, layoutHeight);
        g.setFont(font);
        for (int i = currLine; i < line.size(); i++)
        {
            String s = (String) line.elementAt(i);
            g.drawString(s, x, y + (i - currLine) * (fontHeight + lineGap),
                    Graphics.TOP | Graphics.LEFT);
        }

        g.setClip(i1, j1, k1, l1);
        isChange = false;
    }

    /**
     * 是否还能向后滚动
     * @return
     */
    public boolean isNext()
    {
        if (currLine < lineCount - 1)
            return true;
        else
            return false;
    }

    /**
     * 向后滚行
     */
    public void next()
    {
        if (currLine < lineCount - 1)
        {
            currLine++;
            isChange = true;
        }
    }
    
    /**
     * 是否还能向前滚动
     * @return
     */
    public boolean isPrev()
    {
        if (currLine > 0)
            return true;
        else
            return false;
    }

    /**
     * 向前滚行
     */
    public void prev()
    {
        if (currLine > 0)
        {
            currLine--;
            isChange = true;
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -