1

JTableのすべてのセルの編集を無効にしたいが、強調表示したくない。

私はウェブサイトから次の例を持っています、そしてそれは期待通りに働きます:

DefaultTableModel model = new DefaultTableModel(data, new String[]{"First header", "Second header", "Third Header"});

JTable table = new JTable(model) 
{ 
    public boolean isCellEditable(int rowIndex, int colIndex) 
    {
        return false;
    } 
};

テーブル変数のインスタンス化の直後はどうなりますか?

インスタンスメソッドisCellEditableをオーバーライドするようなものですか?

4

3 に答える 3

3

これは匿名クラスと呼ばれます。これは、そのメソッドを拡張JTableおよびオーバーライドするクラスのインスタンス化です。isCellEditable

于 2012-08-07T11:48:57.480 に答える
1

から派生した匿名クラスを作成していJTableます。

コード内:

public ExistingClass x = new ExistingClass { ... }

これにより、実際には。から派生したクラスが作成されExistingClassます。これは、単一の派生インスタンスを提供するための簡潔な手段です。上記の例では、1つのメソッドをオーバーライドするだけです。

于 2012-08-07T11:48:07.837 に答える
1

匿名クラスをインスタンス化しています:

匿名クラスは、名前のないローカルクラスです。匿名クラスは、new演算子を使用して、単一の簡潔な式で定義およびインスタンス化されます。

はい、ここでメソッドをオーバーライドしています。

于 2012-08-07T11:49:51.370 に答える