Swing作为AWT组件的“强化版”,它的产生主要是为了克服AWT构建的GUI,无法在所有平台都通用的问题。允许编程人员跨平台时指定统一的GUI显示风格也是Swing的最大优势。Swing是AWT的补充,而非取代者。

以下是Swing包的层次结构和继承关系。

javax.swing

Class JComponent

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializable
    Direct Known Subclasses:
    AbstractButtonBasicInternalFrameTitlePaneBoxBox.FillerJColorChooserJComboBoxJFileChooserJInternalFrameJInternalFrame.JDesktopIconJLabelJLayerJLayeredPaneJListJMenuBarJOptionPane,JPanelJPopupMenuJProgressBarJRootPaneJScrollBarJScrollPaneJSeparatorJSliderJSpinnerJSplitPaneJTabbedPaneJTableJTableHeaderJTextComponentJToolBarJToolTipJTreeJViewport
    Swing容器主要有两种,即Window和panel,window窗口又分成两种:JFrame(窗体)和Jdialog(对话框),panel面板又有两种:JPanel面板和JScrollPane(带滚动条)的面板。JPanel必须放入到JFrame这样的顶级容器中使用,可以说JPanel是为了更为精致的布局。

    窗口的编程实现步骤:
    1、继承Jframe类(Jdialog类)
    2、实例化一个Jframe对象(Jdialog对象),并调用getContentPane()方法将窗体转化成容器;
    3、设置对象的各项参数(窗体大小等),设置关闭方式(如果不设置,默认为windows常规关闭方式),完成窗口的实现。

    下面,我们看一个简单的例子。

    public class Jlayout extends JFrame{
    public void CreateJframe(String title){
    JFrame jf=new JFrame(title);//实例化一个窗体对象
    Container ct=jf.getContentPane();//将窗体转化成容器
    //JLabel jl=new JLabel("JFrame窗体示例");//
    //jl.setHorizontalAlignment(SwingConstants.CENTER);//设置标签文字的对齐方式
    //ct.add(jl);//将标签添加到容器中
    ct.setBackground(Color.white);//设置背景色
    //ct.setLayout(null);
    jf.setVisible(true);
    jf.setSize(200, 150);//设置大小
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    JButton bt=new JButton("点我啊");//定义一个按钮
    bt.setHorizontalAlignment(SwingConstants.CENTER);
    bt.setBounds(10, 10, 100, 21);
    bt.addActionListener(new ActionListener(){//(new ActionLinstener(){
    public void actionPerformed(ActionEvent e){
    new Jd(Jlayout.this).setVisible(true);
    }
    });
    ct.add(bt);
    }

    class Jd extends JDialog{
    public Jd(Jlayout frame){
    super(frame,"对话框",true);
    Container ct=getContentPane();
    ct.add(new JLabel("让你点你就点啊"));
    setBounds(120,120,100,100);
    }
    }

    public static void main(String args[]){
    new Jlayout().CreateJframe("");
    }

    }


最新文章

  1. JSON(及其在ajax前后端交互的过程)小识
  2. NodeJS 常用模块
  3. 记一次eclipse无法启动的排查过程
  4. Linux下/boot目录
  5. Maven-改变本地存储仓库位置
  6. knowlege experience
  7. ASSERT报错:error C2664: “AfxAssertFailedLine”: 不能将参数 1 从“TCHAR []”转换为“LPCSTR”
  8. Firefly官方教程之DBentrust使用文档
  9. classpath多个包添加
  10. 设计模式 装饰模式(Decorator)
  11. Android-自定义控件之时针-霞辉
  12. Vue 普通对象数据更新与 file 对象数据更新
  13. Windows搭建wnmp
  14. ZooKeeper安装(Windows)
  15. [dotnet] 封装一个同时支持密码/安全密钥认证的SFTP下载器,简单易用。
  16. DateTime Tips
  17. 洛谷P3178 [HAOI2015]树上操作
  18. 程序报错java.lang.OutOfMemoryError: PermGen space
  19. LeetCode--258--各位相加*
  20. Structs复习 Action

热门文章

  1. 数据结构与算法(4)----->链表、二分搜索
  2. javacpp-FFmpeg系列补充:FFmpeg解决avformat_find_stream_info检索时间过长问题
  3. docker的操作
  4. ZigBee自组网地址分配与路由协议概述
  5. 参数化之利用CSV Data Set Config从文件读取参数并关联变量
  6. java基础之框架篇(1)
  7. [提高班] 2017 Summer Training Day1补题
  8. 《Java多线程编程核心技术》读后感(十四)
  9. 7.10实习培训日志-markdown Git
  10. Ext.Net 复制GridPanel的数据