首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java常用事件监听器与实例分析

大家好哇,是灰小猿! 今天来和大家总结一下有关在进行JavaGUI编程时常用事件监听函数基本作用和功能。...在Java中常用两种事件监听器是“动作事件监听器”和“焦点事件监听器”。接下来和大家分别分享一下这两种常用事件监听机制。...在对某一个控件进行动作事件监听时候,一定要使用addActionListener()方法为该控件添加事件监听,否则就算对该控件写了触发事件,在没有为该控件添加监听单击该控件也还是没有用。...,如使用焦点事件监听器可以用于:当光标离开某一个事件源触发某个事件响应,或将焦点返回给该事件源。...在使用焦点事件监听器,需要注意以下几点: 使用该监听器需要实现FocusListener接口 该接口中重写focusLost()方法是在组件失去焦点时调用

2.4K10

JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener

当暂时丢失焦点组件另一个操作,比如释放Window或拖动滚动条间接结果一焦点变化事件发生。...例如,当窗口失去焦点,会发生一个临时焦点丢失事件。临时获得焦点事件发生在弹出菜单。 ?...请注意,当焦点从一个组件更改为另一个组件,第一个组件将触发焦点丢失事件,第二个组件将触发焦点获得事件。 从组合框菜单中选择一个选项。再次单击组合框。请注意,没有报告焦点事件。...只要用户操作相同组件,焦点就会停留在该组件单击打印焦点事件文本区域。什么也没有发生,因为使用setRequestFocusEnabled(false)使文本区域不可点击。...该演示通过在文本区域上调用setRequestFocusEnabled(false)来禁用文本区域单击焦点,同时保留其选项卡焦点功能。

4.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

Java-GUI编程之Swing组件

,而是为其他边框设置标题,创建该类对象,需要传入一个其他Border对象; ComoundBorder:用来组合其他两个边框,创建该类对象,需要传入其他两个Border对象,一个作为内边框,一个座位外边框...与 FileDialog 不同是 , JFileChooser 无须依赖于本地平台 GUI , 由 100%纯 Java 实现 , 在所有平台 具有完全相同行为,并可以在所有平台上具有相同外观风格...对 showConfirmDialog 所产生对话框,有如下几个返回值: YES OPTION: 用户 单击了 "是"按钮返回 。 NO OPTION: 用 户单击了"否"按钮返回 。...CANCEL OPTION: 用户单击了"取消"按钮返回 。 OK OPTION : 用户单击了"确定"按钮返回 。...CLOSED OPTION: 用户 单击了对话框右上角 " x" 按钮返回。

2.2K20

Java中屏幕共享

在本文中,将展示一种方法,该方法允许使用JxBrowser功能在不同 PC 运行两个 Java 应用程序之间实现屏幕共享。...第一个是带有按钮窗口。单击该按钮开始共享会话。第二个应用程序自动接收视频流并显示。还有一个停止屏幕共享按钮。...当流媒体开始捕获,我们将其屏幕视图作为视频流接收。为了显示,我们在接收器端使用内置 HTML5 视频播放器。打开两个浏览器窗口查看是否正常。该项目的源代码可在GitHub 获得。...streamer.html,可以在单击按钮直接从 Java 开始屏幕共享:JButton startSharingButton = new JButton("Share your screen");startSharingButton.addActionListener...结论在本文中,展示了如何在一个 Java 应用程序中共享屏幕并使用 JxBrowser 在另一个应用程序中显示创建了一个可以共享屏幕简单 JavaScript 应用程序。

1.8K20

如何在Swing组件中使用HTML

默认情况下,组件文本以一种字体和颜色显示,并且全部显示在一行。 可以分别通过调用组件setFont和setForeground方法来确定组件文本字体和颜色。...JFrame frame = new JFrame("HtmlDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);...: 单击启动按钮以使用Java™Web Start运行HtmlDemo(下载JDK 7或更高版本)。...在左侧文本区域中编辑HTML格式,然后单击“更改标签”按钮。右边标签显示结果。 从左侧文本区域中删除html标签。标签文本不再解析为HTML。...还请注意,当禁用按钮,不幸是,其HTML文本将保持黑色,而不是变为灰色。 (请参阅错误#4783068,以查看这种情况是否发生了变化。) 本节讨论了如何在普通非文本组件中使用HTML。

2.4K20

java swing一篇轻松学习(高考后可以自学)

方法名称 概述 getContentPane() 返回此窗体 contentPane 对象 getDefaultCloseOperation() 返回用户在此窗体单击“关闭”按钮执行操作 setContentPane...(Container contentPane) 设置 contentPane 属性 setDefaultCloseOperation(int operation) 设置用户在此窗体单击“关闭”按钮默认执行操作...) 设置按钮键盘快捷键,所设置快捷键在实际操作需要结合 Alt 键进行实现 void setPressedIcon(Icon icon) 设置按下按钮图标 void setSelectedIcon...(Icon icon) 设置选择按鈕图标 void setRolloveiicon(Icon icon) 设置鼠标移动到按扭区域图标 void setDisabledIcon(Icon icon...) 设置图标和文本水平对齐方式 void setEnable(boolean flag) 启用或禁用按扭 void setVerticalTextPosition(int textPosition)

