首页编程java编程java action什么意思?java action类的作用

java action什么意思?java action类的作用

编程之家2023-10-1382次浏览

大家好,关于java action什么意思很多朋友都还不太明白,今天小编就来为大家分享关于java action类的作用的知识,希望对各位有所帮助!

java action什么意思?java action类的作用

Java中的actionlistener是什么

actionlistener字面上理解就是动作监听器。\x0d\x0a它是一个接口,在实现此接口的类中,你可以给需要关注其动作的组件(如Button)添加监听器(addActionListener(this);),之后在事件处理方法(public void actionPerformed(ActionEvent event){})中,对每个事件进行不同处理。\x0d\x0a给你个例子吧,是我自己写的一个记事本:\x0d\x0aimport java.io.*;\x0d\x0aimport java.awt.event.*;\x0d\x0aimport javax.swing.*;\x0d\x0apublic class MainClass extends JFrame implements ActionListener{\x0d\x0a int width= 500,height= 400;\x0d\x0a JPanel panel;\x0d\x0a JMenuBar bar;\x0d\x0a JMenu fileMenu,editMenu,helpMenu;\x0d\x0a JMenuItem打开O,新建N,保存S,另存A,剪切T,复制C,粘贴P,关于A;\x0d\x0a JTextArea textArea= null;\x0d\x0a File tempFile= null;\x0d\x0a public MainClass(){//构造方法\x0d\x0a setTitle("TextEdit");\x0d\x0a setSize(width,height);\x0d\x0a panel=(JPanel)getContentPane();\x0d\x0a bar= new JMenuBar();\x0d\x0a fileMenu= new JMenu("文件F");\x0d\x0a fileMenu.setMnemonic('F');\x0d\x0a editMenu= new JMenu("编辑E");\x0d\x0a editMenu.setMnemonic('E');\x0d\x0a helpMenu= new JMenu("帮助H");\x0d\x0a helpMenu.setMnemonic('H');\x0d\x0a打开O= new JMenuItem("打开O");\x0d\x0a打开O.setMnemonic('O');\x0d\x0a新建N= new JMenuItem("新建N");\x0d\x0a新建N.setMnemonic('N');\x0d\x0a保存S= new JMenuItem("保存S");\x0d\x0a保存S.setMnemonic('S');\x0d\x0a另存A= new JMenuItem("另存A");\x0d\x0a另存A.setMnemonic('A');\x0d\x0a剪切T= new JMenuItem("剪切C");\x0d\x0a剪切T.setMnemonic('t');\x0d\x0a复制C= new JMenuItem("复制C");\x0d\x0a复制C.setMnemonic('C');\x0d\x0a粘贴P= new JMenuItem("粘贴P");\x0d\x0a粘贴P.setMnemonic('P');\x0d\x0a关于A= new JMenuItem("关于A");\x0d\x0a关于A.setMnemonic('A');\x0d\x0a fileMenu.add(打开O);\x0d\x0a fileMenu.add(新建N);\x0d\x0a fileMenu.add(保存S);\x0d\x0a fileMenu.add(另存A);\x0d\x0a bar.add(fileMenu);\x0d\x0a editMenu.add(剪切T);\x0d\x0a editMenu.add(复制C);\x0d\x0a editMenu.add(粘贴P);\x0d\x0a bar.add(editMenu);\x0d\x0a helpMenu.add(关于A);\x0d\x0a bar.add(helpMenu);\x0d\x0a textArea= new JTextArea();\x0d\x0a panel.add("North",bar);\x0d\x0a panel.add("Center", textArea);\x0d\x0a打开O.addActionListener(this);\x0d\x0a新建N.addActionListener(this);\x0d\x0a保存S.addActionListener(this);\x0d\x0a另存A.addActionListener(this);\x0d\x0a剪切T.addActionListener(this);\x0d\x0a复制C.addActionListener(this);\x0d\x0a粘贴P.addActionListener(this);\x0d\x0a关于A.addActionListener(this);\x0d\x0a setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\x0d\x0a setVisible(true);\x0d\x0a}\x0d\x0a public void actionPerformed(ActionEvent event){//处理事件\x0d\x0a if(event.getSource()==打开O){//处理打开\x0d\x0a JFileChooser jfc= new JFileChooser();\x0d\x0a jfc.showOpenDialog(panel);\x0d\x0a tempFile= jfc.getSelectedFile();\x0d\x0a FileReader fis;\x0d\x0a try{\x0d\x0a fis= new FileReader(tempFile);\x0d\x0a textArea.read(fis,null);\x0d\x0a textArea.setEditable(true);\x0d\x0a}catch(Exception ex){ex.printStackTrace();}\x0d\x0a}\x0d\x0a if(event.getSource()==新建N){//处理新建\x0d\x0a textArea.setEditable(true);\x0d\x0a textArea.setText(null);\x0d\x0a}\x0d\x0a if(event.getSource()==保存S){//处理保存\x0d\x0a if(tempFile== null){\x0d\x0a JFileChooser jfc= new JFileChooser();\x0d\x0a jfc.showSaveDialog(panel);\x0d\x0a tempFile= jfc.getSelectedFile();\x0d\x0a try{\x0d\x0a FileWriter fos= new FileWriter(tempFile);\x0d\x0a textArea.write(fos);\x0d\x0a}catch(Exception ex){ex.printStackTrace();}\x0d\x0a}\x0d\x0a else{\x0d\x0a try{\x0d\x0a FileWriter fos= new FileWriter(tempFile);\x0d\x0a textArea.write(fos);\x0d\x0a}catch(Exception ex){ex.printStackTrace();}\x0d\x0a}\x0d\x0a}\x0d\x0a if(event.getSource()==另存A){//处理另存\x0d\x0a JFileChooser jfc= new JFileChooser();\x0d\x0a jfc.showSaveDialog(panel);\x0d\x0a tempFile= jfc.getSelectedFile();\x0d\x0a try{\x0d\x0a FileWriter fos= new FileWriter(tempFile);\x0d\x0a textArea.write(fos);\x0d\x0a}catch(Exception ex){ex.printStackTrace();}\x0d\x0a}\x0d\x0a if(event.getSource()==剪切T){//处理剪切\x0d\x0a textArea.cut();\x0d\x0a}\x0d\x0a if(event.getSource()==复制C){//处理复制\x0d\x0a textArea.copy();\x0d\x0a}\x0d\x0a if(event.getSource()==粘贴P){//处理粘贴\x0d\x0a textArea.paste();\x0d\x0a}\x0d\x0a if(event.getSource()==关于A){//处理关于\x0d\x0a textArea.setText("Manifest-Version: 1.0\n"+\x0d\x0a"Created-By: Libra_JL\n"+\x0d\x0a"QQ: 254791521\n");\x0d\x0a textArea.setEditable(false);\x0d\x0a panel.validate();\x0d\x0a validate();\x0d\x0a}\x0d\x0a}\x0d\x0a public static void main(String []args){//主函数\x0d\x0a new MainClass();\x0d\x0a}\x0d\x0a}

java action类的作用

public interface Actionextends ActionListener

Action接口提供 ActionListener接口的一个有用扩展,以便若干控件访问相同的功能。

java action什么意思?java action类的作用

除了 ActionListener接口定义的 actionPerformed

方法之外,此接口还允许应用程序在一个位置定义:

描述函数的一个或多个文本字符串。这些字符串可用于显示按钮的立体文本、在菜单项中设置文本等等。

java action什么意思?java action类的作用

描述函数的一个或多个图标。这些图标可用于菜单控件中的图像,或者用于更复杂用户界面中的合成项。

功能的启用/禁用状态。应用程序可以禁用实现此接口的函数,而不必分别禁用菜单项和工具栏按钮。所有为侦听状态更改而注册为侦听器的组件都将禁止为该项生成事件,并相应地修改显示。

可以将此接口添加到现有类中,或者用它创建一个适配器(通常通过子类化 AbstractAction来实现)。然后可以将

Action对象添加到多个可感知 Action的容器中,并连接到可容纳

Action的组件。然后可以通过调用 Action对象的 setEnabled

方法立刻激活或取消激活 GUI控件。

注意,Action实现在存储方面的开销比典型的 ActionListener

要高,但后者不具有集中控制功能和广播属性更改的优点。因此,应该注意只在需要这些优点的地方使用 Action,在别处使用

ActionListener即可。

支持 Action的 Swing组件

许多 Swing的组件都具有 Action属性。在组件上设置 Action

时,会发生以下几种情况:

Action被作为 ActionListener添加到组件。

组件配置自身的某些属性以匹配 Action。

组件在 Action上安装 PropertyChangeListener,这样组件可更改其属性以反映 Action属性中的更改。

java的Struts配置<Action attribute>是什么意思

1)应用前提,attribute只有在设置了name后才有意义。

2)attribute可以实现对象的重用,即如果设置了attribute属性,在创建actionform是,会先去查找相应的scope中是否有此对象,如果有,则重用,否则创建新的对象。

