Java 为什么ChangeListener从不在本地使用?
我不确定为什么会收到警告“类型new ChangeListener{}的方法tabChangedChangeEvent从未在本地使用”Java 为什么ChangeListener从不在本地使用?,java,swing,actionlistener,changelistener,Java,Swing,Actionlistener,Changelistener,我不确定为什么会收到警告“类型new ChangeListener{}的方法tabChangedChangeEvent从未在本地使用” private void setUpTabbedPane() { this.tabbedPane = new JTabbedPane(); this.tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); String ti
private void setUpTabbedPane() {
this.tabbedPane = new JTabbedPane();
this.tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
String titles[] = { "A", "B", "C", "D", "E", "F" };
for (int i = 0, n = titles.length; i < n; i++) {
addTabs(this.tabbedPane, titles[i]);
}
this.tabbedPane.addChangeListener(new ChangeListener() {
public void tabChanged(ChangeEvent ev) {
try {
mediaPlayer.stop();
} catch (Exception e) {
System.out.println("Sorry, something went wrong.");
e.printStackTrace();
}
}
@Override
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub
}
});
}
您已声明“孤立”方法
正如警告所说,您已经在ChangeListener中声明了一个方法tabChanged,该方法没有在任何地方引用,并且永远不会被任何人调用
如果希望在发生更改时运行代码,则必须重写ChangeListener的stateChanged方法,如中所述
而不是像现在这样声明一个新方法
只需将名称从tabChanged更改为stateChanged IMHO就足以使代码正常工作。不要忘记添加@Override注释,它也会捕获此类“孤立”方法。