Swing 疑問與總結

1. 給panel添加背景圖片;兩種方式,經過JLabel,重寫paintComponent方法
2. 元素疊加時的順序,並非「後來居上」,而是「先佔爲王」,即先添加的覆蓋了後添加的,相似爬山同樣。 不太明白swing爲何要這樣設計。 
3. 經過JLabel的方式加載一個圖片時,有時發現圖片顯示不全,這時要看下圖片的大小和JLabel的大小是否一致,默認狀況下,圖片是不會跟着JLabel的大小而縮放,也就是原圖展現。
設置圖片大小的方式:java

ImageIcon icon1 = new ImageIcon(Utils.ICON_U60.getImage());
icon1.setImage(icon1.getImage().getScaledInstance(width, height, Image.SCALE_DEFAULT));

4. 設置字體,能夠單獨設置jlabel的字體,但爲何不能設置jpanel的?
5. JLabel是一個圖標時,再次添加文字的話,默認文字不在圖標上面。可經過 方法設置字體

JLabel seven = new JLabel(Utils.ICON_U32);
seven.setHorizontalTextPosition(SwingConstants.CENTER);

6. 建立ImageIcon時,若是找不到圖片也不會報錯,很難定位這種問題。 而且,若是找不到圖片的話,那麼給這個panel或者frame添加鍵盤事件也不會生效。
 spa

7. 關於圖片讀取的方法設計

ImageIcon icon = new ImageIcon();
icon.getImage();
		
BufferedImage image = ImageIO.read(new File(""));
		
ImageReader reader = ImageIO.getImageReadersByFormatName("png").next();
相關文章
相關標籤/搜索