4 回答

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完成。

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將為您提供窗口外的坐標。
添加回答
舉報