es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El set de fondo en JavaFX no está funcionando en mi Controlador.

He intentado hacer un evento del ratón en mi proyecto JavaFX que cambie el color de fondo cuando el ratón entre y dé null cuando salga, pero este error simplemente sigue apareciendo:

El método setBackground (Background) en el tipo Región no es aplicable para los argumentos (Color)

El método en mi clase de controlador:

public void barcolor(MouseEvent event) {
menubar.addEventHandler(MouseEvent.MOUSE_ENTERED, e ->
menubar.setBackground(Color.WHITE)
);
menubar.addEventHandler(MouseEvent.MOUSE_EXITED, e ->
menubar.setBackground(null)
);
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el método setBackground de la clase Region no acepta un parámetro de tipo Color. Esto significa que estás intentando pasar un objeto Color al método setBackground, pero en realidad espera un objeto Background.

    Para solucionarlo, necesitas crear un objeto Background utilizando las clases BackgroundFill y Background, y luego pasarlo al método setBackground. Aquí te mostramos un ejemplo de código:

    public void barcolor(MouseEvent event) {
        Background background = new Background(new BackgroundFill(Color.WHITE, null, null));
        menubar.addEventHandler(MouseEvent.MOUSE_ENTERED, e -> menubar.setBackground(background));
        menubar.addEventHandler(MouseEvent.MOUSE_EXITED, e -> menubar.setBackground(null));     
    }
    

    En este código, primero creamos un objeto BackgroundFill con el color deseado (en este caso, blanco) y luego creamos un objeto Background con ese BackgroundFill. Luego, pasamos ese objeto Background al método setBackground cuando el mouse entra en el área de la barra de menú, y lo establecemos en nulo cuando sale.

Comments are closed.