2015-07-27 2 views
0

Хотите открыть новую сцену, когда строковое значение в ячейке таблицы JavaFX является «Chrome», и когда эта ячейка будет нажата правой кнопкой мыши. Когда я нажимаю на любую ячейку в столбце приложения, она не выводит вторую кнопку.Мышь JAVAFX Щелкните по определенному значению

     @Override 
         public void handle(MouseEvent event) { 
          MouseButton button = event.getButton(); 
          if (button == MouseButton.PRIMARY) { 
           System.out.println("primany buton"); 
          } else if (button == MouseButton.SECONDARY && applicationname_column.getCellValueFactory().toString().contentEquals("Chrome")) 
          { 
           System.out.println("second button"); 
           Parent Chromepage = null; 
           try { 
            Chromepage = FXMLLoader.load(getClass().getResource("Chrome_logs.fxml")); 
           } catch (IOException e) { 
            e.printStackTrace(); 
           } 

           Stage stage = new Stage(); 
           Scene scene = new Scene(Chromepage); 
           stage.setScene(scene); 
           URL url = this.getClass().getResource("DarkTheme.css"); 
           if (url == null) { 
            System.out.println("Resource not found. Aborting."); 
            System.exit(-1); 
           } 
           String css = url.toExternalForm(); 
           scene.getStylesheets().add(css); 
           stage.setTitle("Chrome Logs"); 
           stage.show(); 
          } else if (button == MouseButton.MIDDLE) { 
           System.out.println("middle button"); 
          } 
         } 
        }); 
        return cell; 
       } 
       } 
+1

Попробуйте использовать '... еще если (кнопка == MouseButton.SECONDARY && .equals "Хром"(cell.getItem()))' –

+0

это сработало! Спасибо большое! –

ответ

1

Вы можете получить элемент, который выполняет рендеринг ячейки, и проверить его значение. Так что

... 
else if (button == MouseButton.SECONDARY && "Chrome".equals(cell.getItem())) 
{ 
    ... 
} 
... 
Смежные вопросы