2008-02-01から1ヶ月間の記事一覧

newInstanceできないクラスを無理やりインスタンス化する

newInstanceで汎用的にインスタンス化できないクラスがあります。例えば以下のようなクラスです。 public class HardToCreate { public HardToCreate(int code) { if (code != 123456789) { throw new IllegalArgumentException(); } } public void hello() …

アクションの実行可否を宣言的に記述する(続き)

アクションの実行可否を宣言的に記述する - kaisehのブログ上記エントリに書いた、Actionの実行可否状態と選択状態のOGNL式によるバインディング機能は、試してみて非常に便利だったので、S2Swingに取り込みます。EDTがイベントを1つ消費する度に、S2Swingが…

入力情報を単純にセッションに保存するとろくなことがない

Web

某大手ドメイン業者の決済システムの話。複数のドメインに対して、別々のメールで契約更新案内が来ていたので、それぞれメール内の決済専用URLをクリックして、別々のタブで決済画面を開いた。それぞれの画面に支払い情報を入力して「次へ」をクリックしたら…

アクションの実行可否を宣言的に記述する

Swing Application Frameworkでは、メソッドに@Actionアノテーションを付けることでアクションを定義できます。さらに、@ActionにenabledPropertyパラメータやselectedPropertyパラメータを付加することで、アクションの実行可否状態や選択状態を宣言的に記…

JavaでWindowsアプリ

Windowsアプリ開発にVisual Studio以外の選択肢は無いと思い込んでいたけど、Javaにも Launch4jのようなexeファイルラッパ NLinkのようなネイティブリンカ があるし、 SubstanceのようなクールなL&F JIDEのようなリッチなSwingコンポーネント も揃っているか…

今の時代、GUIの状態は富豪的手法で更新したい

GUI

僕は十数年前、PC-9801でゲーム作りに熱中していました。PC-9801はVRAMが非常に低速だったので、ゲーム開発の労力の半分以上は、いかに画面の差分書き換えを工夫するかに費やされていました。その後PCのスペックが向上して、ゲーム画面は全書き換えが当たり…

不親切なGUI用語

GUI

GUIで"Split Vertically"といえばビューに縦線を入れて左右に分割することで、"Split Horizontally"は横線を入れて上下に分割することですけど、JSplitPaneのVERTICAL_SPLITとHORIZONTAL_SPLITは意味が逆になっています。これは、スプリッタの配置方向に着目…

フレームワークと制約

インターフェースの押しつけはフレームワーク設計者のエゴだ - y-komori’s diary 2008-02-13 トラックバックをいただいて、いろいろ考えを深めることができました。文章化できるほど考えがまとまっていないので、思いつくまま箇条書きにします。 大前提とし…

こんなEclipseプラグインないかな

コメントを使って、C#のregionディレクティブのような感じで区間を指定すると、コードフォーマット時にその区間をフォーマット対象から除外してくれるプラグイン。 //#noformat personList = jdbcManager.from(Person.class) .where("age > ?", age) .orderB…

POI 3.0.2で読めないExcelファイル多数

Apache POIに3.0.2-FINALが出ていたのでアップデートしてみたら、いろんなExcelファイルで読み込み失敗するようになった。OpenOfficeで保存したExcelファイルの読み込みに失敗する可能性が高い気がするけど、詳細不明なので3.0-FINALに戻した。

インターフェイスかアノテーションか、それとも規約か

フレークワークが特定の状況下でユーザクラスのインスタンスにメッセージを通知したい場合、ユーザクラスに何らかの形で「印」を付けることを強制して、どのメソッドを呼び出すのか決定する必要があります。その「印」として考えられるのは、基本的に次のい…

「流暢なインターフェイス」によるGUI構築支援

S2Swingでは、XML等による画面定義機能を提供しない代わりに、簡潔な記述でコンポーネント階層を構築できるビルダを用意しようと思っています。発想としてはGroupLayoutBuilderと同じで、以下のエントリも参考にしました。 現在のJavaで、ツリー構造の構築を…

シンプル重要

Teedaのメリット・デメリットという話が出てますけど、僕が実際に使って(去年のMash up Award応募作品SensrはTeeda製です)感じた印象とも大体一致していて、納得しながら読みました。僕が持っているTeedaのイメージは、『規約に従うことで八割方はサクサク…