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

📄 main.java

📁 问题描述] 利用哈夫曼编码进行信息通信可以大大提高信道利用率
💻 JAVA
字号:
package hartech.kids.huffman;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import hartech.ui.*;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Website: www.hartech.cn </p>
 * <p>Page: http://www.hartech.cn/blog/blogview.asp?logID=87 </p>
 * <p>Date: 2006-09-07 </p>
 */
public class Main {
	static String default_text = "input your text here then chick the encode button";

	static Huffman huffman;

	static char[] fre = { ' ', 186, 'a', 64, 'b', 13, 'c', 22, 'd', 32, 'e',
			103, 'f', 21, 'g', 15, 'h', 47, 'i', 57, 'j', 1, 'k', 5, 'l', 32,
			'm', 20, 'n', 57, 'o', 63, 'p', 15, 'q', 1, 'r', 48, 's', 51, 't',
			80, 'u', 23, 'v', 8, 'w', 18, 'x', 1, 'y', 16, 'z', 1 };

	static JFrame jFrame;

	public static void main(String... args) {
		javax.swing.SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				huffman = new Huffman(fre);

				jFrame = new JFrame(
						"Huffman coder/decoder  ---- www.hartech.cn");
				jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

				// add
				jFrame.add(new UI(), BorderLayout.CENTER);
				jFrame.setSize(700, 180);
				J.goCenter(jFrame);
				jFrame.setVisible(true);
			}
		});
	}
}

class ActionListener_buttons implements ActionListener {
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equals("encode")) {
			UI.jtextArea_code.setText(Main.huffman.toCodes(UI.jtextArea_text
					.getText()));
		} else if (e.getActionCommand().equals("decode")) {
			UI.jtextArea_text.setText(Main.huffman.toChars(UI.jtextArea_code
					.getText()));
		} else if (e.getActionCommand().equals("tree")) {
			UI.createDialog(Main.huffman.printTree(), 520, 300);
		} else if (e.getActionCommand().equals("codes")) {
			UI.createDialog(Main.huffman.printCodes(), 350, 400);
		} else if (e.getActionCommand().equals("fres")) {
			StringBuffer out = new StringBuffer();
			for (int i = 0; i < Main.fre.length; i += 2) {
				out.append(Main.fre[i] + "\t");
			}
			out.append("\r\n");
			for (int i = 1; i < Main.fre.length; i += 2) {
				out.append((int) Main.fre[i] + "\t");
			}
			UI.createDialog(out.toString(), 600, 100);
		}

	}
}

⌨️ 快捷键说明

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