gpt4 book ai didi

java - 将 cellpadding 添加到 Java JTable

转载 作者:行者123 更新时间:2023-12-04 03:41:53 25 4
gpt4 key购买 nike

我正在尝试实现一个 Swing JTable。我关注了 http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#simple 上的教程

我希望表格单元格不可编辑(这可行)并且我希望表格单元格的边框有更多的填充。就像 HTML 中的 cellpadding。

这是我的代码的一部分,cellpadding 不起作用。

class BoardTableCellRenderer extends DefaultTableCellRenderer {

private static final long serialVersionUID = 1L;

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
setBorder(BorderFactory.createEmptyBorder(15,15,15,15));
return this;
}
}

String[] columnNames = {"Datei",
"Zeile",
"Zeichen",
"Fehler", "test"};

Object[][] data = {
{"Kathy", "Smith", "Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe", "Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black", "Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White", "Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown", "Pool", new Integer(10), new Boolean(false)}
};

JTable table = new JTable(data, columnNames){
private static final long serialVersionUID = -4430174981226468686L;

@Override
public boolean isCellEditable(int arg0, int arg1) {
return false;
}};

table.setAutoCreateRowSorter(true);
table.getTableHeader().setReorderingAllowed(false);
table.setDefaultRenderer(String.class, new BoardTableCellRenderer());

table 放置在 JScrollPane 上。显示表格,单元格不可编辑,但未应用单元格填充!

有人可以帮忙吗?谢谢:)

最佳答案

JTable 使用的 DefaultTableModelgetColumnClass() 的默认实现(默认情况下)返回 Object.class。这就是未使用 BoardTableCellRenderer 的原因,因为您正在为具有 String.class 的列设置它。

您可以覆盖 getColumnClass。或者对于此示例,替换为:

table.setDefaultRenderer(String.class, new BoardTableCellRenderer());

与:

table.setDefaultRenderer(Object.class, new BoardTableCellRenderer());

查看BoardTableCellRenderer的效果。

关于java - 将 cellpadding 添加到 Java JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com