tools.java

来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 683 行 · 第 1/2 页

JAVA
683
字号
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   Tools.java

package se.southend.drops.tools;

import java.io.PrintStream;
import java.util.Random;
import java.util.Vector;
import javax.microedition.lcdui.*;
import se.southend.drops.gui.TextPart;
import se.southend.drops.gui.TextStyle;

// Referenced classes of package se.southend.drops.tools:
//            ArrayList

public class Tools
{

    public Tools()
    {
    }

    public static Random getRandom()
    {
        if(random == null)
            random = new Random();
        return random;
    }

    public static Image loadImage(String filename, Image dest)
    {
        return dest != null ? dest : loadImage(filename);
    }

    public static Image loadImage(String filename)
    {
        if(filename == null)
            break MISSING_BLOCK_LABEL_42;
        Image image = Image.createImage(filename);
        return image;
        Exception e;
        e;
        System.out.println("Warning: Image not found '" + filename + "'");
        return null;
    }

    public static final void drawString(Graphics g, String str, int x, int y, int anchor, int fColor, int oColor)
    {
        g.setColor(oColor);
        g.drawString(str, x - 1, y - 1, anchor);
        g.drawString(str, x + 1, y - 1, anchor);
        g.drawString(str, x - 1, y, anchor);
        g.drawString(str, x + 1, y, anchor);
        g.drawString(str, x - 1, y + 1, anchor);
        g.drawString(str, x + 1, y + 1, anchor);
        g.setColor(fColor);
        g.drawString(str, x, y, anchor);
    }

    public static final void sleep(long millis)
    {
        try
        {
            Thread.sleep(millis);
        }
        catch(InterruptedException e)
        {
            e.printStackTrace();
        }
    }

