如何在GUI中为一个按钮创建多个侦听器?

时间:2013-12-14 18:09:00

标签: java

如何为一个按钮制作多个动作侦听器?例如,我有一个名为“开始”的按钮,第一次单击按钮,它在GUI“正在启动”中打印出来,按钮名称应更改为“停止”。再次按下“停止”按钮时,文本字段应显示“现在停止!!”,按钮名称应更改回“开始”。到目前为止,这是我的代码。 Eclipse不断出现错误,因此在第二次单击“开始”按钮后,我无法添加另一个侦听器。

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;


public class Driver {

    private static JTextField textfield;

    public static void main( String[]args)
    {
        JFrame frame = new JFrame();

        final JButton Start = new JButton( "Start");
//      JButton Stop = new JButton( "Stop");


        final int FIELD_WIDTH = 20;
        textfield = new JTextField( FIELD_WIDTH);

        frame.setLayout(new FlowLayout());

        textfield.setText("My cool program");

            Start.addActionListener(new
            ActionListener()
            {
                public void actionPerformed(ActionEvent event)
                {
                    Start.setText("Stop");
                    textfield.setText("Starting up....");
                }

            }); 


        frame.add(Start);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(textfield);
        frame.setVisible(true);
        frame.pack();
    }

    private static ActionListener createGreetingButtonListener(String string) {
        // TODO Auto-generated method stub
        return null;
    }


}

1 个答案:

答案 0 :(得分:0)

一个听众就足够了。你应该在一个监听器内部定义一个计数器或布尔值,然后检查它是哪个转弯。

这是psevdo代码:

click(){
  if(bool == true){
     set start
     bool = false
  }
  else if(bool == false){
     set stop
     bool = true
  }
}