swing-基础Event事件1

概述

swing的事件不像js的事件那么简单,只需要记住几个click dbclick change focus blur 等等那样. 它有比较复杂的事件体系构成, 不同分类的组件拥有不同的事件模型
每个人对每一种语言的理解和学习,都是从不同的维度,就像我先入手的html一样, 喜欢从元素, 样式 ,事件,自定义组件 等方向由浅至深的去理解.
如果想系统的学习一种语言, 更扎实的应该算书籍. 可惜的是,在swing方面,没有适合自己学习习惯的博客指引方向.


曙光

意外的读到David Flanagan 写的Nutshell( 快速入门) , 很符合系统对一些语言的学习( 菜鸟教程那样的风格类似,但是比较有深度) .
简单的几张图和api表格把 swing的 Event 轮廓描述的很清楚

JFC in a Nutshell

在这里插入图片描述

清晰的描述了Event API的架构图

在这里插入图片描述

列举了常用的listerner

在这里插入图片描述

Swing 继承AWT 的事件 使用的listener 及方法名称 ,分别应用在那些基础组件之上

Event ListenerListener MethodsRegistered on
ActionListener

actionPerformed()

AbstractButton, Button, ButtonModel, ComboBoxEditor, JComboBox, JFileChooser, JTextField, List, MenuItem, TextField, Timer

AdjustmentListener

adjustmentValue-

Adjustable,

Changed()

JScrollBar, Scrollbar

ComponentListener

componentHidden(), componentMoved(), componentResized(), componentShown()

Component

ContainerListener

componentAdded(), componentRemoved()

Container

FocusListener

focusGained(), focusLost()

Component

ItemListener

itemStateChanged()

AbstractButton, ButtonModel, Checkbox, CheckboxMenuItem, Choice, ItemSelectable, JComboBox, List

KeyListener

keyPressed(), keyReleased(), keyTyped()

Component

MouseListener

mouseClicked(), mouseEntered(), mouseExited(), mousePressed(), mouseReleased()

Component

MouseMotionListener

mouseDragged(), mouseMoved()

Component

TextListener

textValueChanged()

TextComponent

WindowListener

windowActivated(), windowClosed(), windowClosing(), windowDeactivated(), windowDeiconified(), windowIconified(), windowOpened()

Window

swing特有的Listerner 及它的基础组件, 用在那些方法

Event ListenerListener MethodsRegistered on
AncestorListener

ancestorAdded(), ancestorMoved(), ancestorRemoved()

Action, JComponent

CaretListener

caretUpdate()

JTextComponent

CellEditorListener

editingCanceled(), editingStopped()

CellEditor,

ChangeListener

stateChanged()

AbstractButton, BoundedRangeModel, ButtonModel, JProgressBar, JSlider, JTabbedPane, JViewport, MenuSelectionManager, SingleSelectionModel

HyperlinkListener

hyperlinkUpdate()

JEditorPane

InternalFrameListener

internalFrame- Activated (), internalFrameClosed(), internalFrameClosing()internalFrame- Deactivated(), internalFrame- Deiconified(), internalFrame- Iconified()internalFrameOpened()

ListDataListener

contentsChanged(), intervalAdded(), intervalRemoved()

AbstractListModel, ListModel

ListSelectionListener

valueChanged()

JList, ListSelectionModel

MenuDragMouseListener

menuDragMouseDragged(), menuDragMouseEntered(), menuDragMouseExited(), menuDragMouseReleased()

JMenuItem

MenuKeyListener

menuKeyPressed(), menuKeyReleased(), menuKeyTyped()

JMenuItem

MenuListener

menuCanceled(), menuDeselected(), menuSelected()

JMenu

PopupMenuListener

popupMenuCanceled(),

JPopupMenu

popupMenuWillBecome-
Invisible(),
popupMenuWillBecome-
Visible()
TreeExpansionListener

treeCollapsed(), treeExpanded()

JTree

TreeSelectionListener

valueChanged()

JTree

结语

如果在GUI界面的语言上, 也可以像h5中ElemetUI ant-react-desinger layer-ui 等那样有更别样和细致的api ,那应该是程序员的幸福!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 1/19 页 1.1 应用 Java Swing GUI 组件技术实现课程选课系统 GUI 窗口(第 1 部分) 1.1.1 实现选课系统的主窗口 SystemMainWindow 的 UI 界面 1、添加一个主窗口 类名称为 SystemMainWindow,包名称为 com.px1987.course.ui 将出现窗口界面的创建结果。 2、在主窗口内添加 5 个功能按钮 (1)添加 JButton 组件 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 2/19 页 (2)重复添加 5 个 JButton 组件 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 3/19 页 3、分别设置 5 个按钮的属性 (1)提示文字改变为如下的文字信息 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 4/19 页 (2)改变各个按钮的对象名称以方便后面的编程实现 5 个按钮的对象名称方便为: 1) 系统注册按钮:systemRegisterButton 2) 系统登录按钮:systemLoginButton 3) 在线选课按钮:selectCourseButton 4) 退选课程按钮:removeCourseButton 5) 退出系统按钮:exitSystemButton (3)修改后的结果如下 4、为 5 个按钮添加事件响应 (1)Action 事件 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 5/19 页 (2)分别创建出 5 个不同的事件响应方法 5、编程 5 个不同按钮的事件响应方法的功能实现代码 StudentManageInter oneStudentManage=null; CourseManageInter oneCourseManage=null; public SystemMainWindow() { initComponents(); /** * 创建 StudentManageImple 和 CourseManageImple 的对象实例 */ oneStudentManage=new StudentManageImple(); 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 6/19 页 oneCourseManage=new CourseManageImple(); } /** 退出系统按钮的事件响应 */ private void exitSystemButtonActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); System.exit(0); } /** 退选课程按钮的事件响应 */ private void removeCourseButtonActionPerformed( java.awt.event.ActionEvent evt) { oneCourseManage.removeOneCourse(); } /** 在线选课按钮的事件响应 */ private void selectCourseButtonActionPerformed( java.awt.event.ActionEvent evt) { oneCourseManage.addOneCourse(); } /** 系统登录按钮的事件响应 */ private void systemLoginButtonActionPerformed(java.awt.event.ActionEvent evt) { oneStudentManage.systemLogin(); 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 7/19 页 } /** 系统注册按钮的事件响应 */ private void systemRegisterButtonActionPerformed(java.awt.event.ActionEvent evt) { oneStudentManage.systemRegister(); } 6、测试主窗口内的"退出系统"按钮的正确性 点击"退出系统"按钮后,将关闭主窗口,同时退出本系统程序。 1.1.2 课程选课系统注册窗口的 UI 实现 1、打开 Form 设计器 (1)设置包名称为 com.px1987.course.ui,类名称为 StudentRegisterWin

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值