java 只显示文本文件_Java设计并实现一个应用程序,能够读取一个文本文件中的内容并显示,同时能够计算出文本中的行数。...
展開全部
java編寫顯示文本的應用程序, 需要用到圖形界面GUI編程技術.
步驟一: 需要搭建一個整體的外觀32313133353236313431303231363533e4b893e5b19e31333363373830, ?調整布局和組件的位置.
主要需要使用的組件
JTextField 文本框組件: 用于當做地址欄, 填寫文件的路徑
JButton 按鈕, 用于響應點擊事件,根據地址欄的地址讀取文件, 并且顯示到文本域里
JTextArea 文本域, 用于顯示文件里的字符串信息
JLabel ?標簽, 用于顯示行數信息
布局: 使用邊界布局BorderLayout,可以快速按照上下左右中的位置快速布局.
步驟二: IO流,讀取文本文件信息,并統計行數.
由于要按行讀取,方便計算文件的行數, 所以使用Buffered 可以事半功倍.
核心代碼如下StringBuffer?txtbuf=new?StringBuffer();//用于保存文本信息
int?lines=0;//用于計算行數
try?{
BufferedReader?br?=?new?BufferedReader(new?FileReader(fp));
String?hasRead=null;
while((hasRead=br.readLine())!=null){
txtbuf.append(hasRead+"\n");
lines++;
}
br.close();//IO流用完記得關閉
}?catch?(Exception?e)?{
//當IO出現異常時,要進行提示
JOptionPane.showMessageDialog(this,?"文件讀取錯誤,確認文件存在,\n或者沒有被其他文件打開.","IO錯誤",JOptionPane.ERROR_MESSAGE);;
}
步驟三:整合代碼import?java.awt.*;
import?java.awt.event.*;
import?java.io.*;
import?javax.swing.*;
public?class?ShowTextFrame?extends?JFrame?implements?ActionListener{
JTextArea?jta;//該文本域用于顯示文本信息
JTextField?jtf;//該文本框,用于填寫文件路徑
JLabel?jl;//該標簽用于保存讀取到的行數
JButton?jbt;//按鈕
public?ShowTextFrame()?{
jtf?=?new?JTextField(18);
jbt?=?new?JButton("讀取并顯示");
jbt.addActionListener(this);
JPanel??jp1?=?new?JPanel();
jp1.add(jtf);
jp1.add(jbt);
add(jp1,BorderLayout.NORTH);
jta?=?new?JTextArea();
JScrollPane?jsp?=?new?JScrollPane(jta);//文本域添加到滾動面板
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//垂直滾動條一直顯示
add(jsp);
jl?=?new?JLabel("文件共有0行");
JPanel?jp2?=?new?JPanel();
jp2.add(jl);
add(jp2,BorderLayout.SOUTH);
setTitle("顯示文本");//窗口標題
setSize(380,?320);
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public?void?actionPerformed(ActionEvent?e)?{
if(jbt==e.getSource()){
String?fp?=?jtf.getText().trim();
Info?info?=?getInfo(fp);
jta.setText(info.txt);//把文本信息顯示到文本域
jl.setText("文件共有"+info.lines+"行");//把行數顯示顯示到JLabel
}
}
public?Info?getInfo(String?fp){//通過文件路徑,獲取文件信息(字符串信息和行數信息)
StringBuffer?txtbuf=new?StringBuffer();
int?lines=0;
try?{
BufferedReader?br?=?new?BufferedReader(new?FileReader(fp));
String?hasRead=null;
while((hasRead=br.readLine())!=null){
txtbuf.append(hasRead+"\n");
lines++;
}
br.close();//IO流用完記得關閉
}?catch?(Exception?e)?{
//當IO出現異常時,要進行提示
JOptionPane.showMessageDialog(this,?"文件讀取錯誤,確認文件存在,\n或者沒有被其他文件打開.","IO錯誤",JOptionPane.ERROR_MESSAGE);;
}
return?new?Info(txtbuf.toString(),?lines);
}
public?static?void?main(String[]?args)?{
new?ShowTextFrame();//創建窗口實例
}
}
class?Info{//輔助類,?用于傳遞信息
String?txt;//文字信息
int?lines;//?行數信息
public?Info(String?txt,?int?lines)?{
this.txt?=?txt;
this.lines?=?lines;
}
}
運行效果圖
總結
以上是生活随笔為你收集整理的java 只显示文本文件_Java设计并实现一个应用程序,能够读取一个文本文件中的内容并显示,同时能够计算出文本中的行数。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是“战斗”和“战争”?
- 下一篇: java 流程控制_Java流程控制