⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample27_3.java

📁 Java SE 6.0前27-31章示的示例代码,简单易学
💻 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 + -