記憶庫

自分用のメモです。

コード片

一番簡単なApache Velocityの使い方

テンプレートエンジン Apache Velocity の一番簡単な使用例。まずは、↓のようなテンプレートを用意。 ファイル名は test01.tmpl とでもしておく。 私の名前は「${name}」です。 テンプレートをに文字を埋め込み、結果を取得するのがApache Velocityの仕事。 …

JPEGファイルを表示する方法

こんな感じ。 package knowledgefort.ui.test; import java.awt.Canvas; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JFrame; public class ShowJPEGFileTest { public static void main(String ar…

Action クラス内からサーブレットコンテキストを取得する方法

Struts の Action クラスからサーブレットコンテキストを取得する方法は以下の通り。 public class XXXAction extends Action { @Override public ActionForward execute( ActionMapping aMapping, ActionForm aForm, HttpServletRequest aRequest, HttpServ…

Action クラスを介さずにフォワードする方法

通常フォワードは Action クラスから行われるが、Action クラスを介さずにリクエストをフォワードすることも可能。 struts-config.xml にて以下の設定を記載する。 <struts-config> … <action-mappings> … <action path = "/serverside/Login" forward = "/WEB-INF/jsp/login.jsp"/> … </action-mappings> … </struts-config> Tomcat で Web アプリケーションを動かしている場合は、ブラウザにて http://x…

JPanel の背景透過について

JPanel#isOpaque() の初期値は true。 opaque とは「不透明」という意味であり、isOpaque() の値が true であることは、パネルは不透明なため下にあるコンポーネントの色を透過せず、自らの背景色を表示することを意味する。試しに以下のコードで検証。 pack…

Template Method パターン

Tepmalte Method とは? Template Method パターンは GoF デザインパターンの一種であり、処理の枠組みを上位クラスで決めておき、具体的な実装を下位クラスに任せる設計手法である。 Template Method パターンの特徴は以下の通り。 処理内容をサブクラスに…

現在の時刻をミリ秒単位で取得する方法

現在の時刻をミリ秒単位で取得するには、System#currentTimeMillis() メソッドを使用する。 このメソッドは、1970年1月1日0時0分0秒(UNIX紀元)からの経過時間をミリ秒単位で取得する。 以下のようにすれば、処理に掛かった時間を測定することが可能。 long…

プログラムの多重起動を防止する方法

既に実行されている Java アプリケーションが多重起動出来ないようにする方法。まず、main() メソッドの冒頭に、以下のように記述する。 IOException の処理も忘れずに。 FileOutputStream fos = new FileOutputStream("./temp/lockfile"); FileChannel fcha…

ユーティリティクラス

汎用的に使用し、かつ状態を保持しておく必要のない機能は、static メソッド化してユーティリティクラスにて提供するとよい。 実装例 以下は、簡単なユーティリティクラスの例。 /** * 【文字列ユーティリティ】 * 文字列操作・変換を行うためのユーティリテ…

画面の解像度を取得する方法

画面の解像度を取得する方法は以下の通り。 import java.awt.Toolkit; … Dimension _d = Toolkit.getDefaultToolkit().getScreenSize(); System.out.println(_d); 上記を実行すると、標準出力に以下のように表示される。 java.awt.Dimension[width=800,heigh…

Map クラスがキーを保持する順序について

Map インタフェースの実装クラスである LinkedHashMap、TreeMap、HashMap がキーを保持する順序はそれぞれ以下の通りである。LinkedHashMap: キーを格納した順に保持。 TreeMap: キーの昇順に保持。 HashMap: 順序を保持しない。上記を実際にプログラムを作…

サイズを指定してファイルを作成する

サイズを指定してファイルを作成する方法。 負荷テストなどでサイズの大きなダミーファイルが必要になった時に便利。 以下のコードは、1048576バイトのファイル"hoge"を作成する。 ※ バッファリングと例外処理についてはここでは考慮していない。 import jav…