求代码,关于java io流的题目
求代码,关于javaio流的题目(文本浏览器)编写程序,在文本域中显示一个文本文件,如图1所示。用户在文本域中输入一个文件名,然后单击View按钮,随后在文本域中显示这个...
求代码,关于java io流的题目(文本浏览器)编写程序,在文本域中显示一个文本文件,如图1所示。用户在文本域中输入一个文件名,然后单击View按钮,随后在文本域中显示这个文件的内容。
展开
展开全部
按照你的要求编写的文本浏览器的Java程序如下(这个程序比上一个程序的容错能力更强)
//文本浏览器
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class P4 extends JFrame implements ActionListener{
JTextArea jta=new JTextArea(3,5);
JScrollPane jsp=new JScrollPane(jta);
JTextField jtf=new JTextField(20);
JButton jb=new JButton("View");
JLabel jl=new JLabel("Filename");
JPanel jp=new JPanel();
P4(){
setTitle("文本浏览器");
jb.addActionListener(this);
jp.add(jl);jp.add(jtf);jp.add(jb);
add(jsp,BorderLayout.CENTER);
add(jp,BorderLayout.SOUTH);
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb){
if(jtf.getText()==null || jtf.getText().equals("")){
JOptionPane.showMessageDialog(jtf, "请输入文件名!");
jtf.requestFocus();
return;
}
BufferedReader br=null;
try{
String fileName=jtf.getText().trim();
br=new BufferedReader(new FileReader(fileName));
String s="";
StringBuffer sb = new StringBuffer();
while((s=br.readLine())!=null){
sb.append(s+"\n");
}
jta.setText(sb.toString());
}catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(jtf, "系统找不到指定文件!");
jtf.requestFocus();
}catch(IOException ioe){
ioe.printStackTrace();
}finally{
try {
if(br!=null)
br.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
public static void main(String[] args) {
new P4();
}
}
运行结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询