亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問如何在Java中獲取窗口外部的鼠標單擊坐標

請問如何在Java中獲取窗口外部的鼠標單擊坐標

瀟瀟雨雨 2019-11-03 08:04:27
我需要使用Swing實現一個類,當用戶單擊屏幕上的任意位置時,該類可以獲取鼠標坐標。如果我想在自己的窗口中獲取鼠標坐標,則可以使用MouseListener,但是即使用戶在程序外部單擊也可以使用它。我希望我的班級表現得像KColorChooser一樣:用戶單擊下拉按鈕,他可以單擊屏幕上的任何位置以獲得該斑點的顏色。但我不知道使用純Java是否可行。
查看完整描述

4 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

忘記了GlassPane,還有另一種100%本機Java方法可以在OS X和Windows上運行。


Java已經永遠支持半透明其在OS X和Java窗口現在支持其在Windows窗口半透明太(自從Java 1.6.0_10左右,需要進行檢查)。


因此,訣竅是:單擊“選擇顏色”工具后,您將創建一個幾乎透明的無邊界Java窗口,覆蓋整個屏幕。您將其alpha設置為10(alpha從0變為255)。該alpha值是如此之低,用戶不會注意到存在覆蓋整個屏幕的非常薄的“幾乎透明但只有非常非常半透明”的無邊界窗口。


現在,當用戶單擊覆蓋整個屏幕的“將alpha設置為10的半透明無邊界窗口”時,您得到了(x,y)。


丟棄無邊界的Java窗口。


用Robot的getRgb(x,y),你就大功告成了。


為什么將alpha設置為10而不是0?因為否則,單擊不會被Java攔截,而是直接進入OS(至少這是OS X上事實的工作方式)。有一個閾值,我知道它不是設置為“ 1”,也不是“ 2”,大約是10左右。


編輯我只是意識到您知道需要選擇幾種顏色,這比較棘手,但是仍然可以使用100%Java來完成。您可以使用“略微偏離”的顏色(受“幾乎透明”的“不可見”層影響),或者單擊時必須刪除該層,獲得正確的像素顏色,然后再次放置“幾乎透明”的層?,F在,這當然是駭客了,但是可以用100%Java完成。



查看完整回答
反對 回復 2019-11-04
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

采用


import java.awt.MouseInfo;

import java.awt.Point;

import java.awt.PointerInfo;


PointerInfo inf = MouseInfo.getPointerInfo();

Point p = inf.getLocation();

px和py將為您提供窗口外的坐標。



查看完整回答
反對 回復 2019-11-04
  • 4 回答
  • 0 關注
  • 440 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號