Index > swing

swing

Mon, February 1, 2010

Groovyコードを書くためのテキストエディタを速攻でつくる

groovyConsole コマンドでGroovyコードを書くためのテキストエディタが起動しますが、 あれを自分でも使えないか、という話。 実際にやってみると簡単に使うことができました。

次のような簡単なコードで groovy.ui.ConsoleTextEditor をコンポジットした MyConsoleTextEditor をつくって使います。

続きを読む

Sat, December 12, 2009

painter.jar 指定矩形範囲 文字列便利描画ライブラリ(Java2D)

文字を指定した範囲(矩形)に描画するライブラリ。
複数行の折り返しをサポートし、水平・垂直方向の整列指定が可能です。

このような処理は、 javax.swing.JLabel を使えば実現できます。
このライブラリの目的は、 javax.swing.JComponent の paintComponent() を使って 独自の描画を行う場合で、テキストの描画をコントロールする場合に 簡単にコーディングできるようにすることです。

続きを読む

Mon, August 10, 2009

Jython で javax.swing.JTree を使う

Jython ではほとんどGUIのコードを書くことはないのだが(個人的には) Jythonで処理しているデータを可視化して、あっているかどうか確認する場合には SwingによるGUIは非常に重宝する。

例: 構造化FrameMakerでDocbookから本をつくる場合で、索引ページを本文から生成する場合などに DefaultMutableTreeModel を使用している場合の可視化

JTreeをJythonから使う方法のメモ。

続きを読む

Fri, November 28, 2008

ボーダー(border)の自作

javax.swing.border パッケージには、 あらかじめ便利なボーダーがいろいろと揃っています。

通常は、javax.swing.BorderFactoryを通じて各種ボーダーのインスタンスを取得して使いますが。

それらSwing標準のボーダー、およびその組み合わせで間に合わない場合は、自作します。

今回は、ツールバーとメインパネルの間に引くボーダーを 実現する UnderlineBorder.java を作成しました。

続きを読む

Wed, March 5, 2008

Java Swingによる簡易ブラウザの作成

SwingのJEditorPaneを使って簡易ブラウザを 簡単につくることができます。

このブラウザの問題は、HTML3.2レベルしかサポートしておらず 現在のネットに普通に存在しているコンテンツを閲覧するための 十分なツールとはなり得ないことです。

WebkitがAppleからOpenSourceとして提供され、 Adobe AIRやQT4.4で利用できるようになっている のにSwingでは利用できないのは残念。

でも自作のHTMLで書いたヘルプコンテンツの表示とか、 とりあえずテキストだけ表示できればいい! といった場合には重宝します。

続きを読む

Tue, February 5, 2008

マウスカーソル位置の単語を自動選択してハイライトするJEditorPane その2(改良版)(swing)

前回の改良版。

前回は、ハイライトの描画をGlassPaneを使って行っていたが、 それを直接 JEditorPane に描画する方法に改良。

この方法では、 GlassPaneのことを気にしなくていい(GlassPaneはJFrameかJAppletにしかない) のが利点です。

GlassPaneは何か別の目的...たとえば、DragAndDropの描画に使っている場合 など、自由にコントロールできないときがあります。
そんな場合でも、JEditorPane 内でハイライト描画も完結して記述していれば、 問題ありません。

続きを読む

Mon, February 4, 2008

マウスカーソル位置の単語を自動選択してハイライトするJEditorPane

JEditorPaneは、簡易HTMLブラウザとして使うことができます。 JEditorPane上に表示されている文字列をコピーして使いたいのですが、 いちいちマウスで該当する文字列を選択させたくなかったので、 マウスを該当の単語の上に重ねるだけで、単語を選択したように 見せかける機能を GlassPaneの機能を使って実現しました。

続きを読む

Tue, June 12, 2007

もっと上手なヒントの表示方法...ヒント情報付きテキストフィールド(Java,Swing)

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

もちろん、実際に入力するためにテキストフィールドに フォーカスを持って行ったときには、このヒントは消えます。

このようにすれば、ヒントを表示するスペースを節約できるだけでなく、 わかりやすくすることができます。

続きを読む

Fri, May 11, 2007

LookAndFeelを切替えるコード(Java)

たびたび使うことになるコードなので記録。

デスクトップ向けのJavaアプリケーションを書く場合、たいていは ウインドウズ上で使われることが想定されるので、 ルックアンドフィールをWindowsにしておくのがよい。

{strong:Windows}にしておくと、ファイル選択ダイアログがネイティブなウインドウズと 同じになるのがうれしいです。 Metalに設定されている(つまりデフォルトのLaF)ファイルチューザーは正直いって、 使いにくいです。

続きを読む

Fri, May 11, 2007

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

たびたび使うことになるコードなので記録。

GUIが複雑なアプリの場合、 実行環境にあわせて画面をいっぱいまで使いたい場合があります。 その場合に使うコード。

続きを読む

Fri, April 28, 2006

スピン展開ウィジェットの自作(Java Swing)

小さい矢印をクリックするとコンポーネントが出現する・・・ という振る舞いをするコンポーネントの自作。

めったに使わないツールバー領域を通常は隠しておいて、 必要なときに出現させて使う・・・といった用途に適している。

スピン領域が閉じている状態

スピン領域が開いている状態

続きを読む

Fri, April 7, 2006

プルダウンメニューつきのボタンの自作(Java Swing)

Eclipseの[Run]ボタンのようにプルダウンメニュー付きのボタンを自作してみました。

続きを読む

Tue, April 4, 2006

レイアウトマネージャの自作(VerticalLayout)

FlowLayoutは横にコンポーネントを配置していきますが、 これとは逆に縦に配置していくレイアウトマネージャを自作してみました。

ちなみに、 javax.swing.Box を使用して同じようなことを実現できます。 実際に縦にコンポーネントを配置したい場合、 javax.swing.Boxで済ませることができないか、先に検討した方がよいでしょう。

続きを読む

Tue, April 4, 2006

Java Swingによるドラッグアンドドロップ(drag-and-drop)の実装

Javaで実装する場合に限らず、 一般的にドラッグアンドドロップの処理は、 いろいろな要素(処理やメッセージの伝達)が関わってくるので わかりにくい部分があります。

ざっと思いつくままに挙げても、以下のような点に注意してコーディングする必要があります。

など。

しかし、ドラッグアンドドロップ中に起きる処理の流れ全体を把握して、 そのそれぞれでどのクラスが関わってくるのかを把握できれば、 Javaでの実装はかなり簡単です。

異なるJavaVM間やネイティブなプラットフォーム上のアプリケーションとの ドラッグアンドドロップに対応しているので、 これをマスターするとかなりおもしろいことができそうです。

このエントリーのコードをコンパル・実行するには、 Java SE 1.4.2 SDK が必要です。

続きを読む

 Twitter
follow me on Twitter
 Categories
 Archives