このページでは、Java 6
, 7
でSwing
に新しく追加された機能に関連するTips
を一覧にしています。
Java 6
TableRowSorterでJTableのソート
TableRowSorterでJTableのソート
JDK 6
で導入された、TableRowSorter
を利用して、JTable
の行を降順、昇順にソートします。
TableRowSorterのソートをヘッダクリックで昇順、降順、初期状態に変更
TableRowSorterのソートをヘッダクリックで昇順、降順、初期状態に変更
JDK 6
で導入されたTableRowSorter
のソートを、TableSorter.java
のようにヘッダクリックで昇順、降順、初期状態に切り替わるように設定します。
RowFilterでJTableの行をフィルタリング
RowFilterでJTableの行をフィルタリング
JDK 6
で導入されたTableRowSorter
にRowFilter
を設定して、行のフィルタリングを行います。
JTableのRowFilterを一旦解除してソート
JTableのRowFilterを一旦解除してソート
JTable
のRowFilter
を一旦解除してソートし、再びフィルタを設定することで表示される行を更新します。
SwingWorkerを使った処理の中断と進捗状況表示
SwingWorkerを使った処理の中断と進捗状況表示
JDK 6
で新しくなったSwingWorker
を使って、処理の中断や進捗状況の表示更新などを行います。
JTabbedPaneにタブを閉じるボタンを追加
JTabbedPaneにタブを閉じるボタンを追加
JDK 6
の新機能を使用し、JTabbedPane
のタブ内に自身を閉じるためのボタンを追加します。
JTabbedPaneのタブにJTextFieldを配置してタイトルを編集
JTabbedPaneのタブにJTextFieldを配置してタイトルを編集
JTabbedPane
のタブタイトルを直接編集します。
JTabbedPaneのタイトルをクリップ
JTabbedPaneのタイトルをクリップ
JDK 6
で導入されたタブにコンポーネントを追加する機能を使って、長いタイトルのタブは文字列をクリップして表示します。
JTable自体の高さを拡張
JTable自体の高さを拡張
JDK 6
で導入された機能を使用して、JViewport
の高さまでJTable
を拡張します。
ButtonGroup内のJRadioButtonなどの選択をクリア
ButtonGroup内のJRadioButtonなどの選択をクリア
JDK 6
で追加された機能を使用して、ButtonGroup
内の選択をクリアします。
↑10 ↓11
SystemTrayにアイコンを表示
SystemTrayにアイコンを表示
JDK 6
で追加された機能を使って、SystemTray
にアイコンを表示します。
TrayIconのアニメーション
TrayIconのアニメーション
SystemTray
に追加したトレイアイコンをアニメーションさせます。
TrayIconのダブルクリック
TrayIconのダブルクリック
TrayIcon
をダブルクリックした場合フレームを表示、シングルクリックした場合はフレームを前面に表示します。
Desktopでブラウザを起動
Desktopでブラウザを起動
JDK 6
で導入されたDesktop
を使ってブラウザを起動します。
GroupLayoutの使用
GroupLayoutの使用
JDK 6
で新しく導入されたGroupLayout
とGridBagLayout
を比較しています。
TableRowSorterのSortKeysをクリアする
TableRowSorterのSortKeysをクリアする
JDK 6
で導入されたTableRowSorter
での行ソートを、テーブルヘッダの「Shift
+クリック」でクリアします。
JTabbedPaneのCloseButtonをフォーカスがある場合だけ表示
JTabbedPaneのCloseButtonをフォーカスがある場合だけ表示
JTabbedPane
のタブを閉じるボタンを、タブにフォーカスがある場合だけ表示します。
JTabbedPaneのタブにJProgressBarを表示
JTabbedPaneのタブにJProgressBarを表示
JTabbedPane
のタブにJProgressBar
を配置して、進捗を表示します。
JTableをソートした後の選択状態
JTableをソートした後の選択状態
JDK 1.6
で導入されたRowSorter
を使って、JTable
をソートした場合、直前の選択状態がどう変化するかテストします。
JTableのソートアイコンを変更
JTableのソートアイコンを変更
JTable
のソートアイコンを非表示にしたり、別の画像に変更します。
↑20 ↓21
JTableのRowSorterをフィルタありソート不可にする
JTableのRowSorterをフィルタありソート不可にする
フィルタありでソート不可のTableRowSorter
を作成します。
TransferHandlerを使ったJListのドラッグ&ドロップによる並べ替え
TransferHandlerを使ったJListのドラッグ&ドロップによる並べ替え
JList
のアイテムを複数選択し、ドラッグ&ドロップで並べ替えを可能にするTransferHandler
を作成します。
JListのアイテムをラバーバンドで複数選択、ドラッグ&ドロップで並べ替え
JListのアイテムをラバーバンドで複数選択、ドラッグ&ドロップで並べ替え
JList
のアイテムを、ラバーバンドで複数選択、ドラッグ&ドロップで並べ替え可能にします。
JTableの列固定とソート
JTableの列固定とソート
列固定したJTable
で、JDK 6
で導入されたTableRowSorter
を使った行ソートを行います。
JTabbedPane間でタブのドラッグ&ドロップ移動
JTabbedPane間でタブのドラッグ&ドロップ移動
JTabbedPane
間でタブのDrag
&
;Drop
による移動を行います。
ButtonGroup中にある選択状態のJToggleButtonをクリックして選択解除可能にする
ButtonGroup中にある選択状態のJToggleButtonをクリックして選択解除可能にする
ButtonGroup
中にある選択状態のJToggleButton
をもう一度クリックすることで、その選択を解除できるように設定します。
JTabbedPaneのタブにJCheckBoxを追加
JTabbedPaneのタブにJCheckBoxを追加
JTabbedPane
のタブ内にクリック可能なJCheckBox
を追加します。
Fontにトラッキングを設定して文字列幅を詰めて描画する
Fontにトラッキングを設定して文字列幅を詰めて描画する
Font
に負のトラッキング値(
字送り、文字間)
を設定して文字列幅を縮小して描画します。
Iconを指定した数の四分円だけ回転して表示する
Iconを指定した数の四分円だけ回転して表示する
Icon
を指定した数の四分円(90
度)
だけ回転してJLabel
に配置します。
Java 7
JLayerで指定したコンポーネントへの入力を禁止
JLayerで指定したコンポーネントへの入力を禁止
JDK 7
で導入されたJLayer
を利用して指定したコンポーネントへの入力を禁止します。
JLayerで子コンポーネントへの入力を制限する
JLayerで子コンポーネントへの入力を制限する
JLayer
を使って、子コンポーネントへのすべての入力を制限します。
JLayerを使ってJTabbedPaneのタブの挿入位置を描画する
JLayerを使ってJTabbedPaneのタブの挿入位置を描画する
JLayer
を使って、タブのドラッグ&ドロップでの移動先をJTabbedPane
上に描画します。
JLayerを使用して無効時のコンポーネントの文字色を変更する
JLayerを使用して無効時のコンポーネントの文字色を変更する
JLayer
を使用して、JButton
などのコンポーネントを無効にしたときの文字色を変更します。
StrokeBorderを使用する
StrokeBorderを使用する
Java 1.7.0
で導入されたStrokeBorder
をテストします。
JProgressBarの文字列をJLayerを使って表示する
JProgressBarの文字列をJLayerを使って表示する
垂直JProgressBar
の文字列をJLayer
を使って横組で表示します。
SecondaryLoopを使用してイベント・ディスパッチ・スレッド上で別途イベント・ループを実行する
SecondaryLoopを使用してイベント・ディスパッチ・スレッド上で別途イベント・ループを実行する
SecondaryLoop
を使用して、イベント・ディスパッチ・スレッドをブロックせずに、別スレッドをイベント・ループを実行します。
ComboBoxEditorにJLayerを設定し入力の妥当性を表示する
ComboBoxEditorにJLayerを設定し入力の妥当性を表示する
JComboBox
のComboBoxEditor
にJLayer
を設定し、その入力が妥当でない場合はアイコンを表示します。