黑马程序员_java之GUI

来源:互联网 发布:js防水都要加水泥吗 编辑:程序博客网 时间:2024/04/30 22:33

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

GUI:
1、图形用户界面
2、java提供了两个包供我们使用
     A:java.awt 重量级
     B:javax.swing 轻量级

3、布局管理器:FlowLayout----流式布局:从左到右,从上到下

                           BorderLayout----边界布局:东南西北中

                           GridLayout----网格布局:规则的矩阵

                           GridBagLayout----网格包布局:不规则的矩阵

                           CardLayout----卡片布局
4、事件监听机制

    A:事件源
        就是发生事件的组件对象
    B:事件
        就是发生的事情
    C:事件监听
        把事件注册到事件源上
    D:事件处理
        就是针对发生事情的处理
5、案例

    使用匿名内部类实现。

    A:对窗体添加关闭事件
    B:对窗体上的按钮添加事件

6、实例A:

(1)创建窗体:Frame(不可见)

(2)设置窗体可见:SetVisible(boolean flag)

(3)设置窗体尺寸:SetSize(int width,int height)

(4)设置窗体位置:SetLocation(int x,int y)

(5)设置窗体标题:SetTitle(String Title)

(6)像素:屏幕的分辨率

代码体现:

public class FrameDemo {
 public static void main(String[] args) {
  // 创建窗体
  // 构造一个最初不可见的 Frame 新实例
  Frame f = new Frame();
  // Frame f = new Frame("我的第一个窗体");

  // 设置窗体标题
  f.setTitle("我的第一个窗体");
  // 设置窗体的大小
  f.setSize(400, 300);
  // 设置位置
  f.setLocation(400, 200);

  // 设置窗体可见
  f.setVisible(true);
 }
}

 

实例B:

(1)给窗体添加按钮

(2)创建按钮对象:Button(String label)

(3)按钮添加到窗体:f.add(bu)

(4)将按钮布局:f.SetLayout(new FlowLayout())

代码体现:

public class FrameDemo2 {
 public static void main(String[] args) {
  // 创建窗体对象
  Frame f = new Frame("添加按钮");

  // 设置窗体属性
  f.setSize(400, 300);
  f.setLocation(400, 200);
  // 修改布局方式
  f.setLayout(new FlowLayout());

  // 创建按钮对象
  Button bu = new Button("确认");

  // 把按钮添加到窗体上
  f.add(bu);

  // 设置窗体可见
  f.setVisible(true);
 }
}

 

实例C:

关闭窗口:给窗口添加关闭事件
 
事件监听接口里面的方法有很多,而我们使用的就只有一个,
 这个时候,如果把每个方法都写进去太麻烦了。
这个时候,我们想到一种方案:
interface WindowListener
 {
  //7个方法
 }
 
我们提供一个类:
 
class MyWindowListener implements WindowListener
 {
//实现7个方法,不过方法体都是空的。
 }
 
将来我们使用的时候,怎么办?就可以只实现我们需要的那一个方法即可。
class MyWindowListenerImpl extedns MyWindowListener
{

windowClosing(){}

 

适配器模式。
举例:电源适配器,插座适配器
public class FrameDemo3 {
 public static void main(String[] args) {
  // 创建事件源
  Frame f = new Frame();

  // 设置窗体
  f.setTitle("关闭窗口");
  f.setSize(400, 300);
  f.setLocation(400, 200);

  // 注册事件
  // 自己写一个监听对象实现监听接口
  // f.addWindowListener(new MyWindowListener());
  f.addWindowListener(new MyWindowListener2());

  // 设置窗体可见
  f.setVisible(true);
 }
}

 

 

 

原创粉丝点击