9.3K10

java实现靠边隐藏窗口

大家好,又见面了,是全栈君。...说明: 由于个人精力有限,现将部分研究代码开源出来, 代码或思路有部分来源于网络,有些代码还没来得及整理, 如果您对这其中部分代码、思路整理出了一些文档,希望您能够联系,分享您成果 将在下一版中更新您提供一些文档...,让初始化为普通状态 private Point hiddenPoint; // 隐藏窗体,窗体位置 private Point visiblePoint; // 窗体处于显示状态位置...因为我们可以加大Insets以提高鼠标进入和离开灵敏度 frame.addWindowFocusListener(this); // 注册一个焦点侦听器到窗体...frame.moveToHidden(); } } public void windowGainedFocus(WindowEvent e) { // 得到焦点检查鼠标是不是在窗体

2.4K10

【干货】20K以上高薪Java必掌握基础知识点(二)

83、虽然Java 在程序结束自动关闭所有打开流,但是当我们使用完流,显式地关闭 任何打开流仍是一个良好习惯。...97、Java中JFrame setTitle 方法是用来设置窗口名字。 98、JFrame类创建对象是一个窗口容器,默认布局是 BorderLayout 布局。...107、使用 CardLayout 布局容器可以容纳多个组件,但实际同一刻容器只能从这些组件中选出一个来显示。...110、当用户与GUI 交互,比如移动鼠标、按下鼠标键、单击Button 按钮、在文本框内输入文本、选择菜单项或者关闭窗口,GUI 会接受到相应事件 。...113、只要用户单击JButton,就会触发一个ActionEvent 事件,该事件被监听器接收,方法 actionPerformed() 被执行。

1.4K71

Reactor深度探索 顶

但由于以上三个方法之间没有数据依赖关系,所以执行方式由串行调整为并行,能够达到性能提升效果。如果方法之间存在依赖关系,那么提升效果是否还会如此明显,并且如果确保它们执行循序。...,坐标(X : 130,Y : 120) 由打印内容可知,我们鼠标点击并不是main主线程来执行,说明它是一个异步Callback,而且是非阻塞当我们点击鼠标产生鼠标事件,没有任何线程会阻塞该线程执行...当我们关闭窗口时候,会打印如下内容 [线程 : AWT-EventQueue-0] 清除 jFrame... [线程 : AWT-EventQueue-0] 退出程序......该方法不得不等待任务执行完成,换言之,如果多个任务提交,返回多个Future逐一调用get()方法,将会依次blocking,任务执行从并行变成串行。...,相比于ParalleDataLoader并行执行,只需要3秒完成来说,非阻塞好处是让方法线程及时完成,让方法线程池可以及时释放。

89010

GridBagLayout 以及 GridBagConstraints 用法「建议收藏」

大家好,又见面了,是你们朋友全栈君。...GridBagLayout是一个灵活布局管理器,部件如果加入其中需借助GridBagConstraints,其中有若干个参数,解释如下: gridx/gridy:组件横纵坐标 gridwidth...ipady:组件间纵向间距 insets:当组件不能填满其格,通过 insets来指定四周(即上下左右)所留空隙 anchor:同样是当组件不能填满其格,通过 anchor来设置组件位置...insets —— 设置组件之间彼此间距。 它有四个参数,分别是,左,下,右,默认为(0,0,0,0)。 ipadx,ipady —— 设置组件间距,默认值为0。...GridBagLayout里各种设置都必须通过GridBagConstraints,因此当我们将GridBagConstraints参数都设置 好了之后,必须new一个GridBagConstraints

1.1K30

随机抽奖小程序_在线随机抽号小程序

大家好,又见面了,是你们朋友全栈君。 本实例使用随机数字生成5位抽奖号码,并显示在窗体5个文本框中。当用户单击”开始”按钮,将启动一个线程对象为5个文本框生成随机数字。...单击”抽奖”按钮,线程对象停止运行,并且将准确中奖号码显示在信息文本框中。 开发一个抽奖小工具实例。 (1)自定义文本框组件,把5个生成随机数文本框公共属性抽象定义到该文本框。...SwingConstants.CENTER); //设置文本居中对齐 setFont(numfont); //设置字体 setFocusable(false); //取消焦点...=null) //如果存在上一个线程对象 randomThread.stopLottery(); //停止 randomThread=new RandomNum(); //创建新线程对象 randomThread.start...=null) //如果存在线程对象 randomThread.stopLottery(); //停止 try { randomThread.join(); //等抽奖线程结束 } catch (

