概要
JTable
の罫線の表示非表示とセルの内余白を変更します。
Screenshot
Advertisement
サンプルコード
add(new JCheckBox(new AbstractAction("setShowVerticalLines") {
@Override public void actionPerformed(ActionEvent e) {
Dimension d = table.getIntercellSpacing();
if (((JCheckBox) e.getSource()).isSelected()) {
table.setShowVerticalLines(true);
table.setIntercellSpacing(new Dimension(1, d.height));
} else {
table.setShowVerticalLines(false);
table.setIntercellSpacing(new Dimension(0, d.height));
}
}
}));
add(new JCheckBox(new AbstractAction("setShowHorizontalLines") {
@Override public void actionPerformed(ActionEvent e) {
Dimension d = table.getIntercellSpacing();
if (((JCheckBox) e.getSource()).isSelected()) {
table.setShowHorizontalLines(true);
table.setIntercellSpacing(new Dimension(d.width, 1));
} else {
table.setShowHorizontalLines(false);
table.setIntercellSpacing(new Dimension(d.width, 0));
}
}
}));
View in GitHub: Java, Kotlin解説
JTable
の罫線を非表示にしてもセルの内余白が0
でない場合、セル選択でその内余白分の塗り残しが発生し分割状態で表示されるJTable#setShowVerticalLines(boolean)
メソッドなどと合わせてJTable#setIntercellSpacing(Dimension)
メソッドを使用し、セルの内余白を0
に変更- 罫線の設定
- JTable#setShowVerticalLines(boolean)
- JTable#setShowHorizontalLines(boolean)
- JTable.html#setShowGrid(boolean)
JTable#setShowVerticalLines(boolean)
とJTable#setShowHorizontalLines(boolean)
をまとめて実行
- セル内余白の設定
- JTable#setIntercellSpacing(Dimension intercellSpacing)
JTable#setRowMargin(intercellSpacing.height)
とJTable#getColumnModel().setColumnMargin(intercellSpacing.width)
をまとめて実行
- JTable#setIntercellSpacing(Dimension intercellSpacing)
参考リンク
- JTable#setShowVerticalLines(boolean) (Java Platform SE 8)
- JTable#setShowHorizontalLines(boolean) (Java Platform SE 8)
- JTable#setIntercellSpacing(Dimension) (Java Platform SE 8)
- JTable#setShowGrid(boolean) (Java Platform SE 8)
- JTableのグリッド線描画をUIDefaultsから復元する