Java圖形化界面設計——添加圖片

1.使用JLabel組件來顯示圖片

JLabel 的構造方法:

JLabel()

JLabel(String text) 

JLabel(String text, int horizontalAlignment) 

JLabel(Icon image) 

JLabel(Icon image, int horizontalAlignment) 

JLabel(String text, Icon image, int horizontalAlignment) 

/**
 * text:顯示的文本
 * image:顯示的圖片
 * horizontalAlignment: 標籤內容(在標籤內)的水平對其方式(豎直方向默認居中, 可通過方法設置)
 * 
 */

使用Icon實例獲取圖片資源,一般用ImageIcon來穿建圖片對象。

ImageIcon icon = new ImageIcon("src/main/resources/title.jpeg");

其他實例創建的方法:

// 方法一: 通過 java.awt.Toolkit 工具類來讀取本地、網絡 或 內存中 的 圖片(支持 GIF、JPEG 或 PNG)
Image image = Toolkit.getDefaultToolkit().getImage(String filename);
Image image = Toolkit.getDefaultToolkit().getImage(URL url);
Image image = Toolkit.getDefaultToolkit().createImage(byte[] imageData);

// 方法二: 通過 javax.imageio.ImageIO 工具類讀取本地、網絡 或 內存中 的 圖片(BufferedImage 繼承自 Image)
BufferedImage bufImage = ImageIO.read(File input);
BufferedImage bufImage = ImageIO.read(URL input);
BufferedImage bufImage = ImageIO.read(InputStream input);

/*
 * PS_01: 圖片寬高: BufferedImage 可以通過 bufImage.getWidth() 和 bufImage.getHeight() 方法直接獲取圖片的寬高;
 *                 Image 獲取寬高需要另外傳入一個 ImageObserver 參數。
 *
 * PS_02: 圖片裁剪: BufferedImage 通過 bufImage.getSubimage(int x, int y, int w, int h) 方法可以截取圖片的
 *                 任意一部分,返回一個新的 BufferedImage 實例。
 *
 * PS_03: 圖片縮放: Image 通過 image.getScaledInstance(int width, int height, int hints) 方法可以對圖片進行
 *                 縮放,返回新的一個 Image 實例。
 */

設置圖片大小:

icon.setImage(icon.getImage().getScaledInstance(width,height,Image.SCALE_DEFAULT));

圖像部分代碼:

        JPanel titlePanel = new JPanel();
        ImageIcon icon = new ImageIcon("src/main/resources/title.jpeg");
        JLabel titleLabel = new JLabel();
        titlePanel.setBounds(0,0,800,500);
        icon.setImage(icon.getImage().getScaledInstance(titlePanel.getWidth(),titlePanel.getHeight(),Image.SCALE_DEFAULT));//設置圖像大小
        titleLabel.setIcon(icon);
        titlePanel.add(titleLabel);
        this.add(titlePanel,BorderLayout.NORTH);

效果圖:

PS:附免費圖片資源網站:https://www.pexels.com/zh-cn/

參考:https://blog.csdn.net/xietansheng/article/details/72814492

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章