1

我在 Accordion 中的所有 TitledPanes 的标题中添加了一个 ContextMenu。它工作正常,但如何防止鼠标右键单击展开或折叠 TitledPane?

hier 是我的代码,我在其中显示 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。

非常感谢

4

3 回答 3

0

尝试下面的代码,它将根据您的要求正常工作:

@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);            
    }
}
于 2013-11-18T13:02:01.033 回答
0

尝试这个...

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");
            }
        }
    }
    );
于 2013-11-18T05:06:26.870 回答
0

这适用于手风琴。

@FXML
private Accordion accordion1;

@FXML
private TitledPane pane1,pane2;

@FXML
void mouseClicked(MouseEvent event) {
        if(pane1.isExpanded())
            pane2.setExpanded(false);
        else
            pane2.setExpanded(true);            
    }
于 2016-07-30T13:18:04.320 回答