[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00303] サブクラスからの JTable クラスのコンストラクタの呼び出し方について



いつの大変お世話になります。

先日の質問内容が、題記とあまりにも外れてしまったため
改めてご質問させていただきます。

現在、JTableを使用したGUIアプリケーションを作成中です。
テーブルのセルを書込み禁止にしたいため、JTableクラスの
isCellEditableメソッドをオーバーライドするコードを書きたいのですが、
手元にある本に記載されているサンプルコードは、JTableクラスを継承した
サブクラス内でisCellEditableメソッドをオーバーライドさせていました。

それまで私が書いていたプログラムでは、テーブルの生成と初期化を、
JFrameを継承したクラスの中のコンストラクタ内で行っていたため、
テーブルの生成とisCellEditableメソッドのオーバーライドのみを、
JTableクラスを継承させたサブクラス内で行わせようと考えました。

そのサブクラスのコンストラクタ内でテーブルを生成させるために、
super()を使用したのですが、ここで問題が発生し、先に進めなくて
困っています。

サブクラスのコンストラクタ内でsuper(5,4)のようにしてスーパークラスの
コンストラクタを呼び出し5行4列のテーブルを生成させる場合には、
特に問題なくコンパイルも通り実行もできるのですが、
配列要素を指定してテーブルを生成するタイプのJTableのコンストラクタを
呼び出そうとすると、「スーパータイプのコンストラクタの呼び出し前には
(配列要素)を参照できません」とのコンパイルエラーが出てしまいます。
(この配列要素の定義は、サブクラスの中の一番最初で定義しています)

私としては、JTable(Object[][] rowData, Object[] columnNames)型の
コンストラクタを呼び出す際に、直接括弧の中に配列を書き込んでしまえば
上手くいくかなとも思ったのですが、それも上手くいきませんでした。

そこで質問なのですが、
JTable(Object[][] rowData, Object[] columnNames)型のコンストラクタ
をJTableを継承したサブクラス内で呼び出すことは不可能なのでしょうか。

どなたか、同じようなケースを経験された方がいらっしゃいましたら、
ご教授願えますでしょうか。何度も同じような質問ばかりで申し訳
ございませんが宜しくお願いいたします。

窪田

開発環境:
OS:WindowsXP Proffesional(SP1)
SDK1.4.1_02
IDEは使用していません