黑马程序员技术交流社区

标题: GUI [打印本页]

作者: shilu    时间: 2015-10-16 21:25
标题: GUI
* GUI开发的第一个程序,HelloWorld
*
*   Frame 是带有标题和边框的顶层窗口
*    构造方法:
*     public Frame() throws HeadlessException
*      构造一个最初不可见的 Frame 新实例()。Frame 的标题为空
*     public Frame(String title) throws HeadlessException
*      构造一个新的、最初不可见的、具有指定标题的 Frame 对象
*
*  方法:
*   public void show()已过时。使窗口可见
*     从 JDK 1.5 版开始,由 Component.setVisible(boolean) 取代。
*   public void setVisible(boolean b)
*    根据参数 b 的值显示或隐藏此组件。
*   public void setSize(int width, int height)
*    调整组件的大小,使其宽度为 width,高度为 height。
*   public void setLocation(int x, int y)
*    将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。
*   public void setTitle(String title)
*    将此窗体的标题设置为指定的字符串。
*   public Component add(Component comp)
*    向当前容器中添加给定的组件
*   public void setBounds(int x, int y, int width, int height)
*    设置当前组件的大小与位置
*   public void setLayout(LayoutManager mgr)
*   设置当前组件的布局方式
*   public void setResizable(boolean resizable)
*    设置此窗体是否可由用户调整大小, false不可以调整
*   public synchronized void addWindowListener(WindowListener l)
*    为当前的窗口添加一个窗口事件监听
*    参数: WindowListener l 为一个接口

*  用于接收窗口事件的侦听器接口
*  然后使用窗口的 addWindowListener 方法将从该类所创建的侦听器对象向该 Window 注册。
*  当通过打开、关闭、激活或停用、图标化或取消图标化而改变了窗口状态时,
*  将调用该侦听器对象中的相关方法,并将 WindowEvent 传递给该方法。
*  public interface WindowListener extends EventListener {
*  
*    public abstract void windowActivated(WindowEvent e)
            将 Window 设置为活动 Window 时调用。
   public abstract void windowClosed(WindowEvent e)
            因对窗口调用 dispose 而将其关闭时调用。
   public abstract void windowClosing(WindowEvent e)
            用户试图从窗口的系统菜单中关闭窗口时调用。
   public abstract void windowDeactivated(WindowEvent e)
            当 Window 不再是活动 Window 时调用。
   public abstract void windowDeiconified(WindowEvent e)
            窗口从最小化状态变为正常状态时调用。
   public abstract void windowIconified(WindowEvent e)
            窗口从正常状态变为最小化状态时调用。
   public abstract void windowOpened(WindowEvent e)
            窗口首次变为可见时调用
*  }
*  
*  由于WindowListener 这个接口在使用的使用,需要重写的方法太多,麻烦,为了简化,提供了一个类  WindowAdapter
*   public abstract class WindowAdapter
*   这个类是一个抽象类,它将接口中所有的抽象方法,进行了实现,此类中的方法为空。
*   此类存在的目的是方便创建侦听器对象(WindowListener)
------------------------------------------------
GUI开发的第一个程序
public class FrameDemo {
public static void main(String[] args) {
  //创建窗口
  //Frame frame = new Frame();
  Frame frame = new Frame("我是HelloWorld");
  
  //指定标题
  //frame.setTitle("HelloWorld");
  
  //指定窗口位置
  frame.setLocation(600, 300);
  
  //指定窗口尺寸
  frame.setSize(400, 200);
  
  //显示界面
  //frame.show();
  frame.setVisible(true);
}
}
-------------------------------------------------
* Button : 一个标签按钮
*  构造方法:
*   public Button() throws HeadlessException
*    构造一个标签字符串为空的按钮
*   public Button(String label)  throws HeadlessException
*    构造一个带指定标签的按钮。
*   
* 方法:
*   public synchronized void addActionListener(ActionListener l)
*    为当前组件添加点击动作监听, 进行点击动作事件的处理
*    参数:ActionListener l 为 一个接口
*
*  
*  接口
*  public interface ActionListener extends EventListener {
*   //指定事件激活后,要做的操作
*   public void actionPerformed(ActionEvent e);
*  }
----------------------------------------------
* 文本组件
*   |- TextComponent : 所有允许编辑文本的组件的超类
   |- TextFiled:允许编辑单行文本的文本组件
   |- TextArea : 对象是显示文本的多行区域。可以将它设置为允许编辑或只读
   
   
