「テキストエディタソースver1.1」の編集履歴(バックアップ)一覧はこちら
テキストエディタソースver1.1 - (2009/03/08 (日) 14:31:19) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
*テキストエディタソースver1.1
#contents()
**TextEditor.java
import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/**
* テキストエディタのメインクラスです
*
* @author mock
* @version 1.1
*/
public class TextEditor extends JFrame implements ActionListener {
/**
* serialVersionUID
*/
private static final long serialVersionUID = 1L;
/**
* テキストエリア
*/
private static JTextArea textArea;
/**
* メニューバー
*/
private static JMenuBar menuBar = new JMenuBar();
/**
* ファイル選択
*/
private static JFileChooser fileChooser = new JFileChooser();
/**
* コンストラクタ
*
* @throws HeadlessException
*/
TextEditor() throws HeadlessException {
super();
setVisible(true);
setTitle(Constants.UNDIFINED_TITLE);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// メニューバーの作成
createMenuBar();
// テキストエリアの作成
createTextArea(Constants.TEXT_AREA_WIDTH, Constants.TEXT_AREA_HEIGHT);
pack();
}
/**
* mainメソッドです
*
* @param args
*/
public static void main(String[] args) {
new TextEditor();
}
/**
* メニューバーを作成するメソッドです
*/
private void createMenuBar() {
getRootPane().setJMenuBar(menuBar);
// ファイル(F)
JMenu menuFile = new JMenu(Constants.MENU_FILE_LABEL);
menuFile.setMnemonic(Constants.MENU_FILE_MNEMONIC);
menuBar.add(menuFile);
// ファイル(F)>新規(N)
JMenuItem menuItemNew = new JMenuItem(Constants.MENU_ITEM_NEW_LABEL);
menuItemNew.setMnemonic(Constants.MENU_ITEM_NEW_MNEMONIC);
menuItemNew.setActionCommand(Constants.ACTION_COMMAND_NEW);
menuItemNew.addActionListener(this);
menuFile.add(menuItemNew);
// ファイル(F)>開く(O)
JMenuItem menuItemOpen = new JMenuItem(Constants.MENU_ITEM_OPEN_LABEL);
menuItemOpen.setMnemonic(Constants.MENU_ITEM_OPEN_MNEMONIC);
menuItemOpen.setActionCommand(Constants.ACTION_COMMAND_OPEN);
menuItemOpen.addActionListener(this);
menuFile.add(menuItemOpen);
// ファイル(F)>上書き保存(S)
JMenuItem menuItemSave = new JMenuItem(Constants.MENU_ITEM_SAVE_LABEL);
menuItemSave.setMnemonic(Constants.MENU_ITEM_SAVE_MNEMONIC);
menuItemSave.setActionCommand(Constants.ACTION_COMMAND_SAVE);
menuItemSave.addActionListener(this);
menuFile.add(menuItemSave);
// ファイル(F)>名前を付けて保存(A)
JMenuItem menuItemSaveAs = new JMenuItem(
Constants.MENU_ITEM_SAVE_AS_LABEL);
menuItemSaveAs.setMnemonic(Constants.MENU_ITEM_SAVE_AS_MNEMONIC);
menuItemSaveAs.setActionCommand(Constants.ACTION_COMMAND_SAVE_AS);
menuItemSaveAs.addActionListener(this);
menuFile.add(menuItemSaveAs);
// ヘルプ(H)
JMenu menuHelp = new JMenu(Constants.MENU_HELP_LABEL);
menuHelp.setMnemonic(Constants.MENU_HELP_MNEMONIC);
menuBar.add(menuHelp);
// ヘルプ(H)>バージョン情報(A)
JMenuItem menuItemVersion = new JMenuItem(
Constants.MENU_ITEM_VERSION_LABEL);
menuItemVersion.setActionCommand(Constants.ACTION_COMMAND_VERSION);
menuItemVersion.setMnemonic(Constants.MENU_ITEM_VERSION_MNEMONIC);
menuItemVersion.addActionListener(this);
menuHelp.add(menuItemVersion);
}
/**
* テキストエリアを作成するメソッドです
*
* @param width
* テキストエリアの幅
* @param height
* テキストエリアの高さ
*/
private void createTextArea(int width, int height) {
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setPreferredSize(new Dimension(width, height));
getContentPane().add(scrollPane);
}
/*
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if (actionCommand.equals(Constants.ACTION_COMMAND_NEW)) {
newFile();
} else if (actionCommand.equals(Constants.ACTION_COMMAND_OPEN)) {
openFile();
} else if (actionCommand.equals(Constants.ACTION_COMMAND_SAVE)) {
save();
} else if (actionCommand.equals(Constants.ACTION_COMMAND_SAVE_AS)) {
saveAs();
} else if (actionCommand.equals(Constants.ACTION_COMMAND_VERSION)) {
showVersionInfo();
}
}
/**
* 「ファイル(F)>新規(N)」選択時に処理を行うメソッドです
*/
private void newFile() {
fileChooser.setSelectedFile(null);
fileChooser.setName(Constants.UNDIFINED_TITLE);
setTitle(Constants.UNDIFINED_TITLE);
textArea.setText("");
}
/**
* 「ファイル(F)>開く(O)」選択時に処理を行うメソッドです
*/
private void openFile() {
try {
if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
FileReader fileReader = new FileReader(selectedFile);
textArea.read(fileReader, null);
fileReader.close();
setTitle(fileChooser.getName(selectedFile));
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 「ファイル(F)>上書き保存(S)」選択時に処理を行うメソッドです
*/
private void save() {
// ファイルが既に開かれている場合
if (fileChooser.getSelectedFile() != null) {
writeFile();
return;
}
saveAs();
}
/**
* 「ファイル(F)>名前を付けて保存(A)」選択時に処理を行うメソッドです
*/
private void saveAs() {
// ファイルダイアログ「保存」が選択された場合
if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
writeFile();
File selectedFile = fileChooser.getSelectedFile();
setTitle(fileChooser.getName(selectedFile));
}
}
/**
* 「ヘルプ(H)>バージョン情報(A)」選択時に処理を行うメソッドです
*/
private void showVersionInfo() {
JOptionPane.showMessageDialog(this, Constants.VERSION, "version",
JOptionPane.INFORMATION_MESSAGE);
}
/**
* fileChooserで選択されているファイルを保存するメソッドです
*/
private void writeFile() {
try {
FileWriter fileWriter = new FileWriter(fileChooser
.getSelectedFile());
fileWriter.write(textArea.getText());
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
**Constants.java
/**
* 定数を定義するクラスです。
*
* @author mock
*
*/
public class Constants {
/*
* アプリケーションプロパティ
*/
/**
* テキストエリアの幅
*/
public static final int TEXT_AREA_WIDTH = 300;
/**
* テキストエリアの高さ
*/
public static final int TEXT_AREA_HEIGHT = 300;
/**
* 新規のタイトル名
*/
public static final String UNDIFINED_TITLE = "title";
/**
* バージョン
*/
public static final String VERSION = "ver1.1";
/*
* メニューラベル・メニューアイテムラベル
*/
/**
* ファイル(F)メニューのラベル
*/
public static final String MENU_FILE_LABEL = "ファイル(F)";
/**
* ファイル(F)>新規(N)メニューアイテムのラベル
*/
public static final String MENU_ITEM_NEW_LABEL = "新規(N)";
/**
* ファイル(F)>開く(O)メニューアイテムのラベルです。
*/
public static final String MENU_ITEM_OPEN_LABEL = "開く(O)";
/**
* ファイル(F)>上書き保存(S)メニューアイテムのラベル
*/
public static final String MENU_ITEM_SAVE_LABEL = "上書き保存(S)";
/**
* ファイル(F)>名前を付けて保存(A)メニューアイテムのラベル
*/
public static final String MENU_ITEM_SAVE_AS_LABEL = "名前を付けて保存(A)";
/**
* ヘルプ(H)メニューのラベルで
*/
public static final String MENU_HELP_LABEL = "ヘルプ(H)";
/**
* ヘルプ(H)>バージョン情報(A)メニューアイテムのラベル
*/
public static final String MENU_ITEM_VERSION_LABEL = "バージョン情報(A)";
/*
* メニューニーモニック・メニューアイテムニーモニック
*/
/**
* ファイル(F)メニューのニーモニック
*/
public static final char MENU_FILE_MNEMONIC = 'F';
/**
* ファイル(F)>新規(N)メニューアイテムのニーモニック
*/
public static final char MENU_ITEM_NEW_MNEMONIC = 'N';
/**
* ファイル(F)>開く(O)メニューアイテムのニーモニックです。
*/
public static final char MENU_ITEM_OPEN_MNEMONIC = 'O';
/**
* ファイル(F)>上書き保存(S)メニューアイテムのニーモニック
*/
public static final char MENU_ITEM_SAVE_MNEMONIC = 'S';
/**
* ファイル(F)>名前を付けて保存(A)メニューアイテムのニーモニック
*/
public static final char MENU_ITEM_SAVE_AS_MNEMONIC = 'A';
/**
* ヘルプ(H)メニューのニーモニックで
*/
public static final char MENU_HELP_MNEMONIC = 'H';
/**
* ヘルプ(H)>バージョン情報(A)メニューアイテムのニーモニック
*/
public static final char MENU_ITEM_VERSION_MNEMONIC = 'A';
/*
* アクションコマンドキー
*/
/**
* ファイル(F)>新規(N)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_NEW = "NEW";
/**
* ファイル(F)>開く(O)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_OPEN = "OPEN";
/**
* ファイル(F)>上書き保存(S)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_SAVE = "SAVE";
/**
* ファイル(F)>名前を付けて保存(A)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_SAVE_AS = "SAVE_AS";
/**
* ヘルプ(H)>バージョン情報(A)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_VERSION = "VERSION";
}
*テキストエディタソースver1.1
#contents()
**TextEditor.java
import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/**
* テキストエディタのメインクラスです
*
* @author mock
* @version 1.1
*/
public class TextEditor extends JFrame implements ActionListener {
/**
* serialVersionUID
*/
private static final [[long]] serialVersionUID = 1L;
/**
* テキストエリア
*/
private static JTextArea textArea;
/**
* メニューバー
*/
private static JMenuBar menuBar = new JMenuBar();
/**
* ファイル選択
*/
private static JFileChooser fileChooser = new JFileChooser();
/**
* コンストラクタ
*
* @throws HeadlessException
*/
TextEditor() throws HeadlessException {
super();
setVisible(true);
setTitle(Constants.UNDIFINED_TITLE);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// メニューバーの作成
createMenuBar();
// テキストエリアの作成
createTextArea(Constants.TEXT_AREA_WIDTH, Constants.TEXT_AREA_HEIGHT);
pack();
}
/**
* mainメソッドです
*
* @param args
*/
public static void main([[String]][] args) {
new TextEditor();
}
/**
* メニューバーを作成するメソッドです
*/
private void createMenuBar() {
getRootPane().setJMenuBar(menuBar);
// ファイル(F)
JMenu menuFile = new JMenu(Constants.MENU_FILE_LABEL);
menuFile.setMnemonic(Constants.MENU_FILE_MNEMONIC);
menuBar.add(menuFile);
// ファイル(F)>新規(N)
JMenuItem menuItemNew = new JMenuItem(Constants.MENU_ITEM_NEW_LABEL);
menuItemNew.setMnemonic(Constants.MENU_ITEM_NEW_MNEMONIC);
menuItemNew.setActionCommand(Constants.ACTION_COMMAND_NEW);
menuItemNew.addActionListener(this);
menuFile.add(menuItemNew);
// ファイル(F)>開く(O)
JMenuItem menuItemOpen = new JMenuItem(Constants.MENU_ITEM_OPEN_LABEL);
menuItemOpen.setMnemonic(Constants.MENU_ITEM_OPEN_MNEMONIC);
menuItemOpen.setActionCommand(Constants.ACTION_COMMAND_OPEN);
menuItemOpen.addActionListener(this);
menuFile.add(menuItemOpen);
// ファイル(F)>上書き保存(S)
JMenuItem menuItemSave = new JMenuItem(Constants.MENU_ITEM_SAVE_LABEL);
menuItemSave.setMnemonic(Constants.MENU_ITEM_SAVE_MNEMONIC);
menuItemSave.setActionCommand(Constants.ACTION_COMMAND_SAVE);
menuItemSave.addActionListener(this);
menuFile.add(menuItemSave);
// ファイル(F)>名前を付けて保存(A)
JMenuItem menuItemSaveAs = new JMenuItem(
Constants.MENU_ITEM_SAVE_AS_LABEL);
menuItemSaveAs.setMnemonic(Constants.MENU_ITEM_SAVE_AS_MNEMONIC);
menuItemSaveAs.setActionCommand(Constants.ACTION_COMMAND_SAVE_AS);
menuItemSaveAs.addActionListener(this);
menuFile.add(menuItemSaveAs);
// ヘルプ(H)
JMenu menuHelp = new JMenu(Constants.MENU_HELP_LABEL);
menuHelp.setMnemonic(Constants.MENU_HELP_MNEMONIC);
menuBar.add(menuHelp);
// ヘルプ(H)>バージョン情報(A)
JMenuItem menuItemVersion = new JMenuItem(
Constants.MENU_ITEM_VERSION_LABEL);
menuItemVersion.setActionCommand(Constants.ACTION_COMMAND_VERSION);
menuItemVersion.setMnemonic(Constants.MENU_ITEM_VERSION_MNEMONIC);
menuItemVersion.addActionListener(this);
menuHelp.add(menuItemVersion);
}
/**
* テキストエリアを作成するメソッドです
*
* @param width
* テキストエリアの幅
* @param height
* テキストエリアの高さ
*/
private void createTextArea([[int]] width, int height) {
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setPreferredSize(new Dimension(width, height));
getContentPane().add(scrollPane);
}
/*
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if (actionCommand.equals(Constants.ACTION_COMMAND_NEW)) {
newFile();
} else if (actionCommand.equals(Constants.ACTION_COMMAND_OPEN)) {
openFile();
} else if (actionCommand.equals(Constants.ACTION_COMMAND_SAVE)) {
save();
} else if (actionCommand.equals(Constants.ACTION_COMMAND_SAVE_AS)) {
saveAs();
} else if (actionCommand.equals(Constants.ACTION_COMMAND_VERSION)) {
showVersionInfo();
}
}
/**
* 「ファイル(F)>新規(N)」選択時に処理を行うメソッドです
*/
private void newFile() {
fileChooser.setSelectedFile(null);
fileChooser.setName(Constants.UNDIFINED_TITLE);
setTitle(Constants.UNDIFINED_TITLE);
textArea.setText("");
}
/**
* 「ファイル(F)>開く(O)」選択時に処理を行うメソッドです
*/
private void openFile() {
try {
if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
FileReader fileReader = new FileReader(selectedFile);
textArea.read(fileReader, null);
fileReader.close();
setTitle(fileChooser.getName(selectedFile));
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 「ファイル(F)>上書き保存(S)」選択時に処理を行うメソッドです
*/
private void save() {
// ファイルが既に開かれている場合
if (fileChooser.getSelectedFile() != null) {
writeFile();
[[return]];
}
saveAs();
}
/**
* 「ファイル(F)>名前を付けて保存(A)」選択時に処理を行うメソッドです
*/
private void saveAs() {
// ファイルダイアログ「保存」が選択された場合
if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
writeFile();
File selectedFile = fileChooser.getSelectedFile();
setTitle(fileChooser.getName(selectedFile));
}
}
/**
* 「ヘルプ(H)>バージョン情報(A)」選択時に処理を行うメソッドです
*/
private void showVersionInfo() {
JOptionPane.showMessageDialog(this, Constants.VERSION, "version",
JOptionPane.INFORMATION_MESSAGE);
}
/**
* fileChooserで選択されているファイルを保存するメソッドです
*/
private void writeFile() {
try {
FileWriter fileWriter = new FileWriter(fileChooser
.getSelectedFile());
fileWriter.write(textArea.getText());
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
**Constants.java
/**
* 定数を定義するクラスです。
*
* @author mock
*
*/
public class Constants {
/*
* アプリケーションプロパティ
*/
/**
* テキストエリアの幅
*/
public static final int TEXT_AREA_WIDTH = 300;
/**
* テキストエリアの高さ
*/
public static final int TEXT_AREA_HEIGHT = 300;
/**
* 新規のタイトル名
*/
public static final String UNDIFINED_TITLE = "title";
/**
* バージョン
*/
public static final String VERSION = "ver1.1";
/*
* メニューラベル・メニューアイテムラベル
*/
/**
* ファイル(F)メニューのラベル
*/
public static final String MENU_FILE_LABEL = "ファイル(F)";
/**
* ファイル(F)>新規(N)メニューアイテムのラベル
*/
public static final String MENU_ITEM_NEW_LABEL = "新規(N)";
/**
* ファイル(F)>開く(O)メニューアイテムのラベルです。
*/
public static final String MENU_ITEM_OPEN_LABEL = "開く(O)";
/**
* ファイル(F)>上書き保存(S)メニューアイテムのラベル
*/
public static final String MENU_ITEM_SAVE_LABEL = "上書き保存(S)";
/**
* ファイル(F)>名前を付けて保存(A)メニューアイテムのラベル
*/
public static final String MENU_ITEM_SAVE_AS_LABEL = "名前を付けて保存(A)";
/**
* ヘルプ(H)メニューのラベルで
*/
public static final String MENU_HELP_LABEL = "ヘルプ(H)";
/**
* ヘルプ(H)>バージョン情報(A)メニューアイテムのラベル
*/
public static final String MENU_ITEM_VERSION_LABEL = "バージョン情報(A)";
/*
* メニューニーモニック・メニューアイテムニーモニック
*/
/**
* ファイル(F)メニューのニーモニック
*/
public static final [[char]] MENU_FILE_MNEMONIC = 'F';
/**
* ファイル(F)>新規(N)メニューアイテムのニーモニック
*/
public static final char MENU_ITEM_NEW_MNEMONIC = 'N';
/**
* ファイル(F)>開く(O)メニューアイテムのニーモニックです。
*/
public static final char MENU_ITEM_OPEN_MNEMONIC = 'O';
/**
* ファイル(F)>上書き保存(S)メニューアイテムのニーモニック
*/
public static final char MENU_ITEM_SAVE_MNEMONIC = 'S';
/**
* ファイル(F)>名前を付けて保存(A)メニューアイテムのニーモニック
*/
public static final char MENU_ITEM_SAVE_AS_MNEMONIC = 'A';
/**
* ヘルプ(H)メニューのニーモニックで
*/
public static final char MENU_HELP_MNEMONIC = 'H';
/**
* ヘルプ(H)>バージョン情報(A)メニューアイテムのニーモニック
*/
public static final char MENU_ITEM_VERSION_MNEMONIC = 'A';
/*
* アクションコマンドキー
*/
/**
* ファイル(F)>新規(N)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_NEW = "NEW";
/**
* ファイル(F)>開く(O)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_OPEN = "OPEN";
/**
* ファイル(F)>上書き保存(S)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_SAVE = "SAVE";
/**
* ファイル(F)>名前を付けて保存(A)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_SAVE_AS = "SAVE_AS";
/**
* ヘルプ(H)>バージョン情報(A)メニューアイテムのアクションコマンドキー
*/
public static final String ACTION_COMMAND_VERSION = "VERSION";
}
表示オプション
横に並べて表示:
変化行の前後のみ表示: