我在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或特定的操作系統?如果我應該以另一種方式設置遊標,因爲我的代碼不正確。
謝謝你的回答。我測試了'getBestCursorSize(128,128)' - 這是劍形圖像的大小,它返回了我最接近的支持尺寸64 x 64.所以我將GIMP中該圖像的大小更改爲32x32和64x64並測試了它們,但問題顯示該圖像的顏色仍然存在(但看起來比Toolkit實施調整大小更好)。當我以gif或png格式導出GIMP圖像時,它看起來有點不同。你認爲,這可能是該圖像的類型或其顏色數量的問題?我是圖形問題的初學者。 – 2014-11-06 17:33:09
某些操作系統(看着你的Windows)也可能會「截斷」圖像。 – MadProgrammer 2014-11-07 00:32:06
@ Petr.M在某些操作系統(如windows)下,遊標可能只支持256種顏色,圖像可能會被getter抖動以支持這個... – MadProgrammer 2014-11-07 00:32:39