黑马程序员- 第二十四天(GUI)

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

                               第二十四天(GUI)
一,GUI
GUI:Graphical User Interface(图形用户接口)
CLI:Command Line User Interface(命令行用户接口)

二,java提供的包
java.Awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件(跨平台性不太好依赖系统性比较强)
javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由java实现,增强了移植性,属轻量级控件(依赖系统不太高)

三。体系
Component:
/ \
/ \
/ \
Container-----| |------Button按钮
|--Panel面板  |------Label标签
|--Window窗口 |------Checkbox复选框
|---Frame框架              |------TextComponent 文本组件
|---Dialog对话框 |------TextArea文件区
|----FileDialog文件对话框 |------TextField文件框

注:Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来

四。布局
1,容器中的组件的排放方式,就是布局
2,常见的布局管理器:
FlowLayout(流式布局管理器):从左到右的顺序排列 。Panel默认的布局管理器
BorderLayout(边界布局管理器):东,南,西,北,中  Frame默认的布局管理器。如果没有指定位置,会以最大形式来添充窗体
GridLayout(网格布局管理器):规则的矩阵
CardLayout(卡片布局管理器):选项卡
GridBagLayout(网格包布局管理器):非规则的矩阵
坐标式布局
如果想在一个窗体上加入多种的布局时,可以在此窗体上添加面板,然后改变面板的布局方式就可以了


五。Frame类

构造函数 :
Frame(String title)     构造一个新的、最初不可见的、具有指定标题的 Frame 对象。
方法:
void setMenuBar(MenuBar menubar):设置菜单栏
void setVisible(boolean b) :设置窗体是否可见
void setSize(int length(横),int width(纵));设置窗体大小
void setLocation(x,y):设置窗体的位置距窗体顶点的大小
void setBounds(x,y,width,heigth):设置窗体的位置和大小 
void setLayout(布局管理器对象):设置此窗体的布局
void add(Component com):添加组件


六。Button类
构造方法:
Button(String title)建立一个带有名字的按钮


七。创建图形化界面的思想:
1.创建frame窗体
2,对窗体进行基本的设置 比如:大小,位置,布局
3,定义组件
4,将组件通过窗体的add方法添加到窗体中
5,让窗体显示出来

八,事件监听机制
事件监听机制的特点:
1,事件源  :就是awt包或者swing包中的那些图形界面组件
2,事件 :每一个事件源都有自己特有的对应事件和共性事件
3,监听器  :将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中
4,事件处理方式

事件源,事件,监听器,在java中都已经定义好了,直接获取其对象来用就可以了,我们要做的事就是对产生的动作进行处理


九。窗体事件
(抽象类没有抽象方法WindowApadter,不让其创建对象。需要复写其方法)


void addWindowListener(WindowListener l)     添加指定的窗口侦听器,以从此窗口接收窗口事件。 
因为WindowListener的子类 WindowAdapter已经实现了WindowListener接口,并覆盖了其中的所有方法。
那么我只要继承WindowAdapter覆盖我需要的方法即可

十。选择监听器的方法:
通过关闭窗体示例了解到,想要知道那个组件具备什么样的特有监听器,需要查看该组件对象的功能 


十一,监听器
Button  addActionListener(ActionListener al)  少数没有适配器接口的适配器 只有一个actionPerformed(ActionEvent ae)方法(适配器的出现就是方便创建对象,覆盖方法)
Frame   addWindowListener(WindowListener wl)   传入WindowListener的子类WindowAdapter(适配器)
addKeyListener(KeyListener kl):键盘监听器
addMouseListener(MouseListener ml):鼠标监听器

注:当Button添加活动监听和鼠标监听时,会先执行鼠标监听器内的动作,活动监听也可以通过键盘来操作

十二 常用方法:

WindowAdapter:
void windowClosing(WindowEvent e); 用户试图从窗口的系统菜单中关闭窗口时调用
ActionListener:
void actionPerformed(ActionEvent e);发生操作时调用。 
MouseListener:
void mouseClicked(MouseEvent e)鼠标按键在组件上单击(按下并释放)时调用。 
MouseEvent:
public int getClickCount()返回与此事件关联的鼠标单击次数。 返回:单击次数的整数值


KeyListener:
void keyPressed(KeyEvent e)按下某个键时调用此方法。有关按下键事件的定义,请参见 KeyEvent 的类描述。 

KeyEvent:
public char getKeyChar()   返回与此事件中的键关联的字符。 
public int getKeyCode()     返回与此事件中的键关联的整数 keyCode。 
从类 java.awt.event.InputEvent 继承的方法:
public boolean isAltDown()返回 Alt 修饰符在此事件上是否为 down。 检查是否按下Alt键
public boolean isControlDown()返回 Control 修饰符在此事件上是为 down 检查是否按下Ctrl键
public boolean isShiftDown()返回 Shift 修饰符在此事件上是否为 down。 检查是否按下Shift键
public void consume()使用此事件,以便不会按照默认的方式由产生此事件的源代码来处理此事件。 
TextComponent中的方法:
public String getText()返回此文本组件表示的文本。默认情况下,此文本是一个空字符串。 返回:此 TextComponent 的值
public void setText(String t)将此文本组件显示的文本设置为指定文本。 参数:t - 新文本;如果此参数为 null,则将文本设置为空字符串 ""会覆盖原来的数据

TestArea中的方法:
public void append(String str)将给定文本追加到文本区的当前文本。 注意,传递 null 或不一致的参数是无效的,并且将导致不确定的行为。 参数:str - 要追加的非 null 文本




十四。菜单
MenuBar:菜单栏或菜单条 
Menu:菜单
MenuIiem:菜单项

关系:MenuBar可以添加Menu,Menu可以添加MenuItem

十五,jar包双击执行
1,命令:
jar -cvfm jar包的名称 配置文件 要打包的文件名(.class文件所有的包名  
2,步骤:
1,新建立一个.txt文件在文件内写入你要运行的类名:Main-Class:空格 包名.类型(一定要回车固定格式)保存
2,使用命令进行打包。
注:没有空格会发生IOException提示如下:
F:\javaDocument>jar -cvfm fileOperate.jar main.txt  fileOpen
java.io.IOException: invalid header field
        at java.util.jar.Attributes.read(Attributes.java:410)
        at java.util.jar.Manifest.read(Manifest.java:199)
        at java.util.jar.Manifest.<init>(Manifest.java:69)
        at sun.tools.jar.Main.run(Main.java:172)
        at sun.tools.jar.Main.main(Main.java:1177)
        如果没有回车,,配置文件是无法加载进行去的,jar包无法双击执行

如果打不开可能是文件没有进行关联,wind7中jar文件的关联请参考:http://bbs.csdn.net/topics/350020409

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值