Swing 顶层容器
2016-11-13 13:29 backyyan 阅读(8323) 评论(0) 收藏 举报
顶层容器值得是容纳其他容器的容器组件,包括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
 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号