2.8K20

Java|系统登录功能设计与制作

解决方案 1 内容面板 所有组件都要布置在窗体内容面板,而登录模块内容面板使用了背景图片来美化窗体界面,这就需要继承SwingJPanel类来编写自己面板类,然后将该面板类作为窗体内容面板。...super.paintComponent(g); g.drawimage(img,0,0,this); // 以左上角为起点 } } 2 登录窗体 创建LoginDialog类,该类继承JFrame...catch(Exception e1){ e1.printStackTrace(); } // 显示窗体...在系统登录窗体密码文本框中添加了按键事件监听器,它在获取到密码文本框输入回车字符将执行登录事件。...此过程与单击登录按钮具有相同作用。也就是说,输完密码,用敲回车代替单击登录按钮。

1.2K20

Java课程设计【学生信息管理系统】

二、基本要求 实现一个功能简单学生信息管理系统,该系统具有按照账户名密码登录功能,登录,可以添加,删除,修改、查询(显示学生相片)学生信息,添加学生信息,要求能添加学生相片信息(实现相片文件上传和下载功能...X结束程序 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置JFrame可见 jf.setVisible(true); } public...“查询”按钮进行刷新,显示出修改信息,如下图所示: 5、删除 (1)在学生信息管理系统界面选中某一学生记录,单击“删除”按钮,弹出删除确认界面。...虽然这是一个小项目,但是能把做好也是有很大满足感。虽然一开始遇到很多问题,但自己都咬牙克服、迎难而上,每天都在钻研程序,然后将自己思想与同学们交流。...,这篇博客就是该课设设计报告,需要源码同学可以关注博公众号《萌新加油站》,回复:java学生系统,即可获得源码学习。

5.1K21

Java入门(17)-- 多线程

当执行一个线程程序时,就自动产生一个线程,方法正是在这个线程运行,当不再启动其他线程,该程序就为单线程程序。方法线程启动由Java虚拟机负责,程序员负责启动自己线程。...17.3 线程生命周期 出生状态就是线程被创建处于状态,在用户使用该线程实例调用start()方法之前线程都处于出生状态;当用户调用start()方法,线程处于就绪状态(又称为可执行状态),当线程得到系统资源就进入运行状态...当线程run()方法执行完毕,线程进入死亡状态。 虽然多线程看起来像同时进行,但事实在同一间点只有一个线程被执行,只是线程之间切换较快,所以才会使人产生线程是同时进行假象。...(width, height); frame.setVisible(true); } } 17.4.4 线程礼让 Thread类中提供了一种礼让方法,使用yield()方法表示,只是给当前正处于运行状态线程一个提醒...以火车站售票系统为例,在代码中判断当前票数是否大于0,如果大于0则执行将该票出售给乘客功能,但当两个线程同时访问这段代码(假如这时只剩下一张票),第一个线程将票售出,与此同时第二个线程也已经执行完成判断是否有票操作

50920

Java制作520表白代码——爱一个人需要理由吗?

✨博:命运之光 ✨专栏:Java经典程序设计 520表白日,每个人都期待着浪漫表白,而作为一名热爱编程程序员,决定用程序员方式来向你表达爱意。...在这一天,许多人会选择向心仪的人表白或者向自己伴侣表达爱意。 数字象征性:数字"520"具有象征性,代表着爱意和浪漫。成为了人们用于表达爱意和吸引他人关注独特符号。...总的来说,"520"作为表白日具有浪漫和特殊意义。提醒人们在这个特别的日子里关注爱情、表达情感,并创造美好回忆。无论是通过言语、行动还是通过编程,"520"是一个适合向心爱的人表白爱意日子。...btnok2.setFont(f); btnok2.setBounds(100,300,120,50);//170 p.add(btnok2); //创建第二个取消按钮组件...action4 action3 =new action4();//创建事件对象,这个是点击同意时候对象 //点击不同意跳出新窗口 btnok3

7310

疯踏java知识点-进阶精讲篇

void setPrice(int price) { this.price = price; } } Scanner基本使用 文本扫描程序,可以获取基本类型数据和字符串数据 当我们需要从控制台或文件中读取输入时...下面介绍几个常用 方法: next(): 读取并返回输入中下一个字符串,遇到空格或换行符停止读取。 nextInt(): 读取并返回输入中下一个整数。...System.out.println("请输入第一个数字:"); int First=sc.nextInt(); System.out.println("请输入第二个数字...,该图形表示可以显示在屏幕并且可以和 用户交互 JFrame 一个顶层窗口 构造方法 JFrame():构造一个最初不可见窗体 成员方法 void setVisible(...120,100,150,20); jf.add(numberFiled); //猜数字按钮 JButton guessButton=new JButton("

16520
领券