繁体   English   中英

JTabbedPane带按钮获取窗格

[英]JTabbedPane with button getting the pane

我有一个带有按钮的JTappedPane,我想关闭该选项卡。 我是这样做的:

jTabbedPane1.addTab(title, null, panel, null);

JPanel pnl = new JPanel();
    JButton close = new JButton();
    try {
        Image img = ImageIO.read(getClass().getResource("x.png"));
        close.setIcon(new ImageIcon(img));
      } catch (IOException ex) {
          ex.printStackTrace();
      }
    close.setPreferredSize(new Dimension(10, 10));
    close.setBorderPainted(false);
    close.addActionListener(new java.awt.event.ActionListener(){

        public void actionPerformed(ActionEvent evt) {
                    //TODO CLOSE THE TAP WHEN BUTTON IS PRESSED

                }

        }});
    JLabel lab = new JLabel(s);

     pnl.setOpaque(false);
     pnl.add(lab);
      pnl.add(close);

jTabbedPane1.setTabComponentAt(jTabbedPane1.getTabCount() - 1, pnl);

我试图在按钮按下的选项卡上获取选项卡的标题。 我以为我可以做一些像close.getContaining()来返回它所在的选项卡,但我错了。

有任何想法吗?

如果我理解正确,您希望找到具有按钮父级的选项卡的索引作为tabComponent:

public void actionPerformed(ActionEvent evt) {
    JComponent source = (JComponent) evt.getSource();
    Container tabComponent = source.getParent();
    int tabIndex = jTabbedPane1.indexOfTabComponent(tabComponent);
    jTabbedPane1.removeTabAt(tabIndex);
}

你可以简单地写:

jTabbedPane1.removeTabAt(jTabbedPane1.getSelectedIndex());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM