JFileChooser
ネイティブ PLAF では、規定の要件を満たしているようです。

import javax.swing.JFileChooser;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class NativeFileChooser {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
JFileChooser jfc = new JFileChooser();
jfc.showOpenDialog(null);
}
});
}
}
まだお好みではありませんか?次に、これから始めて、必要に応じて変更します。

..それで、SWT と Swing は混ざり合わないと思いますか?
一般に、Swing/AWT/SWT コンポーネントを同じ最上位のコンテナに混在させることはお勧めできません。どちらもトップレベルのコンテナであるためFileDialog
、Swing ベースで AWT を開くことは問題ありません。JFrame
同じことがSwing/SWTまたはAWT/SWTにも当てはまると確信しています。