ControlsFX の記事を更新中。まだ使ってないひとはぜひ
最近、JavaFX で使える GUI ライブラリ の ControlsFX について記事を書いてます。
ControlsFX はかなり便利です。
例えば、NotificationPane などは、Android でいうところのスナックバー的な動作で、Chrome ブラウザのダウンロードしたあとの動作に似てる動きを実装できるのだけど、これなどすごく便利です。
https://java.keicode.com/lib/controlsfx-notificationpane.php
そもそも、こういう Nice to have 的な動きにあまりごちゃごちゃコードを書くのも、工数をとりにくいのも案外事実なものなので、小道具は使えるにこしたことないです。
Java の正規表現
Java で正規表現を利用する方法について、簡単な記事を書きました。
他の言語で正規表現を使った経験があれば、だいたいこういうことが出来るだろう、という土地勘が活かせる分野なのであまり細かいことは書きませんでした。
それでも、Java で正規表現を使うにはどんな感じでスタートすればいいか、とっかかりにはなると思います。
» Java の正規表現
他の言語で正規表現を使った経験があれば、だいたいこういうことが出来るだろう、という土地勘が活かせる分野なのであまり細かいことは書きませんでした。
それでも、Java で正規表現を使うにはどんな感じでスタートすればいいか、とっかかりにはなると思います。
» Java の正規表現
Android の OpenGL プログラミングで出てくる NIO の使い方
NIO (New I/O) を利用すると JavaVM 上からでもローレベルのライブラリと効率よくデータのやりとりをするために、ダイレクトバッファが使えるようになってます。
最近 Android で OpenGL を使っている時に必要になったので、記事をまとめました。
それにしても OpenGL を使うのは久しぶりでした。
僕はもともと大学の研究室で流体のシミュレーション何かをしていたのですが、そのときに OpenGL を使っていた以来ですから、 うわ、もう15年以上近く経つんですねぇ・・・(汗) Windows 95 なんぞで OpenGL を使うときは、 マイクロソフトのパブリック FTP サイトから、 opengl32.dll だの glu32.dll とかを落としてきたりしなければいけなかったりして・・・ 今時手作業でそんな風に dll を拾ってくるなんてないですよね。 (SFP もあるし)
まぁ、それはともかく、今回は Java の NIO についてです。どうぞご覧ください。
» New I/O バッファの使い方
最近 Android で OpenGL を使っている時に必要になったので、記事をまとめました。
それにしても OpenGL を使うのは久しぶりでした。
僕はもともと大学の研究室で流体のシミュレーション何かをしていたのですが、そのときに OpenGL を使っていた以来ですから、 うわ、もう15年以上近く経つんですねぇ・・・(汗) Windows 95 なんぞで OpenGL を使うときは、 マイクロソフトのパブリック FTP サイトから、 opengl32.dll だの glu32.dll とかを落としてきたりしなければいけなかったりして・・・ 今時手作業でそんな風に dll を拾ってくるなんてないですよね。 (SFP もあるし)
まぁ、それはともかく、今回は Java の NIO についてです。どうぞご覧ください。
» New I/O バッファの使い方
Java のマルチスレッドプログラミング。 ExecutorService とは?
Java のマルチスレッドプログラミングについてまとめました。
Runnable オブジェクトと Thread オブジェクトを生で使う方法から、 ExecutorService からスレッドプールを利用する方法、そしてサブミットしたタスクをキャンセル方法等についてまとめました。
今までスレッドの使い方が今ひとつ不安だった方はぜひご覧ください。
»ExecutorService の基本的な使い方、考え方
この後、アンドロイドアプリの Handler などを交えていろいろと発展していく予定です。
ちなみに、今回の挿絵は手書きで描いてみました。 Android アプリの Sketchbook Mobile と GIMP を使って描きました。 iPhone でもあるようなのでぜひ試してみてください。
Runnable オブジェクトと Thread オブジェクトを生で使う方法から、 ExecutorService からスレッドプールを利用する方法、そしてサブミットしたタスクをキャンセル方法等についてまとめました。
今までスレッドの使い方が今ひとつ不安だった方はぜひご覧ください。
»ExecutorService の基本的な使い方、考え方
この後、アンドロイドアプリの Handler などを交えていろいろと発展していく予定です。
ちなみに、今回の挿絵は手書きで描いてみました。 Android アプリの Sketchbook Mobile と GIMP を使って描きました。 iPhone でもあるようなのでぜひ試してみてください。
GWT の基本 Widget、PushButton の使い方
久しぶりの更新になってしまいましたが、今日は GWT (Google Web Toolkit) の記事を書きました。 基本的な Widget のひとつ、PushButton の使い方です。
ウェブサイトを作っていて、ボタン的な要素を作るとなると、最初に思いつくのはやはり HTML のフォームとして用意されている基本的なボタンでしょう。 input タグの submit タイプとか button タグなどです。
スタイルを指定することによって、確かに見栄えのするものにできなくはないですが、クリックの動作に合わせて表示を大きく変えたり、あるいは、ボタンの有効化、無効化を示すにはやや力不足な感があります。
あまり UI をいじりすぎるのもユーザーの直感的な操作を阻害してしまう危険があるのでよくない、というのも一理あるものの、ある程度いじって差別化するのも大切だったりして・・・やりすぎとやらなすぎとの間で、なかなかバランスをとるのが難しいわけですが、そもそもややこしいものが実装できないのでは話になりません。
ボタンのように、ちょっとアクセントをつけたい、というような程度の要素は、実装に時間をかけられないので、こうした Widget を上手に利用してサッサときれいに作ってしまいたいものですね。
今回は GWT の基本的なウィジェットである PushButton です。
→ GWT 入門 - PushButton の利用方法
ウェブサイトを作っていて、ボタン的な要素を作るとなると、最初に思いつくのはやはり HTML のフォームとして用意されている基本的なボタンでしょう。 input タグの submit タイプとか button タグなどです。
スタイルを指定することによって、確かに見栄えのするものにできなくはないですが、クリックの動作に合わせて表示を大きく変えたり、あるいは、ボタンの有効化、無効化を示すにはやや力不足な感があります。
あまり UI をいじりすぎるのもユーザーの直感的な操作を阻害してしまう危険があるのでよくない、というのも一理あるものの、ある程度いじって差別化するのも大切だったりして・・・やりすぎとやらなすぎとの間で、なかなかバランスをとるのが難しいわけですが、そもそもややこしいものが実装できないのでは話になりません。
ボタンのように、ちょっとアクセントをつけたい、というような程度の要素は、実装に時間をかけられないので、こうした Widget を上手に利用してサッサときれいに作ってしまいたいものですね。
今回は GWT の基本的なウィジェットである PushButton です。
→ GWT 入門 - PushButton の利用方法
GWT 2.1 からの新機能 ~ CellList の簡単な使い方
先月末にリリースされた GWT 2.1 の新機能の目玉として、セルウィジェットが追加されました。データ・バインドされたセル、テーブル、そしてツリー、さらにそれらのインプレース編集など、各種機能が盛りだくさんです。
やはりアプリケーション構築に際しては、グリッド・テーブル系のコンポーネントは不可欠で、プログラム開発時にもサードパーティのコンポーネントが欲しくなるのはこの辺ではないでしょうか。しかし、GWT ではこれまでネイティブのグリッドサポートはやや貧弱でした。外部のライブラリを使いたいと思っても、特に GWT on Google App Engine ではライブラリのホワイトリスト制限がありますし・・・。
そこで今回のセルウィジェットの登場が期待されていたのですが、試してみると、期待に違わず非常に直感的に使いやすく、便利であることがわかりました。しばらく、この使い方を見て行こうと思っています。
⇒ CellList (セルリスト) の使い方
やはりアプリケーション構築に際しては、グリッド・テーブル系のコンポーネントは不可欠で、プログラム開発時にもサードパーティのコンポーネントが欲しくなるのはこの辺ではないでしょうか。しかし、GWT ではこれまでネイティブのグリッドサポートはやや貧弱でした。外部のライブラリを使いたいと思っても、特に GWT on Google App Engine ではライブラリのホワイトリスト制限がありますし・・・。
そこで今回のセルウィジェットの登場が期待されていたのですが、試してみると、期待に違わず非常に直感的に使いやすく、便利であることがわかりました。しばらく、この使い方を見て行こうと思っています。
⇒ CellList (セルリスト) の使い方
配列の要素に特定の値が含まれているかチェックする方法
今日は簡単な How-To ものです。
配列の要素の中に、特定の値を持つ要素が含まれているかどうかチェックする方法です。
「要素の中に特定の値を含むかどうか」 というチェックといえば、コレクションの contains メソッドがあります。 contains メソッドはまさに今ここで望んでいる動作をします。しかしながら、あいにく配列には contains メソッドがありません。では、どうしたらいいか、というところがポイントです。
⇒ 配列の要素に特定の値が含まれているかチェックする方法
配列の要素の中に、特定の値を持つ要素が含まれているかどうかチェックする方法です。
「要素の中に特定の値を含むかどうか」 というチェックといえば、コレクションの contains メソッドがあります。 contains メソッドはまさに今ここで望んでいる動作をします。しかしながら、あいにく配列には contains メソッドがありません。では、どうしたらいいか、というところがポイントです。
⇒ 配列の要素に特定の値が含まれているかチェックする方法
Google App Engine でファイルをアップロードする方法
Google App Engine 上の Web アプリケーションでファイルをアップロードする方法について説明します。
Google App Engine ではアップロードされたファイルを、ブロブストアに保存します。ブロブストアへアクセスするにはブロブストアサービスを使ってアクセスできます。。。
というと、ちょっとややこしいように聞こえてしまうかもしれませんが、実際は非常に簡単です。
こちらのコードを確認してください。
⇒ Google App Engine でファイルをアップロードする方法 ~ ブロブストア
Google App Engine ではアップロードされたファイルを、ブロブストアに保存します。ブロブストアへアクセスするにはブロブストアサービスを使ってアクセスできます。。。
というと、ちょっとややこしいように聞こえてしまうかもしれませんが、実際は非常に簡単です。
こちらのコードを確認してください。
⇒ Google App Engine でファイルをアップロードする方法 ~ ブロブストア
JSP 入門記事 ~ 暗黙オブジェクトの種類と仕組み
Java 入門の Web アプリケーションカテゴリ、JSP の記事を追加しました。
⇒ 事前定義変数 ~ 暗黙オブジェクト
生 Servlet と比べて、JSP を便利にしているのはこうした暗黙的に開発者をサポートする仕組みがあるから、といえます。
もちろん、JSP on Google App Engine でも利用可能です。
⇒ 事前定義変数 ~ 暗黙オブジェクト
生 Servlet と比べて、JSP を便利にしているのはこうした暗黙的に開発者をサポートする仕組みがあるから、といえます。
もちろん、JSP on Google App Engine でも利用可能です。
タイムゾーンの使い方
Java でタイムゾーンを考慮するにはどうしたらよいでしょうか?
これはかなり簡単です。
例えば、
Date d = new Date();
として取得した時刻を表示することを考えます。
表示用の SimpleDateFormat クラスを使えば、表示時のタイムゾーンのデフォルトは、システムのタイムゾーンなのでローカル時刻が表示できます。
タイムゾーンID を指定してタイムゾーンオブジェクトを取得して、SimpleDateFormat オブジェクトにセットすれば指定したタイムゾーンの時刻として表示できます。
これを利用すればグローバルで利用できるプログラムを作るのも簡単ですね。
» タイムゾーンの使い方の続きを読む
これはかなり簡単です。
例えば、
Date d = new Date();
として取得した時刻を表示することを考えます。
表示用の SimpleDateFormat クラスを使えば、表示時のタイムゾーンのデフォルトは、システムのタイムゾーンなのでローカル時刻が表示できます。
タイムゾーンID を指定してタイムゾーンオブジェクトを取得して、SimpleDateFormat オブジェクトにセットすれば指定したタイムゾーンの時刻として表示できます。
これを利用すればグローバルで利用できるプログラムを作るのも簡単ですね。
» タイムゾーンの使い方の続きを読む