package jishiben;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JScrollBar;
import javax.swing.JMenuItem;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class NotePad {
private JFrame frame;
private JTextArea textArea;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
NotePad window = new NotePad();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public NotePad() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setTitle("无标题_记事本");
frame.setBounds(100, 100, 440, 287);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JScrollPane scrollPane = new JScrollPane();
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
textArea = new JTextArea();
scrollPane.setViewportView(textArea);
JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
JMenu mnFile = new JMenu("\u6587\u4EF6(F)");
menuBar.add(mnFile);
JMenuItem mnnew = new JMenuItem("新建(N) Ctrl+N");
mnnew.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
int ret = JOptionPane.showConfirmDialog(null, "该文件的文字已改变,想保存文件吗?");
if(ret == JOptionPane.YES_OPTION)
{//点击yes后要保存,再清空
JFileChooser qcn = new JFileChooser();
int ret1 = qcn.showSaveDialog(frame);
if(ret1 ==qcn.APPROVE_OPTION )
{
File out = qcn.getSelectedFile();//依然得到(系统自动)所选择的文件
try {
FileWriter fw = new FileWriter(out);//输出流写文件
fw.write(textArea.getText()+"\r\n");//写入数据并换行
fw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
textArea.setText(null);//新建时不论是否保存都要清空文本框
}
else if(ret == JOptionPane.NO_OPTION)
{
//textArea.removeAll();并未清空
textArea.setText(null);
frame.setTitle("无标题_记事本");
}
else
{
textArea.setText(textArea.getText()+"\r\n");
}
}
});
/*mnnew.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
JOptionPane.showConfirmDialog(null, "mouseClicked!");
}
});点击鼠标新建并未反应*/
mnFile.add(mnnew);
JMenuItem mnOpen = new JMenuItem("打开(O)... Ctrl+O");
mnOpen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser qcn = new JFileChooser();
int ret = qcn.showOpenDialog(frame);//显示打开文件选择窗体
textArea.setText(null);//在打开一个文件前应该清空文本框;
if(ret == qcn.APPROVE_OPTION)
{
File curFile = qcn.getSelectedFile();//得到选择文件
//得到后(计算机)要输入选择文件
try {
FileReader fr = new FileReader(curFile);//创建流读文件
BufferedReader br = new BufferedReader(fr);//创建流读数据
String q = br.readLine();//只能读一行,这样读取“丢掉”了源文件的换行符
while(q!=null)
{
String name = curFile.getName();
frame.setTitle(name);
textArea.append(q+"\r\n");//记事本里换行
//textArea.setText(q);只读一行
q = br.readLine();
}
//读完后流要关闭
br.close();
fr.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
});
mnFile.add(mnOpen);
JMenuItem mnSave = new JMenuItem("保存(S) Ctrl+S");
mnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser qcn = new JFileChooser();
int ret1 = qcn.showSaveDialog(frame);
if(ret1 ==qcn.APPROVE_OPTION )
{
File out = qcn.getSelectedFile();//依然得到(系统自动)所选择的文件
try {
FileWriter fw = new FileWriter(out);
fw.write(textArea.getText());
fw.close();
String name = out.getName();
frame.setTitle(name);
}catch (IOException e1) {
e1.printStackTrace();
}
}
else if(ret1 == qcn.CANCEL_OPTION)
{
textArea.setText(textArea.getText()+"\r\n");
}
}
});
mnFile.add(mnSave);
JMenuItem mnSaveAs = new JMenuItem("\u53E6\u5B58\u4E3A(A)...");
mnFile.add(mnSaveAs);
JMenuItem mnPageRange = new JMenuItem("\u9875\u9762\u8BBE\u7F6E(U)...");
mnFile.add(mnPageRange);
JMenuItem mnPrint = new JMenuItem("\u6253\u5370(P)... Ctrl+P");
mnFile.add(mnPrint);
JMenuItem mnExit = new JMenuItem("\u9000\u51FA(X)");
mnFile.add(mnExit);
JMenu mnedit = new JMenu("\u7F16\u8F91(E)");
menuBar.add(mnedit);
JMenuItem mnBack = new JMenuItem("\u64A4\u9500(U) Ctrl+Z");
mnedit.add(mnBack);
JMenuItem mnCut = new JMenuItem("\u526A\u5207(T) Ctrl+X");
mnedit.add(mnCut);
JMenuItem mnCopy = new JMenuItem("\u590D\u5236(C) Ctrl+C");
mnedit.add(mnCopy);
JMenuItem mnStick = new JMenuItem("\u7C98\u8D34(P) Ctrl+V");
mnedit.add(mnStick);
JMenuItem mnDelete = new JMenuItem("\u5220\u9664(L) Del");
mnedit.add(mnDelete);
JMenuItem mnSearch = new JMenuItem("\u67E5\u627E(F)... Ctrl+F");
mnedit.add(mnSearch);
JMenuItem mnSearchNext = new JMenuItem("\u67E5\u627E\u4E0B\u4E00\u4E2A(N) F3");
mnedit.add(mnSearchNext);
JMenuItem mnReplace = new JMenuItem("\u66FF\u6362(R)... Ctrl+H");
mnedit.add(mnReplace);
JMenuItem mntmgCtrlg = new JMenuItem("\u8F6C\u5230(G)... Ctrl+G");
mnedit.add(mntmgCtrlg);
JMenuItem mntmaCtrla = new JMenuItem("\u5168\u9009(A) Ctrl+A");
mnedit.add(mntmaCtrla);
JMenuItem mntmNewMenuItem_7 = new JMenuItem("\u65F6\u95F4/\u65E5\u671F(D) F5");
mnedit.add(mntmNewMenuItem_7);
JMenu mnformat = new JMenu("\u683C\u5F0F(O)");
menuBar.add(mnformat);
JMenuItem mntmNewMenuItem_8 = new JMenuItem("\u81EA\u52A8\u6362\u884C(W)");
mnformat.add(mntmNewMenuItem_8);
JMenuItem mntmf = new JMenuItem("\u5B57\u4F53(F)...");
mnformat.add(mntmf);
JMenu mnlook = new JMenu("\u67E5\u770B(V)");
menuBar.add(mnlook);
JMenuItem mntms = new JMenuItem("\u72B6\u6001\u680F(S)");
mnlook.add(mntms);
JMenu mnhelp = new JMenu("\u5E2E\u52A9(H)");
menuBar.add(mnhelp);
JMenuItem mntmh = new JMenuItem("\u5E2E\u52A9\u4E3B\u9898(H)");
mnhelp.add(mntmh);
JMenuItem mntma = new JMenuItem("\u5173\u4E8E(A)");
mnhelp.add(mntma);
}
}