Sì, è vero, l'ho provato adesso (con Look&Feel "Metal", quello standard, predefinito). Dovrei andare a vedere il codice del framework ma ... a naso mi viene da pensare che la UI del text field in generale non consideri gli "insets" imposti dal border e vada a fillare (riempire) tutta l'area del componente con il background color.
EDIT: infatti, il text field è "opaco" e in Swing, in generale, in un componente opaco tutta la superficie del componente (compresi i bordi) viene riempito con il background color.
Comunque in questi casi si può sempre risolvere. Se vuoi togliere il bordi al textfield, puoi comunque farlo, gli setti un EmptyBorder con lati 0px. Poi il titled border invece di settarlo al text field, lo setti ad un pannellino (JPanel, preferibilmente con un BorderLayout) che contiene il text field. Ed è poi il pannellino che inserisci dove prima inserivi il text field. E ti assicuro che funziona.![]()