假设我有这个:
class external {
JFrame myFrame;
...
class internal implements ActionListener {
public void actionPerformed(ActionEvent e) {
...
myFrame.setContentPane(this.createContentPane());
}
}
...
}
createContentPane
返回一个容器。现在,如果我在ActionListener
之外执行此代码,则可以使用,因为我可以访问它。但是,在里面,我没有。我可以访问myFrame
,它将使用该方法的内容进行更新,但是这不足以完成我想要的操作,除非我可以从中得到这个。我还需要其他实例变量的信息才能使用
createContentPane()
,所以我不确定是否可以将它设置为static
。 最佳答案
您可以:
myFrame.setContentPane(createContentPane());
或者
myFrame.setContentPane(external.this.createContentPane());
顺便说一句,在Java类中,第一个字母通常是大写的。如果您不这样命名,您的代码仍将编译并运行,但是通过遵循编码约定,您将能够阅读其他代码,而更重要的是其他人将能够阅读您的代码。
因此,这将是一种更好的样式:
class External {
JFrame myFrame;
...
class Internal implements ActionListener {
public void actionPerformed(ActionEvent e) {
...
myFrame.setContentPane(createContentPane());
//Or myFrame.setContentPane(External.this.createContentPane());
}
}
...
}
Java Code conventions