swing学习一(swing介绍、swing样例、布局管理器)

图形用户界面开发(gui)

在学习swing前,我们需要了解这样几个概念:awt、swing、swt、Jface。

sun公司提供了一个跨平台GUI开发工具包awt(抽象窗口工具箱Abstract Window Toolkit)。

sun公司又提供了swing,解决swt中存在的lcd(本地化)问题。

IBM为了解决swing耗内存的问题,创建了新的gui库swt。

IBM在swt的基础上开发了更强大的JFace。

 

Swing组件分类:

1、顶层容器:JFrame、JApplet、JDialog

2、中间层容器:JPanel、JScrollPane、JSplitPane、JToolBar

3、特殊中间层容器:JIternalFrame、JLayeredPane、JRootPane

4、基本控制容器:JButton、JComboBox、JList、JMenu、JSlider、JTestField

5、不可编辑信息显示容器:JLable、JProgressBar

6、可编辑信息显示容器:JTable、JFileChooser、JTree

 

一个swing例子Swing.java,显示helloWorld。

package com.test.swing;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Swing extends JFrame{

    //一个组件
    public JLabel label = null;
    //JPanel是一个中间层容器类,可以添加其他组件。
    public JPanel jPanel = null;
    
    public Swing(){
        //给窗体设置标题
        this.setTitle("helloWorld!");
        //设置大小,按像素计数
        this.setSize(300, 300);
        //设置窗口初始位置
        this.setLocation(100, 200);
        //显示
        this.setVisible(true);
        //设置当关闭窗口时,jvm也关闭
        this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
        
        
        jPanel = new JPanel();
        label = new JLabel("helloWorld!");
        //将组件添加到中间层组件。
        jPanel.add(label);
        //将中间层组件设置为顶层组件的内容面板。
        this.setContentPane(jPanel);
    }
    /**
     * @main
     */
    public static void main(String[] args) {
        Swing swing = new Swing();
    }

}

 

布局管理器:

组件在容器中的位置和大小是由布局管理器来决定的,所有的组件都会使用一个布局管理器,通过它来自动进行布局管理。

java提供五种布局管理器:流式布局管理器(FlowLayout)、边界布局管理器(BorderLayout)、网格布局管理器(GridLayout)、卡片布局管理器(CardLayout)、网格包布局管理器(GridBagLayout)

 

流式布局:按顺序从左到右,可指定对齐方式,左对齐右对齐居中对齐等。

边界布局:将容器简单的划分为东西南北中五个区域,中间区域最大,不是五个部分都必须添加。

网格布局:将容器划分为多列,组件被依次填充到每个网格中,从左上角开始。

JFrame、JDialog对话框组件你默认边界布局。

代码编写步骤:

1、继承JFrame

2、定义你需要的组件

3、创建组件(构造函数)

4、添加组件

5、对窗体进行设置

6、显示窗体

样例:

this.add(label1, BorderLayout.EAST);
this.add(label2, BorderLayout.NORTH);

 指定布局管理器:

jPanel.setLayout(new BorderLayout());

 流式布局管理器:

jPanel.setLayout(new FlowLayout(FlowLayout.CENTER));

 拆分窗格:

JSplitPane jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jPanel,label1);        

 

posted @ 2015-10-14 09:35  wee616  阅读(2344)  评论(0编辑  收藏  举报