- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了自己的类,名为 CustomTableModel
,它从 DefaultTableModel 扩展而来。
public class CustomTableModel extends DefaultTableModel {/*[...]*/}
我的计划是,当您使用 new CustomTableModel();
调用我的构造函数时,您将获得一个使用列名称和列类预初始化的新 CustomTableModel
。
我运行了类似的东西,但当前的实现曾经来自 Eclipse AWT(Window Builder),您还可以使用 GUI 来设置 TableModel。当前的实现如下所示:
public static DefaultTableModel createEmptyModel() {
model = new DefaultTableModel(new Object[][]{},
new String[]{"Lfd. Nr.", "FB Nr.", "Auftr. / Meld. Nr.", "Betra Nr.", "Datum", "Bahnhof", "Str. Km.",
"Sprz.", "Arb. Zeit", "Mitarbeiter", "Auftrag / Objekt(e)", "Anmerkungen", "Fertig"}) {
@SuppressWarnings("rawtypes")
Class[] columnTypes = new Class[]{Integer.class, String.class, String.class, String.class, String.class,
String.class, String.class, String.class, String.class, String.class, String.class, String.class, Boolean.class};
@SuppressWarnings({"unchecked", "rawtypes"})
public Class getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
};
return model;
}
因为它可能有效,所以它根本不是一个CustomTableModel
,它只是一个从方法内创建的DefaultTableModel
,并返回+完全混淆(至少对我来说: ))。
虽然它有效,但我不确定它到底是如何工作的,据我了解,它会将一个空对象数组(2D)以及一个字符串数组传递给 DefaultTableModel 的构造函数,到目前为止这是可以理解的(空数据 +列名称)根据 DefaultTableModel 构造函数的要求。 但是我不明白如何在 ..."Fertig"}) {
之后将列类传递给构造函数,因为两个所需的参数(数据+列名称)都有已经被忽略了。
我最好的猜测是这种方法:
public CustomTableModel() {
super(new Object[][]{{},{Integer.class, String.class, String.class, String.class, String.class,
String.class, String.class, String.class, String.class, String.class, String.class, String.class, Boolean.class}}, new String[]{"Lfd. Nr.", "FB Nr.", "Auftr. / Meld. Nr.", "Betra Nr.", "Datum", "Bahnhof", "Str. Km.",
"Sprz.", "Arb. Zeit", "Mitarbeiter", "Auftrag / Objekt(e)", "Anmerkungen", "Fertig"});
}
由此我认为我的类(class)通过是完全错误的。
如果有人能启发我如何做到这一点,我会非常高兴,我想理解这一点。
最佳答案
如果你看一下 TableModel
,它有两个方法,getColumnName
和 getColumnClass
,现在,您已经重写了 getColumnClass
,这很好,但在 DefaultTableModel 内部
,它使用您提供给构造函数的列名称,并在调用 getColumnName
get 时返回它们。
此数组还定义了 getColumnCount
的返回值。
因此,当调用 JTable#setModel
时,它要做的一件事(默认情况下)是调用它的 createDefaultColumnsFromModel
方法,然后使用 TableModel
构建其 TableColumnModel
,使用 TableModel#getColumnName
方法提供 TableColumn
的 headerValue
属性(property)。
魔法!
关于java - 使用列名和列类初始化 "empty"DefaultTableModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35579379/
我有一个 jTable,显示一个简单的两列 SQL 表的数据并允许用户维护该列表。这是我的第一个java程序。使其正常工作,以便用户可以编辑数据列表并按“保存”进行更新。我从这行代码获取 jTable
由于某种奇怪的原因,每次我在任何单元格中编辑数据并确认它时一旦我进入下一个,它就会从之前编辑的单元格复制数据 有什么想法吗? public class CheckoutTableModel exten
我有3个类(class) 首先从数据库获取数据 第二个为共同作品 其他用于展示表。 public class TableContent { private final Vector headers;
我的 DefaultTableModel 有问题,它不会向我显示表中的列,有一部分代码: JTable table = new JTable() { public boolean is
我有这个测试文件 text_file我的 TableView 是 enter image description here我想将每一行与每一列相匹配(第一行-第一列,第二行-第二列,等等。)错误在哪里
如何在 DefaultTableModel dtm = new DefaultTableModel(); 上添加标题和数据而不放置 new DefaultTableModel(在此内部)?我尝试使用
我的 Java GUI 中显示了一个表,用户可以通过单击“添加”按钮向其中添加行。添加到表格的行中的单元格默认都是可编辑的,用户可以根据需要选择每一行/单元格。 我现在想要添加从表中删除行的功能,但我
我有数据关系 Person-Attends-Course Person ------- id: integer primary key name: string prename: string age
我正在制作一个 GUI 简单的日历程序。我使用 DefaultTableModel 和 DefaultTableCellRenderer 显示日历的月 View 。我的日历设置为突出显示今天的日期。我
新数据输入数据库后,我的 JTable 没有刷新。我需要终止并再次执行才能看到结果。我包括了 DefaultTableModel 和 fireTableDataChanged。我还错过了什么?谢谢!
http://codepaste.net/ujhdq2 private Connection Econn; private DefaultTableModel examTable =
我使用 SwingWorker 根据数据库中的更改更改 DefaultTableModel。我的问题是:在 doInBackground() 中向 DefaultTableModel 添加 ListS
更新了问题,具体问题是数据没有显示,因为没有列: run: [java] Aug 04, 2014 8:17:00 PM net.bounceme.dur.client.gui.Applic
我一直在尝试将一些数据从 Editable JComboBox 发送到 JXTable。它的代码如下: private void selectTestActionPerformed(java.awt.
我有一个用 Object[][] 数组填充的 DefaultTableModel。 现在我想添加一个带有复选框的列并相应地执行操作。 当我将复选框添加到 Object[][] 数组并查看它时,我会显示
这个类与我的数据库通信检索数据并将它们投影到 JTable。我使用了 DefaultTableModel 但列名不会出现。我在另一个类中实例化这个类,我通过 检索包含数据的表获取表格()。 packa
我正在使用 Java Swingx 框架。我的 DefaultTableModel 对象中有 4 列。我只想显示其中 3 列。但是,我需要全部四个来进行计算。 实际数据模型 S.No. |身份证 |
我在 NetBeans 中使用 DefaultTableModel 来显示 MySQL 数据库中的记录。我的数据能够显示,但我想要的是在表格末尾显示一个复选框列。 我知道它需要被覆盖,但我不知道如何以
List myProducts = getMyProducts();//create an arraylist; Vector dataVector = new Vector(myProducts);
是的,我知道,这听起来很愚蠢。但在此之前,让我先说明一下我的问题。 我有一个带有大量 JTable 的 GUI。我有各种 DefaultTableModel,每个 JTable 一个。所以,1:1。对
我是一名优秀的程序员,十分优秀!