zoukankan      html  css  js  c++  java
  • 黑马程序员_Java学习日记num13

     ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

    学习内容:GUI概述;容器和组件;布局管理器;事件监听;MENU菜单;JAR包双击执行

    一、GUI概述

    >Graphical User Interface(图形用户接口)。 >用图形的方式,来显示计算机操作的界面,这样更方便更直观。 CLI >Command line User Interface (命令行用户接口)
    Java为GUI提供的对象都存放在java.awt和javax.swing。 Awt和Swing java.awt: Abstract Window Tookit (抽象窗口工具包)需要调用本地系统方法实现功能。属于重量级控件。 理论上说:结果程序可以运行在任何平台上,但是观感的效果却依赖于目标平台。
    javax.swing:在awt的基础上,建立一套图形界面系统,其中提供了更多的组件,而且完全有java实现。增强了移植性。
    二、容器和组件
    一般的Component对象不能独立显示出来,必须放在某一个Container对象中才可以显示出来。

    2.1 Container Container是Component的子类,Container子类对象可以容纳别的Component对象。 Container对象可以使用方法add向其中添加其他的Component对象。 Container是Component的子类,因此Container对象可以被当作Component对象添加到其他Container对象中。 常用的Container两种对象 Window:可以自由停泊的顶级窗口,。 Panel:其对象可以容纳其他的Component,但是不能独立存在,必须添加到其他的Container中显示
    2.2 Label Label通常用来指明项目的用途,不可以被用户编辑。 Label():新建一个空便签。 Label(String labeltext):新建一个包含给定文本的标签。 Label(String labeltext ,int aligment):新建一个包含给定对齐方式的标签,对齐方式可以为Label.LEFT,Label.RIGHT或Label.CENTER。
    2.3 TextField 文本框

    2.4 TextArea 文本域

    2.5 Button 按钮 2.6 Checkbox 复选框 2.7 单选按钮可以通过复选框生成一系列互斥的复选框,实现单选按钮功能。 首先创建一个CheckboxGroup对象。 然后再创建单选按钮。 2.8 Choice 选择框 用来向用户显示一个选择列表。 通过addItem()方法可以添加项目。
    三、布局管理器 FlowLayout(流式布局管理器) 从左到右的顺序排列。 Panel默认的布局管理器。
    BorderLayout(边界布局管理器) 东,南,西,北,中 Frame默认的布局管理器。
    GridLayout(网格布局管理器) 规则的矩阵
    CardLayout (卡片布局管理器) 选项卡
    GridBagLayout(网格包布局管理器) 非规则的矩阵
    四、事件监听 事件监听机制的特点: 1,事件源。 2,事件。 3,监听器。 4,事件处理。
    事件源:就是awt中,或者swing中的那些图形界面组件。 事件:每一个事件源都有自己特有的对应事件和共性事件。 监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。 想要知道哪个组建具备什么样的特有监听器,需要查看该组件对象的功能。
    4.1窗口监听器WindowListener  是一个接口,包含7个抽象方法,如果实现该接口必须覆盖7个方法,可是我们可能只用到其中一个方法,其他没用到,没必要覆写。 因为WindowListener的子类WindowAdapter称为适配器,已经实现了WindowListener,并覆盖了其中的所有方法,那么我们只要继承自WindowAdapter覆盖我们需要的方法即可。
    4.2按钮监听器ActionListener 里面只有一个方法:actionPerformed();
    鼠标键盘事件为共性事件,在component中定义 addMouseLIstener();removeMouseListene(); MouseListener[] getMouseListeners(); addKeyListener();removeKeyListener(); KeyListener[] getKeyListeners();
    MouseListener和KeyListener 都有对应的适配器
    MouseEvent getClickCount();
    KeyEvent getKeyCode();返回编码

    一个示例:演示输入一个路径,打印出这个路径下所有的文件。用GUI实现

     

    package listawt;

    import java.io.*;

    import java.awt.*;

    import java.awt.event.*;

    class ListAwtDemo

    {

    private Frame f;

    private Button but;

    private TextField tf;

    private TextArea ta;

    ListAwtDemo()

    {

    init();

    }

    public void init()

    {

    f = new Frame("my frame");

    f.setBounds(200,100,600,500);

    f.setLayout(new FlowLayout());

     

    but = new Button("转到");

     

    tf = new TextField(40);

    f.add(tf);

    f.add(but);

     

    ta = new TextArea(80,70);

    f.add(ta);

     

    f.setVisible(true);

     

    myEvent();

    }

    public void myEvent()

    {

    f.addWindowListener(new WindowAdapter(){

    public void windowClosing(WindowEvent e)

    {

    System.exit(0);

    }

    });

     

    but.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent e)

    {

    ta.setText("");

    String s = tf.getText();

    File f = new File(s);

    if(f.exists()&&f.isDirectory())

    {

    String[] names = f.list();

     

    for(String name:names)

    {

    ta.append(name+" ");

    }

    }

    tf.setText("");

     

    }

    });

    }

    public static void main(String[] args)

    {

    ListAwtDemo la = new ListAwtDemo();

    }

    }

    五、Menu菜单 MenuBar 通过所述对象的setMenuBar()方法添加到对象上。
    menu中可以添加menu也可以添加MenuItem
    六、jar 包编辑格式 jar -cvfm 目的文件名.jar 配置文件 源文件夹
    配置文件

     内容格式:Main-Class:<此处必须有空格>主函数类名<此处必须有回车>【注意:以上为固定格式】
    如何制作可以双击执行的jar包呢? 1,将多个类封装到了一个包(package)中。 2,定义一个jar包的配置信息。 定义一个文件a.txt 。文件内容内容为: Main-Class:(空格)包名.类名(回车) 3,打jar包。 jar -cvfm my.jar a.txt 包名 4,通过winrar程序进行验证,查看该jar的配置文件中是否有自定义的配置信息。
    5,通过工具--文件夹选项--文件类型--jar类型文件,通过高级,定义该jar类型文件的打开动作的关联程序。 jdkinjavaw.exe -jar

  • 相关阅读:
    HBase 文件读写过程描述
    Kafka 部署指南-好久没有更新博客了
    《Python高性能编程》——列表、元组、集合、字典特性及创建过程
    Ansible常用功能
    vim内替换文件内容
    线程队列-queue
    Python多进程
    python多线程知识-实用实例
    夜间模式的实现
    本地通知的实现
  • 原文地址:https://www.cnblogs.com/Rebecca-gg/p/4471087.html
Copyright © 2011-2022 走看看