Тут покажу пример простого редактора, точнее 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
Результат: