Почему бы не использовать что-то вроде:
List<JFrame> frames = new ArrayList<JFrame>();
frames.add(frame1);
frames.add(frame2);
...
...
ArrayList похож на Vector, за исключением того, что его методы не синхронизированы. Поэтому, если вам не нужна синхронизация коллекции, ArrayList является лучшим выбором.
Я не понимаю, что ты имеешь в виду, когда не мог заставить работать Вектор. Почему ты не мог заставить их работать?