黑马程序员技术交流社区
标题:
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