📄 sample27_3.java
字号:
package wyf.jc;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//定义该类继承自JFrame
public class Sample27_3 extends JFrame implements ActionListener
{
//创建按钮数组
JButton[] jb={new JButton("按扭1"),new JButton("按扭2"),new JButton("按扭3")};
//创建文本框
JTextField jtf=new JTextField();
JTextField jtfMsg=new JTextField();
//创建文本区
JTextArea jta=new JTextArea();
//创建放置文本区的滚动窗口
JScrollPane jsp=new JScrollPane(jta);
//定义Robot引用r
Robot r;
public Sample27_3()
{
//设置窗体布局管理器
this.setLayout(null);
//设置jtfMsg文本框的大小位置并将其添加进窗体中
jtfMsg.setBounds(10,10,270,26);
this.add(jtfMsg);
//设置jtfMsg文本框为不可编辑状态
jtfMsg.setEditable(false);
//对按钮数组循环处理
for(int i=0;i<jb.length;i++)
{
//设置按钮的大小位置并将其添加进窗体中
jb[i].setBounds(10+i*90,50,80,26);
this.add(jb[i]);
//为按钮注册动作事件监听器
jb[i].addActionListener(this);
}
//设置文本框的大小位置并将其添加进窗体中
jtf.setBounds(10,90,270,26);
this.add(jtf);
//为文本框注册动作事件监听器
jtf.addActionListener(this);
//设置文本区的初始内容
for(int i=0;i<200;i++)
{
jta.append("这里是带滚动条的文本区。");
}
//设置文本区为自动换行
jta.setLineWrap(true);
//设置包含文本区滚动窗口的大小位置并将其添加进窗体中
jsp.setBounds(10,130,270,80);
this.add(jsp);
//设置窗口的标题、大小位置以及可见性
this.setTitle("文本区与滚动条");
this.setResizable(false);
this.setBounds(100,100,300,250);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
//调用creatRobot方法创建Robot对象并初始化
this.creatRobot();
}
//创建Robot对象并初始化的方法
public void creatRobot()
{
try
{ //创建Robot对象
r=new Robot();
//延迟1秒
r.delay(1000);
for(int i=0;i<jb.length;i++)
{//调用鼠标点击方法分别点击三个按钮一次
this.clickMouse(jb[i]);
//延迟1秒
r.delay(1000);
}
//调用鼠标移动方法,将鼠标移动到文本框中
this.clickMouse(jtf);
//循环模拟输入文本
for(int i=0;i<26;i++)
{
r.keyPress(KeyEvent.VK_A+i);
r.keyRelease(KeyEvent.VK_A+i);
//延迟200毫秒
r.delay(200);
}
//模拟按下回车键
r.keyPress(KeyEvent.VK_ENTER);
r.keyRelease(KeyEvent.VK_ENTER);
//延迟1秒
r.delay(1000);
//调用鼠标点击方法,模拟点击文本区
this.clickMouse(jsp);
//延迟1秒
r.delay(1000);
//模拟滑动滚动条
for(int i=0;i<15;i++)
{
r.mouseWheel(2);
//延迟100毫秒
r.delay(100);
}
//延迟1秒
r.delay(1000);
//将鼠标移动到窗体关闭按扭处
r.mouseMove(this.getX()+290,this.getY()+8);
//延迟5秒
r.delay(5000);
//模拟点击鼠标左键按下关闭窗体的按钮
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//模拟鼠标点击指定控件的方法
public void clickMouse(JComponent c)
{
//确定点击控件的位置
int x=this.getX()+c.getX()+c.getWidth()/2;
int y=this.getY()+c.getY()+c.getHeight()/2+20;
//将鼠标移动到指定位置
r.mouseMove(x,y);
//模拟点击鼠标左键
r.mousePress(InputEvent.BUTTON1_MASK);
r.mouseRelease(InputEvent.BUTTON1_MASK);
}
//实现ActionListener中的方法
public void actionPerformed(ActionEvent e)
{
for(int i=0;i<jb.length;i++)
{//显示按下按钮的提示信息
if(e.getSource()==jb[i])
{
jtfMsg.setText("点击了按扭"+(i+1));
}
}
if(e.getSource()==jtf)
{//显示文本框输入后回车的提示信息
jtfMsg.setText("在文本框中输入了"+jtf.getText());
}
}
public static void main(String[] args)
{
//创建Sample27_3窗体对象
new Sample27_3();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -