私はスペーシングを知っていますJTable
以下に示すように、セルはかなり単純です。Spacing JTable header
int gapWidth = 10;
int gapHeight = 5;
table.setIntercellSpacing(new Dimension(gapWidth, gapHeight));
このようなスペースは、表のヘッダーには影響しないようです。ヘッダーを同じディメンションで配置する方法はありますか?のみに配置された間隔の結果として -
私はスペーシングを知っていますJTable
以下に示すように、セルはかなり単純です。Spacing JTable header
int gapWidth = 10;
int gapHeight = 5;
table.setIntercellSpacing(new Dimension(gapWidth, gapHeight));
このようなスペースは、表のヘッダーには影響しないようです。ヘッダーを同じディメンションで配置する方法はありますか?のみに配置された間隔の結果として -
最も簡単な方法は、上記のコードは私の間隔を行い、しかしヘッダのアライメントと実際の行のセルの値がslighlyオフ見えるTableCellRenderer
内部EmptyBorders to the JTableHeaderを設定することができヘッダーではありません。
私はSSCCE追加(3minsの27seconds株式会社を。ここにアップロード)
コード
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class IntercellSpacingTableHeader {
private JFrame frame = new JFrame("Table Demo");
private String[] columnNames = {"String", "Integer", "Float", "Double"};
private Object[][] data = {
{"aaa", new Integer(12), new Float(12.15), new Double(100.05)},
{"bbb", new Integer(5), new Float(7.154), new Double(6.1555)},
{"CCC", new Integer(92), new Float(0.1135), new Double(3.1455)},
{"ddd", new Integer(12), new Float(31.15), new Double(10.05)},
{"eee", new Integer(5), new Float(5.154), new Double(16.1555)},
{"fff", new Integer(92), new Float(4.1135), new Double(31.1455)}};
private TableModel model = new DefaultTableModel(data, columnNames) {
private static final long serialVersionUID = 1L;
@Override
public Class<?> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
private JTable table = new JTable(model);
public IntercellSpacingTableHeader() {
int gapWidth = 10;
int gapHeight = 5;
table.setIntercellSpacing(new Dimension(gapWidth, gapHeight));
table.setRowHeight(20);
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scroll = new JScrollPane(table);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(scroll);
frame.pack();
frame.setLocation(150, 150);
frame.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new IntercellSpacingTableHeader();
}
});
}
}
から、それはあなたが(ヘッダーの_alignmentと後にあるまさに明確ではありません実際の行セルの値は軽くオフに見える_ - わずかにだけではなく、ヘッダーが中央に配置されています:-) SSCCEに問題を示すのに最適です(@mKorbelは既に提案しています) – kleopatra
私は@mKorbelとまったく同じことをやっています。私のコードの唯一の違いは、私は2つの列のサイズを決めています。 – Bitmap
しかし、彼の例ではテキストはありません(それはあなたの後ろにありますか?)整列(ヘッダー/セル間)です。 – kleopatra