`
lg_asus
  • 浏览: 191889 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

AbstractAction

阅读更多
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class AbstractActionDemo1 extends JFrame {
	JTextArea theArea = null;
	ToolBarAction pushAction = null;
	
	public AbstractActionDemo1(){
		super("AbstractAction");
		theArea = new JTextArea();
		theArea.setEditable(true);
		this.getContentPane().add(new JScrollPane(theArea));
		
		
		pushAction = new ToolBarAction("按我",null);
		
		JMenuBar menuBar = buildJMenuBar();
		menuBar.setOpaque(true);
		JToolBar toolBar = buildJToolBar();
		this.getContentPane().add(toolBar,BorderLayout.NORTH);
		this.setJMenuBar(menuBar);
		this.setVisible(true);
		this.setBounds(new Rectangle(200,200,400,200));
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public static void main(String...args){
		new AbstractActionDemo1();
	}
	
	public JMenuBar buildJMenuBar(){
		JMenu fileMenu = new JMenu("File");
		fileMenu.setMnemonic('F');
		fileMenu.add(pushAction);
		JMenuBar menuBar = new JMenuBar();
		menuBar.add(fileMenu);
		return menuBar;
	}
	
	public JToolBar buildJToolBar(){
		JToolBar toolBar = new JToolBar();
		toolBar.add(pushAction);
		toolBar.setFloatable(true);
		return toolBar;
		
	}
	
	class ToolBarAction extends AbstractAction{
		public ToolBarAction(String name,Icon icon){
			super(name,icon);
		}
		@Override
		public void actionPerformed(ActionEvent e){
			theArea.append("這是Action的好處\n");
		}
	}
}



AbstractAction是一個抽象類,實現Action接口,而Action接口又繼承了ActionListener接口,因此AbstractAction具有監聽ActionEvent的功能,用戶可以重寫actionPerformed()來處理ActionEvent事件。
JToolBar JMenu JPopupMenu都具有add(Action a)的方法,因此可以利用相同的AbstractAction類構造出不同的組件。
參考:深入淺出Java Swing程序設計
分享到:
评论

相关推荐

    一个GUI程序示例

    1. **AbstractAction类**:此程序使用了`AbstractAction`类作为自定义动作的基础类。`AbstractAction`是Swing框架提供的抽象类,用于封装用户界面上某个操作的行为。通过继承`AbstractAction`并重写其方法(如`...

    java pdf 查看器

    Action printAction = new AbstractAction("Print...", getIcon("gfx/print.gif")) { public void actionPerformed(ActionEvent evt) { doPrint(); } }; Action closeAction = new AbstractAction("Close") {...

    java图形编程:Action接口(Swing新增功能)专题借鉴.pdf

    一般不直接实现 Action 接口,而是使用继承自 Action 的抽象类 AbstractAction,该类的实现了 Action 接口中的一般方法,而且保留了 actionPerformen 方法留给用户实现。 5. 使用 Action 的步骤 使用 Action 的...

    Struts2、Spring和Hibernate应用实例.doc

    - **AbstractAction类**:在Struts2中,Action类无需继承特定的类或实现特定的接口,但在实际开发中通常会继承`ActionSupport`类。建立一个抽象基类`AbstractAction`,并重写`execute()`方法,可以提高代码的复用性...

    java图形编程:Action接口(Swing新增功能)专题[定义].pdf

    在使用Action接口时,通常不直接实现Action接口,而是使用继承自Action的抽象类AbstractAction,该类实现了Action接口中的大多数方法,并保留了actionPerformed方法留给用户实现。 使用Action的步骤包括继承...

    java项目_吃豆豆_源码及文档

    内部类 private class RightListenerImpl extends AbstractAction 内部类 - 向右按键事件。 private class DownListenerImpl extends AbstractAction 内部类 - 向下按键事件。 private class DownListenerImpl ...

    SSH三大框架应用实例

    public abstract class AbstractAction extends ActionSupport { // 可以在这里定义所有Action类公用的方法和属性 // 例如:初始化方法、错误处理等 } ``` #### 四、具体实现 接下来,我们将详细介绍如何使用...

    Java程序开发教学课件:12GUI程序设计与Applet2.pptx

    为了方便,我们通常使用已经实现了大部分Action接口方法的AbstractAction类作为基类,重写actionPerformed()方法来实现自定义的行为。 在实际编程中,我们可以创建一个TextAction类继承自AbstractAction,然后在...

    窗体按钮事件

    Swing提供了`AbstractAction`类,它不仅是一个`ActionListener`,还允许设置动作名称、图标等属性。你可以创建`AbstractAction`的实例,然后将其添加到按钮上: ```java JButton button = new JButton(new ...

    struts2 + spring2 + hibernate3 .pdf

    根据提供的文件信息,本文将详细解析“Struts2 + Spring2 + Hibernate3”技术栈的集成与应用。本文主要从项目准备、环境...此外,通过自定义 `AbstractAction` 类和 `Pager` 类,进一步提高了项目的可复用性和扩展性。

    Struts2、Spring和Hibernate应用实例

    为了便于后续的开发工作,我们首先定义一些基础的公共类,如`AbstractAction`类,用于被其他Action类继承。 **AbstractAction类** Struts2和Struts1.x的一个显著差异在于Struts2采用了Pull-MVC架构,这意味着...

    计算器_j2se项目源码及介绍

    内部类 private class ButtonListener extends AbstractAction 按钮事件。包括+、-、*、/、1/x、数字等按钮事件。 此类继承AbstractAction 类名称 CalculateButton 类描述 定制自己的按钮类。练习自己定制按钮。...

    SSH2完整典型配置实例

    - 在Struts2中,通常会定义一个基础的Action类,如`AbstractAction`,其他具体的Action类继承自这个基础类。 - 这种设计模式有利于代码复用和统一处理某些通用逻辑。 #### 特性 - **无需继承特定类**:与Struts1.x...

    2021-2022计算机二级等级考试试题及答案No.3843.docx

    1. 动作时间监听器的实现方式:在Java Swing编程中,可以有两种方式实现动作事件监听器,一是实现`ActionListener`接口并重写`actionPerformed`方法,二是继承`AbstractAction`或`ActionAdapter`类。但题目中提到的`...

    java俄罗斯方块

    根据提供的文件信息,我们可以分析出该Java代码片段与一个名为“BuyEquipAction”的类有关,这个类继承自`AbstractAction`。此代码片段是用于处理用户购买装备逻辑的一部分,涉及到了参数验证、权限检查以及资源消耗...

    java 记事本

    - 定义了一系列的`AbstractAction`子类,如`NewAction`、`OpenAction`等,每个子类覆盖了`actionPerformed`方法以执行相应的操作。 - 例如,在`NewAction`类中,`actionPerformed`方法通过设置一个新的`...

    Struts2 Spring和Hibernate应用实例

    1. **AbstractAction类**:在Struts2中,尽管Action类理论上无需继承特定的类,但在实际开发中,继承`ActionSupport`类并重写`execute()`方法是一种常见做法。通过创建一个抽象的`AbstractAction`类,我们可以定义...

Global site tag (gtag.js) - Google Analytics