作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道为什么会收到警告“来自类型 new ChangeListener(){} 的方法 tabChanged(ChangeEvent) 从未在本地使用”
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 方法(如 https://docs.oracle.com/javase/7/docs/api/javax/swing/event/ChangeListener.html 中所述) 而不是像您现在所做的那样声明一个新方法。
只需将名称从 tabChanged() 更改为 stateChanged() 恕我直言,就足以使此代码正常工作。
关于java - 为什么 ChangeListener 从未在本地使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43955205/
背景 我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。 无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。 现在我想查看我
我在我的网站上使用旧的 mysql 版本和 php 版本 4。 我的表结构: | orders_status_history_id | orders_id | orders_status_id |
我是一名优秀的程序员,十分优秀!