2017-01-22 14 views
1

現在、私はRaspberry Pi 3のJavaFXアプリケーションを開発しています。私のPCで開発するには、Ubuntu 16.04.1、OpenJDK 1.8.0_111、およびOpenJFX 8.0.60を使用します。 Raspberri Piでの操作のために、Raspbian JessieをPIXEL(コンソールモードで起動)、OpenJDK 1.8.0_40、OpenJFX 8.0.60で使用します。Raspberry PiはJavaFXアプリケーションでマウスカーソルを隠すことができません

ユーザーはタッチスクリーンを使用してアプリケーションと対話する必要があるため、グラフィカルマウスカーソルは不要です。さらに、マウスカーソルは画面の内容をわずかにカバーするので迷惑です。加えて、画面に触れるたびにその位置を変えることによって、ユーザを刺激する。したがって、マウスカーソルを画面上に隠したいと思っています。私のPC上で

私は次のコードを使用して、マウスカーソルを非表示にすることができる午前:

scene.setCursor(Cursor.NONE); 

私はそうした後

java -jar MyApp.jar 

を使用して、bashシェルからラズベリーパイでアプリケーションを起動しますsetCurserプロパティは最初に機能します。しかし、画面に触れたり、マウスを動かすと、デフォルトのマウスカーソルが画面に表示されます。 Post on raspberrypi.org forum

OpenJFX Wikiは言う:ラズベリーパイでのJavaFXのデフォルト設定では、 はX11を使用していないことを

注これは、未解決の問題のようです。代わりに、JavaFXはディスプレイ のフレームバッファと入力デバイスで直接動作します。したがって、JavaFXを起動するときにX11デスクトップ を実行しないでください。

回避策として、Raspbian Jessieのフレームバッファでグラフィカルマウスカーソルを非表示にするにはどうすればよいですか?

答えて

1

このバグの回避策を見つけました。それは私のアプリケーションの開始時にいくつかのちらつきを作成しますが、それは私の場合に受け入れられます。 はここ(誤っていくつかのフルスクリーンウィンドウでの作業硬化効果が発見された)マジックコード

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); 
        }); 
      }); 
    } 
である(また、あなたは、プログラム開始時にバックライトをオフにしようとすることができます)
関連する問題