如何创建特定的类构造函数

时间:2011-06-05 09:09:56

标签: java jtable jscrollpane

我有一个非常简单的Java JTable问题。 我正在创建这个类,以便在我的应用程序的其余部分中使事情更容易。运行时收到错误。我知道这些错误意味着什么,但不知道还有什么可以尝试。

你会在代码中看到我想要完成的任务:

我的班级:

import javax.swing.*;
public class CPTable extends JScrollPane
{
    private JTable table;
    CPTable(Object [] headers, Object [][] data)
    {
        table = new JTable(data, headers);
        this = new JScrollPane(table);//The line I can't figure out.
    }
}

我的错误:(显而易见的)

cannot assign a value to final variable this
    this = new JScrollPane(table);

incompatible types
found   : javax.swing.JScrollPane
required: CPTable

1 个答案:

答案 0 :(得分:1)

试试这个:

private CPTable(JTable table) {
    super(table);
    this.table = table;
}

public CPTable(Object[] headers, Object[][] data) {
    this(new JTable(data, headers));
}

您无法重新分配this,但可以使用super(必须是构造函数中的第一个语句)来调用正确的超类构造函数。

this语句称为“构造函数委托”---它链接到另一个构造函数,以便您可以将表传递给超类并将其分配给table字段。