Para fala a verdade quando eu fiz essa classe estava fazendo meu primero programa em Java e ainda não estava acostumado a pesquisar na api então acreditei no q eu li em algum forum pela net.
Talvez até tenha, mas desconheço.
A explicação para seria que até pouco tempo Java para Desktop estava meio que em segundo plano (ou terceiro, quarto…) como consequencia tinhamos uma GUI extremamente pobre comparada com as outras linguagens que não se preocupar em ser multiplataforma e tiram total proveito das APIs gráficas de cada SO, usando recursos exclusivos de cada um. E isso em Java geraria uma incompatibilidade e adeus portabilidade. Então o jeito é ficar com oq existe em comum em cada API.
Mas com certeza poderia ser MUITO melhor.
Mas mesmo assim os esforços para criar uma BOA GUI só começou a ser realmente um esforço a pouco tempo, então o swing ainda tem muito oq amadurecer, e com certeza deve ir se adaptando as necessidades dos desenvolvedores.
Eu só trabalho com swing, conheço praticamente nada de SWT, mas talvéz vc possa achar outros recursos em SWT que possa te ajudar.
Mas francamente, esses pequenos detalhes podem ser resolvidos rapidamente, como com o meu LimitedTextField, que gastei menos tempo pra faze-lo do que gastei pesquisando sobre como limitar um JTextField.
Nunca tive problemas com o swing, tenho algumas GUI boas e bonitas, até agora foi só detalhe que me encheu o saco!