java中的侦听器有什么作用?什么是java侦听器
今天给各位分享java中的侦听器有什么作用的知识,其中也会对什么是java侦听器进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
java action类的作用
public interface Actionextends ActionListener
Action接口提供 ActionListener接口的一个有用扩展,以便若干控件访问相同的功能。
除了 ActionListener接口定义的 actionPerformed
方法之外,此接口还允许应用程序在一个位置定义:
描述函数的一个或多个文本字符串。这些字符串可用于显示按钮的立体文本、在菜单项中设置文本等等。
描述函数的一个或多个图标。这些图标可用于菜单控件中的图像,或者用于更复杂用户界面中的合成项。
功能的启用/禁用状态。应用程序可以禁用实现此接口的函数,而不必分别禁用菜单项和工具栏按钮。所有为侦听状态更改而注册为侦听器的组件都将禁止为该项生成事件,并相应地修改显示。
可以将此接口添加到现有类中,或者用它创建一个适配器(通常通过子类化 AbstractAction来实现)。然后可以将
Action对象添加到多个可感知 Action的容器中,并连接到可容纳
Action的组件。然后可以通过调用 Action对象的 setEnabled
方法立刻激活或取消激活 GUI控件。
注意,Action实现在存储方面的开销比典型的 ActionListener
要高,但后者不具有集中控制功能和广播属性更改的优点。因此,应该注意只在需要这些优点的地方使用 Action,在别处使用
ActionListener即可。
支持 Action的 Swing组件
许多 Swing的组件都具有 Action属性。在组件上设置 Action
时,会发生以下几种情况:
Action被作为 ActionListener添加到组件。
组件配置自身的某些属性以匹配 Action。
组件在 Action上安装 PropertyChangeListener,这样组件可更改其属性以反映 Action属性中的更改。
什么是java侦听器
1、监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated(HttpSessionEvent se)方法,这样
就可以给在线人数加1。
2、常用的监听接口有以下几个:
1)ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性。
2)、ServletContextListener监听ServletContext。当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。
HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发session Created(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed(HttpSessionEvent se)方法。
4)HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se)方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se)方法。
3、参考样例example:随服务器启动
<web-app>
<listener>
<listener-class>com.tb.listener.CountStartListener</listener-class>
</listener>
package com.tb.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
import com.tb.timertask.DoCountTask;
public class CountStartListener extends HttpServlet implements ServletContextListener
{
private static final long serialVersionUID= 1824920962239905170L;
public CountStartListener()
{
// TODO Auto-generated constructor stub
}
public void contextDestroyed(ServletContextEvent arg0)
{
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent arg0)
{
DoCountTask.dotask();
java中接口ListSelectionListener有什么作用
1.ListSelectionListioner本身很容易懂,就是在列表被鼠标选中时触发事件。
鼠标按下会响应一次,鼠标释放又会响应一次,因此一次鼠标的点击会有两次事件响应(按下和释放)。前者的事件属性中getValueIsAdjusting()=true,后者是false。因此,可以通过判断getValueIsAdjusting()来区别鼠标按下和释放,进行不同的操作。
用键盘的上下键选取时,只有一次事件响应。具体的可以参考java api。
2.Listener机制,这个比较重要。简单的说就是某个对象支持有外部对象监听其本身的变化,并在变化发生时通知外部监听对象;外部监听对象根据变化的事件来进行后续处理。
如你列举的这个Listener,就是在列表被选中时会触发通知事件,告诉所有注册监听的外部对象,并将相关参数告知这些监听对象,外部监听对象可以进行后续操作。
这个在java里面是个很重要的概念,也是一个不容易理解的概念,建议你可以找点这方面的书来吃透。
希望对你有所帮助!
java记事本代码注释
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class tt
extends Frame
implements ActionListener{
static tt frm= new tt();
//创建一个菜单栏
static MenuBar menubar= new MenuBar();
//创建一个下拉式菜单组件——"文件"
static Menu menu1= new Menu("文件");
//创建一个下拉式菜单组件——"关于"
static Menu menu2= new Menu("关于");
//创建一个菜单的所有项——"打开"
static MenuItem item1= new MenuItem("打开");
//创建一个菜单的所有项——"保存"
static MenuItem item2= new MenuItem("保存");
//创建一个菜单的所有项——"关于我们"
static MenuItem item3= new MenuItem("关于我们");
//FileDialog类显示一个对话框窗口,用户可以从中选择文件。
static FileDialog dia1= new FileDialog(frm,"打开");
//FileDialog.SAVE此常量值指示文件对话框窗口的作用是查找要写入的文件。
static FileDialog dia2= new FileDialog(frm,"保存", FileDialog.SAVE);
//创建一个文本区
static TextArea txa= new TextArea();
//创建一个窗口事件对象
static WinLis wlis= new WinLis();
public static void main(String agrs[]){
//创建一个边框布局
BorderLayout br= new BorderLayout();
//设置Frame的title
frm.setTitle("小记事本");
/*将下拉式菜单menu1、menu2添加到菜单栏中*/
menubar.add(menu1);
menubar.add(menu2);
/*将菜单item1、item2添加到下拉式菜单menu1中,将菜单item3添加到下拉式菜单menu2中*/
menu1.add(item1);
menu1.add(item2);
menu2.add(item3);
/*为item1、item2、item3添加指定的动作侦听器,以从此菜单项接收动作事件*/
item1.addActionListener(frm);
item2.addActionListener(frm);
item3.addActionListener(frm);
//将文本去txa添加到Frame中
frm.add(txa);
//将此窗体的菜单栏设置为指定的menubar菜单栏。
frm.setMenuBar(menubar);
//调整Frame组件的大小宽800高650
frm.setSize(800, 650);
//显示组件
frm.setVisible(true);
/*为组件添加窗口事件*/
frm.addWindowListener(wlis);
frm.addWindowListener(wlis);
}
/*窗口事件的实现,在关闭窗口的同时关闭运行程序*/
static class WinLis
extends WindowAdapter{
public void windowClosing(WindowEvent e){
frm.dispose();
}
}
public void actionPerformed(ActionEvent e){
//获取当前点击的菜单对象,getSource()返回最初发生 Event的对象。
MenuItem item=(MenuItem) e.getSource();
if(item== item1){
dia1.setVisible(true);
/*getDirectory()获取dia1对话框的目录,getFile()获取dia1对话框的选定文件*/
String fname= dia1.getDirectory()+ dia1.getFile();
try{
//创建一个文件输入字节流
FileInputStream fi= new FileInputStream(fname);
/*fi.available()返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数*/
byte ba[]= new byte[fi.available()];
//从此输入流中将最多ba.length个字节的数据读入到一个byte数组中
fi.read(ba);
//将值赋到文本区中(new String(ba)将字符转换成字符串).
txa.setText(new String(ba));
//关闭输入流
fi.close();
}
catch(IOException ioe){}
;
}
if(item== item2){
dia2.setVisible(true);
//getDirectory()获取dia2对话框的目录
String fname2= dia2.getDirectory();
//dia2.getFile()获得dia2对话框中的选定文件,并为其拼接上后缀.txt
File file= new File(dia2.getFile()+".txt");
//获得文本区中的内容
String s= txa.getText();
try{
//创建一个文本写入字符输出流,FIleWriter用来写入字符文件的便捷类
BufferedWriter out= new BufferedWriter(new FileWriter(fname2+ file));
//写入
out.write(s);
//关闭流
out.close();
}
catch(Exception ioe){
ioe.printStackTrace();
}
}
}
}
关于选项帮你添上了(事件监听也加上了),具体要实现什么功能,自己看着加吧!
好了,文章到这里就结束啦,如果本次分享的java中的侦听器有什么作用和什么是java侦听器问题对您有所帮助,还望关注下本站哦!