Swinghacks——顯示圖片的2種常用方法

來源:互聯網
上載者:User

1、利用JLabel的icon來顯示圖片

基本思路就是把要顯示的圖片設定為JLabel的表徵圖setIcon(icon),然後設定JLabel的文本和邊框為null

public class ImageLabel extends JLabel {    public ImageLabel(String img) {        this(new ImageIcon(img));    }    public ImageLabel(ImageIcon icon) {        setIcon(icon);        //setMargin(new Insets(0,0,0,0));        setIconTextGap(0);        //setBorderPainted(false);        setBorder(null);        setText(null);        setSize(icon.getImage().getWidth(null),                icon.getImage().getHeight(null));    }}

2、當然還可以重寫paintComponent方法將整個組件畫成圖片,這樣JPanel是不錯的選擇

public class ImagePanel extends JPanel {        private Image img;    public ImagePanel(String img) {        this(new ImageIcon(img).getImage());    }    public ImagePanel(Image img) {        this.img = img;        Dimension size = new Dimension(img.getWidth(null),img.getHeight(null));        setPreferredSize(size);        setMinimumSize(size);        setMaximumSize(size);        setSize(size);        setLayout(null);    }    public void paintComponent(Graphics g) {        g.drawImage(img,0,0,null);    }}

要說和JLabel的icon有什麼不同的話,JLabel是整圖顯示,而使用drawImage的話更靈活一些,比如要對圖片進行放大縮小,就可以簡單的利用drawImage的高度和寬度參數

    public abstract boolean drawImage(Image img, int x, int y,      int width, int height,       ImageObserver observer);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.