java - JTable 帮助(调整标题和数据源的大小)

标签 java swing jtable

我对 JTable 很陌生,对它的过多信息感到困惑。我希望你们能回答几个问题。

  1. 如何单独设置每个单元格的值?是通过 TableModel 的实现(我不太清楚如何使用它)?我知道可以使用二维矩阵预先设置数据。
  2. 我怎样才能使下表的标题位置合适(条目完全显示)?如果您仔细查看表中的第一个条目,就会发现 Job Grade 被部分隐藏了。我到处寻找解决方案,但无济于事。

http://i45.tinypic.com/24pxvmx.jpg

最佳答案

这个概念是您将 DefaultTableModel 子类化为您自己的类。例如,如果你想显示一个工作表,你可以创建一个名为 JobsTableModel 的类。 JobsTableModel 通常有一个 Job 类型的对象集合,可以将其传递给构造函数。您的 JobsTableModel 必须能够回答以下问题:

  1. 有多少行
  2. 有多少列
  3. X 列的名称是什么
  4. X列的数据类型是什么
  5. 单元格 (X,Y) 中的值是多少

它通过覆盖以下方法来做到这一点:

public int getRowCount()
public int getColumnCount()
public String getColumnName(int columnIndex)
public Class<?> getColumnClass(int columnIndex)
public Object getValueAt(int rowIndex, int columnIndex)

然后 JTable 实现可以使用此信息来填充表格,而您不必担心在每个单元格中设置值。此外,JTable 实现将自动免费为您提供排序和列重新排序。如果您必须直接填充每个单元格,这将是一场噩梦。

关于正确设置宽度,我认为没有任何自动方法可以做到这一点,您只需要反复试验即可。您可以按如下方式设置列宽(以像素为单位):

TableColumn column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(width);

关于java - JTable 帮助(调整标题和数据源的大小),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683056/

相关文章:

Java Swing 在 MigLayout 中添加图像代码似乎不起作用?

java - 添加新值后,记录被覆盖,而不是在 jtable 上添加新行

java - JTable 单元格跨度合并

java - 按值更改 jTable 单元格颜色

javascript - 从网页 Java 中删除部分网站

java - 如何在java中检索面板组件的值

java - 如果我们收到来自提交的错误响应,则提交可能使用 ajax 的 JSF 2 表单的最佳实践

java - Jlayer MP3播放器,在java中控制mp3文件的音量

java - 在 JavaFX 中发布加载样式表

java - 带有 setter/getter 的枚举