Swingでテキストエディタをつくる

Swingでサンプルプログラムとしてテキストエディタをつくってみました。実用的ではありませんが、テキストエディタとして最低限必要な機能は一通り盛り込めたとは思います。

動作環境

こちらの環境

OSWindowsXP
JRE1.5.0_04

JREのバージョンについて

インストールされているJavaのバージョンを調べるにはコマンドラインでjava -versionと打ち込みます。1.4.2でも動くように作成したつもりですが、確認はしていません。 JRE ver.1.4.2_09でもおおむね問題なく動作するようです。とはいえ、新しいバージョンのJREを使うことを推奨します。

Java 2 Platform Standard Edition 5.0 のダウンロード
http://java.sun.com/j2se/1.5.0/ja/download.html

スクリーンショット

クリックすると拡大します。

エディタ フォントの設定 検索と置換

メニューと関連するメソッド

キーボードショートカット

Macの場合、コントロールキー(Ctrl)はコマンドキー(Cmd)になります。Technical Note TN2042 の Swing のメニューとメニュー項目にあるように、Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() を使用しています。

Ctrl+A全て選択 Ctrl+Cコピー
Ctrl+F検索と置換 Ctrl+G行へ移動
Ctrl+Iタブの挿入 Ctrl+J改行
Ctrl+M改行 Ctrl+N新規
Ctrl+O開く Ctrl+P印刷
Ctrl+S保存 Ctrl+V貼り付け
Ctrl+W終了 Ctrl+X切り取り
Ctrl+Yやり直し Ctrl+Z元に戻す
F1ヘルプ F3前を検索
F4次を検索 Delete削除

ソース等

下記の注意事項を読んだ上で、ダウンロードしてください。ダウンロードした時点で同意したものと見なします。コンパイルしたい人はjavaファイルを選択してください。単に動かしてみたい人などはjarファイルを選択してください。

ソース (javaファイル)
javac *.java (Windows 環境以外では、javac -encoding Shift_JIS *.java)
-> java NogNote
アーカイブ (jarファイル)
(普通のアプリケーションと同様に)ファイルをダブルクリックするか、javaw -jar NogNote.jar

注: このアプリケーションを起動させた後、jTextArea.xmlとjFrame.xmlというファイルが作られますが、これは設定を保存したファイルです。

注意事項

このテキストエディタに対するテストは不十分です。テキストエディタを使用していかなる結果がもたらされようと一切責任を取りません。それを了承の上、自己責任のもとでご利用ください。

ライセンス(2008年6月7日追記)

長い間テキストエディタのライセンスを明記していませんでしたが、問い合わせが来たのでライセンスを明記することにしました。以下に示す宣伝条項のない 2-clause BSD ライセンスにします。

Copyright (c) 2005,2006, Nog
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

参考サイト・文献