    public static final void printStackTrace()
    {
        try
        {
            throw new Exception("Print stack trace");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    public static final long getUsedMem()
    {
        System.gc();
        return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
    }

    public static final long getFreeMem()
    {
        System.gc();
        return Runtime.getRuntime().freeMemory();
    }

    public static final long getTotalMem()
    {
        return Runtime.getRuntime().totalMemory();
    }

    public static int getFontSize(int pixelHeight)
    {
        if(mediumHeight == 0)
        {
            int sizes[] = {
                8, 0
            };
            String fontString = "L\324gh";
            for(int i = 0; i < sizes.length; i++)
            {
                Font font = Font.getFont(64, 0, sizes[i]);
                Image img = Image.createImage(font.stringWidth(fontString), font.getHeight());
                Graphics g = img.getGraphics();
                g.setFont(font);
                g.setColor(0);
                g.drawString(fontString, 0, 0, 20);
                int width = img.getWidth();
                int height = img.getHeight();
                int rgb[] = new int[width * height];
                img.getRGB(rgb, 0, width, 0, 0, width, height);
                int top = -1;
                int bottom = -1;
                for(int y = 0; y < height && (top == -1 || bottom == -1); y++)
                {
                    for(int x = 0; x < width; x++)
                    {
                        if(top == -1 && rgb[x + y * width] != -1)
                            top = y;
                        if(bottom == -1 && rgb[x + (height - y - 1) * width] != -1)
                            bottom = height - y;
                    }

                }

                if(i == 0)
                    smallHeight = bottom - top;
                if(i == 1)
                    mediumHeight = bottom - top;
            }

        }
        if(pixelHeight <= smallHeight)
            return 8;
        return pixelHeight > mediumHeight ? 16 : 0;
    }

    public static String getProtocol(String url)
    {
        int next = url.indexOf("://");
        next = next < 0 ? 0 : (next += 3);
        return url.substring(0, next);
    }

    public static String getHost(String url)
    {
        int next = url.indexOf("://");
        next = next < 0 ? 0 : (next += 3);
        return url.substring(next, url.indexOf(47, next) + 1);
    }

    public static String getPath(String url)
    {
        int next = url.indexOf("://");
        next = next < 0 ? 0 : (next += 3);
        return url.substring(url.indexOf(47, next) + 1, url.lastIndexOf(47) + 1);
    }

    public static String getFilename(String url)
    {
        return url.substring(url.lastIndexOf(47) + 1);
    }

    public static String padString(String str, int nbrCharacters, char padding)
    {
        if(nbrCharacters > str.length())
        {
            StringBuffer buffer = new StringBuffer(nbrCharacters);
            for(int i = nbrCharacters - str.length(); i > 0; i--)
                buffer.append(padding);

            for(int i = 0; i < str.length(); i++)
                buffer.append(str.charAt(i));

            return buffer.toString();
        } else
        {
            return str;
        }
    }

    public static String[] parseStrings(String str)
    {
        return parseStrings(str, ',');
    }

    public static String[] parseStrings(String str, char delimiter)
    {
        if(str == null)
            return null;
        int index = 0;
        int next = str.indexOf(delimiter);
        ArrayList strings = new ArrayList();
        for(; next >= 0; next = str.indexOf(delimiter, index))
        {
            strings.add(str.substring(index, next).trim());
            index = next + 1;
        }

        strings.add(str.substring(index).trim());
        String result[] = new String[strings.size()];
        strings.toArray(result, 0);
        return result;
    }

    public static int[] parseInts(String str)
    {
        return parseInts(str, ',');
    }

    public static int[] parseInts(String str, char delimiter)
    {
        String strings[] = parseStrings(str);
        if(strings == null)
            return null;
        int ints[] = new int[strings.length];
        for(int i = 0; i < strings.length; i++)
            try
            {
                ints[i] = Integer.parseInt(strings[i]);
            }
            catch(Exception e)
            {
                ints[i] = 0;
            }

        return ints;
    }

    public static String format(String quote)
    {
        int bufpos = 0;
        int length = quote.length();
        char buf[] = new char[length];
        for(int pos = 0; pos < length; pos++)
        {
            int test = quote.charAt(pos);
            if(test == 92 && pos < length - 1)
            {
                int temp = quote.charAt(++pos);
                switch(temp)
                {
                case 97: // 'a'
                    temp = 7;
                    break;

                case 98: // 'b'
                    temp = 8;
                    break;

                case 102: // 'f'
                    temp = 12;
                    break;

                case 110: // 'n'
                    temp = 10;
                    break;

                case 114: // 'r'
                    temp = 13;
                    break;

                case 116: // 't'
                    temp = 9;
                    break;

                case 118: // 'v'
                    temp = 11;
                    break;

                case 99: // 'c'
                case 100: // 'd'
                case 101: // 'e'
                case 103: // 'g'
                case 104: // 'h'
                case 105: // 'i'
                case 106: // 'j'
                case 107: // 'k'
                case 108: // 'l'
                case 109: // 'm'
                case 111: // 'o'
                case 112: // 'p'
                case 113: // 'q'
                case 115: // 's'
                case 117: // 'u'
                default:
                    buf[bufpos++] = (char)test;
                    break;
                }
                buf[bufpos++] = (char)temp;
            } else
            {
                buf[bufpos++] = (char)test;
            }
        }

        return String.valueOf(buf, 0, bufpos);
    }

    public static int firstIndexOfAnyChar(String str, String chars, int startOffset)
    {
        for(int i = startOffset; i < str.length(); i++)
            if(chars.indexOf(str.charAt(i)) >= 0)
                return i;

        return -1;
    }

    private static void parseFontParam(String src, int startOffset, int stopOffset, TextStyle style)
    {
        int pos = src.indexOf(" color=\"#", startOffset);
        if(pos >= startOffset && pos + 16 <= stopOffset)
        {
            pos += 9;
            int red = Integer.parseInt(src.substring(pos, pos + 2), 16);
            pos += 2;
            int green = Integer.parseInt(src.substring(pos, pos + 2), 16);
            pos += 2;
            int blue = Integer.parseInt(src.substring(pos, pos + 2), 16);
            style.color = red << 16 | green << 8 | blue;
        }
    }

    private static String parseLinkParam(String src, int startOffset, int stopOffset)
    {
        int linkPos = src.indexOf("href=\"", startOffset);
        if(linkPos >= startOffset && linkPos + 7 <= stopOffset)
        {
            int endPos = src.indexOf(34, linkPos + 6);
            if(endPos > linkPos && endPos <= stopOffset)
                return src.substring(linkPos + 6, endPos);

⌨️ 快捷键说明

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