2016-04-03 2 views
0

Есть ли способ, которым я могу иметь событие, которое срабатывает только, если я нажму кнопку Title of TitledPane?javafx TitledPane click event only для заголовка

У меня есть несколько узлов в редакторе графов, и в настоящее время они перетаскиваются. Но я хочу, чтобы они только тащили, когда я перетаскиваю заголовок, если я не щелкнув нигде на панели.

Событие mouseClick, похоже, не работает для меня. Есть ли у кого-нибудь предложения?

ответ

1

Не устанавливайте текст на названной панели, а создавайте этикетку и устанавливайте ее как графику для титульной панели. Затем вы можете зарегистрировать обработчик мыши с меткой:

private TitledPane createClickableTitledPane(String text) { 
    Label label = new Label(text); 
    label.setOnMouseClicked(e -> System.out.println("Click on "+text)); 
    TitledPane titledPane = new TitledPane(); 
    titledPane.setGraphic(label); 
    return titledPane ; 
} 
+0

Я попробовал ваш код, и это в основном делает то, что я хочу, но моя проблема сейчас в том, что это событие только для текста метки, есть способ, чтобы получить событие для всего титула? –