Тут покажу пример простого редактора, точнее Notepad на Java.
import java.io.*; import java.util.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class JNotepad extends JFrame implements ActionListener { private JTextArea txt = null; // Поле private JScrollPane jspScrollBar = null; // Полоса прокрутки для JTextArea private JMenuItem popupNew = null; // Подменю "Новый" private JMenuItem popupOpen = null; // Подменю "Открыть" private JMenuItem popupSave = null; // Подменю "Сохранить" private JMenuItem popupQuit = null; // Подменю "Выйти" // Метод добавляет меню в JFrame, возвращает JMenuBar public JMenuBar showMenu() { JMenuBar mnuBar = new JMenuBar(); // Меню --------------------------------------------------------- // File JMenu mnuFile = new JMenu("File"); mnuFile.setMnemonic('F'); mnuBar.add(mnuFile); // Подменю ----------------------------------------------------- // File popupNew = new JMenuItem("New"); popupNew.setMnemonic('N'); popupNew.addActionListener(this); popupOpen = new JMenuItem("Open"); popupOpen.setMnemonic('O'); popupOpen.addActionListener(this); popupSave = new JMenuItem("Save"); popupSave.setMnemonic('S'); popupSave.addActionListener(this); popupQuit = new JMenuItem("Quit"); popupQuit.setMnemonic('Q'); popupQuit.addActionListener(this); // Добавляет подменю в меню ------------------------------------- // File mnuFile.add(popupNew); mnuFile.addSeparator(); mnuFile.add(popupOpen); mnuFile.add(popupSave); mnuFile.addSeparator(); mnuFile.add(popupQuit); // Возврат объекта JMenuBar return mnuBar; } // Конструктор public JNotepad() { setTitle("JNotepad 1.0"); // Устанавливает заголовок окна JNotepad 1.0 setIconImage(Toolkit.getDefaultToolkit().getImage("NOTE03.png")); // Устанавливает иконку для окна setSize(640, 480); // Устанавливает размер окна setJMenuBar(showMenu()); // Добавляет меню txt = new JTextArea(); // Добавляет JTextArea jspScrollBar = new JScrollPane(txt); // Устанавливает прокрутку для JTextArea add(jspScrollBar); // Добавляет прокрутку в JFrame setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Устанавливает обработчик при нажатие [b]ALT+F4[/b] или при нажатие на [b]×[/b] setVisible(true); // Отображает окно } // Чтения файла private String read(File f) { String strData = ""; try { Scanner rd = new Scanner(f); while(rd.hasNextLine()) { strData += rd.nextLine(); } } catch(IOException e) { e.printStackTrace(); } return strData; } // Чтения файл private String read(String strFilename) { return read(new File(strFilename)); } // Запись в файла private void write(File f, String strData) { try { FileWriter fw = new FileWriter(f); fw.write(strData); fw.close(); } catch(IOException e) { e.printStackTrace(); } } // Запись в файл private void write(String strFilename, String strData) { write(new File(strFilename), strData); } // Отображение диалогового окна "открыть" private void OpenDialog() { JFileChooser fc = new JFileChooser(); if(fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { txt.append(read(fc.getSelectedFile())); } } // Отображение диалоговорго окна "сохранить" private void SaveDialog() { JFileChooser fc = new JFileChooser(); if(fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) { write(fc.getSelectedFile(), txt.getText()); } } // Точка входа программы, для JVM public static void main(String[] args) { new JNotepad(); } // Обработка событий меню public void actionPerformed(ActionEvent e) { if(e.getSource() == popupNew) txt.setText(""); // При нажатие на "Новый", очищаем поле else if(e.getSource() == popupOpen) OpenDialog(); // При нажатие на "Открыть", отображает диалоговое окно открыть, после выбора файла, считываем файл и добавляем в JTextArea else if(e.getSource() == popupSave) SaveDialog(); // При нажатие на "Сохранить", отображает диалоговое окно сохранть, после выбора файла, записываем из JTextArea в файл else if(e.getSource() == popupQuit) System.exit(0); // При нажатие на "Выход", закрывает приложение. } }
Сохраним как JNotepad.java
А теперь давайте откомпилируем:
javac JNotepad.java
Чтобы запустить введём комманду:
java JNotepad
Результат: