同一程序中,如何编程模拟对一个按钮的点击?

解决方案 »

  1.   

    对一个按钮的点击是触发一个事件,如果能够直接触发那个事件,我想应该就可以模拟对其的点击了吧,如果你只是要想验证某个程序块,你可以直接通过  写个test类来调用
      

  2.   

    JButton jb=new JButton("点击");
    jb.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent e) {
          System.out.println("按钮已经被点击");
       }
    });
      

  3.   

    可以用 java.awt.Robot,代码如下:
    /*
     * FileName: AutoDemoFrame.java
     * Author:   SageZK
     * Date:     2008-05-25 15:05:00
     */import java.awt.AWTException;
    import java.awt.Point;
    import java.awt.Robot;
    import java.awt.event.InputEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.JButton;
    import javax.swing.JFrame;public class AutoDemoFrame extends JFrame { private JButton btnTest = null;
    private JButton btnDemo = null; public AutoDemoFrame() {
    super("AutoDemoFrame");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    setBounds(60, 60, 500, 360);
    getContentPane().setLayout(null);
    this.btnTest = new JButton("Test");
    this.btnTest.setBounds(30, 30, 120, 36);
    this.btnTest.addMouseListener(
    new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    btnTest.setText("Clicked !");
    }
    }
    );
    this.btnDemo = new JButton("Demo");
    this.btnDemo.setBounds(350, 250, 76, 23);
    this.btnDemo.addMouseListener(
    new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    startDemo();
    }
    }
    );
    getContentPane().add(this.btnTest);
    getContentPane().add(this.btnDemo);
    }

    public void startDemo() {
    Thread rt = new Thread(
    new Runnable() {
    public void run() {
    try {
    Robot rbt = new Robot();
    Point p = btnTest.getLocationOnScreen();
    rbt.delay(1500);
    rbt.mouseMove(p.x + 6, p.y + 6);
    rbt.delay(1500);
    rbt.mousePress(InputEvent.BUTTON1_MASK);
    rbt.delay(1500);
    rbt.mouseRelease(InputEvent.BUTTON1_MASK);
    } catch (AWTException e) {
    e.printStackTrace();
    }
    }
    }
    );
    rt.start();
    } public static void main(String[] args) {
    AutoDemoFrame adf = new AutoDemoFrame();
    adf.setVisible(true);
    }}
    运行后单击 Demo 按钮,然后不要移动鼠标。
      

  4.   

    是用程序实现点击动作吗?直接调那个按钮的onClick()方法就可以了
      

  5.   

    我想,楼主需要的应该是doClick()方法~
      

  6.   

    楼主的意思是不是不用鼠标显式点击按钮,而是通过程序来达到和鼠标点击同样的效果啊?
    可使用doClick方法
    public void doClick(int pressTime)
    以编程方式执行“单击”。此方法的效果等同于用户按下并随后释放按钮。可以看到,按钮在“按下”状态下停留 pressTime 毫秒的时间。 
    参数:
    pressTime - “按下”按钮的时间,以毫秒为单位