>

TabPane에 여러 개의Tab이 포함 된 프로그램을 만들었습니다. 누군가가 탭을 닫으려고하면 내 코드를 실행하려고합니다. 사용자가 탭의 기본 닫기 버튼을 클릭하면 확인을 요청합니다. 사용자가 "예"라고 말하면 탭이 닫히고 그렇지 않으면 계속 열려 있습니다.

어떻게하면 되나요?

저는 아래와 같은 일을하고 있습니다. 그러나 탭은 여전히 ​​닫히고 있습니다. 해당 탭을 어떻게 사용합니까?

Tab tab = new Tab();
TabPane tabPane=new TabPane();
tabPane.getTabs().add(tab);
tab.setOnClosed(new EventHandler<Event>() {
            @Override
            public void handle(Event t) {
                 t.consume();
            }
        });

  • 답변 # 1

    와이즈 비즈  Java 8 구현에는 Tab 가 있습니다.  탭 닫힘을 방지 할 수있는 속성 :

    onCloseRequest
    
    

  • 답변 # 2

    아래와 같이 나만의 방식으로 나옵니다.
    하이퍼 링크를 만들어 해당 탭의 그래픽으로 설정하고 제대로 작동합니다.

    /* The installed event handler can prevent tab closing 
       by consuming the received event. */
    public void setOnCloseRequest(EventHandler<Event> value)
    
    

  • 답변 # 3

    잠재적 인 해결책이 있습니다. 아래 코드에 "사용자 프롬프트"로직을 추가하면 원하는대로해야합니다.

    Hyperlink hlink = new Hyperlink();
    Image image = new Image(MyClass.class.getResourceAsStream("/images/close.png"));
    hlink.setGraphic(new ImageView(image));
    hlink.setFocusTraversable(false);
    Tab tab = new Tab();
    tab.setGraphic(hlink);
    hlink.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                  //Do somthing
             }
    });
    
    

  • 이전 MATLAB의 imagesc 플롯에 범례를 추가하는 방법
  • 다음 ssl - WSS는 http에서 작동합니까?