由于对mKorbel's 的this question次评论,我问这个问题。我一直在使用this
关键字来调用局部变量,该类的本地组件(示例按钮)和方法e.t.c.我不确定按照我的方式使用关键字有什么问题。
不要使用这个。无论在Swing,Java中,(在MCV中让我有些意思),使用内置的局部变量。
问题:在Swing中使用this.XXX
有什么问题?
示例代码
public class SwingTest extends JFrame {
// variables
private String st = "You clicked me";
SwingTest() {
this.initUI();
}
private void initUI() {
this.setTitle("Swing Test");
this.setSize(200, 200);
this.setLayout(new BorderLayout());
this.setVisible(true);
this.clickMe = new JButton("Click"); // What is wrong with using this
// ref here?
this.add(clickMe);
this.clickMe.addActionListener((ActionEvent) -> {
JOptionPane.showMessageDialog(this, this.st);// What is wrong with
// using this ref
// here?
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
SwingTest swingTest = new SwingTest();
}
});
}
// components
JButton clickMe;
}
答案 0 :(得分:2)
按钮clickMe不一定是字段。它可以是对话框定义方法/构造函数中的局部变量JButton clickMe
。由于通常会创建许多GUI组件并将其添加到窗口中,因此它会清理类,使声明保持接近使用状态,并使生命周期尽可能短(在更改窗口内容时)。
(关于this
的讨论只是指出clickMe
的真实性。)