>>661
その場合、this ではなく、this (Canvas) を管理している Frame を探す。普通は AWT
コンポーネントツリーのルートコンテナが Frame だから:

Container root = this.getParent();
while(root.getParent() != null){
  root = root.getParent();
}
FileDialog dlg = new FileDialog((Frame)root, ...);

っていうか、これをするために Frame を継承しようとするのは間違い。