タツノオトシゴのブログ

主にJavaに関するものです。

2013-01-01から1年間の記事一覧

アノテーション「@GroupSequence」を使用した検証順序の指定

Bean Validationのアノテーションを1つのプロパティに複数付与し、検証時に複数件エラーとなる場合、エラーの表示順は実行するたびに異なります。 通常は該当するエラー1つだけを表示し、かつ検証順を一定にしたいと思います。 このようなときは、アノテー…

アノテーション「@Validated」と「@Valid」

BeanValidation(JSR-303)のアノテーションとして「@Valid」がありますが、これは、Spring MVCでControllerでCommandに対して値を検証したい場合に利用できます。また、Spring自体にも似たアノテーション「@Validated」(org.springframework.validation.anno…

EL2.2からのメソッド呼び出し

今さらですが、Tomcat7から、EL(Expression Language)2.2が利用できるようになりました。EL2.2になったことで、非常に便利になったのが、オブジェクトのメソッド呼び出しが直接できるようになったことです。 今まで、getterはJavaBeanのプロパティとして、…

Subversionのログ編集設定時にエラーコード255が出るときの対処

Subversionのコミット済みのログを編集する場合、「hooks/pre-revprop-change」ファイルを用意すればよいが、その際にはまったことをメモ。 環境 自宅で独自に構築していたSubversionのリポジトリサーバ(Linux環境で構築)。 チェックアウト時は、ApacheのWeb…

Redmineのバージョンアップ時のメモ

とある環境のRedmineをv0.8.3(Windows、実機で動作)⇒v2.3.3(CentOS6,VirutalBoxで動作)にバージョンアップした際につまずいたときのメモ。DBのマイグレーション用のコマンド「rake db:migrate RAILS_ENV=production」を実行した際に、abortが発生。 rake db:…

JavaFX8の印刷機能によるHTMLのPDF変換

JavaFX8から、印刷機能が完全サポートされる予定。 使い方は、スナップショットによるノード自身を画像として保存する方式とほぼ同じで、 ノード自身をプリンタオブジェクトに渡せばOK。 この印刷機能とPDFに変換する仮想プリンタを利用することで、既存の…

仮想PCでJavaFXが起動しない(crash)する場合

VirutalBoxなどの仮想PC上でJavaFXのアプリを起動しようとした場合、HotSpotエラーがで出てJVMがcrashする場合がある。 JDK8のEarly Access版をLinuxで試そうかと思ったら、どうにも起動できない。 既存のJDK7の場合も同様だった。HotSpotのエラーログを見る…

JavaFXのライブラリを作りました。

以前に過去の記事で記載したものをライブラリとして公開しました。JavaFXを使うとちょっとしたGUIのツールが非常に簡単に作れて重宝しました。 特に、SceneBuilderでFXMLをサクサク作れるのが非常に楽しいですね。 FXMLを読み込む際にパス指定が毎回面倒だっ…

JavaFXによるJVMのヒープサイズのグラフ化

需要はないいけど、JavaFXによるJavaVMのヒープサイズの可視化するツールを作ります。 こんな機能は「jconsole」やGCログを出して「GCViewer」で見ればいいじゃんと思いますが、設定とか面倒だったり、気軽にできなかったり、JDKの入っていないJREのみの環境…

JOptionPaneのカスタマイズ

Swingのダイアログを表示するための「JOptionPane」は、独自のパネルを設定可能。 引数の「message」は、実はStringではなく、Object型なのでSwingのコンポーネントが設定可能。【参考】 http://www.ne.jp/asahi/hishidama/home/tech/java/swing/JOptionPane…

JavaFX内におけるAWT/Swingの使いどころ

JavaFXを使えば、AWT/Swingはもうお役御免じゃね?と思われるが、ちょっとしたことにおいてはまだまだ使う。 特に、JDK1.6で追加されたデスクトップ機能はよく使ったりするので、メモとして残しておく。 OS標準のアプリケーションでファイルを開く 拡張子が…

JavaFXでスプラッシュの表示

下記を参考にしました。 http://itpro.nikkeibp.co.jp/article/COLUMN/20070114/258581/ プレローダを利用する場合、JavaFX用にパッケージングする必要があるため、非常に面倒です。 Java標準の「-splash」オプションを使用すると手軽に実現できます。 スプ…

JavaFXでプレローダの表示

はじめに 「javafx.application.Preloader」は、「javafx.application.Application」を継承しています。 そのため、自分のApplication本体とプレローダ用のアプリケーションを用意します。JavaFXのアプリケーションは、起動フローとして次のようになっており…

JavaFXのスプラッシュ画像・プレローダの表示

アプリケーションを起動する際に待ち時間がある場合に表示するスプラッシュ画像やローディング中などの画面を表示する方法を説明します。 JavaFXではPreloaderという専用機能があり、FXMLなどで自分で自由にカスタマイズができます。 スプラッシュ画像は、ja…

JavaFX2のパッケージング

JavaFXはjarをクリックすると起動するようにする方法とjnlpの形式でWebブラウザで実行できる形式にまとめる方法があります。 デスクトップで実行する場合jarの場合は単にjarで固めただけでも動作しますが、jnlpの場合は専用のjarにする必要があります。 Java…

SpringBeanをインジェクションするFXMLLoaderを自作する

ここまで紹介したように、FXMLLoaderによるパターンは2つあることが分かったと思います。 毎回、FXMLLoaderでFXMLファイルとControllerを指定して作成するのは面倒なので、パターンに合わせてFXMLLoaderを自作します。 FXMLLoader自体、finalクラスで継承付…

JavaFXのControllerにおけるSpringBeanのインジェクションについて

JavaFXでSpringのBeanをControllerにインジェクションする方法は2つあります。これは、自身がPaneなどを継承して作られているかどうかで変わります。 方法(1)「ControllerをSpring Beanとして扱う」 Scene(Node)とControllerのインスタンスを別々に作成す…

JavaFXのControllerの書式について

アノテーション「@FXML」とカプセル化について アノテーション「@FXML」は、マッピング対象のクラス属性がpublic以外の場合に指定します。 そのため、publicにしておけば、アノテーションは必要ありませんが、カプセル化の観点からお勧めしません。 また、FX…

FXMLからNodeのインスタンスの作成方法について

FXMLLoaderクラスを利用したFXMLからSceneやPaneのインスタンスの作成方法は、大きく分けて3つあります。 (1)SceneやPaneのみのインスタンスを取得する場合 Controllerを伴わないSceneやPaneのインスタンスをFXMLから取得する場合、staticメソッドのFMLLoade…

JavaFX2.xの環境構築メモ

JavaFXのインストール JDK/JRE 7に標準にJavaFXのランタイムの最新版が付属しているので、JDK7をインストールすればよい。一応、Java6のためにも用意されているが、すなおにJava7を使った方が無難。Scene Builderも下記のURLからダウンロードできる。32bit…

JavaFX2.xを使ってみた感想

はじめに JavaFXを仕事で使おうかと思い、色々と調査したので、メモ代わりに書いておこうと思います。 長所 AWT/Swingと比べて非常に簡単に作れる。 FXMLにより、View部分を完全に分離できる。 今まで、Viewの組み立てだけでコード量が膨大になっていたので…

Super CSV Annotationライブラリを作った

CSVのライブラリは、Javaではたくさんありますが、使い勝手のよいSuperCSVで唯一不足している機能と思われるのが、アノテーション機能でしたので作成しました。 あと、SuperCSVのプログラムを調べたら、改造する必要はなくほぼ独立して作れることが分かった…

Spring MVC3.2の変更点をまとてみました。

Spring 3.2に当たり、はまった部分をあげておきます。これらは変更点にも記載しています。 ライブラリの構成が変わった。 CGLIBやspring-asmがspring-coreに取り込まれてた。 コンテンツネゴシエーション機能が標準で有効になり、拡張子とAcceptヘッダーのメ…