Java @ mock

テキストエディタ作成ver1.1

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

テキストエディタ作成 ver1.1


Javaでテキストエディタ作成に挑戦してます。
作成の過程で学べたことをメモしておきます。

作ったファイルを置いておきますが、自己責任でお願いします。
全角文字の入ったパスにjarファイルを置くと動作しません。
ダブルクリックで動作すると思います。

jarファイル
※TextEditor1.0と機能は同じです。

ソース

機能
  • 新規
  • 開く
  • 上書き保存
  • 名前を付けて保存
これしかありません。。。


改善点

主にリファクタリングしました
  • 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
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 
前回と同様です。ここら辺のクラスに強くなりたいので、メモしておきます。
添付ファイル
ウィキ募集バナー