簡體   English   中英

用於在Java Swing中設置光標的圖像參數

[英]Image parameters for setting cursor in Java Swing

我在Java Swing應用程序中顯示自定義光標時遇到麻煩。

我通過以下代碼設置光標:

Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage("sword.png");
Point hotSpot = new Point(0,0);
Cursor cursor = toolkit.createCustomCursor(image, hotSpot, "Sword");
panel.setCursor(cursor);

該圖像(大小:32x32px)正確顯示為安靜(僅橡膠顏色從灰色變為黃色):

但是此圖像(大小:128x128)顯示不正確-小於128x128(可能是64x64)並且沒有某些顏色:

當我在Linux Ubuntu上運行應用程序時發生了這種情況。

當我在Windows上運行該應用程序(在Win 8上經過測試)時,鉛筆圖像顯示沒有任何問題,劍圖像的顏色略有失真。 它們的大小都相同(32x32)。

我的問題是-用於設置光標的圖像應具有哪些參數(大小,類型,質量,顏色數量),以及它是否取決於Java Swing或特定的OS? 如果我應該以其他方式設置光標,因為我的代碼不正確。

問題是大多數操作系統都希望使用32x32的尺寸,如果更大,它將嘗試將其調整為正確的尺寸,因此可能會出現顯示不正確的情況。 因此,您可以假設正確的尺寸應為32x32。

您可以使用:

getBestCursorSize(int preferredWidth, int preferredHeight)

它返回所需大小的最接近的受支持光標尺寸。 看一下API => http://docs.oracle.com/javase/7/docs/api/java/awt/Toolkit.html#getBestCursorSize%28int,%20int%2

作為一個好的和安全的解決方案,您應該使用Photoshop,GIMP或其他好的程序將圖像調整為支持的尺寸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM