在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只能在一个平台上显示。

09-30 15:26
查看更多