下面的代碼是一個簡單版的記事本。如果需要更多的功能,可以自己去摸索一下更多的功能。
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();//實例化構造函數
}
}