问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java问题请教

发布网友 发布时间:2023-08-21 19:02

我来回答

1个回答

热心网友 时间:2024-12-05 10:13

//: RobotTest.java
// 要求 JDK 1.5 以上

import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;

public class RobotTest {
public static void main(String[] args) throws Exception {
final Robot rob = new Robot();
int x,y,w,h,delay;
delay=getNumber(1,10,"请输入鼠标停留时间,单位秒");
x = getNumber(0,500,"请输入X点数值");
y = getNumber(0,200,"请输入Y点数值");
w = getNumber(100,500,"请输入敏感区宽度");
h = getNumber(100,300,"请输入敏感区高度");
JOptionPane.showMessageDialog(null,"如果你的鼠标在 x="+x+",y="+y+",w="+w+",h="+h+" 的区域内\n停留超过"+delay+"秒钟以上,程式将退出.");
final Rectangle rect = new Rectangle(x,y,w,h);
BufferedImage bimg = rob.createScreenCapture(rect);
Graphics g = bimg.getGraphics();
g.setColor(new Color(0x55ffff00,true));
g.fillRect(0,0,w,h);
g.dispose();
//加入可见组件,使程式更直观
final JLabel l = new JLabel();
l.setIcon(new ImageIcon(bimg));
l.setHorizontalTextPosition(JLabel.CENTER);
l.setVerticalTextPosition(JLabel.CENTER);
l.setBorder(BorderFactory.createLineBorder(Color.blue));
final JWindow win = new JWindow();
win.add(l);
win.setAlwaysOnTop(true);
win.setBounds(rect);
win.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
win.setVisible(true);

final int d = delay;
//启动线程监视鼠标位置,如果 鼠标 在指定的区域停 d 秒钟,程序就退出
new Thread(new Runnable(){
public void run() {
long x = -1;
while(true){
Point p = MouseInfo.getPointerInfo().getLocation();
if(rect.contains(p)){
x = x==-1?System.currentTimeMillis():x;
if(x+d*1000<System.currentTimeMillis()){
win.dispose();
//移动鼠标到 (0,0)位置好了;
rob.mouseMove(0,0);
JOptionPane.showMessageDialog(null,"鼠标已移动到(0,0)位置,点击本对话框后程式将结束!");
break;
}
int re = d-(int)((System.currentTimeMillis()-x)/1000);
l.setText("<html><font size=8 color=blue>倒计时:<b>"+re);
}
else{
x=-1;
l.setText("<html><font color=blue size=6>请把鼠标移上来.");
}
try{Thread.sleep(20);}catch(Exception e){}
}
}
}).start();
}

private static int getNumber(int min,int max,String inf){
int i=min-1;
do{
String s = JOptionPane.showInputDialog(inf+"\n范围:"+min+"~"+max);
try{
i = Integer.parseInt(s.trim());
}catch(Exception e){}
}
while(i<min||i>max);
return i;
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大学入学应该带哪些必备物品? tim删除聊天记录的方法步骤 pc端彻底删除tim聊天记录 甩脂机调到什么档位 如何用甩脂机 甩脂机的正确使用方法 使用抖脂机要注意什么 怎样申请小号微信号 ...的长和宽分别增加6米,扩建后草坪的面积增加了多少 ...扩建后长和宽分别增加10米,扩建后的操场面积增加了多少平方米?_百 ... 长方形的公园它的面积长和宽分别扩大十米后它的平方增加了面积增加了13... ...效果器VS JBL JBL前级效果器 RMP2000K哪个好些 哪位大神有TraceElliotTransit B这款产品的中文介绍啊? 非法批准征用土地罪批捕后,现在找律师还可以取保候审吗? 饿了么查看自己的评价 美团评价总是出现短时间内评价过多 和谐健康保险请问有无风险 和谐健康保险谁知道怎么样? 和谐健康喜乐安康(女性专属)重疾险性价比怎么样?靠不靠谱? 买和谐健康福运年年重疾险靠谱吗? 关于战争的成语有什么 大虾的做法油焖大虾 针织打底裙是什么面料做成的 油焖大虾妙招 暴雨红色预警信号及防御措施介绍 暴雨黄色预警是多少级 ...20号发工人工资。夲月今天已经是27号了。工资未发。我想问... 杭州蓝帽子集团和中国简乐集团是一家公司吗 创业王2工人要给多少工资 用什么软件可以把多个圆的圆心用直线段挨个的连起来 2个圆心重叠了怎么拉坐标坐标 水瓶座守护石 ...的双学位在全国的认可度?只在江西省才被承认吗?请高人指点! 好吃又简单的粉丝做法与步骤 写一篇以曾经的老师为题的一两件事来说明他的特点 ...性格,教育方法等的特点,写到一两件事,450个字左右 饶平绿豆糕的做法 小学数学有必要买教辅书吗 自学小学课程有必要买教科书吗? 毕业季,你最想对同学或同桌说什么? 好好先生文言文你认为司马懿事事都说好,好不好?为什么? 为我老师点个赞_550字 美团申诉看不到差评后是不是意味成功了 石膏打了六天感觉好臭能拆吗 扭转乾坤的解释 美团体验反馈是评价吗 美团超时申诉技巧 瑞幸满意度可在哪里查看 导数等于0是怎么回事? 高中导数...这一步看不懂,为什么得出等于0 ,烦请高手解答 ...长期待摊费用增加额和待处理财产损益增加额在借方还是贷方