我最近閱讀了這個線程(Creating a custom button in Java)關於通過擴展JButton類在java中創建自定義按鈕,但是此線程上的所有解決方案都使用用java繪製的圖形。如何使用圖像庫在java中創建自定義JButton?
我想讓我的按鈕基於我在Photoshop中繪製的按鈕圖像。於是,我就運用我在那個線程對這個結果看:
import javax.swing.*;
import java.awt.*;
public class nextButton extends JButton {
@Override
protected void paintComponent(Graphics g) {
Image image = new ImageIcon("nextButton.png").getImage();
g.drawImage(image,0,0,this);
}
@Override
public Dimension getPreferredSize() {
Dimension size = super.getPreferredSize();
size.setSize(75, 150);
return size;
}
}
當我運行已經添加了這個按鈕,一個JPanel主程序不顯示。我假設它可能是幾個原因之一:
a)JButton的大小不匹配的圖像? b)我沒有正確加載圖像。在筆記中,我的講師給了我他寫出了帶有「imageName.png」的顯示圖像代碼,沒有文件路徑,所以我不知道這是否是正確的方法,或者程序知道如何加載圖像。 c)迄今爲止我還不瞭解的其他東西。
如果有人知道如何解決這個問題,我會非常感激。
非常感謝!
一對夫婦的意見,或多或少無關你的問題:一)的paintComponent越權非法B)永不永遠_change_特別是在吸氣Ç任何東西),的setSize完成通過LayoutManager無論如何都不會影響一個理智的應用程序d)重寫getPreferredSize並根據組件的內部結果返回合理的尺寸提示是正確的,這裏可能是圖像的大小e)將圖像加載到繪畫中(在繪畫循環中不會有繁重的工作!),而不是在施工時加載一次 – kleopatra
btw,請學習java命名約定並堅持使用它們 – kleopatra