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

📄 compressgui.java

📁 根据huffman树的一个压缩程序
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;
public class CompressGui implements ActionListener {
	private JButton chooseCom=new JButton("Select",new ImageIcon("seek.jpg"));
	private JButton chooseDec=new JButton("Select",new ImageIcon("seek.jpg"));
	private JButton compress=new JButton("Compress to…",new ImageIcon("compress.jpg"));
	private JButton decompress=new JButton("Decompress to…",new ImageIcon("decompress.jpg"));
	private JButton OK=new JButton("OK");
	private JButton Help=new JButton("Help");
	private JButton Exit=new JButton("Exit");
	private JTabbedPane huffmanGui=new JTabbedPane();
	private String inputName="";
	private String outputName="";
	private String fileName="";
	private JTextField text1=new JTextField();
	private JTextField text2=new JTextField();
	private JTextField text3=new JTextField();
	private JTextField text4=new JTextField();
	private JTextField text5=new JTextField(15);
	private JTextArea pan = new JTextArea("    Welcome to use the compress software!\n\n\n You can select compress or decompress \nby mouse click. And after that you can choose \n   the file to deal with and where to put it.\n   And even you can select whatever name \n   that the object file should be as you like!\nThe compress proportion may be about 25% within the Huffman code") { 
	    public void paintComponent(Graphics g) { 
	    g.drawImage(new ImageIcon("winxpal9.jpg").getImage(), 0, 0, null); 
	     super.paintComponent(g); 
	    } 
	 };
	
	private JFileChooser chooser=new JFileChooser();
	public CompressGui(){
		JFrame frame=new JFrame();
		frame.getContentPane().setBackground(Color.black);
		
		chooser.cancelSelection();
		chooser.updateUI();
		chooser.approveSelection();
		chooser.setBackground(Color.black);
		
		JPanel com=new JPanel();
		JPanel dec=new JPanel();
		JPanel chooseSourceCom=new JPanel();
		JPanel chooseSourceDec=new JPanel();
		JPanel compressTo=new JPanel();
		JPanel decompressTo=new JPanel();
		JPanel centerPanel=new JPanel();
		JPanel bottom=new JPanel();
		
		chooseCom.addActionListener(this);
		chooseDec.addActionListener((ActionListener) this);
		compress.addActionListener((ActionListener) this);
		decompress.addActionListener((ActionListener) this);
		OK.addActionListener((ActionListener) this);
		Help.addActionListener((ActionListener) this);
		Exit.addActionListener((ActionListener) this);
		
		bottom.setLayout(new FlowLayout());
		bottom.add(OK);
		bottom.add(Help);
		bottom.add(Exit);
		bottom.setBackground(Color.black);
		
		centerPanel.setLayout(new FlowLayout());
		centerPanel.add(new JLabel("Please enter filename:  "));
		//centerPanel.setFont(new Font());
		centerPanel.setBackground(Color.black);
		centerPanel.add(text5);
		text5.setText("compress.z");
		
		chooseSourceCom.setLayout(new BorderLayout());
		chooseSourceDec.setLayout(new BorderLayout());
		compressTo.setLayout(new BorderLayout());
		decompressTo.setLayout(new BorderLayout());
		chooseSourceCom.add(new Label("Choose source:"),BorderLayout.WEST);
		chooseSourceDec.add(new Label("Choose source:"),BorderLayout.WEST);
		chooseSourceCom.add(chooseCom,BorderLayout.EAST);
		chooseSourceDec.add(chooseDec,BorderLayout.EAST);
		compressTo.add(new Label("Compress to:"),BorderLayout.WEST);
		compressTo.add(compress,BorderLayout.EAST);
		decompressTo.add(new Label("Decompress to:"),BorderLayout.WEST);
		decompressTo.add(decompress,BorderLayout.EAST);
		
		huffmanGui.add(com,"compress");
		huffmanGui.add(dec,"decompress");
		com.setLayout(new GridLayout(4,1));
		dec.setLayout(new GridLayout(4,1));
		com.add(chooseSourceCom, 0);
		com.add(text1,1);
		com.add(compressTo,2);
		com.add(text2,3);
		dec.add(chooseSourceDec,0);
		dec.add(text3,1);
		dec.add(decompressTo,2);
		dec.add(text4,3);
		
		huffmanGui.setForegroundAt(0, Color.blue);
		huffmanGui.setForegroundAt(1, Color.blue);
		huffmanGui.setIconAt(0, new ImageIcon("compress.jpg"));
		huffmanGui.setIconAt(1, new ImageIcon("decompress.jpg"));
		huffmanGui.setBackgroundAt(0, Color.black);
		huffmanGui.setBackgroundAt(1, Color.black);
		huffmanGui.setToolTipTextAt(0,"compress");
		huffmanGui.setToolTipTextAt(1,"decompress");
		
		frame.getContentPane().add(huffmanGui,BorderLayout.NORTH);
		frame.getContentPane().add(bottom,BorderLayout.SOUTH);
		frame.getContentPane().add(centerPanel,BorderLayout.CENTER);
		frame.setResizable(false);
		frame.setTitle("HuffmanCompress");
		frame.setSize(320,250);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
	}
	
