我有一个带有按钮的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()返回它所在的选项卡,但我错了。
任何想法?
答案 0 :(得分:2)
如果我理解正确,您希望找到包含该按钮父级的选项卡的索引为tabComponent:
public void actionPerformed(ActionEvent evt) {
JComponent source = (JComponent) evt.getSource();
Container tabComponent = source.getParent();
int tabIndex = jTabbedPane1.indexOfTabComponent(tabComponent);
jTabbedPane1.removeTabAt(tabIndex);
}
答案 1 :(得分:0)
你可以写一下:
jTabbedPane1.removeTabAt(jTabbedPane1.getSelectedIndex());