Home About
java.util.Timer を使って、連続で発生するイベントが小休止のときを見計らって処理する

手書きのタブレット向けアプリで、ペンの入力が連続して発生するのだが、そのたびに保存処理を行うと作動が重くなる。 そこで、ちょっと入力が止んだそのスキを見計らって、保存処理を実行するようにしたい。 そのための java.util.Timer と TimerTask の使い方のメモ。
例によってコードはすべて Groovy です。

» Read More
Word2Vec, 単語ベクトルを2次元でマッピング

Javaで学ぶ自然言語処理と機械学習」という本で紹介されていた Wikipedia でトレーニング済みの単語分散表現データが便利。 このデータの活用例として日本のブランドのマップを作成してみた。

word2vec-map

» Read More
Nashorn, AbstractJSObject を使って JS Array っぽいオブジェクトをつくって使う

Java8 からは Rhino に変わって Nashorn を使って JavaScript を実行することができます。 Binding 機能を使えば、JavaScript から Java 側で作成した自前のオブジェクト利用することも簡単です。

そこで、この機能を使っていろいろと実験をしているのですが、少し困った問題が出てきました。 Java の ArrayList オブジェクトを Nashorn に Binding して使う場合、 こちらとしては、JavaScript の Array オブジェクトと同じように振る舞ってほしいのですが、 それとは微妙に作動が違うのです。

これを解決するためにいろいろ方法を探したのですが、どうやらAbstractJSObject を使って、 JavaScript の Array オブジェクトと同じように振る舞うオブジェクトを実装すればよいようです。

» Read More
Java でパイプを使う / 複数の変換処理をつなげて処理する

Javaでパイプする方法がよくわからなかったので、いろいろ試行錯誤した結果をまとめました。 Javaで書くとコードが長くなるので、Groovy で記述しています。

» Read More
HttpClient から URLConnection への切り替え ( Android )

すでにこの世は Android 8.0 OREO 時代なのですが、 Android 6.0 Changes の Apache HTTP Client Removal で、Apache HTTP Client が削除されたという件に今さら直面した話。

» Read More
Java のパッケージ名を xargs と sed を使って別のパッケージ名に一括書きかえする

Eclipse などの IDE を使っていれば、Java パッケージ名の変更は簡単にできますが、

ここではターミナル上でさっと変更する方法をメモしておきます。

» Read More
正規表現でテキスト置きかえ処理, 複数行にマッチさせる方法

正規表現で、.(dot)は改行にはマッチしない。これがポイントだった。 そこで、Pattern.DOTALL オプションをつけて、regex をcompileしてやれば、 .(dot)は改行にもマッチする。 したがって、以下のような Testクラスがあった場合に、改行含んだ状態のStringをコンストラクタに与えると、見事に複数行に渡っていても処理できる。

» Read More
サーブレット を使ってPNGイメージを動的に生成する方法

サーバ上に設置しているドキュメントの一部をリクエストがあった時点で画像に変換して出力する方法のメモ。

» Read More
ひらがなの濁音を清音に変換するには

ドキュメントの最後につける索引ページ、その索引語句をソートするときに 濁音を静音として評価してソートする必要がある場合があります。 このエントリーではその場合の対処例を書きます。

» Read More
ランタイム時の画面サイズを取得する(Java Swing)

GUIが複雑なアプリの場合、実行環境にあわせて画面をフルに使いたい場合があります。 Javaには実行時にそのマシンのグラフィック環境に関する情報を取得できる機能があるので、それを使います。

» Read More
サーブレットでイメージを生成する必要がある場合の headless 設定

サーブレットなどを使ってイメージを生成させるような場合、 サーバ上で実行すると失敗することがある。
そんなときは java の起動オプションとして -Djava.awt.headless=true のようにして Headlessモードにすればよい。

» Read More
ヒント情報付きテキストフィールド (Java,Swing)

入力フォームに何を入力したらいいか例を示したい場合があります。 フォームの横に例を書く、という単純な方法もありますが、 以下のようにテキストフィールド上にヒントを書くという方法もあります。

textfield-1

» Read More
Javaでzipを展開して、再度zipアーカイブを作成 ... OfficeOpenXMLデータの操作のために

MSOffice2007 では、docx,xlsx,pptx のように 拡張子に x が追加されているが、この実体は、zip ファイルで中身はXML等で構成されている。 したがって、データファイルだけを展開して中身を書きかえて、再度 zip アーカイブに戻してやれば、MSOffice なしで、内容を操作することができる。

» Read More
Java でディレクトリを確実に削除するコード

Java.io.Fileには、delete() というメソッドがあるので、それを呼び出せば、ファイルやディレクトリは削除できる。 ただし、ディレクトリの場合、その中にファイルやサブディレクトリがあると削除が失敗する。
そこで以下のように再帰的にサブディレクトリにさかのぼって、ファイルを消した上で、ディレクトリを消すという方法で、削除する。

» Read More
Processing + Java で Hello, World! (ハローワールド) Java アプリケーションにプロセッシングのスケッチを埋め込む方法

Processingは、通常 PDE と呼ばれる統合開発環境でスケッチしながら使います。 スケッチの成果物は、アプレットとして書き出して単体配布できます。これは、これで便利な機能ですが、Javaプログラマであれば、直接JavaにProcessingを埋め込んで使った方が早い場合があります。 Eclipse上で開発すれば、コード補完も効きますからPDEを使わなくても、スケッチもはかどります。

hello

» Read More
Processing+POIをエクセルグラフウィザードの代替として使う

Processingは、簡易スクリプト的な記述でイラスト画像を(対話的に)作成できるツールです。
他にもいろいろな活用方法があるので詳しくは http://www.processing.org/http://processing.jp/をご覧ください。

barchart

» Read More
Java Swing によるカスタムボーダー ( custom border ) の作成

javax.swing.border パッケージには、あらかじめ便利なボーダーがいろいろと揃っています。 通常は、javax.swing.BorderFactoryを通じて各種ボーダーのインスタンスを取得して使いますが、それらSwing標準のボーダー、およびその組み合わせで間に合わない場合は、自作します。 今回は、ツールバーとメインパネルの間に引くボーダーを 実現する UnderlineBorder.java を作成しました。

underlineborder

» Read More
JavaでPluginを実現する方法(改良版)

前回 の例では、プラグインを使う側のクラスにプラグインしたクラス名を知らせる必要がありました。

» Read More
JavaでPluginを実現する方法

プラグイン機構は、開発時点では、どんな機能が追加されるかわからないときに使います。 それを Java で実現する方法を整理しました。

» Read More
プログラム終了時に”ある処理”を絶対に実行したい(Java)

プログラム終了時に確実にある処理を実行したい、ということがあります。 (たとえば、編集中のドキュメントが未保存の場合、自動保存するとか)

» Read More
java.util.Calendarによる月初・月末の計算方法

Javaで、月初と月末の計算をする。

» Read More