Вы находитесь на странице: 1из 5

package notepadPkg; import import import import import import java.awt.event.*; javax.swing.*; javax.swing.JFrame; java.lang.*; java.lang.Object; java.beans.

*;

public class Notepad extends JFrame { JTextArea txtArea; JMenuBar menuBar; /*File Menu*/ JMenu fileMenu; JMenuItem newItem; JMenuItem openItem; JMenuItem saveItem; JMenuItem exitItem; /*Edit Menu*/ JMenu editMenu; JMenuItem copyItem; JMenuItem cutItem; JMenuItem pasteItem; JMenuItem selectAllItem; /*Help Menu*/ JMenu helpMenu; JMenuItem aboutItem; boolean saved = false; //Variables String str = ""; public Notepad(String title) { super(title); setupGUI(); } public Notepad() { this("Untitled"); } /************* Helper Functions ***********/ private void setupGUI() { txtArea = new JTextArea(); menuBar = new JMenuBar(); /*** File Menu initialization ***/ fileMenu = new JMenu("File"); newItem = new JMenuItem("New Ctrl openItem = new JMenuItem("Open Ctrl saveItem = new JMenuItem("Save Ctrl exitItem = new JMenuItem("Exit Ctrl

+ + + +

N", O", S", E",

'n'); 'o'); 's'); 'e');

/*** Edit Menu initialization ***/ editMenu = new JMenu("Edit"); copyItem = new JMenuItem("Copy"); cutItem = new JMenuItem("Cut"); pasteItem = new JMenuItem("Paste"); selectAllItem = new JMenuItem("Select All"); /*** Help Menu initialization ***/ helpMenu = new JMenu("Help"); aboutItem = new JMenuItem("About"); setJMenuBar(menuBar); add(txtArea); /*** File Menu ***/ newItem.addActionListener(new NewListener()); newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, Inp utEvent.CTRL_MASK)); openItem.addActionListener(new OpenListener()); openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, In putEvent.CTRL_MASK)); saveItem.addActionListener(new SaveListener()); saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, In putEvent.CTRL_MASK)); exitItem.addActionListener(new ExitListener()); exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, In putEvent.CTRL_MASK)); /*** Edit Menu ***/ copyItem.addActionListener(new ActionListener() { public void acti onPerformed(ActionEvent e) { str = tx tArea.getSelectedText(); } }); pasteItem.addActionListener(new ActionListener() { public void acti onPerformed(ActionEvent e) { if(txtAr ea.getSelectedText() == "" txtArea.getSelectedText() == null) { txtArea.insert(str, txtArea.getCaretPosition()); } else { txtArea.replaceSelection(str); } } });

cutItem.addActionListener(new ActionListener() { public void acti onPerformed(ActionEvent e) { str = tx tArea.getSelectedText(); txtArea. replaceSelection(""); } }); selectAllItem.addActionListener(new ActionListener() { public void acti onPerformed(ActionEvent e) { txtArea. selectAll(); } }); /*** Help Menu ***/ aboutItem.addActionListener(new ActionListener() { public void acti onPerformed(ActionEvent e) { final JO ptionPane optionPane = new JOptionPane("Welcome to Java Notepad 1.0. \n All righ ts reserved 2010.", JOptionP ane.INFORMATION_MESSAGE, JOptionPane.DEFAULT_OPTION); final JD ialog dialog = new JDialog(Notepad.this, "Information...", true); dialog.s etContentPane(optionPane); dialog.s etDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); optionPa ne.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { dialog.setVisible(false); } }); dialog.p ack(); dialog.s etVisible(true); } }); fileMenu.add(newItem); fileMenu.add(openItem);

fileMenu.add(saveItem); fileMenu.add(exitItem); editMenu.add(copyItem); editMenu.add(cutItem); editMenu.add(pasteItem); editMenu.add(selectAllItem); helpMenu.add(aboutItem); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(helpMenu); setSize(500, 500); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } class NewListener implements ActionListener { public void actionPerformed(ActionEvent e) { if(!saved) { String msg = new String("Do you want to save bef or exit?"); try { int res = JOptionPane.showConfirmDialog( null, "Do you want to save?", "Confirmation...", JOptionPane.YES_NO_OPTION); if(res == JOptionPane.OK_OPTION) { SaveListener save = new SaveList ener(); save.actionPerformed(e); } else { txtArea.setText(""); } } catch(Exception ex) { txtArea.setText("Exception...\n" + ex.ge tMessage()); } } else { txtArea.setText(""); } } } class ExitListener implements ActionListener { public void actionPerformed(ActionEvent e) { System.exit(0); }

} class SaveListener implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser saveFileChooser = new JFileChooser(); try { if(saveFileChooser.showSaveDialog(Notepad.this) == JFileChooser.APPROVE_OPTION) { String path = saveFileChooser.getSelecte dFile().getPath(); txtArea.append(path); saved = true; } } catch(Exception ex) {} } } class OpenListener implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser openFileChooser = new JFileChooser(); try { if(openFileChooser.showOpenDialog(Notepad.this) == JFileChooser.APPROVE_OPTION) { String path = openFileChooser.getSelecte dFile().getPath(); txtArea.append(path); } } catch(Exception ex) {} } } }

Вам также может понравиться