Sam*_*nch 4 java final jcombobox
我收到错误"从内部类中访问局部变量框;需要声明为final".这似乎没问题,但我认为这不是最好的解决方案,所以我希望别人可以帮助我.这是我的代码:
public void showPublisherBox(JComboBox box) {
if (publisherBox == null) {
publisherBox = new AddPublisherForm();
publisherBox.setLocationRelativeTo(this);
}
publisherBox.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
this.populatePublishers(box);
}
private void populatePublishers(JComboBox box){
box.setModel(db.getPublishers());
}
});
publisherBox.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
Publisher表单只是一个新的JFrame,它打开并接收一些信息,当它关闭时,我希望通过从我的db.getPublishers()方法设置模型来重新填充JComboBox.
那么有更好的方法来做我在这里做的事情,还是我必须宣布一些事情是最终的?
谢谢
由于您没有box在外部代码中进行修改,因此使用final正是解决此问题的正确方法.这是对自己(以及编译器)的承诺,它的值box不会在封闭范围内发生变化.编译器会告诉您是否违反了该承诺.
使用时没有编译时或运行时成本final.
| 归档时间: |
|
| 查看次数: |
7130 次 |
| 最近记录: |