在 Java Swing 中使用表模型显示表标题
我想使用构造函数方法 JTable(TableModel) 创建一个表。我需要 TableModel 中的哪些具体方法来显示每列的标题?
I would like to create a table with the constructor method JTable(TableModel). What exact methods in the TableModel do I need to display the titles of each column?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您需要将
JTable
嵌入JScrollPane
中,列标题将自动显示:You need to embed your
JTable
within aJScrollPane
and the column headings will be shown automatically:您需要实现 TableModel 例如,通过扩展类 AbstractTableModel 或使用 默认表模型。稍后有一个 构造函数,您可以在其中设置列的数量和名称。
You need to implement a TableModel for example by extending the class AbstractTableModel or by to using a DefaultTableModel. This later has a constructor where you can set the number and names of your columns.
我认为您真正要寻找的是类 默认TableModel。只需阅读文档,您就会走自己的路。
I think what you are really looking for the is the class DefaultTableModel. Just read through the documentation and you will be on your own way.
您需要在TableModel接口中实现getColumnName方法
返回所需的列名称。
来自 TableModel 的 Javadoc:
String getColumnName(int columnIndex)
返回位于 columnIndex 处的列的名称。这用于初始化表的列标题名称。
编辑:
抽象类AbstractTableModel提供了接口TableModel中大多数方法的实现,并且还提供了默认实现
接口 TableModel 中的 getColumnName 方法(但这可能不适合您的目的,因为它返回列名称为 A,B..)。
通过子类化 AbstractTableModel 创建您自己的 TableModel,并提供抽象方法的实现并覆盖 getColumnName 方法。例如,您可以尝试以下内容:
You need to implement the getColumnName method in the TableModel interface
to return the column names you want.
From the Javadoc of TableModel:
String getColumnName(int columnIndex)
Returns the name of the column at columnIndex. This is used to initialize the table's column header name.
EDIT:
The abstract class AbstractTableModel provides implementation for most of the methods in interface TableModel and also provides a default implementation for
the getColumnName method in interface TableModel (but which might not suit your purpose as it returns column names as A,B..).
Create your own TableModel by subclassing AbstractTableModel and provide implemenation for the abstract methods and override getColumnName method. For example you can try something like: