Java @ mock
テキストエディタ作成ver1.2
最終更新:
Bot(ページ名リンク)
-
view
テキストエディタ作成ver1.2
Javaでテキストエディタ作成に挑戦してます。
作成の過程で学べたことをメモしておきます。
作成の過程で学べたことをメモしておきます。
作ったファイルを置いておきますが、自己責任でお願いします。
全角文字の入ったパスにjarファイルを置くと動作しないかもしれません。
展開したフォルダ内のjarファイルをダブルクリックで動作すると思います。
全角文字の入ったパスにjarファイルを置くと動作しないかもしれません。
展開したフォルダ内のjarファイルをダブルクリックで動作すると思います。
機能
- 新規
- 開く
- 上書き保存
- 名前を付けて保存
- 右端で折り返す
※texteditor.iniをいじると多少はテキストエディタの設定ができます。
textAreaWidth = 500 ←幅 textAreaHeight = 300 ←高さ tabSize = 4 ←タブ時のスペース数 fontSize = 16 ←フォントの大きさ
変更点
- 背景、文字、選択部分、キャレットの色フォントを変更
- 多少設定できるようになった
- 起動時にテキストエリアにフォーカスが当たるようになった
- 右端で折り返す
これだけです。。。
改善点
- enumを使った(ラベル・ニーモニック・アクションキー)
- iniファイル読み込み成功
- 右端で折り返した
- テキストエリアにフォーカス
- 文字が見やすくなった
- java.awt.event.KeyEventクラスのフィールド定数を使った
- クラスを分けた
気になる
- 例外発生時にアラートを表示するようにしたい
- 名前を付けて保存時に既にあるファイル名に保存する場合もアラートがほしい
- フィールドのスコープが適正かどうかわからない
- 検索機能はつけたい
- クラス名のつけ方がわからない
- クラス分けの基準がわからない
- コメントがおかしいとこがたくさんあった
- 背景や文字の色フォントなども設定できるようにしたい
- ctrl + Sで保存したい → アクセラレータというものをつかうみたい
まなんだ
- インターフェースを使えた
- enumを使えた → 管理が楽になった
- thisを理解してるか不安になったが、わかった
- java.util.Propertiesを使えた
- インターフェースが引数のメソッドには実装クラスオブジェクトを渡す。理解していないことに気づけた
テキストエディタ検索機能案
以下のプログラムで検索の実験(search.txtからJavaって文字を探す)
Search.java
Search.java
import java.io.*;
class Search {
public static void main([[String]] [] args) {
try {
FileReader in = new FileReader("search.txt");
BufferedReader br = new BufferedReader(in);
String line;
[[while]] ((line = br.readLine()) != null) {
String search = "Java";
[[int]] index = -search.length();
while (index != -1) {
index = line.indexOf(search, index + search.length());
System.out.print(index + " ");
}
System.out.println();
}
br.close();
in.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
以下のようなテキストファイルを用意した
search.txt
search.txt
Javaという文字を検索するテストです。 StringのメソッドIndexOfを使えばできるか? それとも違うものがJavaであるのか? 試行錯誤中です。 一行に二文字以上Javaという単語が出てきた場合のテストJavaJava 以上です
実行結果
C:\java>javac Search.java C:\java>java Search 0 -1 -1 -1 9 -1 -1 -1 -1 8 28 32 -1 -1 -1
一応Javaって書いてある箇所の先頭のindexは取得できた?!これを使って検索機能なんとかならないか?
検索文字列が見つからなかった場合は-1が返ってくる
検索文字列が見つからなかった場合は-1が返ってくる
※java.util.regexのPattern、Matcherを使う方法がある?
添付ファイル