テーブルデータ編集不可でも行選択可能なJTableの設定方法をお教えいただきたいです。
私が試した方法では一つ問題点があり困っております。
その問題点とは、
セルをダブルクリックするとセルがへこみ、
そのまま別イベントでプログラム内部からテーブルへ書き込みをすると、
上記へこんだセルのみ変更が反映されないのです。
JTableを継承したJTableCustomクラスを作成し、
テーブルセル編集の不可設定を行うsetEditFalseメソッドを作成しました。
(補足:JTableのEnabledをfalseにすると行選択ができなくなってしまうので、
CellEditerを使用しています)
public class JTableCustom extends JTable {
public JTableCustom() {
super();
this.setModel(new DefaultTableModel());
this.setSize(300,200);
}
/**
* テーブルセルの編集ができないように設定します。<br>
*/
public void setEditFalse(){
JTextField tf = new JTextField("");
tf.setEditable(false);
DefaultCellEditor dce = new DefaultCellEditor(tf);
TableColumnModel tcm = this.getColumnModel();
for (int i = 0; i < tcm.getColumnCount(); i++){
tcm.getColumn(i).setCellEditor(dce);
}
}
}
JTableCostomインスタンス作成後、上記メソッドを呼び設定を行います。
上記メソッドにセルがへこまないように設定する方法、
もしくは別の方法で上記機能を満たすものがあれば教えていただきたいです。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
編集を不可にするのなら、TableModel#isCellEditable(int rowIndex, int columnIndex)
を調整してください。
全てのセルを編集不可にするなら、DefaultTableModelのisCellEditable(int rowIndex, int columnIndex)を常にfalseを返すようにオーバーライドすればいいでしょう。
回答ありがとうございます。
なるほど、そのような方法があったんですね。
先ほどDefaultTableModelのオーバーライドしで試したところ、表題の問題が解決しました。
大変助かりました、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Visual Basic(VBA) VBA Userform転記のみ編集可 1 2023/06/29 11:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- その他(Microsoft Office) エクセル VBAについて 2 2022/09/21 22:21
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで丸をつけたいです。
-
エクセルVBA(実行時エラー438...
-
EXCELマクロ 保護されているシ...
-
エクセルテキストボックスの文...
-
Excelについて
-
データが入力されている隣のセ...
-
VBAについて教えてください。 E...
-
エクセルVBA セル選択後にカレ...
-
ダブルクリックすると現在の時...
-
Excel VBA セルを指定個数ラン...
-
Swing 編集不可でも選択可能なJ...
-
セル色を5秒間隔で変える
-
Windowsで動くVBAがmacOSで動か...
-
エクセル マクロ 見つけてセ...
-
VBAで、貼り付け禁止命令を実現...
-
エクセル2007 VBA DTPicker
-
シート内セルに着色があればエ...
-
Excel VBAで結合されたセルの数
-
エクセルのVBAでダブルクリック...
-
GrapeCityのSpreadの複数セルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データが入力されている隣のセ...
-
EXCELマクロ 保護されているシ...
-
エクセルテキストボックスの文...
-
VBAで、貼り付け禁止命令を実現...
-
Excelについて
-
メッセージを1度だけ表示したい。
-
ダブルクリックすると現在の時...
-
ハイパーリンクされているファ...
-
エクセルVBA セル選択後にカレ...
-
Jtableの特定のセルの背景色や...
-
VBAで丸をつけたいです。
-
エクセルVBA(実行時エラー438...
-
Excelのセル内にある図形を削除...
-
Swing 編集不可でも選択可能なJ...
-
(VBA)アクティブセルを起点に...
-
Excel VBA セルを指定個数ラン...
-
VBA セルに合わせて移動するが...
-
Windowsで動くVBAがmacOSで動か...
-
セル色を5秒間隔で変える
-
Excel VBA ダブルクリックで入...
おすすめ情報