Если у вас есть причина, по которой вы не хотите использовать какой-либо из существующих LayoutManager в JDK, вы можете подумать о создании собственного LayoutManager, специфичного для вашего приложения
Это довольно просто - просто создайте подкласс FlowLayout, а в методе doLayout вызовите setBounds для вашей кнопки (и любых других компонентов).
Таким образом, вы можете указать точное положение, исходя из ожидаемого размера контейнера, и при этом сохранить контроль для изменения положения кнопки в случае, если контейнер будет уменьшен или увеличен,