Swing 頂層容器



頂層容器值得是容納其他容器的容器組件,包括JFrame類,JWindows類,JDialog類,JApplet等。
Swing中的頂層容器類
Swing提供三個頂層容器類:JFrame,JDialog和JApplet。當使用這些容器類時,請謹記以下原則。
要在屏幕上顯示,每個GUI組件必須是一個“容器層級”的一部分。
每個GUI組件只能屬於一個容器,如果組件已經在一個容器當中,而又試圖將它添加到另一個容器當中去,那么應該從第一個容器中移除該組件,然后添加到兩一個容器去。
各種可視化組件不直接放到頂層容器中去,而是放在容器的內容面板中。
可以選擇添加一個菜單欄到頂層容器中,菜單欄應該按慣例位於頂層容器中,但必須位於內容面板之外。
Swing中還有一個命名為JInternalFrame的內部窗體,它模仿JFrame,但實際上內部窗體並不是真正的頂層容器。
下面我們創建一個帶有菜單欄和內容模板的窗體:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//TopLevelDemo.java不需要其他文件

public class TopLevelDemo {
//創建一個GUI界面並顯示。處於線程安全的考慮,應該從事件分發線程調用此方法
private static void createAndShowGUI(){
//創建並設置窗體
JFrame frame=new JFrame("TopLevelDemo");
//創建帶有標題的窗體對象
//設置當關閉窗體時自動退出程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//創建一個菜單欄,將其背景設為綠色。
JMenuBar greenMenuBar =new JMenuBar();
greenMenuBar.setOpaque(true);//將菜單背景設置為不透明
//設置菜單欄背景色
greenMenuBar.setBackground(new Color(154,165,107));
//設置菜單欄首選大小
greenMenuBar.setPreferredSize(new Dimension(200,20));
//創建一個黃色的標簽並將其放入內容模板中
JLabel yellowLabel=new JLabel();//創建一個標簽對象
yellowLabel.setOpaque(true);//將標簽背景設為不透明
//設置標簽背景顏色
yellowLabel.setBackground(new Color(248,210,101));
//設置標簽首選大小
yellowLabel.setPreferredSize(new Dimension(200,180));
//設置菜單欄並將標簽添加到內容模板上
frame.setJMenuBar(greenMenuBar);//將菜單欄添加到窗體上
//向窗體的內容模板添加標簽
frame.getContentPane().add(yellowLabel,BorderLayout.CENTER);
//顯示窗體
frame.pack();
frame.setVisible(true);
}
public static void main(String []args){
//為事件分發線程預定一個工作,創建顯示本程序的GUI
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
createAndShowGUI();
}
});
}

}

雖然該示例程序在一個獨立的應用程序中使用JFrame,但是同樣的原理也適用於Applet和JDialog


免責聲明!

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



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