编程实现对一个按钮的点击 同一程序中,如何编程模拟对一个按钮的点击? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对一个按钮的点击是触发一个事件,如果能够直接触发那个事件,我想应该就可以模拟对其的点击了吧,如果你只是要想验证某个程序块,你可以直接通过 写个test类来调用 JButton jb=new JButton("点击");jb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.out.println("按钮已经被点击"); }}); 可以用 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 按钮,然后不要移动鼠标。 是用程序实现点击动作吗?直接调那个按钮的onClick()方法就可以了 我想,楼主需要的应该是doClick()方法~ 楼主的意思是不是不用鼠标显式点击按钮,而是通过程序来达到和鼠标点击同样的效果啊?可使用doClick方法public void doClick(int pressTime)以编程方式执行“单击”。此方法的效果等同于用户按下并随后释放按钮。可以看到,按钮在“按下”状态下停留 pressTime 毫秒的时间。 参数:pressTime - “按下”按钮的时间,以毫秒为单位 java 执行jar包,java类休眠,jar包不继续执行 java 连接 oracle rac的问题 java简单习题,不懂求教 实用静态变量好不好? jdbc连db2时出错 可以写个产生DESede密钥的代码吗? (新手帮帮忙) 高手帮我看看!! VJ++开发软件问题!!! 拜托各位结贴时,选择是否提交FAQ时请注意一下!!!! Java能做电子表格? 新手的一个问题:要求用集合求出数组中出现次数最多的数字,如果有最大次数相同的数字,一同列出 请问有什么方法可以返回当前焦点所在的组件吗?
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 - “按下”按钮的时间,以毫秒为单位