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);
}