我需要能够处理JTabbedPane中标签的点击。我不会用这个来更改选项卡,这不会触发选项卡更改。我试图做的是关闭标签时,它是正确的点击。但是,我不确定如何访问该选项卡以在其上添加单击事件。大多数与单击JTabbedPanes有关的问题都建议使用ChangeListener,但这是行不通的,因为右键单击不会更改选项卡。
有什么方法可以让我把点击事件添加到JTabbedPane的选项卡中吗?
发布于 2016-11-20 20:30:18
有什么方法可以让我把点击事件添加到JTabbedPane的选项卡中吗?
有关如何用鼠标单击关闭选项卡的工作示例,请参阅如何使用TabbedPanes上Swing教程的部分。
为Swing基础知识保留一个指向教程的链接。
发布于 2017-04-02 20:14:34
很抱歉迟了回答,但我发现这对我很有用,而对于避免stateChanged检测到的额外点击非常有用(使用此选项卡,您可以在“单击选项卡”中检测到您想要的所有内容):
myJTabbedPane.addMouseListener(new MouseListener()
{
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("Panel 1 click");
}
@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
}
});最后,如果要检测到右键单击选项卡,可以看到下一篇教程(在下一页中搜索getModifiers() ):
https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html
https://stackoverflow.com/questions/40708959
复制相似问题