bitstats.java

来自「用java实现的自适应哈夫曼算法」· Java 代码 · 共 82 行

JAVA
82
字号

import java.awt.*;


public class BitStats extends Panel {

    BitStats (Color foreground, Color background) {

        fontColor = foreground;
        backColor = background;

        textFont = this.getFont();

    }

    public void addBits (int raw, int compressed) {


        charsent++;
        rawbits += raw;
        compbits += compressed;
        ratio = (int)((1 - ((float)(compbits))/((float)(rawbits))) * 100);

        repaint();


    }



    public void paint(Graphics g) {

        Dimension size = size();

        g.setFont(textFont);

       metrics = g.getFontMetrics();
       height = metrics.getHeight();
       descent = metrics.getDescent();
       buffer = metrics.stringWidth("8888");


        g.setColor(backColor);
        g.fillRect(0, 0, size.width, size.height);

        g.setColor(fontColor);

        g.drawString("Chars Sent ", 5, (height) );
        g.drawString("Bits uncomp", 5, 2*(height) );
        g.drawString("Bits comp  ", 5, 3*(height) );
        g.drawString("Comp ratio ", 5, 4*(height) );

        g.drawString("" + charsent, (size.width-buffer), height );
        g.drawString("" + rawbits, (size.width-buffer), 2*height );
        g.drawString("" + compbits, (size.width-buffer), 3*height );
        g.drawString("" + ratio + "%" , (size.width-buffer), 4*height );





    }




    int rawbits, compbits = 0;
    int charsent, ratio = 0;


    Color fontColor;
    Color backColor;

    Font textFont;
    FontMetrics metrics;
    int height;
    int descent;
    int buffer;

}

⌨️ 快捷键说明

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