在Java中,我们如何控制是否已创建变量?
例如,我想创建一个变量名为kutu
的按钮,但是如果已经有一个变量名为kutu
的按钮,我不想创建它。
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JButton kutu=new JButton("my box");
kutu.setBounds(480, 620,120, 50);add(kutu);
remove(button1);
revalidate();
repaint();
}});
这是代码。有24个按钮(所有按钮都具有相同的操作),如果用户单击2个或更多按钮,则我不想创建
JButton kutu
,因为kutu
已在首次单击中创建。 最佳答案
您要做的是使用类字段而不是局部变量。这样,您可以测试之前是否已创建对象并将其分配给class字段,如果不是,则创建一个新对象并将其分配给变量:
public class MyClass {
private JButton kutu = null;
// in some action listener:
public void actionPerformed(ActionEvent e) {
// only create this JButton if the variable has not
// been assigned a JButton object
if (kutu == null) {
kutu = new JButton("Some Text");
// ... etc
}
}
顺便说一句,您不想使用null布局和
setBounds(...)
。虽然最初这似乎是创建复杂GUI的最佳和最简便的方法,但是如果您使用Swing进行任意时间的编程,您会发现使用null布局会使您的程序陷入困境,使其变得非常僵硬,而且很难提升。它还使GUI只能在一个平台上显示。