`

黑马程序员——GUI总结

 
阅读更多

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

 

                                           1.1 GUI概述
GUI:Graphical User Interface(图形化用户接口)---是图形的方式,来显示计算机操作系统的界面,这样更直观。
CLI:Command Line User Interface(命令行用户接口)---常见的Dos命令行操作,需要记一些常用的命令,操作不直观。
Java为GUI提供的对象都存在于java.awt和java.swing两个包中。
    java.awt:Abstract Window Tookit(抽象窗口工具包),需要调用本地系统方法实现功能功能,属于重量级控件(耦合性紧密)。
    java.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现,增强了移植性,属于轻量级控件。


 

                                        1.2 GUI布局介绍

常见的布局管理器:
    FlowLayout(流式布局管理器panel默认):从左到右的顺序排列、BorderLayout(边界布局管理器Frame默认):东南西北中、
    GridLayout(网格布局管理器):规则的矩形、GridBagLayout(网格包布局管理器):非规则管理器
    CardLayout(卡片布局管理器):选项卡

 
                                     1.3  事件监听机制
事件监听机制组成:——————组件就是一个对象
        事件源(组件)、事件(Event)、监听器(Listener)、事件处理(引发事件后的处理方式)

点击按钮:打印一句话
    思路:
确定事件源:按钮
确定监听器:按钮添加监听器,按钮对象最清楚____到按钮对象中去查找(API)
事 件 处  理:定义事件处理方式
定义的规范:XXXListener:XXX监听器   ——————对应的XXXEvent事件
        1、在按钮上添加所需的监听器

but.addActionListener(new  ActionListener{            —————监听器
       public void actionPerformed(ActionEvent e) 
       {                                              —————监听的事件
                System.out.println("窗体的按钮事件");   —————事件处理方式
});
 

    实例化菜单中的打开和保存操作

import java.awt.*;  
import java.awt.event.*;  
import java.io.*;  
class MyMenuTest  
{  
    private Frame f;    //引用窗体变量  
    private MenuBar bar;    //引用菜单条变量  
  
    private TextArea ta;  
    private Menu fileMenu;      //引用菜单变量  
    private MenuItem closeItem,openItem,saveItem;   //引用菜单项  
  
    private FileDialog openDia,saveDia;     //引用打开和保存对话框  
  
    private File file;      //引用文件变量  
    MyMenuTest()        //构造函数初始化  
    {  
        init();  
    }  
    public void init()  
    {  
        f=new Frame("my window");   //初始化窗口  
        f.setBounds(300,100,500,600);   //设置窗口的位置和宽高  
        // f.setLayout(new FlowLayout());   //设置窗体的布局方式为流式布局  
  
        bar=new MenuBar();      //初始化菜单栏  
  
        ta=new TextArea();  
  
        fileMenu=new Menu("文件");        //初始化菜单  
  
        closeItem=new MenuItem("退出");   //初始化菜单项目  
        openItem=new MenuItem("打开");  
        saveItem=new MenuItem("保存");  
          
        bar.add(fileMenu);      //将菜单添加到菜单栏中  
  
        fileMenu.add(openItem);  
        fileMenu.add(saveItem);  
        fileMenu.add(closeItem);        //将关闭按钮添加到菜单中  
  
  
        f.setMenuBar(bar);  //将菜单栏设置到窗体中  
          
        openDia=new FileDialog(f,"打开了",FileDialog.LOAD);    //初始化  
        saveDia=new FileDialog(f,"开始保存",FileDialog.SAVE);  
        myEvent();  
        f.add(ta);  
        f.setVisible(true);  
    }  
  
    private void myEvent()  
    {  
        saveItem.addActionListener(new ActionListener()     //保存事件处理  
            {  
                public void actionPerformed(ActionEvent e)  
                {  
                    if(file==null)      //判断文件是否存在,如果不存在,则创建一个  
                    {  
                        saveDia.setVisible(true);   //显示保存对话框  
                        String dirPath=saveDia.getDirectory();  //获取目录地址  
                        String fileName=saveDia.getFile();  //获取文件名  
                        if(dirPath==null || fileName==null)  
                            return;  
                        file=new File(dirPath,fileName);    //封装成对象  
  
                    }  
                    try  
                    {  
                        BufferedWriter bufw=new BufferedWriter(new FileWriter(file));   //创建文件写入流缓冲区,将文件传入流中  
                        String text=ta.getText();   //获取文本区内容  
                        bufw.write(text);       //将文本框内容写出去  
                        bufw.close();       //关闭流  
                    }  
                    catch(IOException ioe)  
                    {  
                        throw new RuntimeException("写入失败");  
                    }  
                }  
            });  
        openItem.addActionListener(new ActionListener()     //创建打开事件监听机制  
            {  
                public void actionPerformed(ActionEvent e)  
                {     
                    openDia.setVisible(true);   //显示对话框  
                    String dirPath=openDia.getDirectory();  //获取文件路径  
                    String fileName=openDia.getFile();  //获取文件名  
                    System.out.println(dirPath+"--"+fileName);  
  
                    if(dirPath==null || fileName==null) //判断是否为空  
                        return;  
                    ta.setText("");     //打开新文件之前,清空之前的内容  
                    file=new File(dirPath,fileName);    //将文件路径和文件名封装成对象  
                      
                    try  
                    {  
                        BufferedReader bufr=new BufferedReader(new FileReader(file));     
                        //创建读取流缓冲区,将file文件传入  
                        String line=null;  
                        while((line=bufr.readLine())!=null) //开始读取数据  
                        {  
                            ta.append(line+"\r\n");     //添加到文本区中  
                        }  
                        bufr.close();  
                    }  
                    catch(IOException ioe)  
                    {  
                        throw new RuntimeException("读取失败");  
                    }  
                }  
            });  
        closeItem.addActionListener(new ActionListener()  
            {  
                public void actionPerformed(ActionEvent e)  
                {     
                    System.exit(0);  
                }  
            });  
        f.addWindowListener(new WindowAdapter()     //添加窗体关闭方法,复写关闭方法  
            {  
                public void windowClosing(WindowEvent e)  
                {  
                    System.exit(0);     //退出窗体  
                }  
            });  
    }  
    public static void main(String[] args)  
    {  
        new MyMenuTest();  
    }   
}

 

  • 大小: 32.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics