浅谈-java GUI-基础理论

打印 上一主题 下一主题

主题 1024|帖子 1024|积分 3072

GUI:Graphical User Interface(图形用户接口) 用图形的方式,用来显示计算机操作的界面
Java为GUI提供的API都存在java.awt和javax.Swing两个包中

  • java.awt 包:
    awt是这三个单词首字母的缩写,翻译过来是抽象窗口工具包,只不过这个包的API,需要调用本地系 统方法实现功能,和本地系统有关联,不利于代码移植,属重量级控件
  • javax.swing 包:
    它是在awt的基础上,建立的一套图形界面系统,提供了更多的组件,而且完全由Java实现。增强了移 植性,属轻量级控件 所以,我们做图形界面开发使用的是swing包下的类。
  • 这里出现了一个名词:组件。
    组件是具有图形表示的对象,该图形表示可以显示在屏幕上并且可以与用户交互 比如说,在用户登录中,文本框和按钮等,都是能够表示图形的对象,所以它们都称为组件。 最后,我们来说一下,我们会用到的常用组件

组件:

  • 基本组件:具有图形表示的对象
  • 容器组件:是可以添加组件的组件。也就是在容器中可以通过add方法添加组件,既可以添加基本组件,也可 以添加容器组件。

  • JButton,这是按钮
  • JLabel,这是用来显示文本内容的,或者展示图片使用
  • JTextFile,这是文本框,用来输入内容的
  • JTextArea,这是文本域,用来输入多行多列的数据的
接着,我们再来看容器组件:
面板也是一个容器,我们常用JPanel,后面用到在具体讲解 窗体,下面是Frame,这是awt包下,而我们使用的是JFrame,这是swing包下。 好了,GUI相关的基础知识我们就先讲到这里
初识窗体

JFrame:窗体(顶层窗体)
JFrame(); ---> 构造一个不可见的窗体
JFrame类的构造方法

构造方法功能说明public JFrame()创建一个没有窗口标题的窗口框架public JFrame(String title)创建一个窗口标题为title的窗口框架JFrame成员方法

方法功能说明public void setTitle(String title)设置或修改框架的标题public String getTitle()返回框架的标题public void setBackground(Color c)设置框架的背景颜色public MenuBar getMenuBar()返回窗口中的菜单对象public void setMenuBar(MenuBar mb)设置窗口的菜单条public void remove(MenuComponent mc)从窗口删除给定的菜单项public boolean isResizable()判断窗口是否可以调节大小public void setVisible(boolean b)显示或隐藏窗体(取决于b的值-true为显示,-false为隐藏)public void setLocationRelativeTo(component c)设置窗体位置,null为屏幕中央public void setAlawysOnTop(boolean c)设置此窗口是否终究位于其他窗口之上public void setDefaultCloseoperation(int operation)设置窗体关闭时默认操作,3--为关闭时退出程序窗体添加按钮

JButton(); 构造方法

JButton(String text);创建一个带文本的按钮JButton() 成员方法

void setSize(int w, int h);设置按钮的宽高大小void setLocation(int x, int y);设置按钮的坐标void setBounds(int x, int y, int w, int h);上面两个方法的结合和窗体相关操作

窗体对象.setLayout(null);------------> 取消窗体默认布局
**
**
窗体对象.add(按钮对象名) ------------------>把按钮加入窗体中
JLabel();显示文本或图像类

构造方法:

JLabel(String text);创建指定的文本添加图片时,不能直接加路径,直接使用字符串路径会识别成text文本
需要使用-----ImageIcon(String filename); 的构造方法
例子:
  1. ImageIcon img = new ImageIcon("D\\img\\demo.png"); // 使用转义符\定义完整路径
  2. JLabel jl = new JLabel(img);   // 将图片加入
复制代码
成员方法:

与其按钮的成员方法
void setBounds(int x, int y, int width, int height):设置位置和大小
JTextField(); 文本输入框

构造方法

JTextField(String text);文本输入框,有文本默认在输入框里显示JPassowrdFIeld();密码输入框

构造方法:

JPassowrdFIeld(String text);密码输入框,有文本默认在输入框里显示成员方法

void getText();获取输入框文本内容监听事件AcationEvent();


  • 事件源:事件发生的地方。可以是按钮,窗体,图片等
  • 事件:发生了什么事情。例如:鼠标点击事件,键盘按下事件等 事件绑定:把事件绑定到事件源上,当发生了某个事件,则触发对应的处理逻辑 事件源对象. addXXXListener(事件);
ActionEvent();构造方法----用于传递事件,为组件使用的addActionListener();方法接受此类事件的addActionListener()对象
  1. 要添加事件的对象名.addActionListener(new ActionListener() { // 这里使用的为匿名类写法
  2. ​                @override
  3. ​                public void cationPerformed(ActionEvent e){  // 重写该方法,
  4. ​                      事件触发代码
  5. ​   
  6. ​                      }
  7. });
复制代码
低级事件

低级事件是指基于组件和容器的事件,当一个组件上发生特定动作,则触发了低级(组件)事件。
(1)ComponentEvent组件事件:组件尺寸变化、移动。
(2)ContainerEvent容器事件:  组件增加、移动。
(3)WindowEvent窗口事件:  包括用户点击了关闭按钮,窗口得到与失去焦点,窗口最小化等。
(4)FocusEvent焦点事件:  焦点的获得和丢失。
(5)KeyEvent键盘事件:   键按下、释放。
(6)MouseEvent鼠标事件:  包括鼠标按下,鼠标释放,鼠标点击等。
这里不一一列举了
高级事件(语义事件)

高级事件可以不和特定的动作相关联,该类事件具有一般性,取决于触发此事件的含义。
(1)ActionEvent动作事件:对应一个动作事件,它不代表一个特定的动作,而是一种一般性动作(语义)。如按钮按下、JTextField中按Enter键。
(2)AdjustmentEvent调节事件:在滚动条上移动滑块以调节数值。
(3)ItemEvent项目事件:选择项目,不选择“项目改变”。
(4)TextEvent文本事件:文本对象改变。
常用事件处理类

常用组件事件类主要包括:

  • 操作事件类ActionEvent
  • 选项事件类ItemEvent
  • 文本事件类TextEvent
  • 窗口事件类WindowEvent
  • 鼠标事件类MouseEvent
  • 按键事件类KeyEvent

事件处理类
事件源产生事件的类类型ButtonActionEventCheckboxActionEvent、ItemEventComponentComponentEvent、FocusEvent、KeyEvent、MouseEventMenuItemActionEventScrollbarAdjustmentEventTextFieldActionEventTextAreaActionEventWindowWindowEvent
更多的部分可以参考java手册

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表