示例#1
0
  //     public HoverCloseButtonTabbedPane(int tabPlacement, int tabLayoutPolicy) {
  //         super(tabPlacement, SCROLL_TAB_LAYOUT);
  //     }
  @Override
  public void updateUI() {
    removeMouseMotionListener(hoverHandler);
    super.updateUI();
    // setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
    hoverHandler =
        new MouseMotionAdapter() {
          private int prev = -1;

          @Override
          public void mouseMoved(MouseEvent e) {
            JTabbedPane source = (JTabbedPane) e.getComponent();
            int focussed = source.indexAtLocation(e.getX(), e.getY());
            if (focussed == prev) {
              return;
            }
            for (int i = 0; i < source.getTabCount(); i++) {
              TabPanel tab = (TabPanel) source.getTabComponentAt(i);
              tab.setButtonVisible(i == focussed);
            }
            prev = focussed;
          }
        };
    addMouseMotionListener(hoverHandler);
  }