用java编写一个文件查看器,要求实现浏览打开文件、判断文件类型是否为txt不是给出提示(最好是Windows系统提示那种弹出提示框)、能显示中文、清空当先显示内容、退出等功能。
我这有一个程序,只实现了浏览打开退出功能,中文显示为乱码,请高手帮忙添加判断文件类型、清空功能、并解决中文显示乱码问题,浏览打开功能部分可根据需要进行删改。
package javatest;
import java.awt.FileDialog;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.RandomAccessFile;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.TitledBorder;
public class MyCompiler extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
JPanel p;
JTextArea t;
JScrollPane s;
FileDialog fd;
JMenuBar menubar;
JMenu file,edit;
JMenuItem file1,file2,file3;
public static void main(String args[]){
MyCompiler f=new MyCompiler();
f.go();
}
@SuppressWarnings({ "deprecation", "deprecation" })
public void go(){
// fr=new JFrame("MyCompiler");
this.setTitle("文本文件查看器");
t=new JTextArea();
p=new JPanel();
s=new JScrollPane(t);
s.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
s.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
s.setBorder(new TitledBorder("显示区"));
menubar=new JMenuBar();
file=new JMenu("文件(F)");
edit=new JMenu("编辑(E)");
file1=new JMenuItem("打开");
file1.addActionListener(this);
file2=new JMenuItem("退出");
file2.addActionListener(this);
file3=new JMenuItem("清空");
file3.addActionListener(this);
file.add(file1);
file.add(file2);
edit.add(file3);
menubar.add(file);
menubar.add(edit);
p.setLayout(new GridLayout(1,1));
setJMenuBar(menubar);
p.add(s);
add(p);
setSize(500,500);
setVisible(true);
show();
}
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e){
// byte b[]=new byte[888];
if(e.getActionCommand()=="打开"){
fd=new FileDialog(this,"打开",FileDialog.LOAD);
fd.setDirectory(".");
fd.show();
try{
File myfile=new File(fd.getDirectory(),fd.getFile());
RandomAccessFile raf=new RandomAccessFile(myfile,"r");
while(raf.getFilePointer()<raf.length()){
t.append(raf.readLine()+"\n");
}
}catch (Exception ie) {
System.out .println(e.toString());
}}
if(e.getActionCommand()=="退出"){
dispose();
System.exit(0);
}
}
}