---
title: JTable
tags: [JTable]
description: JTable関係の記事へのスクリーンショット付きリンク一覧
---
このページでは、`JTable`の使い方を集めて一覧にしています。

- `JTableHeader`、`TableColumn`などは、[[JTableHeader, TableColumn>Swing/_JTableHeader]]に移動
- `TableCellEditor`、`TableCellRenderer`などは、[[CellEditor, CellRenderer>Swing/_CellEditor]]に移動
- `TableRowSorter`、`RowFilter`などは、[[TableRowSorter, RowFilter>Swing/_TableRowSorter]]に移動

#contents

* JTable [#JTable]
** JTableの行をドラッグ&ドロップ [#DnDTable]
#swingdescription(Swing/DnDTable,JTableの行をドラッグ&ドロップ,JTableの行を選択し、その順序をドラッグ&ドロップで入れ替えます。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTLl0NAFoI/AAAAAAAAAX0/su1r-c7f4V0/s144/DnDTable.png)

** TransferHandlerを使ってJTableの行をドラッグ&ドロップ、並べ替え [#DnDReorderTable]
#swingdescription(Swing/DnDReorderTable,TransferHandlerを使ってJTableの行をドラッグ&ドロップ、並べ替え,JTableの行を複数選択し、ドラッグ&ドロップで並べ替えを可能にするTransferHandlerを作成します。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTLg-5HyXI/AAAAAAAAAXs/Wda5rMSf-1c/s144/DnDReorderTable.png)

** JTableの行を別のJTableにドラッグして移動 [#DragRowsAnotherTable]
#swingdescription(Swing/DragRowsAnotherTable,JTableの行を別のJTableにドラッグして移動,JTableの行を別のJTableにドラッグ&ドロップで移動します。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTL05H70DI/AAAAAAAAAYM/YtTZHzrA2HU/s144/DragRowsAnotherTable.png)

** JTableのセルの編集をコミット [#TerminateEdit]
#swingdescription(Swing/TerminateEdit,JTableのセルの編集をコミット,セルの編集中、フォーカスが別のコンポーネントに移動した場合、その編集を確定する方法をテストします。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTVKX5loMI/AAAAAAAAAnM/hbhZT30xAgc/s144/TerminateEdit.png)

** JTable自体の高さを拡張 [#FillsViewportHeight]
#swingdescription(Swing/FillsViewportHeight,JTable自体の高さを拡張,JDK 6で導入された機能を使用して、JViewportの高さまでJTableを拡張します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTMkfiP8jI/AAAAAAAAAZY/qHWqJtrcUgQ/s144/FillsViewportHeight.png)

** JTableのセルを編集不可にする [#CellEditor]
#swingdescription(Swing/CellEditor,JTableのセルを編集不可にする,JTableのすべてのセルを編集不可にする方法をテストします。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTIgUbMHLI/AAAAAAAAAS4/v0jIwB26ie4/s144/CellEditor.png)

** JTableでキー入力によるセル編集開始を禁止する [#PreventStartCellEditing]
#swingdescription(Swing/PreventStartCellEditing,JTableでキー入力によるセル編集開始を禁止する,キー入力やマウスクリックによるJTableのセル編集開始を禁止します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTRLZXQW1I/AAAAAAAAAgw/ufR0d0md6Bc/s144/PreventStartCellEditing.png)

** JTableで行を選択 [#RowSelection]
#swingdescription(Swing/RowSelection,JTableで行を選択,JTableで、行を選択した場合の動作をテストします。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTSWRoWNRI/AAAAAAAAAio/X-jqAVKs3Bw/s144/RowSelection.png)

** JTableの行を追加、削除 [#AddRow]
#swingdescription(Swing/AddRow,JTableの行を追加、削除,JTableへの行追加と、選択行の削除をJPopupMenuから実行します。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTHaSWCCMI/AAAAAAAAARI/UM476TJWRdM/s144/AddRow.png)

** JTableで行の追加、削除アニメーション [#SlideTableRows]
#swingdescription(Swing/SlideTableRows,JTableで行の追加、削除アニメーション,JTableの行追加や削除をスライドアニメーションで強調します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTTP0i2yxI/AAAAAAAAAkE/DQKpmn3BIQo/s144/SlideTableRows.png)

* ↑10 ↓11 [#ad11aed2]
#adsensebar

** JTableのセルをエクスプローラ風に表示する [#ExplorerLikeTable]
#swingdescription(Swing/ExplorerLikeTable,JTableのセルをエクスプローラ風に表示する,セルの中にアイコンと文字列を配置し、エクスプローラ風に見えるよう、文字列だけにフォーカスをかけます。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTMWzLLVKI/AAAAAAAAAZA/k3vF14Jt-V0/s144/ExplorerLikeTable.png)

** JTableで文字列をクリックした場合だけセルを選択状態にする [#TableFileList]
#swingdescription(Swing/TableFileList,JTableで文字列をクリックした場合だけセルを選択状態にする,JTableの文字列以外の場所がクリックされた場合、そのセルが選択されないようにします。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTUdT6R-SI/AAAAAAAAAmE/AYebcaiE77Y/s144/TableFileList.png)

** JTableの選択状態を変更 [#ChangeSelection]
#swingdescription(Swing/ChangeSelection,JTableの選択状態を変更,JTableの選択状態をchangeSelectionメソッドを使って変更します。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTI0VFZw9I/AAAAAAAAATY/1C_mVqWcXPc/s144/ChangeSelection.png)

** JTableのフォーカスを一行全体に適用する [#LineFocusTable]
#swingdescription(Swing/LineFocusTable,JTableのフォーカスを一行全体に適用する,JTableのフォーカスをセルではなく、一行全体に掛かっているように表示します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTPOarzqiI/AAAAAAAAAdo/uwFLFlU_EpI/s144/LineFocusTable.png)

** JTableの次行にTabキーでフォーカスを移動 [#SelectNextRow]
#swingdescription(Swing/SelectNextRow,JTableの次行にTabキーでフォーカスを移動,Tabキーでセルのフォーカスが次行に移動するように設定します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTS5aM0UvI/AAAAAAAAAjg/g-wlrmrzml8/s144/SelectNextRow.png)

** JTableの行を全削除 [#ClearTable]
#swingdescription(Swing/ClearTable,JTableの行を全削除,JTableのモデルから、カラムヘッダの状態は変更せず、すべての行を一括で削除します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTJISEHcVI/AAAAAAAAAT4/syR1Ucd5n5o/s144/ClearTable.png)

** JTableのTooltipsを行ごとに変更 [#RowTooltips]
#swingdescription(Swing/RowTooltips,JTableのTooltipsを行ごとに変更,JTableのTooltipsが、カーソルのある行の内容などを表示するように設定します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTSbfFU7HI/AAAAAAAAAiw/EPWumbZCrr0/s144/RowTooltips.png)

** JTableの背景色を変更 [#TableBackground]
#swingdescription(Swing/TableBackground,JTableの背景色を変更,JTableを追加したJViewportがセルで隠れていない部分の色を変更します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTUV7me60I/AAAAAAAAAl4/PQqRFaxI6XA/s144/TableBackground.png)

** JTableの行の高さを変更する [#FishEyeTable]
#swingdescription(Swing/FishEyeTable,JTableの行の高さを変更する,JTableの行の高さを変更して、マウスカーソルの下を魚眼レンズのように拡大します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTMw3Q5yMI/AAAAAAAAAZs/0O7lUunN9Rw/s144/FishEyeTable.png)

** JTableを別コンポーネントから操作 [#SelectAllButton]
#swingdescription(Swing/SelectAllButton,JTableを別コンポーネントから操作,JTableの全選択や選択された行のコピーをJButtonなどの別コンポーネントから行います。,https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTSx9pjE3I/AAAAAAAAAjU/kU0UU-PWKSI/s144/SelectAllButton.png)

* ↑20 ↓21 [#d50fef35]
#adsensebar

** JTableのセル文字揃え [#CellTextAlignment]
#swingdescription(Swing/CellTextAlignment,JTableのセル文字揃え,JTableのセルに表示されている文字列の揃えを変更します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTIs6qWcBI/AAAAAAAAATM/AnH_ZWdWA5o/s144/CellTextAlignment.png)

** JTableのセルをダブルクリック [#DoubleClick]
#swingdescription(Swing/DoubleClick,JTableのセルをダブルクリック,JTableのセルをダブルクリックして内容を表示します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTLv3qaXoI/AAAAAAAAAYE/aAnkonlteYo/s144/DoubleClick.png)

** TableCellRendererでセルの背景色を変更 [#StripeTable]
#swingdescription(Swing/StripeTable,TableCellRendererでセルの背景色を変更,TableCellRendererを継承するレンダラーを作ってテーブルのセルを修飾します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTT1bwXoBI/AAAAAAAAAlE/jmpoFwDpvqs/s144/StripeTable.png)

** JTableのセル編集を文字入力変換中からでも可能にする [#CompositionEnabled]
#swingdescription(Swing/CompositionEnabled,JTableのセル編集を文字入力変換中からでも可能にする,IMEが直接入力以外で、一時ウィンドウが表示されていても、入力確定でセル編集を開始します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTKG6DmuHI/AAAAAAAAAVc/WfOft65kSaQ/s144/CompositionEnabled.png)

** JTableを半透明にする [#TransparentTable]
#swingdescription(Swing/TransparentTable,JTableを半透明にする,JTable自体をsetOpaque(false)で透明に、またセル描画に使用されるJTableの背景色を半透明にするなどの設定で、半透明のJTableを作成します。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTV-0biw5I/AAAAAAAAAog/GI9-wLqeOK8/s144/TransparentTable.png)

** JTableが空の場合、中央にJComponentを表示する [#PlaceholderForEmptyTable]
#swingdescription(Swing/PlaceholderForEmptyTable,JTableが空の場合、中央にJComponentを表示する,JTableが空の場合、表領域の中央に任意のJComponentが表示されるように設定します。,https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTRDxbcszI/AAAAAAAAAgk/5iisfYFJom0/s144/PlaceholderForEmptyTable.png)

** JTableでキー入力によるセル編集自動開始を一部禁止する [#FunctionKeyStartEditing]
#swingdescription(Swing/FunctionKeyStartEditing,JTableでキー入力によるセル編集自動開始を一部禁止する,JTableのセル編集自動開始をファンクションキーの場合だけ無効にします。,https://lh6.googleusercontent.com/_9Z4BYR88imo/TXR_CO_Z9UI/AAAAAAAAA3I/7_3ml86ybo8/s144/FunctionKeyStartEditing.png)

** JTableのセルにJRadioButton [#RadioButtonCellEditor]
#swingdescription(Swing/RadioButtonCellEditor,JTableのセルにJRadioButton,JTableのセルにJRadioButtonを配置し、全体で一つだけ選択できるように設定します。,https://lh5.googleusercontent.com/_9Z4BYR88imo/TbUwB1XoMEI/AAAAAAAAA6M/5VwHykCV4OI/s144/RadioButtonCellEditor.png)

** JTableの罫線の有無とセルの内余白を変更 [#IntercellSpacing]
#swingdescription(Swing/IntercellSpacing,JTableの罫線の有無とセルの内余白を変更,JTableの罫線の表示非表示とセルの内余白を変更します。,https://lh3.googleusercontent.com/-zDg_KUxGwU4/TeNHkhhJYGI/AAAAAAAAA8M/G5R8rKLVzUg/s144/IntercellSpacing.png)

** JTableのセルにAnimated GIFを表示する [#AnimatedIconInTableCell]
#swingdescription(Swing/AnimatedIconInTableCell,JTableのセルにAnimated GIFを表示する,ImageIconにImageObserverを設定して、JTableのセル中でAnimated GIFのアニメーションを行います。,https://lh3.googleusercontent.com/-138Snht85-E/T1B6iHoG1pI/AAAAAAAABJw/XaESowuWEC4/s144/AnimatedIconInTableCell.png)

* ↑30 ↓31 [#ad11aed2]
#adsensebar

** JTableで先頭文字のキー入力による検索を行う [#TableNextMatchKeyHandler]
#swingdescription(Swing/TableNextMatchKeyHandler,JTableで先頭文字のキー入力による検索を行う,JTableにフォーカスがある状態でキー入力をした場合、先頭文字が一致する行を検索して選択状態にします。,https://lh4.googleusercontent.com/-UATkJ0JfmBQ/T4u5j_rhkGI/AAAAAAAABLc/1rVNsbM9D98/s144/TableNextMatchKeyHandler.png)

** JSplitPaneに2つのJTableを配置してスクロールを同期する [#SynchronizedScrollingTables]
#swingdescription(Swing/SynchronizedScrollingTables,JSplitPaneに2つのJTableを配置してスクロールを同期する,JSplitPaneの左右に、JTableをそれぞれ配置し、スクロールや追加などが同期するようにモデルを共有します。,https://lh4.googleusercontent.com/-mAnvPJlUJSI/UJ_bYI_kJsI/AAAAAAAABWo/a_jdyUqFLwM/s144/SynchronizedScrollingTables.png)

** JTableのセルに複数配置したコンポーネントのJToolTip [#TooltipInTableCell]
#swingdescription(Swing/TooltipInTableCell,JTableのセルに複数配置したコンポーネントのJToolTip,JTableのセル中に複数個配置したコンポーネントにそれぞれJToolTipが表示されるように設定します。,https://lh4.googleusercontent.com/-OhwzDU_Mys4/ULuQJmYCRiI/AAAAAAAABYQ/Y3Q5mVlliHs/s144/TooltipInTableCell.png)

** JTableのモデルが変更されたことをイベントで受け取る [#TableModelEvent]
#swingdescription(Swing/TableModelEvent,JTableのモデルが変更されたことをイベントで受け取る,JTableのモデルの変更を受け取ってJTableHeaderに追加したJCheckBoxを更新します。,https://lh3.googleusercontent.com/-Mndxsu0wtCM/Uzg00YuVfyI/AAAAAAAACCw/HoRS9CVP_-o/s144/TableModelEvent.png)

** JInternalFrame間でのドラッグ&ドロップによるJTableの行入れ替え [#InternalFrameDropTarget]
#swingdescription(Swing/InternalFrameDropTarget,JInternalFrame間でのドラッグ&ドロップによるJTableの行入れ替え,JInternalFrame間でJTableの行をドラッグ&ドロップを使って入れ替えます。,https://lh5.googleusercontent.com/-UP_I_iTgtpc/U3jPL_jhwuI/AAAAAAAACFg/olJ1Sf-P_lU/s144/InternalFrameDropTarget.png)

** JTableのHTML形式コピーをカスタマイズする [#HtmlTableTransferHandler]
#swingdescription(Swing/HtmlTableTransferHandler,JTableのHTML形式コピーをカスタマイズする,JTableのセルを選択してクリップボードにHTMLテキストをコピーするとき、そのセルのクラスに応じて生成するタグを変更します。,https://lh5.googleusercontent.com/-VsQ_pmP_GKM/VAM3IR6IvyI/AAAAAAAACMI/97dngpaAQn8/s144/HtmlTableTransferHandler.png)

** JTableのモデルをXMLファイルで保存、復元する [#PersistenceDelegate]
#swingdescription(Swing/PersistenceDelegate,JTableのモデルをXMLファイルで保存、復元する,JTableのモデルをXMLEncoderとXMLDecoderを使って、XMLファイルで保存、復元します。,https://lh4.googleusercontent.com/-QHfYzslScHI/VDq8gaSQpBI/AAAAAAAACO4/AI-q_jZ-qpA/s144/PersistenceDelegate.png)

** JTableのセルを選択してJListにドラッグ&ドロップでIconをコピーする [#TableCellTransferHandler]
#swingdescription(Swing/TableCellTransferHandler,JTableのセルを選択してJListにドラッグ&ドロップでIconをコピーする,JTableのセルを選択可能にし、ドラッグ&ドロップでそのセル内のIconをJListにコピーできるようにTransferHandlerを設定します。,https://lh3.googleusercontent.com/-TUrxk7yYqYM/VWHkR1mENvI/AAAAAAAAN4w/bEU29WIgjOE/s144/TableCellTransferHandler.png)

** JTableのセルを編集開始したときにセルエディタがフォーカスを取得するよう設定する [#SurrendersFocusOnKeystroke]
#swingdescription(Swing/SurrendersFocusOnKeystroke,JTableのセルを編集開始したときにセルエディタがフォーカスを取得するよう設定する,JTableのセルを編集開始したときに、セルエディタがフォーカスを取得するかどうかを設定で切り替えます。,https://lh3.googleusercontent.com/-Kzqx4xhc2CM/VX2WWWF2AYI/AAAAAAAAN6o/MQEBYdlaDP4/s144/SurrendersFocusOnKeystroke.png)

** JTableの行高がJViewportの高さに合うまで調整する [#AdjustRowHeightFillsViewport]
#swingdescription(Swing/AdjustRowHeightFillsViewport,JTableの行高がJViewportの高さに合うまで調整する,JTableの各行の高さ変更することで行数などに変更があっても、JViewportに余白が発生しないように調整します。,https://lh3.googleusercontent.com/-Poa86QgNChU/VaKgwOMpRdI/AAAAAAAAN9E/2gQi6newmek/s800-Ic42/AdjustRowHeightFillsViewport.png)

* ↑40 ↓41 [#p4bb35ad]
#adsensebar

** JScrollBarをJTable上に重ねて表示するJScrollPaneを作成する [#OverlappedScrollBar]
#swingdescription(Swing/OverlappedScrollBar,JScrollBarをJTable上に重ねて表示するJScrollPaneを作成する,半透明のJScrollBarをJTable上に重ねてレイアウトするJScrollPaneを作成します。,https://lh3.googleusercontent.com/-IHqUJwyfm8A/Vlsa4OUr4XI/AAAAAAAAOHk/QWKZO4xmtQo/s800-Ic42/OverlappedScrollBar.png)

** JTableをスクロールバー無しのドラッグでスクロールする [#HandDragScrollableTable]
#swingdescription(Swing/HandDragScrollableTable,JTableをスクロールバー無しのドラッグでスクロールする,JTableをスクロールバーではなく、内部の行をマウスでドラッグすることでスクロール可能になるよう設定します。,https://drive.google.com/uc?id=10Tv7RlmeMiqhXBuq5fgixQ3v4KR8p5_9)

** JTableにLocaleを考慮したLocalDateを適用してカレンダーを表示する [#CalendarViewTable]
#swingdescription(Swing/CalendarViewTable,JTableにLocaleを考慮したLocalDateを適用してカレンダーを表示する,JTableに週の最初の曜日がLocaleに応じて変化するカレンダーを表示します。,https://drive.google.com/uc?id=1jXZtiYFaA5ABWsdaRBnPUKqS2_VBDkFqQA)

** JTableのセル選択をテストする [#TableCellSelectionListener]
#swingdescription(Swing/TableCellSelectionListener,JTableのセル選択をテストする,JTableの行と列のSelectionModelにListSelectionListenerを追加し、選択されたセルの情報を書き出すテストを行っています。,https://drive.google.com/uc?id=1d_wUBKZrFO5wKccZ3b2qiE0J8zKc-Q9QVQ)

** JComboBoxのドロップダウンリストとしてJTableを使用する [#DropdownTableComboBox]
#swingdescription(Swing/DropdownTableComboBox,JComboBoxのドロップダウンリストとしてJTableを使用する,JComboBoxのドロップダウンリストとしてJListの代わりにJTableを使用します。,https://drive.google.com/uc?id=170XdYlh7LDQaucke8xUxSSN1qlcPWcrGrw)

** JTableの本体、ヘッダ、親JScrollPaneなどにBorderを設定する [#TableBorder]
#swingdescription(Swing/TableBorder,JTableの本体、ヘッダ、親JScrollPaneなどにBorderを設定する,JTableやその内部のJTableHeader、親のJScrollPaneやJViewportにそれぞれ異なるBorderを設定するテストを行います。,https://drive.google.com/uc?id=1QoXjiHkRpuR6I_IrsTRbEOcVi3-02nmReg)

** JScrollPaneの行ヘッダを右側に変更する [#RightSideRowHeader]
#swingdescription(Swing/RightSideRowHeader,JScrollPaneの行ヘッダを右側に変更する,JScrollPaneのレイアウトマネージャを使用して、行ヘッダをデフォルトの左側から右側に変更します。,https://drive.google.com/uc?id=1va-Vod9bidZfMkBZEMw6jIu8TQWjxNk5Mg)

** JFileChooserの詳細表示でファイル名が編集中の場合はそれをキャンセルする [#FileChooserCancelEdit]
#swingdescription(Swing/FileChooserCancelEdit,JFileChooserの詳細表示でファイル名が編集中の場合はそれをキャンセルする,JFileChooserを詳細表示モードで表示したとき、前回のファイル名編集が継続中の場合はそれをキャンセルします。,https://drive.google.com/uc?id=1mmE2-oPYGfml1EHlPd7pXonxZxiGUWpelQ)