25、Java Swing文本编辑器的实现
生活随笔
收集整理的這篇文章主要介紹了
25、Java Swing文本编辑器的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最簡單的文本編輯器要數 Windows 的記事本了。在學習了本章知識之后,本次案例將完成一個簡單的文本編輯器程序。它可以打開文本文件,并輸出文本文件的位置和內容。其中用到了菜單、工具欄以及選項卡等組件,是一個綜合類的應用,主要實現步驟如下。
(1) 創建一個 TextFileOpener 類并繼承 JFrame 父類。
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTextArea; import javax.swing.JToolBar; import javax.swing.filechooser.FileNameExtensionFilter; public class TextFileOpener extends JFrame {private static final long serialVersionUID=-9077023825514749548L;private JTextArea ta_showText; //定義顯示文件屬性的文本域private JTextArea ta_showProperty; //定義顯示文件內容的文本域//Launch the application.public static void main(String[] args){TextFileOpener frame=new TextFileOpener();frame.setVisible(true);} }(2) 在構造方法中布局的設置,包括窗口大小、菜單欄和菜單項、工具欄,以及對各個組件的事件監聽,主要實現代碼如下所示。
public TextFileOpener() {setTitle("文本編輯器"); //設置窗體標題setBounds(100,100,400,250); //設置窗體位置和大小setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //設置窗體默認關閉方式final JMenuBar menuBar=new JMenuBar(); //創建菜單欄setJMenuBar(menuBar); //把菜單欄放到窗體上final JMenu mn_file=new JMenu(); //創建文件菜單mn_file.setText("文件"); //為文件菜單設置標題menuBar.add(mn_file); //把文件菜單添加到菜單欄上final JMenuItem mi_open=new JMenuItem(); //創建打開菜單項mi_open.addActionListener(new ActionListener(){//為打開菜單項添加監聽器public void actionPerformed(final ActionEvent arg0){openTextFile(); //調用方法,操作文件}});mi_open.setText("打開"); //設置打開菜單項的標題mn_file.add(mi_open); //把打開菜單項添加到文件菜單mn_file.addSeparator(); //添加菜單分隔符final JMenuItem mi_exit=new JMenuItem(); //創建退出菜單項mi_exit.addActionListener(new ActionListener(){//為退出菜單項添加監聽器public void actionPerformed(final ActionEvent arg0){System.exit(0); //退出系統}});mi_exit.setText("退出"); //設置退出菜單項的標題mn_file.add(mi_exit); //把退出菜單項添加到文件菜單final JMenu mn_edit=new JMenu(); //創建編輯菜單mn_edit.setText("編輯"); //為編輯菜單設置標題menuBar.add(mn_edit); //把編輯菜單添加到菜單欄上final JMenuItem mi_copy=new JMenuItem(); //創建復制菜單項mi_copy.setText("復制"); //設置復制菜單項的標題mn_edit.add(mi_copy); //把復制菜單項添加到編輯菜單final JMenuItem mi_cut=new JMenuItem(); //創建剪切菜單項mi_cut.setText("剪切"); //設置剪切菜單項的標題mn_edit.add(mi_cut); //把剪切菜單項添加到編輯菜單final JMenuItem mi_paste=new JMenuItem(); //創建粘貼菜單項mi_paste.setText("粘貼"); //設置粘貼菜單項的標題mn_edit.add(mi_paste); //把粘貼菜單項添加到編輯菜單final JToolBar toolBar=new JToolBar(); //創建工具欄getContentPane().add(toolBar,BorderLayout.NORTH); //把工具欄放到窗體上方final JButton btn_open=new JButton(); //創建工具按鈕btn_open.addActionListener(new ActionListener(){//添加動作監聽器public void actionPerformed(final ActionEvent arg0){openTextFile(); //調用方法,操作文件}});btn_open.setText(" 打 開 "); //設置工具按鈕的標題toolBar.add(btn_open); //把工具按鈕添加到工具欄上final JButton btn_exit=new JButton(); //創建工具按鈕btn_exit.addActionListener(new ActionListener(){//添加動作監聽器public void actionPerformed(final ActionEvent arg0){System.exit(0); //退出系統}});btn_exit.setText(" 退 出 "); //設置工具按鈕的標題toolBar.add(btn_exit); //把工具按鈕添加到工具欄上final JTabbedPane tabbedPane=new JTabbedPane(); //創建選項卡面板getContentPane().add(tabbedPane,BorderLayout.CENTER); //把選項卡面板放到窗體中央final JScrollPane scrollPane1=new JScrollPane(); //創建滾動面板//把滾動面板放到選項卡的第一個選項頁tabbedPane.addTab("文件的屬性",null,scrollPane1,null);ta_showProperty=new JTextArea(); //創建文本域//把文本域添加到滾動面板的視圖中scrollPane1.setViewportView(ta_showProperty);final JScrollPane scrollPane2=new JScrollPane(); //創建滾動面板//把滾動面板放到選項卡的第二個選項頁tabbedPane.addTab("文件的內容",null,scrollPane2,null);ta_showText=new JTextArea(); //創建文本域//把文本域添加到滾動面板的視圖中scrollPane2.setViewportView(ta_showText); }(3) 無論是從菜單欄還是工具欄選擇“打開”文件操作時都是調用 openTextFile() 方法。該方法會彈出文件選擇器讓用戶選擇一個文件,然后使用文件流獲取文件屬性和讀取文件的內容,再把信息呈現到界面上。openTextFile() 方法的實現代碼如下:
//用于打開文件并獲得文件信息的方法 public void openTextFile() {JFileChooser fileChooser=new JFileChooser(); //創建文件選擇對話框fileChooser.setFileFilter(new FileNameExtensionFilter("文本文件","txt"));int returnValue=fileChooser.showOpenDialog(getContentPane()); //打開文件選擇對話框if(returnValue==JFileChooser.APPROVE_OPTION){//判斷用戶是否選擇了文件File file=fileChooser.getSelectedFile(); //獲得文件對象//獲得文件的絕對路徑ta_showProperty.append("文件的絕對路徑是:"+file.getAbsolutePath()+"\n");//是否為隱藏文件ta_showProperty.append("該文件是隱藏文件嗎?"+file.isHidden()+"\n");FileReader reader; //聲明字符流BufferedReader in; //聲明字符緩沖流try{reader=new FileReader(file); //創建字符流in=new BufferedReader(reader); //創建字符緩沖流String info=in.readLine(); //從文件中讀取一行信息while(info!=null){//判斷是否讀到內容ta_showText.append(info+"\n"); //把讀到的信息追加到文本域中info=in.readLine(); //繼續讀下一行信息}in.close(); //關閉字符緩沖流reader.close(); //關閉字符流}catch(Exception ex){ex.printStackTrace(); //輸出棧蹤跡}} }(4) 運行程序,單擊“打開”按鈕,選擇一個 TXT 文件。圖 1 所示為查看文件屬性效果,圖 2 所示為查看文件內容效果。單擊“退出”按鈕,可以關閉程序。
總結
以上是生活随笔為你收集整理的25、Java Swing文本编辑器的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 24、Java Swing JTabbe
- 下一篇: 1、网站是什么