用JAVA寫一個簡單版的記事本

下面的代碼是一個簡單版的記事本。如果需要更多的功能,可以自己去摸索一下更多的功能。

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/*
 * 期中作業--記事本
 */
public class jishiben extends JFrame implements ActionListener{
	String name="";
	String chatFile;
	JMenuBar menuBar;
	JMenu menu;
	JMenuItem itemSaveOther,itemClose;
	JTextArea chatContent;
	JScrollPane showPanel;
	JDialog saveName,saveSuccese;
	JTextField nameFile;
	JButton nameBtnSave;
	JLabel label;
	// 寫記事本函數的構造函數
	public jishiben() {
		menuBar = new JMenuBar();//創建菜單欄
		menu = new JMenu("文件");//創建文件菜單
		itemSaveOther = new JMenuItem("保存");//創建保存菜單項
		itemClose = new JMenuItem("關閉");//創建關閉菜單項
		chatContent = new JTextArea();//創建一個文本域
		showPanel = new JScrollPane(chatContent);//創建有一個滾動面板(中間容器),並把文本域添加到滾動面板中
		
		// 設置窗體的一些基本參數
		this.setSize(600, 500);// 設置窗體的大小
		this.setLocationRelativeTo(null); // 設置窗口居中顯示
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 設置窗體關閉
		
		// 組建下拉式菜單
		menu.add(itemSaveOther);
		menu.addSeparator();// 添加分隔符
		menu.add(itemClose);
		menuBar.add(menu);// 菜單添加到菜單欄
		this.setJMenuBar(menuBar);// 菜單欄添加到窗體
		
		// 將文本框添加進主頁面
		this.add(showPanel);
		
		// 保存文件名的對話框
		saveName = new JDialog(jishiben.this,true);
		nameFile = new JTextField(10);
		nameBtnSave = new JButton("確定");
		saveName.setLayout(new FlowLayout());
		saveName.add(new JLabel("請輸入保存的文件名"));
		saveName.add(nameFile);
		saveName.add(nameBtnSave);
		saveName.setSize(180, 120);
		saveName.setResizable(false);// 設置不可變動窗口大小
		saveName.setLocationRelativeTo(null);
		
		// 保存完成後,顯示dialog框
		saveSuccese = new JDialog(jishiben.this,true);
		label = new JLabel("保存成功");
		saveSuccese.add(label);
		saveSuccese.setSize(50, 80);
		saveSuccese.setLocationRelativeTo(null);
		
		//添加監聽事件		
		itemSaveOther.addActionListener(this);// 爲保存按鈕添加監聽事件
		itemClose.addActionListener(this);// 爲關閉按鈕添加監聽事件
		nameBtnSave.addActionListener(this);// 爲保存文件名對話框的確定按鈕添加監聽事件
		
		this.setVisible(true);
	}
	
	
	// 爲監聽事件添加操作
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == itemClose) {// 爲關閉按鈕添加事件
			System.exit(0);
		}
		if(e.getSource() == itemSaveOther) {// 爲另存爲按鈕添加事件
			saveName.setVisible(true);
		}
		if(e.getSource() == nameBtnSave) {// 爲保存按鈕添加事件
			saveName.setVisible(false);
			name = nameFile.getText();// 獲取文件名
			chatFile = chatContent.getText();// 獲取文本內容
			this.setTitle(name);
			String Fname = name+ ".txt";// 將名字進行後綴名處理
			File file = new File(Fname);
			try {
				FileWriter writer = new FileWriter(file);
				//把字符數據寫入到文件中
				writer.write(chatFile);
				writer.write("\r\n");//將寫入的數據換行
				writer.close();//關閉字符輸出流
			}catch(Exception e1){
				label.setText("出現錯誤,請重試");
			}finally {
				saveSuccese.setVisible(true);
			}
		}
	}
	
	
	//主函數
	public static void main(String[] args) {
		new jishiben();//實例化構造函數
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章