TextFiled:
  构造方法摘要
  TextField()
           构造新文本字段。
  TextField(int columns)
           构造具有指定列数的新空文本字段,宽度足够容纳指定列数
           
    TextArea:
     构造方法摘要
  TextArea()
            构造一个将空字符串作为文本的新文本区。
  TextArea(int rows, int columns)
            构造一个新文本区,该文本区具有指定的行数和列数,并将空字符串作为文本。
方法:
  public synchronized String getText()
   获取文本框中的文本数据
  public synchronized void setText(String t)
   设置文本框显示的文本数据
  public void append(String str)
   追加文本框中显示的文本数据
-------------------------------------------------
* 鼠标事件案例
*
* 方法:
*
*  public synchronized void addMouseListener(MouseListener l)
*   为当前组件添加鼠标监听
*   参数: MouseListener l 为一个接口,该接口中包含了多个抽象方法
*  
*   public interface MouseListener extends EventListener {
*     void mouseClicked(MouseEvent e)
             鼠标按键在组件上单击(按下并释放)时调用。
    void mouseEntered(MouseEvent e)
             鼠标进入到组件上时调用。
    void mouseExited(MouseEvent e)
             鼠标离开组件时调用。
    void mousePressed(MouseEvent e)
             鼠标按键在组件上按下时调用。
    void mouseReleased(MouseEvent e)
             鼠标按钮在组件上释放时调用。
*   }
*  
*  MouseListener它是一个接口, 由于方法太多,提供了一个接口子类 MouseAdapter,重写了接口中所有的方法,具体的方法实现为空
-------------------------------------------------
* 键盘监听器,用于接收键盘事件(击键)的侦听器接口
*  public synchronized void addKeyListener(KeyListener l)
*   为当前组件添加键盘监听器
*   参数: KeyListener l 它是一个接口
*
*  public interface KeyListener extends EventListener {
*    void keyPressed(KeyEvent e)
            按下某个键时调用此方法。
   void keyReleased(KeyEvent e)
            释放某个键时调用此方法。
   void keyTyped(KeyEvent e)
            键入某个键时调用此方法。
*  }
*  由于 接口 KeyListener中的抽象方法太多,考虑使用它的接口子类 KeyAdapter
*  public abstract class KeyAdapter implements KeyListener{}
*  
*  //把所点击的按键封装成了对象,表示组件中发生键击的事件
*  public class KeyEvent extends InputEvent {
*   char getKeyChar()
           返回与此事件中的键关联的字符
  public void consume()
   阻止默认事件的继续执行,可能实现所点击的键盘内容不显示在文本框中
*  }
*   
-----------------------------------
* Label 对象是一个可在容器中放置文本的组件,一个标签只显示一行只读文本
-----------------------------------
* MenuComponent
*   |- MenuBar 菜单栏
*   |- MenuItem 菜单项
*    |- Menu 菜单
*
-----------------------------------
* JFrame : 它是Frame的子类
*  与 Frame 不同,当用户试图关闭窗口时,JFrame 知道如何进行响应。
*  用户关闭窗口时,默认的行为只是简单地隐藏 JFrame。
*  要更改默认的行为,可调用方法 setDefaultCloseOperation(int)。
-------------------------------------------------
LayoutManager布局管理器 看图
|- FlowLayout 流式布局管理器
|- 补全其他的布局方式







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2