title: JavaFX Button onAction property does not fire when Button pressed on touchscreen
body: <p>I'm learning JavaFX and working on a JavaFX application that will turn my laptop's touchscreen into a mini-piano.  My prototype has a bunch of Buttons in place of piano keys, with each button mapped to a different Midi note.  Clicking on a button with the mouse successfully triggers the button's onAction property and plays the associated note.  Poking the button with my finger doesn't.  The program clearly knows where my finger is because when I poke a button with my finger the button changes color, just as it does when I move the mouse pointer into it.  I know that the problem is with JavaFX rather than with Java more generally or with my touchscreen because I wrote an essentially identical prototype in Swing where poking the screen succesfully plays a note.  (I would gladly have stuck to Swing, too, if only Swing had any kind of multi-touch support.  I want to play chords.)  Is there something about JavaFX that I'm missing, such as a touchscreen event handler, or is something deeply wrong here?</p>
  
  <p>For the record, I'm using OpenJDK 11.0.7 and OpenJFX 11.0.2 with a Xubuntu laptop.  Here's the relevant bits of code.</p>
  
  <p><code></p>
  
  <pre><code>@Override
  public void start(Stage stage) {
  
      stage.setTitle("Midi Test");
      buttons = new Button[NOTE_VALUE.length];
      for (int i = 0; i &lt; NOTE_VALUE.length; i++) {
          buttons[i] = new Button(NOTE_NAME[i]);
          buttons[i].setPrefSize(KEY_WIDTH,KEY_HEIGHT);
          buttons[i].setOnAction(this);
      }
      // Layout omitted for brevity
      stage.show();
  
  }
  
  public void handle(ActionEvent event) {
  
      // Identifies which button was pressed and plays the corresponding note
  
      int index = -1;
      for (int i = 0; i &lt; buttons.length; i++) {
          if (event.getSource().equals(buttons[i])) {
              index = i;
              break;
          }
      }
      if (index != -1) {
          channels[0].allNotesOff();
          channels[0].noteOn(NOTE_VALUE[index],93);
      }
  
  }
  </code></pre>
  
  <p></code></p>