-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNotepad.java
More file actions
170 lines (148 loc) · 5.11 KB
/
Copy pathNotepad.java
File metadata and controls
170 lines (148 loc) · 5.11 KB
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
package Notepad;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.event.*;
import java.io.File;
import java.io.PrintWriter;
import java.util.Scanner;
import javax.swing.*;
public class Notepad extends JFrame {
public static void main(String args[]) {
Notepad n = new Notepad();
}
private static final long serialVersionUID = 1L;
JFrame frame;
JMenuBar menuBar;
JMenu file;
JMenu edit;
JMenuItem open, newFile,save, exit;
JMenuItem undo,paste, selectAll ;
JMenu format;
JMenu help;
JFileChooser fileChooser;
JTextArea textArea;
Clipboard clip ;
Notepad() {
frame = new JFrame("Notepad Application");
file = new JMenu("File");
edit = new JMenu("Edit");
format = new JMenu("Format");
help = new JMenu("Help");
newFile = new JMenuItem("New");
open = new JMenuItem("Open");
save = new JMenuItem("Save");
exit = new JMenuItem("Exit");
undo = new JMenuItem("Undo Ctrl+Z");
paste = new JMenuItem("Paste Ctrl+V");
selectAll = new JMenuItem("Select All Ctrl+A ");
textArea = new JTextArea();
fileChooser = new JFileChooser();
menuBar = new JMenuBar();
frame.setLayout(new BorderLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(textArea);
file.add(open);
file.add(newFile);
file.add(save);
file.add(exit);
edit.add(undo);
edit.add(paste);
edit.add(selectAll);
menuBar.add(file);
menuBar.add(edit);
menuBar.add(format);
menuBar.add(help);
frame.setJMenuBar(menuBar);
OpenListener openL = new OpenListener();
NewListener NewL = new NewListener();
SaveListener saveL = new SaveListener();
ExitListener exitL = new ExitListener();
open.addActionListener(openL);
newFile.addActionListener(NewL);
save.addActionListener(saveL);
exit.addActionListener(exitL);
//UndoListener UndoL = new UndoListener();
PasteListener pasteL = new PasteListener();
//EditListener EditL = new EditListener();
//SelectListener SelectL = new SelectListener();
//undo.addActionListener(UndoL);
//paste.addActionListener(EditL);
//selectAll.addActionListener(SelectL);
frame.setSize(800, 600);
frame.setVisible(true);
}
class OpenListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (JFileChooser.APPROVE_OPTION == fileChooser.showOpenDialog(frame)) {
File file = fileChooser.getSelectedFile();
textArea.setText("");
Scanner in = null;
try {
in = new Scanner(file);
while(in.hasNext()) {
String line = in.nextLine();
textArea.append(line+"\n");
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
in.close();
}
}
}
}
class SaveListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (JFileChooser.APPROVE_OPTION == fileChooser.showSaveDialog(frame)) {
File file = fileChooser.getSelectedFile();
PrintWriter out = null;
try {
out = new PrintWriter(file);
String output = textArea.getText();
System.out.println(output);
out.println(output);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
out.flush();
} catch(Exception ex1)
{
}
try {
out.close();
} catch(Exception ex1) {
}
}
}
}
}
class NewListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
textArea.setText("");
//frame.add(newFile);
//textArea.(newFile+"\n");
}
}
class ExitListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
class PasteListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Transferable cliptran = clip.getContents(Notepad.this);
try
{
String sel = (String) cliptran.getTransferData(DataFlavor.stringFlavor);
textArea.replaceRange(sel,textArea.getSelectionStart(),textArea.getSelectionEnd());
}
catch(Exception exc)
{
System.out.println("not string flavour");
}
}
}
}