代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
import java.awt.*;
import java.io.*;
import java.awt.datatransfer.*;
import java.awt.
event
.*;
public
class
Main extends Frame implements ActionListener {
private
static
final
long
serialVersionUID = 1L;
TextArea textArea =
new
TextArea();
MenuBar menuBar =
new
MenuBar();
Menu fileMenu =
new
Menu(
"File"
);
MenuItem newItem =
new
MenuItem(
"New"
);
MenuItem openItem =
new
MenuItem(
"Open"
);
MenuItem saveItem =
new
MenuItem(
"Save"
);
MenuItem saveAsItem =
new
MenuItem(
"Save As"
);
MenuItem exitItem =
new
MenuItem(
"Exit"
);
Menu editMenu =
new
Menu(
"Edit"
);
MenuItem selectItem =
new
MenuItem(
"Select All"
);
MenuItem copyItem =
new
MenuItem(
"Copy"
);
MenuItem cutItem =
new
MenuItem(
"Cut"
);
MenuItem pasteItem =
new
MenuItem(
"Paste"
);
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
Main(){
setTitle(
"记事本程序-by Jackbase"
);
setFont(
new
Font(
"Times New Roman"
,Font.PLAIN,12));
setBackground(Color.white);
setSize(400,300);
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.addSeparator();
fileMenu.add(saveItem);
fileMenu.add(saveAsItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
editMenu.add(selectItem);
editMenu.addSeparator();
editMenu.add(copyItem);
editMenu.add(cutItem);
editMenu.add(pasteItem);
menuBar.add(fileMenu);
menuBar.add(editMenu);
setMenuBar(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
);
}
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 == exitItem){
System.exit(0);
}
}
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"
);
}
}
@SuppressWarnings(
"deprecation"
)
public
static
void
main(String[] args){
Frame frame =
new
Main();
//创建对象
frame.show();
//是对象显示
}
}
|
运行结果
<ignore_js_op>