Tanto em Swing quanto em JavaFX funcionam, mas recomendo usar JavaFX por ser mais moderno e ter mais recursos. E tambem o Swing chegou a um ponto de maturidade que não tem mais correções, nem atualizações e a Oracle em versões futuras irá descontinuar.
Se for usar JavaFX
1.Instala SceneBuilder https://gluonhq.com/products/scene-builder/ pra fazer as telas (tá uma delicia usa-lo)
2.Fazer em varias camadas (Servidor conversa com Banco de Dados e Cliente JavaFX conversa com o Servidor).
Usar um pool de conexões no Servidor para ligar com o Banco de Dados é uma boa pratica.
3.Banco de Dados modelo relacional
- PostgreSQL << é muito bom !
- MySQL << já tem uma certa fama
- Embutido (H2, HyperSQL, Derby,etc) << São bem limitados,mas dependendo do projeto vão bem.
Banco de Dados NOSQL para ERP tambem
Vale a pena dar uma olhada tambem em Java RMI. (Esse eu uso sem moderação)
Se fazer assim, poderá tanto usar em clientes pequenos, medios e grandes, fazendo pequenas alterações de configurações internas.
Sei que suas duvidas estão no Java e não nisso tudo que estou colocando aqui, mas falo por experiencia de décadas.
Por mais que alguns falam que não existe produtividade em Java para sistemas ERP, se comparar o uso de Java estando no começo com Delphi, VB por exemplo, em Java será mais lento. Mas depois de entender os conceitos a produtividade em Java tende a aumentar e muito, mas isso depende sempre de cada um, do seu esforço e sua inteligencia.
Depois de terminado as vantagens do Java sobrepõem os demais, justamente pela segurança, a forte comunidade mundial, portabilidade, e claro ótimo pra dar manutenção.
Imaginar que se tenha uma sistema distribuido em diferentes sistemas operacionais e saber que o erro que dará neles será o mesmo, isso realmente e’ incrível.