Вы пытались использовать метод setMinimumSize(Dimension)
вашего фрейма?
frame.setMinimumSize(new Dimension(100, 100));
Просмотр документации говорит мне, что поведение, которое вы видите, зависит от платформы, так что если выиметь несколько платформ, это может быть хорошей идеей для тестирования кода, который вы имеете на каждой из них;посмотрите, какие из них работают, а какие нет.
Следующий пример кода работает для меня, как требуется для Windows Vista:
import javax.swing.JFrame;
import java.awt.Dimension;
public class Ex extends JFrame {
public static void main(String[] args) {
JFrame frame = new JFrame("YOU CAN'T SHRINK ME COMPLETELY!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setMinimumSize(new Dimension(100, 100));
frame.setVisible(true);
}
}