您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Java如何實現文本編譯器”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Java如何實現文本編譯器”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
簡單的文本編譯器,可以通過彈出對話框打開文件,進行編寫并保存文件。
代碼
package Code.a; import java.io.*; import javax.swing.*; import java.awt.event.*; public class Editor implements ActionListener{ JFrame f; JTextArea ta; JScrollPane sp; JMenuBar menubar; JMenu menu; JMenuItem openItem,saveItem,closeItem,exitItem; FileReader fr; FileWriter fw; JFileChooser fc; File file; //構造界面,本類作為監聽類; public Editor(){ f = new JFrame("簡易文本編輯器"); ta = new JTextArea(); sp = new JScrollPane(ta);//滾輪 f.add(sp); menubar = new JMenuBar();//菜單欄 menu = new JMenu("File"); openItem = new JMenuItem("Open");//四個選項 saveItem = new JMenuItem("Save"); closeItem = new JMenuItem("Close"); exitItem = new JMenuItem("Exit"); menu.add(openItem); menu.add(saveItem); menu.add(closeItem); menu.add(exitItem); menubar.add(menu); f.setJMenuBar(menubar); f.setSize(400,300); f.setVisible(true); //四個選項事件函數; openItem.addActionListener(this); saveItem.addActionListener(this); closeItem.addActionListener(this); exitItem.addActionListener(this); } public void actionPerformed(ActionEvent e) { //異常 try { //點擊打開選項時,彈出打開文件對話框; if(e.getActionCommand()=="Open") { fc = new JFileChooser(); if(fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { file = fc.getSelectedFile(); fr = new FileReader(file); int c; while((c = fr.read()) != -1) { ta.append(String.valueOf((char) c)); } fr.close(); } } //點擊保存選項時,彈出保存文件對話框; else if(e.getActionCommand()=="Save") { String str = ta.getText(); fc = new JFileChooser(); if(fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) { file = fc.getSelectedFile(); fw = new FileWriter(file); fw.write(str); fw.close(); } } //點擊關閉選項時,清空文本框; else if(e.getActionCommand() == "Close") { ta.setText(""); } //點擊退出選項時,退出當前界面; else if(e.getActionCommand() == "Exit") { System.exit(0); } } //處理異常; catch(IOException exp) { exp.printStackTrace(); } } public static void main(String[] args) { Editor e = new Editor(); } }
讀到這里,這篇“Java如何實現文本編譯器”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。