	public String addSlash(String s){
		StringTokenizer tokenizer=new StringTokenizer(s,"\\");
		String aft=tokenizer.nextToken();
		while(tokenizer.hasMoreTokens()){
			aft+="\\"+"\\"+tokenizer.nextToken();
		}
		return aft;
	}
	public void actionPerformed(ActionEvent e){	
		
		if(e.getSource()==chooseCom){
			chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
			chooser.showOpenDialog(null);
			if(chooser.getSelectedFile()!=null){
				fileName=chooser.getSelectedFile().getName();
				inputName=chooser.getSelectedFile().getAbsolutePath();
				text1.setText(inputName);
			}
		}
		else if(e.getSource()==chooseDec){
			chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
			chooser.showOpenDialog(null);
			if(chooser.getSelectedFile()!=null){
				inputName=chooser.getSelectedFile().getAbsolutePath();
				text3.setText(inputName);
				text5.setText(fileName);
				
			}
		}
		else if(e.getSource()==compress){
			chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY   );
			chooser.showOpenDialog(null);
			if(chooser.getSelectedFile()!=null){
				outputName=chooser.getSelectedFile().getAbsolutePath()+"\\";
				text2.setText(outputName);
			}
		}	
		else if(e.getSource()==decompress){
			chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY   );
			chooser.showOpenDialog(null);
			if(chooser.getSelectedFile()!=null){
				outputName=chooser.getSelectedFile().getAbsolutePath()+"\\";
				text4.setText(outputName);
			}
		}
		else if(e.getSource()==OK){
			if(huffmanGui.getSelectedIndex()==0){
				new CompressFile().compress(addSlash(text2.getText()+text5.getText()), addSlash(text1.getText()));
			}
			else{
				new DecompressFile().decompress(addSlash(text4.getText()+text5.getText()),addSlash(text3.getText()));			
			}
		}
		else if(e.getSource()==Help){
			JFrame helpframe=new JFrame();
			//JTextArea jt=new JTextArea("    Welcome to use the compress software!\n\n\n You can select compress or decompress \nby mouse click. And after that you can choose \n   the file to deal with and where to put it.\n   And even you can select whatever name \n   that the object file should be as you like!\nThe compress proportion may be about 25% within the Huffman code");
			//jt.setOpaque(false);
			pan.setSize(250,200);
			//pan.add(jt);
			//helpframe.getContentPane().add(new JLabel(new ImageIcon("幸福.jpg")));
			//((JPanel)helpframe.getContentPane()).setOpaque(false); 
			pan.setOpaque(false);
			helpframe.add(pan);
			helpframe.setResizable(false);
			helpframe.setTitle("HELP");
			helpframe.setSize(250,200);
			helpframe.setVisible(true);
			helpframe.setLocationRelativeTo(null);
		}
		else{System.exit(0);}
	}
	public static void main(String args[]){
		CompressGui g=new CompressGui();
	}

}

⌨️ 快捷键说明

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