Java

コンボボックスのポップアップ幅の自動調整

仕事で作ったけど必要なくなったので記録としてエントリーしました.通常のJComboBoxのポップアップはJComboBoxの幅に合わせて表示されます. 以下のコードは表示幅が狭い場合などポップアップ内のアイテムの文字が切れてしまうのを防ぎます. // コンボボック…

P6spyのシステムプロパティを使った設定

spy.propertiesを読み込ますために「p6.home」システムプロパティにファイルのパスを登録します。 このパスはOSに依存したパス形式じゃないと駄目なようです。 試しに「file:///C:/var/log」なんてURI形式で表現は受け付けませんでした。もう一つ混乱するの…

Maven2 文字コード周りの設定

地味にハマったのでメモ コンソール上などプラットフォームの文字コードの指定 Mavenの環境変数にプラットフォームの文字コードを指定する。 特に気にしなくても、デフォルトはプラットフォームの文字コードになってます。 set MAVEN_OPTS=-Dfile.encoding=M…

JavaBeanの命名規則

よく見かける「getId」などは間違いで実は「getID」が正しい。 IDとはIdentityの略なので大文字でIDになるわけだ。当然URLやURI、ASPなども大文字になる。この命名規則を可読性を維持しつつ、コーディングに落とすと以下のようになる。 public class Custome…

C-JDBCでクラスタリング。

JDBCを差し替えてクラスタリングをするタイプのもので手軽かも、よく分かってないんで情報求む!

HttpClient でウェイト付きリトライを行う。

HttpClientでリトライ処理を行う場合通常は、「org.apache.commons.httpclient.DefaultHttpMethodRetryHandler」を使う。このDefaultHttpMethodRetryHandlerはリクエスト中にIOExceptionが発生した場合に、リトライ対応がされる。 このとき、DefaultHttpMeth…

Spring+DBCPでDataSourceプーリング

WEBアプリ作成だとコンテナやコンテキストの設定でプーリングの指定が出来るんですが。Javaアプリでやったことが無かったのでメモメモ。 <bean id="dsAdapter" class="org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> </property></property></property></bean>

業とデッドロックさせるコード

