Solución:
Para eliminar la visualización del anillo de enfoque de cualquier control desde dentro del código:
control.setStyle("-fx-focus-color: transparent;");
Para eliminar el anillo de enfoque de todos los controles, aplique una hoja de estilo:
.root { -fx-focus-color: transparent; }
Para quitar solo el anillo para todos los botones, use:
.button { -fx-focus-color: transparent; }
Encuentro el -fx-focus-color
La configuración de atributos es más sencilla que confiar en una combinación extraña de inserciones para eliminar el anillo de enfoque.
Además, puede utilizar la misma configuración para cambiar el anillo de enfoque a un color diferente, como -fx-focus-color: firebrick
.
Actualización 20 de enero de 2015
JavaFX 8 se envía con una nueva hoja de estilo de agente de usuario predeterminada (modena). Esta nueva hoja de estilo del agente de usuario se envía con una configuración adicional para los aspectos destacados del enfoque: -fx-faint-focus-color
. Para las aplicaciones Java 8, es necesario configurar ambos -fx-focus-color
y -fx-faint-focus-color
a transparente para eliminar todos los rastros del anillo de enfoque. Vea la respuesta de good4m a esta pregunta.
Actualización 10 de diciembre de 2015
Si solo establece los colores de enfoque en transparentes como se recomendó anteriormente en esta respuesta, para algunos controles puede ver una diferenciación sutil entre cuándo un control está enfocado y cuándo no. Para muchas aplicaciones, esto no será un problema y será suficiente configurar los colores de enfoque como transparentes.
Para obtener más información y soluciones alternativas, revise la respuesta de James_D a Eliminar el marco azul del campo de entrada de JavaFX y la publicación del blog de Jens Deter sobre Cómo deshacerse del resaltado de enfoque en JavaFX. Tenga en cuenta que, lamentablemente, el enlace al blog de Jens Deter tiene algunas ventanas emergentes molestas.
-fx-focus-color: transparent;
-fx-faint-focus-color: transparent;
Hay varias formas de hacer esto. Puedes probar cualquiera de esto.
button.setStyle("-fx-focus-color: transparent;");
o
.button{
-fx-focus-color: transparent;
}
o
.button:focused{
-fx-focus-color: transparent;
}