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を使う方法がある?
添付ファイル