同一程序中,如何编程模拟对一个按钮的点击?
解决方案 »
- 关于 java JTextArea 滚动条
- JTable按某一列排序有问题,该怎么解决?
- 新手JDBC连接SQL server的问题。
- 大家一般都用什么来写java程序?
- 请问如何使用swing做一个 弹出窗口不能通过拖拉窗体边框改变大小 ??
- java中用什么实现多线程互斥?
- 因为点的数值太小,几乎看不到画出来的线条。。。
- 求助!!!Unknown source 问题
- 子类中重载父类方法时调用该父类方法
- 刚接触java:关于jdk和sdk的区别到底是什么呢??
- 新手的一个问题:要求用集合求出数组中出现次数最多的数字,如果有最大次数相同的数字,一同列出
- 请问有什么方法可以返回当前焦点所在的组件吗?
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.out.println("按钮已经被点击");
}
});
/*
* 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 按钮,然后不要移动鼠标。
可使用doClick方法
public void doClick(int pressTime)
以编程方式执行“单击”。此方法的效果等同于用户按下并随后释放按钮。可以看到,按钮在“按下”状态下停留 pressTime 毫秒的时间。
参数:
pressTime - “按下”按钮的时间,以毫秒为单位