Javaでクイズ暗記ツール作成(8)
クラス設計を見直して再構成中
とりあえず文字パネルを作った。
いまのところ
- パネルのローダーで最初の1問目のクイズだけなぜかちゃんと読み込まない
- 新規出題し直すときに再描画がうまく行ってない
- OKはこの場合不要だからあとで消す
という具合で、いろいろ直さねばならない困り者。
ひとまずパネルのフォーマットは次のようなもの
{
寒気と暖気の勢力が等しいときに出来る全線を何という?
- -
停滞前線
閉暖温塞寒冷
}
で、これを次のようなコードで読み込むのだけど、
try { BufferedReader in = new BufferedReader(new FileReader(filename)); String s; ... while ((s = in.readLine()) != null) { Matcher m = comments.matcher(s); s = m.replaceFirst(""); s = s.trim(); if (s.equals("")) continue; if (s.equals("{")) { // ↑この条件を捕まえられない continue; } ...
コードにコメントで書いたとおり、最初の一問だけなぜか"{".equals("{")がtrueに評価されない。
2問目以降はOKだし、問題順序を入れ替えれば、交換して一番上に来た問題でやっぱり同じ問題が起きてる。BufferedReaderの使い方間違ってるのかしら。
あと出題機構の方はどうせイージーミスだろうからじっくり治すとして。
その他の展望
- パネルはを完成させたら○✕形式を作る
- そのあとは形式をランダムに混ぜて出す機構を作る
今のところ、
型パラメーターをとる出題機構クラスに単一形式のクイズローダーを渡して出題オブジェクトを作成しているので、ここに新規クラスRandomQuizLoaderを渡すようにする。
- CardLayoutをもっとうまく制御する
SwingのCardLayoutには、現在のカードを選択するためのメソッドがないので、今のところshowメソッド呼び出し時にアクティブにしたカードを変数に記憶している。
これがめんどくさいので、CardLayoutを継承して構文糖?的なものを付けたCardLayoutSugar?クラスを作って現在のカードの管理はそれにお任せする。
的なことをやりたい。
なお、先週のドラゴンたち
- 社会は1回ぐらい討伐
- 文系は2回ぐらい討伐
- 理系は7回ぐらい討伐
いまのところ理系だけランキングに載ってる。
たばこのけぶりが嫌だったし、そのおかげで1日4時間前後で済ませたのでこんなものか。