JavaFXでこんしんカウンターつくった
アプリのネーミングセンスのなさがいいと思います!
コミュニティの懇親会でつかう人間アンドお金カウンター作りたかったんや。
きっかけはJJUG CCCのゴミLTね(なんと資料アップロードしましたコチラです)。
動かすとこんな感じです↓
※なお、仕変により平和的メッセージのみを出力することになりました。
ソースは一応ココにあげた。例によっていっぱいつっこみたくなりますよね、ふ、ふふ・・・
計算に使ってる設定値とかは結構適当(意味ない)。
躓いた点
ラベル内改行できない問題
これは思わぬ学びに結びついたのでトゥギャりました。
インポートするクラス間違えた問題
ボタン押したときに走らせたいとメソッドがボタンと全く紐づかなかった。
メソッドないって言われて。
かなり、ハマったんだけど、なんと、メソッドに、渡してる、
ActionEventクラスの、インポート、間違ってた。
正:javafx.event.ActionEvent
誤:java.awt.event.ActionEvent
fx:controller="パッケージ.クラス"って指定してるし 呼びたいメソッドに@FXMLってつけているし onAction="#メソッド"ってしているんだけど (=_=)
— よこな寂し死に (@ihcomega) 2015, 4月 19
@ihcomega え、ActionEventなら正しいはずですが…。もしかしてjava.awt.ActionEventになってたとかじゃないですか?
— AOE Takashi (@aoetk) 2015, 4月 19
@aoetk そ れ で し た これで動くはずなのに何でだろうって思ってました・・・
— よこな寂し死に (@ihcomega) 2015, 4月 19
タブでカーソル移動すると四方八方に動き回る問題
レイアウトをScene Builderにまかせていたのだけど、
タブを押していくとカーソル移動の順番がおかしかった。TextField1→TextField2→Button1→Button2→TextField3みたいな。ちゃんとFXML見たら、数値入力用TextFieldのrowIndexがいけてなかったので、上から0, 1, 2と振りなおしたところ改善した。
分からない点
クラスの分け方とメソッドの分け方
そう、絶望的である
judgeっていうメソッドひとつとっても、色々つめこみすぎな感じがするし
メソッド名とやっていること違う感じするし。
デザインパターンみたいなの勉強した方がいいんです?
テストの仕方
JUnitの勉強しますごめんなさい。疑問だらけ。
「テストコードとは」も理解してないし、単純にコードの書き方も不明でしたね。
謎代表として可変長引数どうするの問題のようすです↓
privateで可変長引数なメソッドのテストどうやるん。 補完で getDeclaredMethod("メソッド名", String....class); って出たけどもちろんだめw配列にするのもだめ。ふえぇ
— ヒガシマルよこなうどんスープ (@ihcomega) 2015, 4月 26
@ihcomega 答え つ Object arryay = new Object{new String[]{"a", "b"}}; hogeMethod.invoke(instance, arryay);
— CEROMETAL (@cero_t) 2015, 4月 26
可変長引数のあるメソッドをリフレクションで呼び出す際に失敗するパターンについて、理由を書いてみたけど、説明するの難しいorz http://t.co/6sNP6HdY3B
— ひしだま (@hishidama) 2015, 4月 26
ありがとうございます!!!
最後に、頭抱えつつやりましたが、とっても面白かったです。
サーバ立てなくても、なんちゃらかんちゃら.confいじらなくてもさくっと動くから。
IntelliJ IDEAありがとう(結局)。