📄 mymenu.java
字号:
package compress;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSeparator;
public class MyMenu extends JMenuBar implements ActionListener
{
MyFrame MF;
private JMenu File=new JMenu();
private JMenu Help=new JMenu();
private JMenu Open=new JMenu();
private JMenuItem Compress=new JMenuItem();
private JMenuItem Decompress=new JMenuItem();
private JMenuItem See2=new JMenuItem();
private JMenuItem Seeh=new JMenuItem();
private JMenuItem Stat=new JMenuItem();
private JMenuItem result=new JMenuItem();
private JMenuItem Exit=new JMenuItem();
private JMenuItem HowToUse=new JMenuItem();
private JMenuItem About=new JMenuItem();
private JMenuItem NewFile=new JMenuItem();
private JMenuItem CompressFile=new JMenuItem();
private JSeparator JS=new JSeparator();
public MyMenu()
{
File.setText("File");
Help.setText("Help");
Open.setText("Open");
Compress.setText("Compress");
Decompress.setText("Decompress");
See2.setText("See2");
Seeh.setText("Seeh");
Stat.setText("Stat.");
result.setText("Result");
HowToUse.setText("How To Use...");
About.setText("About...");
NewFile.setText("NewFile");
CompressFile.setText("CompressFile");
Exit.setText("Exit");
File.add(Open);
File.add(JS);
File.add(Compress);
File.add(Decompress);
File.add(JS);
File.add(See2);
File.add(Seeh);
File.add(Stat);
File.add(result);
File.add(JS);
File.add(Exit);
Help.add(HowToUse);
Help.add(JS);
Help.add(About);
Open.add(NewFile);
Open.add(CompressFile);
NewFile.addActionListener(this);
CompressFile.addActionListener(this);
Compress.addActionListener(this);
Decompress.addActionListener(this);
See2.addActionListener(this);
Seeh.addActionListener(this);
Stat.addActionListener(this);
result.addActionListener(this);
HowToUse.addActionListener(this);
About.addActionListener(this);
Exit.addActionListener(this);
this.add(File);
this.add(Help);
}
public void actionPerformed(ActionEvent evt) //目录按钮的监听器,调入事件反馈不同的响应
{
Object choose=evt.getSource();
if(choose==NewFile)
{
MF.MS.MD.setDirName(MF.Road.getText());
MF.MS.MD.setFileName1(MF.File.getText());
MF.MS.RunCompress();
}
if(choose==CompressFile)
{
MF.MS.MD.setDirName(MF.Road.getText());
MF.MS.MD.setFileName1(MF.File.getText());
MF.MS.RunDecompress();
}
if(choose==Compress)
{
MF.MS.MD.setDirName(MF.Road.getText());
MF.MS.MD.setFileName2(MF.File.getText());
MF.MS.MD.setHuffman("");
MF.MS.changetohuffman();
MF.MS.MD.addHuffman(MF.MS.toString(MF.MS.outstring));
MF.MS.MD.addHuffman("\n");
MF.MS.MD.addHuffman(MF.MS.MD.wStat);
MF.MS.MD.addHuffman("\n");
MF.MS.MD.addHuffman(MF.MS.end);
MF.MS.MD.addHuffman("\n");
MF.MS.MD.addHuffman(MF.MS.MD.cStat);
MF.MS.MD.Compress();
}
if(choose==Decompress)
{
MF.MS.MD.setDirName(MF.Road.getText());
MF.MS.MD.setFileName2(MF.File.getText());
MF.MS.MD.setArticle("");
MF.MS.changetotext();
MF.MS.MD.addArticle(MF.MS.toString(MF.MS.textchar));
MF.MS.MD.Decompress();
}
if(choose==See2)
{
MF.MS.changetohuffman();
String s="";
for(int i=0;i<MF.MS.texthuffman.length();i++)
{
s=s+MF.MS.texthuffman.charAt(i);
if(i%40==0)
s=s+"\n";
}
MF.Result.setText(s);
}
if(choose==Seeh)
{
MF.MS.outhuffman();
String s="";
for(int i=0;i<MF.MS.huffman.length();i++)
{
s=s+MF.MS.huffman.charAt(i);
if(i%40==0)
s=s+"\n";
}
MF.Result.setText(s);
}
if(choose==Stat)
{
MF.MS.outnumber();
String s="";
for(int i=0;i<MF.MS.number.length();i++)
{
s=s+MF.MS.number.charAt(i);
if(i%40==0)
s=s+"\n";
}
MF.Result.setText(s);
}
if(choose==result)
{
int a=MF.MS.MD.getHuffman().length()*100/MF.MS.MD.getArticle().length();
Integer b=new Integer(a);
String s=b.toString();
MF.Result.setText(s+"%");
}
if(choose==HowToUse)
{
JOptionPane.showMessageDialog(this,
" 压缩过程:" +"\n"
+" 在下面前一方框内写出文件路径,后一方框写入文件名(包括扩展名)" +"\n"
+" 点选Open中的NewFile,表示打开了该文件" +"\n"
+" 接着同样在方框内输入新的文件地址及文件名,此名可以不存在" +"\n"
+" 点选Compress,即在刚在输入的地址处生成了该名的压缩文件" +"\n"
+" 解压过程:" +"\n"
+" 在下面前一方框内写出文件路径,后一方框写入文件名(此文件为压缩后文件)" +"\n"
+" 点选Open中的CompressFile,表示打开了该压缩文件" +"\n"
+" 接着同样在方框内输入新的文件地址及文件名,此名可以不存在" +"\n"
+" 点选Decompress,即在刚在输入的地址处生成了该名的原文件" +"\n"
+" See2(仅在打开源文件时应用):"+"\n"
+" 查看该文件的2进制编码(显示在下面的方框内)"+"\n"
+" Seeh(仅在打开源文件时应用):"+"\n"
+" 查看该文件的每个字符的huffman编码(显示在下面的方框内)"+"\n"
+" Result(仅在打开源文件后且生成压缩文件后应用):"+"\n"
+" 显示压缩文件和源文件的压缩百分比(显示在下面的方框内)"+"\n");
}
if(choose==About)
{
JOptionPane.showMessageDialog(this," 压缩解压软件 " +"\n"+" 陈春艳 050702228");
}
if(choose==Exit)
{
System.exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -