• 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

  • 相关阅读:
    SQL——with as 临时表
    SQL 在数据库中查找拥有此列名的所有表
    帆软报表(finereport)鼠标悬停背景变色
    帆软报表(finereport)控件背景色更改
    帆软报表(finereport)使用Event 事件对象 (target)修改提示框样式
    微信indexOf不能使用,代替方式
    基础知识
    VUE知识点
    银行金额处理
    flex-1
  • 原文地址:https://www.cnblogs.com/Angella/p/6058545.html
Copyright © 2020-2023  润新知