3)当你将创建的acitonForm保存到相应的scope中时,你想用一个更有意义的名字来访问它时,它就有意义了。

可是,看到"一个更有意义的名字的时候",我好像有点理解了

<action

attribute="newLoginForm"

name="loginForm"

type="loginAction"

scope="request"

path="/login">

在struts实例化actionform的时候,struts是根据attribute的值来查找并创建actionform,有两种情况:如果已经存在,那么从内存中取回;如果第一次实例化,那么创建,并放入内存。

org.apache.struts.util.RequestUtils中的源代码

public static Actionform createActionform(

HttpServletRequest request,

ActionMapping mapping,

ModuleConfig moduleConfig,

ActionServlet servlet){

............

............

String attribute= mapping.getAttribute();

......

Actionform instance= null;

HttpSession session= null;

if("request".equals(mapping.getScope())){

instance=(Actionform) request.getAttribute(attribute);

} else{

session= request.getSession();

instance=(Actionform) session.getAttribute(attribute);

}

................

................

}

如果没有配置attribute属性的话, struts才会从name属性里读出要创建的formbean的名字,并创建一下实例,看下边的源代码就知道了,呵呵.

org.apache.struts.config.ActionConfig

protected String attribute= null;public String getAttribute(){

//就是这里了.

if(this.attribute== null){

return(this.name);

} else{

return(this.attribute);

}

}public void setAttribute(String attribute){

if(configured){

throw new IllegalStateException("Configuration is frozen");

}

this.attribute= attribute;

}

OK,本文到此结束,希望对大家有所帮助。

足球王涛javajive什么意思,java学习起来简单吗