Index (June 2006)
SWTのBrowserのハイパーリンク処理を制御したい
SwingのJEditorPaneでブラウザを実装する場合は、 addHyperlinkListener()を使うことで、リンクを制御できる。 addHyperlinkListener()メソッドに HyperlinkListenerを追加しておけば ハイパーリンクがクリックされた時点で通知されるので、 通知されたメソッド内で適切に処理してやればよい。
しかし、SWTのorg.eclipse.swt.browser.Browser クラスでは、 このような目的に使えるメソッドは用意されていないようだ。 どうすればいいのか。
SWTでブラウザを使えるようにする(Vine3.2 Linux)
SWTのブラウザコンポーネントを使用したい。 これを使用するには、mozillaがインストールされている。 (Firefoxだけでも問題ないかもしれない。)
結構設定が面倒なので忘れないうちにメモしておく。
cygwin上のemacsでtamago+wnn7を使えるようにする
「便利なツール Emacs らくらく入門」という本を読んでいたら、 tamago4のソースからのインストール方法が書いてあったので、 Cygwin上のemacsでも使えないかと思い試してみました。
手元にはWnn7 Personalがあり、結構気に入っている。 しかし、現在はLinuxを動かしているパソコンが手元に無いため使っていない。 これを、colinuxにインストールして、Cygwin上のemacs+tamago4から使えないか、という話。
ちなみに wnn7は 商用ソフトウェアです。
定期的に繰り返し実行するタイマーの自作(timertask)
java.util.Timerとjava.util.TimerTaskを使えば、 定期的に繰り返し使えるタイマーを実現できます。
しかし、これらのクラスを素直に使った場合、
プログラムの終了時点で、Timerクラスの cancel() メソッドを呼び出して
タイマーを明示的に終了させる必要があります。
一見終了時に必ずキャンセルを必ず呼ぶなどというのは、簡単なことのようですが、
以下のケースでは問題が生じます。
- タイマーをコードのあちこちで使用する必要があり、終了時に確実にキャンセルを呼ぶのを忘れそうになるケース
- プログラムが終了してもJavaVMは終了しないケース
ほとんどのケースでは、実際にはキャンセルしわすれても、 プログラムの終了と同時にJavaVMも終了するので問題ない(はず)のですが、 アプレットのように、アプレットは終了してもJavaVMが終了しない ケースでは、キャンセルしわすれたタイマーが残ってしまいます。
したがって、タイマーの繰り返し実行機能は使いたいが、 タイマーのキャンセルを呼びたくない(呼ばなくてもプログラムの終了と同時に タイマーもキャンセルされる)場合に役に立つ MyTimerクラスを書いたのでメモしておきます。
リソースバンドル(java.util.ResourceBundle)を使って表示文字列を管理しているが・・・
Javaには予め言語(というか地域というかロケールというか)別に
表示文字列リソースを管理するための仕組みが備わっている。
このリソースバンドルは非常に便利なのだが、もしリソースが存在しなかった場合に、
MissingResourceExceptionというランタイム例外を投げます。
さて、ランタイムにこの例外を決して発生させないようにしたいのですが、 どうすればいいのでしょうか。
リソースの中には、エラーメッセージなどめったに表示されないものも 含まれてますから、力業で人間がテストして、MissingResourceExceptionを 都度拾っていけばいいのさ、という方法はNGです。 (そのうえ、リソースはどんどん増えていく)
いろいろ考えたのですが、やはり、 リソースがもれなく登録されていることをランタイムにチェックする以外の 何か別の方法で管理する必要があるということだと思います。
java.util.Calendarによる月初・月末の計算方法
Javaで、月初と月末の計算をする。
特定日時点のソースコード一式を得る方法(Subversion)
リリースごとに、 リリースブランチを作成していれば、各リリース時点のソースコード一式を取り出すのは簡単。 でもそうでない場合は、どうすればいいか?
Bash 今日の日付を適切にフォーマットして、ファイルの末尾に追加したい
テキストでメモを書いていると日付を書いておきたくなることがあるが 今日の日付を入れるのが面倒なので自動化したい。
dateコマンドを調べてみると、
$ date +%Y-%m-%d
2006-06-14
となるので、 これを利用して以下のように記述すれば、 foo.txtの末尾に日付を挿入できる。
Javaのコードをウインドウズネイティブアプリケーションとしてコンパイルする(MinGW+GCJ)
MinGWとGCJを使うことで、GUIなしのJavaコードについては、
ウインドウズネイティブアプリケーションとしてコンパイルできる。
GUIの場合でも、GUIがSWTで記述されていれば、
ウインドウズネイティブアプリケーションとしてコンパイルできる。
とはいえ、日本語処理の問題とか、すんなり乗り越えられないことがあるので注意が必要。