GUI

来源:互联网 发布:驾校时间安排 知乎 编辑:程序博客网 时间:2024/06/05 19:15
-----------------------------------android培训java培训、期待与您交流! --------------------------------------------------
GUI:图形用户界面
  用图形的方式,来显示计算机操作的界面,这样更方便更直观。
java为GUI提供的对象都存在java.awt和javax.swing两个包中

 

GUI设计的三个概念:

      组件(Component):java的图形用户界面的最基本组成部分

      容器(Container):是Component的子类

      布局管理器(Layout Manager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或者判断其大小

                                                     尺寸时,就会调用其对应的布局管理器

Awt和Swing:
 java.awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
  javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。
   
Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。

布局管理器:
 容器中的组件的排放方式,就是布局。
       常见的布局管理器:
                FlowLayout(流式布局管理器)
              从左到右的顺序排列。
        Panel默认的布局管理器。
               BorderLayout(边界布局管理器)
               东,南,西,北,中
        Frame默认的布局管理器。
               GridLayout(网格布局管理器)
               规则的矩阵
        CardLayout(卡片布局管理器)
               选项卡
         GridBagLayout(网格包布局管理器)
                 非规则的矩阵
简单窗体创建的过程:
        Frame  f = new Frame(“my window”);
        f.setLayout(new FlowLayout());
        f.setSize(500,400);//设置窗体大小
        f.setLocation(300,200);//设置窗体出现在屏幕的位置
        f.setVisible(true);
awt相关代码演示:
import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class AwtDemo {/** * @param args */public static void main(String[] args) {//1,创建窗体。Frame f = new Frame("my frame");//2,对创建进行基本设置。 //f.setSize(600, 500);//f.setLocation(350, 150);f.setBounds(350, 150, 600, 500);f.setLayout(new FlowLayout());//3,创建其他组件。比如按钮。Button but = new Button("new button");//4,将其他组件添加到窗体中。f.add(but);//给窗体添加一个监听器。处理关闭动作。f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e) {System.out.println("程序关闭");System.exit(0);}});but.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {System.out.println("按钮关闭");System.exit(0);}});//5,显示窗体。f.setVisible(true);}}
Swing组件的分类:
    1,顶层容器:JFrame,JApplet,JDialog,JWindow共4个
    2,中间容器:JPanel,JScrollPane,JSplitPane,JToolBar等
    3,特殊容器:在GUI上起特殊作用的中间层,如:JInternal,JFrame,JLayeredPane,JRootPane等。
    4,基本控件:实现人机交互的组件,如:Jbutton,JcomboBoJList, JMenu,JSlider,JTextFieldx等。
    5,不可编辑信息的显示:向用户显示不可编辑信息的组件,如:JLabel,JProgressBar,ToolTip等。
    6,可编辑信息的显示:向用户显示能被编辑的格式化信息的组件,如 JColorChooser,JFileChoose,JFileChooser,JTable,JTextArea等。
 
事件监听机制组成:
    1,事件源(组件)
    2, 事件(Event)
    3,监听器(Listener)
    4,事件处理(引发事件后处理方式)
事件监听机制:
    1,确定事件源(容器或组件)
    2,通过事件源对象的addXXXListener()方法将侦听器注册到该事件源上。
 该方法中接收XXXListener的子类对象,或者XXXListener的子类XXXAdapter的子类对象。一般用匿名内部类来表示。
    3,在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
    4,事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者,getComponent()获取。)
相关代码演示:
import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class SwingDemo {/** * @param args */public static void main(String[] args) {JFrame frame = new JFrame("my jframe");frame.setBounds(350, 150, 600, 500);frame.setLayout(new FlowLayout());JButton but = new JButton("new Button");frame.add(but);but.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {System.exit(0);}});frame.setVisible(true);}}

菜单组件JMenu:
    作用:用户用来输入有关操作命令的简便工具。
    形式:下拉方式或者弹出方式。
    组成:
          1,菜单条JMenuBar:包含若干的菜单
           2,菜单JMenu:包含若干的菜单项
          3,菜单项JMenuItem:与按钮相识,在单击时引发一系列的动作命令
 菜单组件的设置:
    JMenuBar是通过JFrame、JWindow的根窗格添加至容器的组件,由多个JMenu组成。
    JMenu在JMenuBar下以字符串形式显示,而在用户单击它时,则以弹出式菜单显示。
   JMenuItem是JMenu中的一个组件,以字符串形式显示,可以具有图标,外观可以修改,如字体、颜色、背景、边框。
   






-----------------------------------------------android培训、java培训、期待与您交流! --------------------------------------