2017-02-19 60 views
0

我用按鈕的自定義圖標創建了一個GUI程序。但是,我無法在Java中設置這些按鈕的大小,所以它們仍然保持其原始大小,230x227。我試圖讓他們成爲左右20×20,所以我用下面的代碼:如何設置自定義按鈕的大小?

classAlcBtn.setPreferredSize(new Dimension(20,20)); 
classAlcBtn.setIcon(new ImageIcon(getClass().getResource("Alchemist.png"))); 
classAlcBtn.setBorder(null); 
classAlcBtn.setBorderPainted(false); 
classAlcBtn.setContentAreaFilled(false); 
classAlcBtn.setPressedIcon(
    new ImageIcon(getClass().getResource("alchemistClicked.png"))); 
classAlcBtn.setCursor(new Cursor(Cursor.HAND_CURSOR)); 

有沒有辦法迫使這些圖標的大小了,或者我有尺寸減小的實際圖標文件?謝謝你的幫助。

+1

你可以沒有圖標正確的大小按鈕? – rossum

+1

*「230x227。我試圖讓它們在20x20左右,所以我使用了下面的代碼:」*這些圖像是不同的縱橫比。這個想法是爲了適應新的長寬比而伸展,裁剪或填充它們嗎? *「有沒有辦法強制這些圖標縮小,..」*是,**但是.. ** *「..或者我是否必須縮小實際圖標文件的大小?」* ..這將是最好的選擇。有很好的圖像編輯程序來調整圖像大小。在Java中複製是可能的,但不是微不足道的。此外,它意味着分發更大(以字節爲單位)的圖像文件並在應用程序上佔用更多的CPU時間。啓動。 –

+0

@AndrewThompson是的,我只是決定調整圖像文件本身。感謝您的信息。 –

回答

1

假設你可以縮小按鈕的大小,沒有圖標。因此,使用下面的方法來規模縮小的圖像,不改變原始文件的大小:

ImageIcon icon = new ImageIcon("whatever.jpg"); 
Image img = icon.getImage() ; 
Image newImg = img.getScaledInstance(NEW_WIDTH, NEW_HEIGHT, java.awt.Image.SCALE_SMOOTH) ; 
icon = new ImageIcon(newImg); 

... 

classAlcBtn.setIcon(icon); 

如果按鈕調整本身沒有工作,那麼你可以嘗試使用setMaximumSize()代替setPreferredSize()方法如下:

classAlcBtn.setMaximumSize(new Dimension(100,100)); 

有關更多信息,請參閱this。關於尺寸。希望這有助於:)

+0

我只是決定調整圖像文件本身來減少啓動。雖然謝謝! –

相關問題