Swing/IntercellSpacing のバックアップ(No.7)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/IntercellSpacing へ行く。
- category: swing folder: IntercellSpacing title: JTableの罫線の有無とセルの内余白を変更 tags: [JTable] author: aterai pubdate: 2011-05-30T16:37:49+09:00 description: JTableの罫線の表示非表示とセルの内余白を変更します。 image:
概要
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#setIntercellSpacing(Dimension intercellSpacing);
JTable#setRowMargin(intercellSpacing.height);
JTable#getColumnModel().setColumnMargin(intercellSpacing.width);