JavaFX: предотвращайте щелчки правой кнопкой мыши, чтобы развернуть / свернуть TitledPane

Я добавил ContextMenu в заголовок всех титульных панелей в аккордеоне. он работает нормально, но как предотвратить расширение или щелчок правой кнопкой мыши на TitledPane?

Вот мой код, где я показываю ContextMenu:

header.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() {
                    @Override
                    public void handle(ContextMenuEvent event) {
                        contextMenu.show(header, Side.RIGHT, 0, 0);
                        event.consume();
                            setSelectedAccount((Element)header.getUserData());
                            selectedItem.setText(getSelectedAccount().getAttribute("MAIL"));

                        }
                    });

ОБНОВИТЬ:

моя среда: Linux Suse 12.3, JDK 1.7.0_45, JavaFX 2.2, уровень соответствия компилятора 1.7.

большое спасибо

3 ответа

Попробуйте приведенный ниже код, он будет работать нормально согласно вашему требованию:

@FXML
private TitledPane abc;

@FXML
void mouseClicked(MouseEvent event) {
    if(event.getButton().toString().equals("SECONDARY"))
    {
        if(abc.isExpanded())
            abc.setExpanded(false);
        else
            abc.setExpanded(true);            
    }
}

Попробуй это...

header.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>
    () {

        @Override
        public void handle(MouseEvent t) {
            if(t.getButton().toString().equals("PRIMARY"))
            {
                System.out.println("click on left mouse click");
            }
        }
    }
    );

Это работает в Аккордеоне.

@FXML
private Accordion accordion1;

@FXML
private TitledPane pane1,pane2;

@FXML
void mouseClicked(MouseEvent event) {
        if(pane1.isExpanded())
            pane2.setExpanded(false);
        else
            pane2.setExpanded(true);            
    }
Другие вопросы по тегам