Java @ mock
テキストエディタ作成ver1.1
最終更新:
Bot(ページ名リンク)
-
view
テキストエディタ作成 ver1.1
Javaでテキストエディタ作成に挑戦してます。
作成の過程で学べたことをメモしておきます。
作成の過程で学べたことをメモしておきます。
作ったファイルを置いておきますが、自己責任でお願いします。
全角文字の入ったパスにjarファイルを置くと動作しません。
ダブルクリックで動作すると思います。
全角文字の入ったパスにjarファイルを置くと動作しません。
ダブルクリックで動作すると思います。
機能
- 新規
- 開く
- 上書き保存
- 名前を付けて保存
これしかありません。。。
改善点
主にリファクタリングしました
- Exception→IOExceptionにした
- 例外の処理はwriteFileメソッド内で行うようにした
- 定数はConstants.javaに定義した
- バージョン情報にもニーモニックを追加した
気になる
- 例外発生時にアラートを表示するようにしたい
- 名前を付けて保存時に既にあるファイル名に保存する場合もアラートがほしい
- フィールドのスコープが適正かどうかわからない
- コメント見づらい?
/** * テキストエリアの高さ */ public static final [[int]] TEXT_AREA_HEIGHT = 300;
フィールドならこっちのほうが見やすそう
/** テキストエリアの高さ */ public static final int TEXT_AREA_HEIGHT = 300;
- Constantsクラスのラベル・ニーモニック・アクションキーにenumを使ったほうがいい?
- 文字がみづらい
- 右端で折り返してほしい
- 検索機能はつけたい
- iniファイル使ってみたい
iniファイル読み込み実験してみました↓
IniFileTest.java
IniFileTest.java
import java.util.Properties; class IniFileTest { public static void main([[String]][] args) { try { Properties properties = new Properties(); properties.load(new java.io.FileInputStream("C:\\java\\test.ini")); String textAreaWidth = properties.getProperty("textAreaWidth"); String textAreaHeight = properties.getProperty("textAreaHeight"); String undifinedTitle = properties.getProperty("undifinedTitle"); System.out.println("textAreaWidth\t: " + textAreaWidth); System.out.println("textAreaHeight\t: " + textAreaHeight); System.out.println("undifinedTitle\t: " + undifinedTitle); } catch (java.io.IOException e) { e.printStackTrace(); } } }
test.ini
textAreaWidth = 300 textAreaHeight = 500 undifinedTitle = title
実行結果
C:\java>javac IniFileTest.java C:\java>java IniFileTest textAreaWidth : 300 textAreaHeight : 500 undifinedTitle : title
こんな感じで使いたいなぁ。。。
properties.load(new java.io.FileInputStream("test.ini"));
で同じフォルダ内においておけばいける。jarファイルにしても大丈夫かなぁ。。。
- java.awt.event.KeyEventクラスのフィールドに既にキーの定数があった。。。ニーモニックはの引数はそれを使うらしい。。。
まなんだ
- 定数
- Javadocの@version・・・ん?もしかして使い方違う?
importしたクラスライブラリ
java.awt.Dimension java.awt.HeadlessException java.awt.event.ActionEvent java.awt.event.ActionListener java.io.File java.io.FileReader java.io.FileWriter java.io.IOException javax.swing.JFileChooser javax.swing.JFrame javax.swing.JMenu javax.swing.JMenuBar javax.swing.JMenuItem javax.swing.JOptionPane javax.swing.JScrollPane javax.swing.JTextArea
前回と同様です。ここら辺のクラスに強くなりたいので、メモしておきます。
添付ファイル