【初心者】Java質問・相談スレッド106【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0307デフォルトの名無しさん
2007/09/28(金) 04:23:43JTableを継承して、いくつかの追加機能を設けたExtendedJTableを作りました。
この追加機能を利用するにはTableModel側にも拡張が必要で、
TableModelインターフェイスを拡張したサブインターフェースExtendedTableModelを作りました。
この拡張されたTableModelを実装したテーブルモデル用に
ExtendedJTable#setModel(ExtendedTableModel tablemodel){ super(tablemodel); }
を定義したのですが、JTableを継承したときに、
JTable#setModel(TableModel tablemodel)も継承しているので、
追加機能に対応していないテーブルモデルを設定することもできてしまいます。
この場合追加機能を用いようとしても当然無理なので、どうにかしたいのですが、
どのようにするのがよいのでしょうか。
JTable#setModel(TableModel tablemodel)を潰すことはできませんよね。
設計に何か根本的な間違いがあるのでしょうか。
class ExtendedJTable extends JTable{
public void setModel(ExtendedTableModel tablemodel){ super(tablemodel); }
public void somethingWonderful(){ //JTable追加機能
ExtendedTableModel tablemodel=(ExtendedTableModel) getModel();
//以下追加機能のロジック
tablemodel.addedTableModelMethod();
//etc...
}
}
interface ExtendedTableModel extends TableModel{
public void addedTableModelMethod(); //JTable#extendedWonderfulSomething()で利用されるメソッド
}
■ このスレッドは過去ログ倉庫に格納されています