linux mobile - Raspberry Pi non può nascondere il cursore del mouse nell'applicazione JavaFX





plugin (2)


Ho trovato soluzioni alternative per questo bug. Anche se crea qualche sfarfallio all'inizio della mia applicazione, è accettabile nel mio caso. (Puoi anche provare a disattivare la retroilluminazione durante l'avvio del programma) Ecco il codice magico (l'effetto curativo è stato scoperto accidentalmente lavorando con diverse finestre a tutto schermo)

private void fixMouse(Stage primaryStage)
    {
        Platform.runLater(()->{
            //Show mouse cursor
            Robot robot = com.sun.glass.ui.Application.GetApplication().createRobot();

            robot.mouseMove(790,470);
            robot.destroy();

            //Show fullscreen dialog
            final Stage dialog = new Stage();
            dialog.initModality(Modality.APPLICATION_MODAL);
            dialog.initOwner(primaryStage);

            StackPane dialogLayout = new StackPane();
            dialog.setFullScreen(true);
            dialog.setResizable(false);
            dialog.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);

            Scene dialogScene = new Scene(dialogLayout, 0, 0);
            dialogScene.setCursor(Cursor.NONE);
            dialogScene.setFill(Color.BLACK);
            dialogLayout.setBackground(Background.EMPTY);

            dialog.setScene(dialogScene);
            dialog.show();

            // Auto close the dialog
            Platform.runLater(()->{
                        dialog.close();
                        primaryStage.setFullScreen(true);
                    });
            });
    }

Attualmente sviluppo un'applicazione JavaFX per Raspberry Pi 3. Per lo sviluppo sul mio PC uso Ubuntu 16.04.1, OpenJDK 1.8.0_111 e OpenJFX 8.0.60. Per il funzionamento su Raspberri Pi uso Raspbian Jessie con PIXEL (avvio in modalità console), OpenJDK 1.8.0_40 e OpenJFX 8.0.60.

Un cursore del mouse grafico non è necessario, poiché l'utente deve interagire con l'applicazione solo tramite un touch screen. Inoltre il cursore del mouse è fastidioso, perché copre leggermente il contenuto dello schermo. Inoltre, irrita l'utente cambiando la sua posizione ogni volta che lo schermo viene toccato. Pertanto voglio nascondere il cursore del mouse sullo schermo.

Sul mio PC sono in grado di nascondere il cursore del mouse usando il seguente codice:

scene.setCursor(Cursor.NONE);

Inizio l'applicazione sul Raspberry Pi dalla shell di bash usando

java -jar MyApp.jar

Dopo averlo fatto, la proprietà setCurser funziona inizialmente. Ma dopo aver toccato lo schermo o spostato il mouse, il cursore del mouse predefinito appare sullo schermo. Questo sembra essere un problema irrisolto: post sul forum raspberrypi.org

Il Wiki di OpenJFX dice:

Si noti che la configurazione predefinita di JavaFX sul Raspberry Pi non utilizza X11. Invece JavaFX funziona direttamente con il framebuffer dello schermo e i dispositivi di input. Quindi non dovresti avere il desktop X11 in esecuzione all'avvio di JavaFX.

Come soluzione alternativa, come posso nascondere il cursore del mouse grafico nel framebuffer su Raspbian Jessie?




Questa proprietà registrerà un OpenEntityManagerInViewInterceptor , che registra un EntityManager nel thread corrente, in modo da avere lo stesso EntityManager fino al termine della richiesta web. Non ha nulla a che fare con un Hibernate SessionFactory ecc.





java linux javafx raspberry-pi raspbian