package lesson.java.lang; public class ThredDeadLockTest { static LockObject lockObjA = new LockObject("lockObjA"); static LockObject lockObjB = new LockObject("lockObjB"); public static void main(String[] args) throws InterruptedException…

インスタンスの生成を制限する。

使い道は主にGofのデザインパターンのSingletonで良く使われるイディオムです。 また、マルチスレッドでインスタンスの生成を制限する場合も効果的です。 double-checked lockingイディオム 残念ながらJavaではアウトオブオーダーと呼ばれるメモリ制御をして…

いつまでたってもフィックスされないバグ

@ITの記事で「Java Virtual MachineがJavaの弱点!?」なんて記事があって読んでみると納得。 前からJVMってバグフィックス遅いなーなんて思ってました(思ってただけで自分からバグ報告してなかったですorz)。前に確かI/O処理でバグがあって苦肉の策を取って…

Apache AxisのJava2WSDLツール

AmazonのECS*1はWSDL*2で定義されたXMLです。 このXMLをJavaに取り込む場合、Javaのオブジェクトにマッピングするわけです。そこでApache AxisのJava2WSDLツールが活躍します。その前に、ECSやWSDLが分からない人はググってください。 この辺の前提知識もあ…

手軽にで便利なS2Dao

仕事でHibernateより手軽なORマッパーを探していたら、 SeasarのS2Daoがあった、Seasarは日本で流行ってるだけで世界的に見て マイナーだと思って軽視してたが、凄い!手軽さだけならHibernateより S2Daoのほうが上ですよ!ってことで早速、サンプルをサクサ…

SQLクライアント

しばらく使っていて結構便利だと思ったソフトです。 JDBCを使用してDBに繋ぎに行くので、Javaの開発にはうってつけ!SQuirreL SQL Client http://squirrel-sql.sourceforge.net/

OracleJDBCドライバは「oracle.jdbc.OracleDriver」を使ったほうが良い

OracleJDBCドライバは「oracle.jdbc.OracleDriver」を使ったほうが良い。 Oracle 9.xまたは10gでは「oracle.jdbc.driver.OracleDriver」は将来的に 拡張されなくなる可能性があるらしいので、「oracle.jdbc.OracleDriver」を使ったほうが良い。http://edocs.…

Tomcatのヒープメモリのサイズ変更

Tomcatのヒープメモリのサイズ変更するだけで、苦労したorz設定内容はstartup.batに以下のコードを入れてみた。 set JAVA_OPTS="-server -Xms128m -Xmx256m"で、動かない! 仕方ないので、エラーメッセージを見てみると、 Unrecognized option: -server -Xmx…

wrappinglayout

格子状にレイアウトします。 また、レイアウト対象のコンテナのサイズがバラバラの場合、 一番大きいモノに合わせます。 <canvas height="100" > <view width="200" bgcolor="silver"> <wrappinglayout axis='x' spacing="10"/> <view bgcolor="blue" height="30" width="50"/> <view bgcolor="blue" height="30" width="50"/> <view bgcolor="blue" height="30" width="50"/> </view></view></view></wrappinglayout></view></canvas>

stableborderlayout

resizelayoutと似ていますが、自動調整のコンテナはoptions属性 で指定しません。指定が無い場合、その場所を自動調整されます。 <canvas height="100"> <view bgcolor="yellow" width="200"> <view bgcolor="blue" height="30" width="50" /> <view bgcolor="red" height="30" width="50" /> <view bgcolor="blue" height="30" width="50" /> </view></view></view></view></canvas>

reverselayout

simplelayoutの逆順になります。 下の例だとsimplelayoutの場合「one two three」になりますが、 reverselayoutでは「three two one」になります。 <canvas height="85"> <view y="40" bgcolor="yellow" width="200"> <reverselayout axis="x"/> <text text="one" /> <text text="two" /> <text text="three" /> </text></text></text></reverselayout></view></canvas>

simpleboundslayout

simplelayoutと似ていますが、どうやら内包するコンテナの位置によって 違いが出るようです。例えば↓のコードは「■◆■ ■◆■」と出るようなコードですが、 simplelayoutのレイアウトだと、図形の頂点の位置から図形のwidthまで を整列しています。simpleboundsl…

simplelayout

axis属性に従ったx方向またはy方向の整列レイアウトです。 <canvas height="85"> <view y="40" bgcolor="yellow" width="200"> <simplelayout axis='x'/> <text text="one" /> <text text="two" /> <text text="three" /> </view > </canvas>

Web Tools Platformのコンテキストの指定

コンテキストのパスは.deployables/{プロジェクト名}を指定します。 http://www.jx-gluck.jp/RepF/Ecli005.html

resizelayout

サイズの自動調整ようのレイアウトです。 例えば、下のコードを見ると、yellowのview要素の幅が200その内側が 「50,*,50」のように*が自動調整されます。 <canvas height="85"> <view y="40" bgcolor="yellow" width="200"> <view bgcolor="blue" height="30" width="50" /> <view bgcolor="red" height="30" options="releasetolayout" /> </view></view></view></canvas>

constantlayout

内包するコンテナのマージンを指定します。 また、constantboundslayoutとの違いは内包するコンテナに xoffsetまたはyoffsetが指定されていた場合、その分のマージンが相殺さます。 <canvas height="85"> <view bgcolor="red" > <view width="80" height="80" bgcolor="teal" xoffset="5" /> <view width="60" height="60" bgcolor="silver"/> <view width="40" height="40" bgcolor="green"/> …</view></view></view></view></canvas>

constantboundslayout

内包するコンテナのマージンを指定します。 <canvas height="85"> <view bgcolor="red" > <view width="80" height="80" bgcolor="teal" xoffset="5" /> <view width="60" height="60" bgcolor="silver"/> <view width="40" height="40" bgcolor="green"/> <constantboundslayout axis='x' value="10"/> </view > </canvas> http://www.laszlosy…

layout

全てのLayout要素のスーパークラス http://www.laszlosystems.com/lps/docs/lzx-reference/layout.html