Java——JFrame與JButton添加背景


  某些時候,我們會認為Swing的GUI實在是太難看了。我們可以通過修改背景,來達到一定的美化效果。

  

  一、JFrame設置背景

    在設置背景前,必須了解到JFrame分為4層,從下至上分別為RootPane、LayeredPane、ContentPane、GlassPane。其中GlassPane是默認透明的,ContentPane主要用來承載控件。

    我們設置背景,可以選擇設置在RootPane或LayeredPane,這樣就不會影響到ContentPane。

    以下以LayeredPane為例:

      1. 創建圖像:

    ImageIcon icon = new ImageIcon("./img/mainFrame.png"); 
    Image img = icon.getImage().getScaledInstance(width, height, Image.SCALE_FAST); // 圖像縮放為適合Frame大小
    JLabel jlabel = new JLabel(new ImageIcon(img));
    jlabel.setBounds(0, 0, width, height);

      

      2.將圖像放置在LayeredPane中

    f.getLayeredPane().add(jlabel, new Integer(Integer.MIN_VALUE));

      LayeredPane也是分層的,根據整數大小有若干層。這里將JLabel放置在了LayeredPane最底層。

 

      3.將ContentPane和RootPane設置透明(可以消去邊框)

       JPanel jp = (JPanel) f.getContentPane();
       JRootPane jp1 = (JRootPane) f.getRootPane();
       jp.setOpaque(false);
       jp1.setOpaque(false);

      4. 去除標題欄 : f.setUndecorated(true);

 

  二、JButton設置背景

      JButton同樣用setIcon

        btn.setBorderPainted(false); // 消除邊框
        btn.setContentAreaFilled(false); // 消除內容域,即中間的那一塊

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM