package q;
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuItem;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
public class MyFrame extends JFrame implements ActionListener {
JTextArea textArea = new JTextArea();
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File(F)");
JMenuItem newItem = new JMenuItem("New(N)");
JMenuItem openItem = new JMenuItem("Open(o)");
JMenuItem saveItem = new JMenuItem("Save(S)");
JMenuItem saveAsItem = new JMenuItem("Save As(A)");
JMenuItem exitItem = new JMenuItem("Exit(E)");
JMenu editMenu = new JMenu("Edit(E)");
JMenuItem selectItem = new JMenuItem("Select All...");
JMenuItem copyItem = new JMenuItem("Copy(C)");
JMenuItem cutItem = new JMenuItem("Cut(T)");
JMenuItem pasteItem = new JMenuItem("Paste(P)");
JMenu setMenu=new JMenu("Set(S)");
JMenuItem colorItem=new JMenuItem("Color(O)");
JMenu HelpMenu=new JMenu("Help(H)");
JMenuItem HelpTopicItem=new JMenuItem("HelpTopic(L)");
JMenuItem AboutNoteItem=new JMenuItem("About");
String fileName = null;
Toolkit toolKit=Toolkit.getDefaultToolkit();
Clipboard clipBoard=toolKit.getSystemClipboard();
private FileDialog openFileDialog = new FileDialog(this,"Open File",FileDialog.LOAD);
private FileDialog saveAsFileDialog = new FileDialog(this,"Save File As",FileDialog.SAVE);
public MyFrame(){
setTitle("记事本程序");
setFont(new Font("Times New Roman",Font.PLAIN,12));
setBackground(Color.white);
setSize(400,300);
setLocationRelativeTo(null);
fileMenu.add(newItem);
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
fileMenu.add(openItem);
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
fileMenu.addSeparator();
fileMenu.add(saveItem);
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
fileMenu.add(saveAsItem);
saveAsItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
fileMenu.addSeparator();
fileMenu.add(exitItem);
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
editMenu.add(selectItem);
editMenu.addSeparator();
editMenu.add(copyItem);
copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
editMenu.add(cutItem);
cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
editMenu.add(pasteItem);
pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
setMenu.add(colorItem);
colorItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
HelpMenu.add(HelpTopicItem);
HelpTopicItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
HelpMenu.add(AboutNoteItem);
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(setMenu);
menuBar.add(HelpMenu);
setJMenuBar(menuBar);
add(textArea);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
saveAsItem.addActionListener(this);
exitItem.addActionListener(this);
selectItem.addActionListener(this);
copyItem.addActionListener(this);
cutItem.addActionListener(this);
pasteItem.addActionListener(this);
colorItem.addActionListener(this);
HelpTopicItem.addActionListener(this);
AboutNoteItem.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) { //监听事件
Object eventSource = e.getSource();
if(eventSource == newItem){
textArea.setText("");
}else if(eventSource == openItem){
openFileDialog.show();
fileName = openFileDialog.getDirectory()+openFileDialog.getFile();
if(fileName != null)
readFile(fileName);
}else if (eventSource == saveItem){
if(fileName != null)
writeFile(fileName);
}else if(eventSource == saveAsItem){
saveAsFileDialog.show();
fileName = saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();
if (fileName!= null)
writeFile(fileName);
}else if(eventSource == selectItem){
textArea.selectAll();
}else if(eventSource == copyItem){
String text=textArea.getSelectedText();
StringSelection selection=new StringSelection(text);
clipBoard.setContents(selection,null);
}else if(eventSource == cutItem){
String text=textArea.getSelectedText();
StringSelection selection=new StringSelection(text);
clipBoard.setContents(selection,null);
textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());
}else if(eventSource == pasteItem){
Transferable contents=clipBoard.getContents(this);
if(contents==null) return;
String text;
text="";
try{
text=(String)contents.getTransferData(DataFlavor.stringFlavor);
}catch(Exception exception){
}
textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());
}else if(eventSource ==colorItem){
JColorChooser chooser=new JColorChooser();
Color color=chooser.showDialog(null, "调色板", Color.WHITE);
textArea.setForeground(color);
}else if(eventSource==HelpTopicItem){
textArea.requestFocus();
JOptionPane.showMessageDialog(this,"路漫漫其修远兮,吾将上下而求索。","HelpTopic",JOptionPane.INFORMATION_MESSAGE);
}else if(eventSource==AboutNoteItem)
{ textArea.requestFocus();
JOptionPane.showMessageDialog(this,
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"+
" 编写者:晨曦 \n"+
" 编写时间:2017-06-01 \n"+
" 更多教程:http://pan.muyi.so (网盘资源教程应有尽有哦!) \n"+
" e-mail:llqqxf@163.com \n"+
" 一些地方借鉴他人,不足之处希望老师能提出意见,谢谢! \n"+
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n",
"记事本",JOptionPane.INFORMATION_MESSAGE);
}//关于结束
else if(eventSource == exitItem){
int exitChoose=JOptionPane.showConfirmDialog(this,"是否退出?","退出提示",JOptionPane.YES_NO_OPTION);
if(exitChoose==JOptionPane.YES_OPTION)
{ System.exit(1);
}
}
}
public void readFile(String fileName){ //读取文件处理
try{
File file = new File(fileName);
FileReader readIn = new FileReader(file);
int size = (int)file.length();
int charsRead = 0;
char[] content = new char[size];
while(readIn.ready())
charsRead += readIn.read(content, charsRead, size - charsRead);
readIn.close();
textArea.setText(new String(content, 0, charsRead));
}
catch(IOException e){
System.out.println("Error opening file");
}
}
public void writeFile(String fileName){ //写入文件处理
try{
File file = new File (fileName);
FileWriter writeOut = new FileWriter(file);
writeOut.write(textArea.getText());
writeOut.close();
}
catch(IOException e){
System.out.println("Error writing file");
}
}
public static void main(String[] args){
MyFrame frame = new MyFrame(); //创建对象
}
}
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuItem;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
public class MyFrame extends JFrame implements ActionListener {
JTextArea textArea = new JTextArea();
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File(F)");
JMenuItem newItem = new JMenuItem("New(N)");
JMenuItem openItem = new JMenuItem("Open(o)");
JMenuItem saveItem = new JMenuItem("Save(S)");
JMenuItem saveAsItem = new JMenuItem("Save As(A)");
JMenuItem exitItem = new JMenuItem("Exit(E)");
JMenu editMenu = new JMenu("Edit(E)");
JMenuItem selectItem = new JMenuItem("Select All...");
JMenuItem copyItem = new JMenuItem("Copy(C)");
JMenuItem cutItem = new JMenuItem("Cut(T)");
JMenuItem pasteItem = new JMenuItem("Paste(P)");
JMenu setMenu=new JMenu("Set(S)");
JMenuItem colorItem=new JMenuItem("Color(O)");
JMenu HelpMenu=new JMenu("Help(H)");
JMenuItem HelpTopicItem=new JMenuItem("HelpTopic(L)");
JMenuItem AboutNoteItem=new JMenuItem("About");
String fileName = null;
Toolkit toolKit=Toolkit.getDefaultToolkit();
Clipboard clipBoard=toolKit.getSystemClipboard();
private FileDialog openFileDialog = new FileDialog(this,"Open File",FileDialog.LOAD);
private FileDialog saveAsFileDialog = new FileDialog(this,"Save File As",FileDialog.SAVE);
public MyFrame(){
setTitle("记事本程序");
setFont(new Font("Times New Roman",Font.PLAIN,12));
setBackground(Color.white);
setSize(400,300);
setLocationRelativeTo(null);
fileMenu.add(newItem);
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
fileMenu.add(openItem);
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
fileMenu.addSeparator();
fileMenu.add(saveItem);
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
fileMenu.add(saveAsItem);
saveAsItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
fileMenu.addSeparator();
fileMenu.add(exitItem);
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
editMenu.add(selectItem);
editMenu.addSeparator();
editMenu.add(copyItem);
copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
editMenu.add(cutItem);
cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
editMenu.add(pasteItem);
pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
setMenu.add(colorItem);
colorItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
HelpMenu.add(HelpTopicItem);
HelpTopicItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
HelpMenu.add(AboutNoteItem);
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(setMenu);
menuBar.add(HelpMenu);
setJMenuBar(menuBar);
add(textArea);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
saveAsItem.addActionListener(this);
exitItem.addActionListener(this);
selectItem.addActionListener(this);
copyItem.addActionListener(this);
cutItem.addActionListener(this);
pasteItem.addActionListener(this);
colorItem.addActionListener(this);
HelpTopicItem.addActionListener(this);
AboutNoteItem.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) { //监听事件
Object eventSource = e.getSource();
if(eventSource == newItem){
textArea.setText("");
}else if(eventSource == openItem){
openFileDialog.show();
fileName = openFileDialog.getDirectory()+openFileDialog.getFile();
if(fileName != null)
readFile(fileName);
}else if (eventSource == saveItem){
if(fileName != null)
writeFile(fileName);
}else if(eventSource == saveAsItem){
saveAsFileDialog.show();
fileName = saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();
if (fileName!= null)
writeFile(fileName);
}else if(eventSource == selectItem){
textArea.selectAll();
}else if(eventSource == copyItem){
String text=textArea.getSelectedText();
StringSelection selection=new StringSelection(text);
clipBoard.setContents(selection,null);
}else if(eventSource == cutItem){
String text=textArea.getSelectedText();
StringSelection selection=new StringSelection(text);
clipBoard.setContents(selection,null);
textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());
}else if(eventSource == pasteItem){
Transferable contents=clipBoard.getContents(this);
if(contents==null) return;
String text;
text="";
try{
text=(String)contents.getTransferData(DataFlavor.stringFlavor);
}catch(Exception exception){
}
textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());
}else if(eventSource ==colorItem){
JColorChooser chooser=new JColorChooser();
Color color=chooser.showDialog(null, "调色板", Color.WHITE);
textArea.setForeground(color);
}else if(eventSource==HelpTopicItem){
textArea.requestFocus();
JOptionPane.showMessageDialog(this,"路漫漫其修远兮,吾将上下而求索。","HelpTopic",JOptionPane.INFORMATION_MESSAGE);
}else if(eventSource==AboutNoteItem)
{ textArea.requestFocus();
JOptionPane.showMessageDialog(this,
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"+
" 编写者:晨曦 \n"+
" 编写时间:2017-06-01 \n"+
" 更多教程:http://pan.muyi.so (网盘资源教程应有尽有哦!) \n"+
" e-mail:llqqxf@163.com \n"+
" 一些地方借鉴他人,不足之处希望老师能提出意见,谢谢! \n"+
"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n",
"记事本",JOptionPane.INFORMATION_MESSAGE);
}//关于结束
else if(eventSource == exitItem){
int exitChoose=JOptionPane.showConfirmDialog(this,"是否退出?","退出提示",JOptionPane.YES_NO_OPTION);
if(exitChoose==JOptionPane.YES_OPTION)
{ System.exit(1);
}
}
}
public void readFile(String fileName){ //读取文件处理
try{
File file = new File(fileName);
FileReader readIn = new FileReader(file);
int size = (int)file.length();
int charsRead = 0;
char[] content = new char[size];
while(readIn.ready())
charsRead += readIn.read(content, charsRead, size - charsRead);
readIn.close();
textArea.setText(new String(content, 0, charsRead));
}
catch(IOException e){
System.out.println("Error opening file");
}
}
public void writeFile(String fileName){ //写入文件处理
try{
File file = new File (fileName);
FileWriter writeOut = new FileWriter(file);
writeOut.write(textArea.getText());
writeOut.close();
}
catch(IOException e){
System.out.println("Error writing file");
}
}
public static void main(String[] args){
MyFrame frame = new MyFrame(); //创建对象
}
}