nah guys berikut video tutorial tentang cara pembuatan editor ini, layout merupakan hasil karya bertapa ane dari gunung sumbang wahaha *oke yg ini ngarang
oke langsung saja guys cek video tutorialnya :
Code :
1: package editor.with.i;
2:
3: import java.awt.Font;
4: import java.io.FileReader;
5: import java.io.FileWriter;
6: import java.io.IOException;
7: import javax.swing.ActionMap;
8: import javax.swing.JFileChooser;
9: import javax.swing.JOptionPane;
10: /*
11: * To change this template, choose Tools | Templates
12: * and open the template in the editor.
13: */
14:
15: /**
16: *
17: * @author Fana Barkah A
18: */
19: public class NotewithI extends javax.swing.JFrame {
20: private String editor;
21: final private String nameApp = "Program Notepad Tentative";
22: private String currentFile = "Untitled";
23: private boolean changed = false;
24: final private JFileChooser dialog = new JFileChooser(System.getProperty("user.dir"));
25: ActionMap m;
26:
27: public NotewithI() {
28: initComponents();
29: setTitle(nameApp);
30: setLocationRelativeTo(this);
31: }
32:
33: /**
34: * This method is called from within the constructor to initialize the form.
35: * WARNING: Do NOT modify this code. The content of this method is always
36: * regenerated by the Form Editor.
37: */
38: @SuppressWarnings("unchecked")
39: // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
40: private void initComponents() {
41:
42: jSeparator1 = new javax.swing.JSeparator();
43: jScrollPane1 = new javax.swing.JScrollPane();
44: textEditor = new javax.swing.JTextArea();
45: jToolBar2 = new javax.swing.JToolBar();
46: Save = new javax.swing.JButton();
47: Saveas = new javax.swing.JButton();
48: jSeparator2 = new javax.swing.JToolBar.Separator();
49: Cut = new javax.swing.JButton();
50: Copy = new javax.swing.JButton();
51: Paste = new javax.swing.JButton();
52: jSeparator3 = new javax.swing.JToolBar.Separator();
53: Larger = new javax.swing.JButton();
54: Smaller = new javax.swing.JButton();
55: jMenuBar1 = new javax.swing.JMenuBar();
56: MenuFile = new javax.swing.JMenu();
57: MenuNew = new javax.swing.JMenuItem();
58: MenuOpen = new javax.swing.JMenuItem();
59: MenuSave = new javax.swing.JMenuItem();
60: jMenuItem2 = new javax.swing.JMenuItem();
61: MenuExit = new javax.swing.JMenuItem();
62: jMenu2 = new javax.swing.JMenu();
63: jMenuItem1 = new javax.swing.JMenuItem();
64:
65: setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
66: addWindowListener(new java.awt.event.WindowAdapter() {
67: public void windowClosing(java.awt.event.WindowEvent evt) {
68: formWindowClosing(evt);
69: }
70: });
71:
72: textEditor.setColumns(20);
73: textEditor.setRows(5);
74: textEditor.addKeyListener(new java.awt.event.KeyAdapter() {
75: public void keyPressed(java.awt.event.KeyEvent evt) {
76: textEditorKeyPressed(evt);
77: }
78: });
79: jScrollPane1.setViewportView(textEditor);
80:
81: jToolBar2.setRollover(true);
82:
83: Save.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/iconbtn/save.png"))); // NOI18N
84: Save.setText("Save");
85: Save.setToolTipText("Save your file");
86: Save.setEnabled(false);
87: Save.setFocusable(false);
88: Save.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
89: Save.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
90: Save.addActionListener(new java.awt.event.ActionListener() {
91: public void actionPerformed(java.awt.event.ActionEvent evt) {
92: SaveActionPerformed(evt);
93: }
94: });
95: jToolBar2.add(Save);
96:
97: Saveas.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/iconbtn/saveas.png"))); // NOI18N
98: Saveas.setText("Save As");
99: Saveas.setToolTipText("Save As your file");
100: Saveas.setEnabled(false);
101: Saveas.setFocusable(false);
102: Saveas.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
103: Saveas.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
104: Saveas.addActionListener(new java.awt.event.ActionListener() {
105: public void actionPerformed(java.awt.event.ActionEvent evt) {
106: SaveasActionPerformed(evt);
107: }
108: });
109: jToolBar2.add(Saveas);
110: jToolBar2.add(jSeparator2);
111:
112: Cut.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/iconbtn/cut.gif"))); // NOI18N
113: Cut.setText("Cut");
114: Cut.setToolTipText("Cut text from editor");
115: Cut.setFocusable(false);
116: Cut.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
117: Cut.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
118: Cut.addActionListener(new java.awt.event.ActionListener() {
119: public void actionPerformed(java.awt.event.ActionEvent evt) {
120: CutActionPerformed(evt);
121: }
122: });
123: jToolBar2.add(Cut);
124:
125: Copy.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/iconbtn/copy.png"))); // NOI18N
126: Copy.setText("Copy");
127: Copy.setFocusable(false);
128: Copy.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
129: Copy.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
130: Copy.addActionListener(new java.awt.event.ActionListener() {
131: public void actionPerformed(java.awt.event.ActionEvent evt) {
132: CopyActionPerformed(evt);
133: }
134: });
135: jToolBar2.add(Copy);
136:
137: Paste.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/iconbtn/paste.png"))); // NOI18N
138: Paste.setText("Paste");
139: Paste.setToolTipText("Paste from clipboard");
140: Paste.setFocusable(false);
141: Paste.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
142: Paste.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
143: Paste.addActionListener(new java.awt.event.ActionListener() {
144: public void actionPerformed(java.awt.event.ActionEvent evt) {
145: PasteActionPerformed(evt);
146: }
147: });
148: jToolBar2.add(Paste);
149: jToolBar2.add(jSeparator3);
150:
151: Larger.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/iconbtn/plus.png"))); // NOI18N
152: Larger.setText("Larger");
153: Larger.setToolTipText("Larger your text");
154: Larger.setFocusable(false);
155: Larger.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
156: Larger.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
157: Larger.addActionListener(new java.awt.event.ActionListener() {
158: public void actionPerformed(java.awt.event.ActionEvent evt) {
159: LargerActionPerformed(evt);
160: }
161: });
162: jToolBar2.add(Larger);
163:
164: Smaller.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/iconbtn/minus.png"))); // NOI18N
165: Smaller.setText("Smaller");
166: Smaller.setToolTipText("Smaller your text");
167: Smaller.setFocusable(false);
168: Smaller.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
169: Smaller.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
170: Smaller.addActionListener(new java.awt.event.ActionListener() {
171: public void actionPerformed(java.awt.event.ActionEvent evt) {
172: SmallerActionPerformed(evt);
173: }
174: });
175: jToolBar2.add(Smaller);
176:
177: MenuFile.setText("File");
178: MenuFile.addActionListener(new java.awt.event.ActionListener() {
179: public void actionPerformed(java.awt.event.ActionEvent evt) {
180: MenuFileActionPerformed(evt);
181: }
182: });
183:
184: MenuNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
185: MenuNew.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/new.jpg"))); // NOI18N
186: MenuNew.setText("New");
187: MenuNew.addActionListener(new java.awt.event.ActionListener() {
188: public void actionPerformed(java.awt.event.ActionEvent evt) {
189: MenuNewActionPerformed(evt);
190: }
191: });
192: MenuFile.add(MenuNew);
193:
194: MenuOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
195: MenuOpen.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/open.jpg"))); // NOI18N
196: MenuOpen.setText("Open");
197: MenuOpen.addActionListener(new java.awt.event.ActionListener() {
198: public void actionPerformed(java.awt.event.ActionEvent evt) {
199: MenuOpenActionPerformed(evt);
200: }
201: });
202: MenuFile.add(MenuOpen);
203:
204: MenuSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
205: MenuSave.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/save.jpg"))); // NOI18N
206: MenuSave.setText("Save ");
207: MenuSave.addActionListener(new java.awt.event.ActionListener() {
208: public void actionPerformed(java.awt.event.ActionEvent evt) {
209: MenuSaveActionPerformed(evt);
210: }
211: });
212: MenuFile.add(MenuSave);
213:
214: jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
215: jMenuItem2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/iconbtn/saveas.png"))); // NOI18N
216: jMenuItem2.setText("Save As");
217: jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
218: public void actionPerformed(java.awt.event.ActionEvent evt) {
219: jMenuItem2ActionPerformed(evt);
220: }
221: });
222: MenuFile.add(jMenuItem2);
223:
224: MenuExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
225: MenuExit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/exit.jpg"))); // NOI18N
226: MenuExit.setText("Exit");
227: MenuExit.addActionListener(new java.awt.event.ActionListener() {
228: public void actionPerformed(java.awt.event.ActionEvent evt) {
229: MenuExitActionPerformed(evt);
230: }
231: });
232: MenuFile.add(MenuExit);
233:
234: jMenuBar1.add(MenuFile);
235:
236: jMenu2.setText("About");
237:
238: jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.CTRL_MASK));
239: jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/about.jpg"))); // NOI18N
240: jMenuItem1.setText("The Creator");
241: jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
242: public void actionPerformed(java.awt.event.ActionEvent evt) {
243: jMenuItem1ActionPerformed(evt);
244: }
245: });
246: jMenu2.add(jMenuItem1);
247:
248: jMenuBar1.add(jMenu2);
249:
250: setJMenuBar(jMenuBar1);
251:
252: javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
253: getContentPane().setLayout(layout);
254: layout.setHorizontalGroup(
255: layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
256: .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1019, Short.MAX_VALUE)
257: .addComponent(jToolBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
258: );
259: layout.setVerticalGroup(
260: layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
261: .addGroup(layout.createSequentialGroup()
262: .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE)
263: .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
264: .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 544, javax.swing.GroupLayout.PREFERRED_SIZE))
265: );
266:
267: pack();
268: }// </editor-fold>//GEN-END:initComponents
269:
270: private void MenuNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MenuNewActionPerformed
271: NewNotepad();
272: }//GEN-LAST:event_MenuNewActionPerformed
273:
274: private void MenuOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MenuOpenActionPerformed
275: openFile();
276:
277: }//GEN-LAST:event_MenuOpenActionPerformed
278:
279: private void MenuSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MenuSaveActionPerformed
280: if(!currentFile.equals("Untitled"))
281: saveFile(currentFile);
282: else
283: saveFileAs();
284: }//GEN-LAST:event_MenuSaveActionPerformed
285:
286: private void MenuFileActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MenuFileActionPerformed
287:
288: }//GEN-LAST:event_MenuFileActionPerformed
289:
290: private void MenuExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MenuExitActionPerformed
291: System.exit(0);
292: }//GEN-LAST:event_MenuExitActionPerformed
293:
294: private void SaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SaveActionPerformed
295: if(!currentFile.equals("Untitled"))
296: saveFile(currentFile);
297: else
298: saveFileAs();
299: }//GEN-LAST:event_SaveActionPerformed
300:
301: private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
302: saveFileAs();
303: }//GEN-LAST:event_jMenuItem2ActionPerformed
304:
305: private void SaveasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SaveasActionPerformed
306: saveFileAs();
307: }//GEN-LAST:event_SaveasActionPerformed
308:
309: private void textEditorKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textEditorKeyPressed
310: changed = true;
311: Save.setEnabled(true);
312: Saveas.setEnabled(true);
313: }//GEN-LAST:event_textEditorKeyPressed
314:
315: private void CutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CutActionPerformed
316: textEditor.cut();
317: }//GEN-LAST:event_CutActionPerformed
318:
319: private void CopyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CopyActionPerformed
320: textEditor.copy();
321: }//GEN-LAST:event_CopyActionPerformed
322:
323: private void PasteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_PasteActionPerformed
324: textEditor.paste();
325: }//GEN-LAST:event_PasteActionPerformed
326:
327: private void LargerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_LargerActionPerformed
328: Font f = new Font(textEditor.getFont().getFontName(), textEditor.getFont().getStyle(), textEditor.getFont().getSize() + 1);
329: textEditor.setFont(f);
330: }//GEN-LAST:event_LargerActionPerformed
331:
332: private void SmallerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SmallerActionPerformed
333: Font f = new Font(textEditor.getFont().getFontName(), textEditor.getFont().getStyle(), textEditor.getFont().getSize() - 1);
334: textEditor.setFont(f);
335: }//GEN-LAST:event_SmallerActionPerformed
336:
337: private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing
338: saveOld();
339: }//GEN-LAST:event_formWindowClosing
340:
341: private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
342: JOptionPane.showMessageDialog(this,"Email me for suggestion : fanabarkah@students.itb.ac.id");
343: }//GEN-LAST:event_jMenuItem1ActionPerformed
344:
345: /**
346: * @param args the command line arguments
347: */
348: private void NewNotepad()
349: {
350: textEditor.setText("");
351: currentFile = "Untitled";
352: setTitle(nameApp + " - " + currentFile);
353: }
354:
355: public void openFile() {
356: saveOld();
357: if(dialog.showOpenDialog(null)==JFileChooser.APPROVE_OPTION) {
358: readInFile(dialog.getSelectedFile().getAbsolutePath());
359: }
360: Saveas.setEnabled(true);
361: }
362:
363: private void readInFile(String fileName) {
364: try {
365: try (FileReader r = new FileReader(fileName)) {
366: textEditor.read(r,null);
367: }
368: currentFile = fileName;
369: setTitle(nameApp + " - " + currentFile);
370: changed = false;
371: }
372: catch(IOException e) {
373: getToolkit().beep();
374: JOptionPane.showMessageDialog(this,"Editor can't find the file called "+fileName);
375: }
376: }
377:
378: private void saveOld() {
379: if(changed) {
380: if(JOptionPane.showConfirmDialog(this, "Would you like to save "+ currentFile +" ?","Save",JOptionPane.YES_NO_OPTION)== JOptionPane.YES_OPTION)
381: saveFile(currentFile);
382: }
383: }
384:
385: private void saveFileAs() {
386: if(dialog.showSaveDialog(null)==JFileChooser.APPROVE_OPTION)
387: saveFile(dialog.getSelectedFile().getAbsolutePath());
388: }
389:
390: private void saveFile(String fileName) {
391: try {
392: try (FileWriter w = new FileWriter(fileName)) {
393: textEditor.write(w);
394: }
395: currentFile = fileName;
396: setTitle(nameApp + " - " + currentFile);
397: changed = false;
398: Save.setEnabled(false);
399: }
400: catch(IOException e) {
401: }
402: }
403:
404: public static void main(String args[]) {
405: /* Set the Nimbus look and feel */
406: //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
407: /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
408: * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
409: */
410: try {
411: for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
412: if ("Nimbus".equals(info.getName())) {
413: javax.swing.UIManager.setLookAndFeel(info.getClassName());
414: break;
415: }
416: }
417: } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
418: java.util.logging.Logger.getLogger(NotewithI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
419: }
420: //</editor-fold>
421:
422: /* Create and display the form */
423: java.awt.EventQueue.invokeLater(new Runnable() {
424: @Override
425: public void run() {
426: new NotewithI().setVisible(true);
427: }
428: });
429: }
430:
431: // Variables declaration - do not modify//GEN-BEGIN:variables
432: private javax.swing.JButton Copy;
433: private javax.swing.JButton Cut;
434: private javax.swing.JButton Larger;
435: private javax.swing.JMenuItem MenuExit;
436: private javax.swing.JMenu MenuFile;
437: private javax.swing.JMenuItem MenuNew;
438: private javax.swing.JMenuItem MenuOpen;
439: private javax.swing.JMenuItem MenuSave;
440: private javax.swing.JButton Paste;
441: private javax.swing.JButton Save;
442: private javax.swing.JButton Saveas;
443: private javax.swing.JButton Smaller;
444: private javax.swing.JMenu jMenu2;
445: private javax.swing.JMenuBar jMenuBar1;
446: private javax.swing.JMenuItem jMenuItem1;
447: private javax.swing.JMenuItem jMenuItem2;
448: private javax.swing.JScrollPane jScrollPane1;
449: private javax.swing.JSeparator jSeparator1;
450: private javax.swing.JToolBar.Separator jSeparator2;
451: private javax.swing.JToolBar.Separator jSeparator3;
452: private javax.swing.JToolBar jToolBar2;
453: private javax.swing.JTextArea textEditor;
454: // End of variables declaration//GEN-END:variables
455: }
456:
Andina Ummu Shifra | 28 Januari 2014 pukul 10.24
aw aw aw itu yang ngasih tutor udah mandi belum??
*komen yg gak sesuai karena diundang dari Line*
Unknown | 5 Februari 2014 pukul 03.35
aseeemm.. udah lah haha
d undang dari line maksudny gmn din ?