Java-如何為frame視窗設定背景圖片__Java

來源:互聯網
上載者:User

終於成功實現了如何為jframe視窗設定背景圖片了。下面是樣本,請初學swring的朋友們參考學習。
import java.awt.*; import javax.swing.*; import java.awt.Container; public class framebg { public framebg() { } public static void main (String[] args) { JFrame frame=new JFrame("背景圖設定"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ImageIcon img = new ImageIcon("bg//1.gif");//這是背景圖片 JLabel imgLabel = new JLabel(img);//將背景圖放在標籤裡。 frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意這裡是關鍵,將背景標籤添加到jfram的LayeredPane面板裡。 imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());//設定背景標籤的位置 Container cp=frame.getContentPane(); cp.setLayout(new BorderLayout()); JButton but=new JButton("anniu");//建立按鈕 cp.add(but,"North");//將按鈕添加入視窗的內容面板 ((JPanel)cp).setOpaque(false); //注意這裡,將內容面板設為透明。這樣LayeredPane面板中的背景才能顯示出來。 frame.setSize(500,300); frame.setVisible(true); } }

通過為jframe設定背景圖片,讓我明白了以下的知識要點:
(1)jframe視窗的組成部分,最底層是jrootpane面板。(這一點恐怕很多初學者都沒有注意吧。)
(2)jframe的組成如下:
jrootpane中包含glasspane和layeredpane兩個面板。而layeredpane面板包含contentpane和jmenubar。(沒想到吧contentpane是放在contentpane中的。)
                         
(3)在jframe上添加組件,往往是添加在contentpane中。。但是在contentpane的下面還有兩層面板,那就是layeredpane和jrootpane。
(4)任何一本關於java的書中都會介紹contentpane,卻很少提到layeredpane和jrootpane,因此使得很多的初學者產生:jframe中只要一個contentpane的錯誤認識。

通過解決背景設定的問題,讓我對jframe中容器的“層”結構,有個更深層的瞭解。

以上知識點,希望初學swing的朋友們注意。

ok!只是共分享。讓我們共同學習進步。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.