执行了JTabbedPane操作

时间:2017-04-08 11:36:24

标签: java swing jtabbedpane

我正在寻找在打开新标签时使用选项卡式窗格时可以执行操作的方法。

formwindowopenned

这样的东西

2 个答案:

答案 0 :(得分:2)

  

我正在寻找在打开新标签时使用选项卡式窗格时可以执行操作的方法。

我假设您的意思是当用户点击现有标签切换到该标签时。如果是这样,那么您可以向tabbedPane添加ChangeListener并监听stateChanged事件。

如果您正在谈论在选项卡式窗格中添加新选项卡,那么您只需在应用程序逻辑中进行管理。

答案 1 :(得分:0)

标签上的所有操作(这将为您提供额外的操作,而不仅仅是鼠标点击,例如,如果您使用所选索引按代码更改标签,则会执行此代码):

ChangeListener changeListener = new ChangeListener() {
  public void stateChanged(ChangeEvent changeEvent) {
    JTabbedPane sourceTabbedPane = (JTabbedPane) changeEvent.getSource();
    int index = sourceTabbedPane.getSelectedIndex();
    System.out.println("Tab changed to: " + sourceTabbedPane.getTitleAt(index));
  }
};
myJTabbedPanel.addChangeListener(changeListener);

仅在标签上点击鼠标

/** 
 * Detects clicks when user click tab inside tabbed pane 
 */ 
private void addMouseEventToPanel(){ 
  this.myJTabbedPanel.addMouseListener(new MouseListener() 
  { 

    @Override 
    public void mouseClicked(MouseEvent e) { 
      // TODO Auto-generated method stub 
      System.out.println("You clicked on tab number "+this.myJTabbedPanel.getSelectedIndex()); 
    } 

    @Override 
    public void mousePressed(MouseEvent e) { 
      // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseReleased(MouseEvent e) { 
      // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseEntered(MouseEvent e) { 
      // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseExited(MouseEvent e) { 
      // TODO Auto-generated method stub 

    } 

  });
}