如何在java中检查所选选项卡是否已更改
就我所看到的事件而言:如何在java中检查所选选项卡是否已更改,java,events,netbeans,jtabbedpane,Java,Events,Netbeans,Jtabbedpane,就我所看到的事件而言: (1) private void jTabbedPane1StateChanged(javax.swing.event.ChangeEvent evt) {} 检查是否添加了新选项卡或删除了现有选项卡 在谷歌上,我发现了以下代码: (2) ChangeListener changeListener = new ChangeListener() { public void stateChanged(ChangeEvent changeEve
(1) private void jTabbedPane1StateChanged(javax.swing.event.ChangeEvent evt) {}
检查是否添加了新选项卡或删除了现有选项卡
在谷歌上,我发现了以下代码:
(2) ChangeListener changeListener = new ChangeListener() {
public void stateChanged(ChangeEvent changeEvent) {
// my code
}
};
jTabbedPane1.addChangeListener(changeListener);
我想因为它使用stateChanged事件,所以它应该像我的第一个代码一样。
顺便说一句,即使使用了这两个代码,我也无法获得所需的结果(即当用户更改选项卡时可以调用的事件)
有人能给我推荐一个好的事件[我正在使用netbeans GUI环境]来采取有效的行动吗。(我不想要任何鼠标事件)
编辑:
如果选项卡更改,我希望以下代码被删除:
String send3=( jTabbedPane1.getSelectedComponent().getComponentAt(0,0)).getName();
上面的代码动态获取jTextarea的名称(在当前选项卡中),该名称是在jTabbedPanel中动态创建的 我刚刚检查了自己的源代码,其中addChangeListener()工作正常。每当用户或以编程方式更改选项卡时,就会触发该事件。在
stateChanged()
本身中,现在选择的选项卡由
JTabbedPane p = (JTabbedPane)e.getSource();
int idx = p.getSelectedIndex();
我想使用jTabbedPanel1.getSelected()==0…if-else-if-case,但是因为我无法预测选项卡的数量,所以我不能使用这个。但是有人能给我推荐一些类似的东西吗?ChangeListener是正确的监听器。你能提供更多的代码吗?@johnchen902提供了我想添加的
System.out.println(“某物”)
到stateChanged
查看是否真正调用了stateChanged
。另请参阅此处了解如何提出一个好问题。@johnchen902如果这个问题听起来不正确,我真的很抱歉。我这里的问题是当我单击“新建”选项卡时,第一个选项卡被创建,状态更改事件工作。当我单击第二个选项卡时,statechange事件也会起作用,但是当我返回第一个选项卡并调用getName()(我在代码中输入了)函数时,它仍然会返回第二个选项卡的输出。