Java Action 动作

Java JFace教程-7.Action与工具栏开发 / 注册命令// 定义命令ID// 创建命令command.define("我的命令", "这是一个示例命令", null);创建和使用JFace Action处理用户交互设计和实现工具栏(ToolBar)与菜单(Menu)理解和应用命令模式与Handler机制为操作绑定快捷键和实现全局动作管理状态栏和提供用户反馈下一章将深入探讨JFace与Eclipse RCP整合开发,包括视图(View)、编辑器(Editor)、透视图(Perspective)和扩展点开发。 阅读详情

  Swing包提供了一种非常实用的机制来封装命令,并将它们连接到多个事件源,这就是Action接口。一个动作是一个封装下列内容的对象:

  × 命令的说明(一个文本字符串和一个可选图标);

  × 执行命令所需要的参数(例如,在列举的例子中请求改变的颜色)。

  Action接口包含下列内容:

    public void actionPerformed(ActionEvent e);
    public void setEnabled(boolean b);
    public boolean isEnabled();
    public void putValue(String key, Object value);
    public Object getValue(String key);
    public void addPropertyChangeListener(PropertyChangeListener listener);
    public void removePropertyChangeListener(PropertyChangeListener listener);

  actionPerformed方法是ActionListener接口中的一个:实际上,Action接口扩展于ActionListener接口,因此,可以在任何需要ActionListener对象的地方使用Action对象。

  setEnabled和isEnbaled两个方法允许启用或禁用这个动作,并检查这个动作当前是否启用。当一个连接到菜单或工具栏上的动作被禁用时,这个选项就会变成灰色。

  putValue和getValue两个方法允许存储和检索动作对象中的任意名/值。有两个重要的预定义字符串:Action.NAME和Action.SMALL_ICON,用于将动作的名字和图标存储到一个动作对象中:

    action.putValue(Action.NAME,"Blue");
    action.putValue(Action.SMALL_ICON,new ImageIcon("blue-ball.gif"));
 表1给出了所有预定义的动作表名称。

表1 预定义动作表名称
名称值
NAME动作名称,显示在按钮和菜单上
SMALL_ICON存储小图标的地方;显示在按钮、菜单项或工具栏中
SHORT_DESCRIPTION图标的简要说明;显示在工具提示中
LONG_DESCRIPTION图标的详细说明;使用在在线帮助中。没有Swing组件使用这个值
MNEMONIC_KEY快捷键缩写;显示在菜单项中
ACCELERATOR_KEY存储加速击键的地方;Swing组件不使用这个值
ACTION_COMMAND_KEY历史遗留;仅在旧版本的registerKeyboardAction方法中使用
DEFALUT常用的综合属性;Swing组件不使用这个值

  如果动作对象添加到菜单或工具栏上,它的名称和图标就会被自动地提取出来,并显示在菜单项或工具栏项中。SHORT_DESCRIPTION值变成了工具提示。

  addPropertyChangeListener和removePropertyChangeListener两个方法能够让其他对象在动作对象的属性发生变化时得到通告,尤其是菜单或工具栏触发的动作。例如,如果增加一个菜单,作为动作对象的属性变更监听器,而这个动作对象爱你个随后被禁用,菜单就会被调用,并将动作名称变为灰色。属性变更监听器是一种常用的构造形式,它是JavaBeans组件模型的一部分。

  需要注意,Action是一个接口,而不是一个类。实现这个接口的所有类都必须实现刚才讨论的7个方法。庆幸的是,有一个类实现了这个接口除actionPerformed方法之外的所有方法,它就是AbstractAction。这个类存储了所有名/值对,并管理着属性变更监听器。我们可以直接扩展AbstractAction类,并在扩展类中实现actionPerformed方法。

  下面构造一个用于执行改变颜色命令的动作对象。首先存储这个命令的名称、图标和需要的颜色。将颜色存储在AbstractAction类提供的名/值对表中。下面是ColorAction类的代码。构造器设置名/值对,而actionPerformed方法执行改变颜色的动作。

    public class ColorAction extends AbstractAction
    {
        public ColorAction(String name,Icon icon,Color c)
        {
            putValue(Action.NAME,name);
            putValue(Action.SMALL_ICON,icon);
            putValue(Action.SHORT_DESCRIPTION,"Set panel color to "+name.toLowerCase());
            putValue("color",c);
        }
        
        public void actionPerformed(ActionEvent event)
        {
            Color c = (Color)getValue("color");
            buttonPanel.setBackground(c);
        }
    }

  在测试程序中,创建了三个这个类的对象,如下所示:

        Action yellowAction = new ColorAction("Yellow",new ImageIcon("yellow-ball.gif"),Color.YELLOW);
        Action blueAction = new ColorAction("Blue",new ImageIcon("blue-ball.gif"),Color.BLUE);
        Action redAction = new ColorAction("Red",new ImageIcon("red-ball.gif"),Color.RED);

  接下来,将这个动作与一个按钮关联起来。由于JButton有一个用Action对象作为参数的构造器,所以实现这项操作很容易。

        buttonPanel.add(new JButton(yellowAction));        
        buttonPanel.add(new JButton(blueAction));
        buttonPanel.add(new JButton(redAction));

  构造器读取动作的名称和图标,为工具提示设置简要说明,将动作设置为监听器。

  最后,想要将这个动作对象添加到击键中,以便让用户敲击键盘命令来执行这项动作。为了将动作与击键关联起来,首先需要生成KeyStroke类对象。这是一个很有用的类,它封装了对键的说明。要想生成一个KeyStroke对象,不要调用构造器,而是调用KeyStroke类中的静态getKeyStroke方法:

        KeyStroke ctrlBKey = KeyStroke.getKeyStroke("ctrol B"); 
  为了能够理解下一个步骤,需要知道Keyborad focus的概念。用户界面中可以包含许多按钮、菜单、滚动栏以及其他的组件。当用户敲击键盘时,这个动作会被发送给拥有焦点的组件。通常具有焦点的组件可以明显地察觉到(但并不总是这样),例如,在Java观感中,具有焦点的按钮在按钮文本周围有一个细的矩形边框。用户可以使用TAB键在组件之间移动焦点。当按下SPACE键时,就点击了拥有焦点的按钮。还有一些键执行一些其他的动作,例如,按下箭头键可以移动滚动条。

  然而,在这里的示例中,并不希望将击键发送给拥有焦点的组件。否则,每个按钮都需要知道如何处理CTRL+Y、CTRL+B和CTRL+R这些组合键。

  这是一个常见的问题,Swing设计者给出了一种很便捷的解决方案。每个JComponent有三个输入映射(input maps),每一个映射的KeyStroke对象都与动作关联。三个输入映射对应着三个不同的条件。

表2 输入映射条件
标志激活条件
WHEN_FOCUSED当这个组件拥有键盘焦点时
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT当这个组件包含了拥有键盘焦点的组件时
WHEN_IN_FOCUSED_WINDOW当这个组件被包含在一个拥有键盘焦点组件的窗口中时

  击键处理将按照下列顺序检查这些映射:

  1)检查具有输入焦点组件的WHEN_FOCUSED映射。如果这个击键存在,将执行对应的动作。如果动作已启用,则停止处理。

  2)从具有输入焦点的组件开始,检查其父组件的WHEN_ANCESTOR_OF_FOCUSED_COMPONENT映射。一旦找到击键对应的映射,就执行对应的动作。如果动作已启用,将停止处理。

  3)查看具有输入焦点的窗口中的所有可视的和启用的组件,这个击键被注册到WHEN_IN_FOCUSED_WINDOW映射中。给这些组件(按照击键注册的顺序)一个执行对应动作的机会。一旦第一个启用的动作被执行,就停止处理。如果一个击键在多个WHEN_IN_FOCUSED_WINDOW映射中出现,这部分处理就可能会出现问题。

  可以使用getInputMap方法从组件中得到输入映射。例如:

        InputMap imap = buttonPanel.getInputMap(JComponent.WHEN_FOCUSED);
  WHEN_FOCUSED条件意味着在当前组件拥有键盘焦点时会查看这个映射。在这里的示例中,并不想使用这个映射。是某个按钮拥有输入焦点,而不是面板。其他的两个映射都能够很好地完成增加颜色改变击键的任务。在示例程序中使用的是WHEN_ANCESTOR_OF_FOCUSED_COMPONENT。

  InputMap不能直接地将KeyStroke对象映射到Action对象。而是先映射到任意对象上,然后由ActionMap类实现将对象映射到动作上的第2个映射。这样很容易实现来自不同输入映射的击键共享一个动作的目地。

  因而,每个组件都可以有三个输入映射和一个动作映射。为了将它们组合起来,需要为动作命名。下面是将键与动作关联起来的方式:

        imap.put(KeyStroke.getKeyStroke("ctrl Y"), "panel.yellow");
        ActionMap amap = buttonPanel.getActionMap();
        amap.put("panel.yellow",yellowAction);

  习惯上,使用字符串none表示空动作。这样可以轻松地取消一个键动作:

        imap.put(KeyStroke.getKeyStroke("ctrl C"),"none");
  警告:JDK文档提倡使用动作名作为动作键。我们并不认为这是一个好建议。在按钮和菜单项上显示的动作名,UI设计者可以随心所欲地进行更改,也可以将其翻译成多种语言。使用这种不牢靠的字符串作为查询键不是一种好的选择。建议将动作名与现实的名字分开。

  下面总结一下用同一个动作响应按钮、菜单项或击键的方式:

  1)实现一个扩展于AbstractAction类的类。多个相关的动作可以使用同一个类。

  2)构造一个动作类的对象。

  3)使用动作对象创建按钮或菜单项。构造器将从动作对象中读取标签文本和图标。

  4)为了能够通过击键触发动作,必须额外地执行几步操作。首先定位顶层窗口组件,例如,包含所有其他组件的面板。

  5)然后,得到顶层组件的WHEN_ANCESTOR_OF_FOCUS_COMPONENT输入映射。为需要的击键创建一个KeyStrike对象。创建一个描述动作字符串这样的动作键对象。将(击键、动作键)对添加到输入映射中。

  6)最后,得到顶层组件的动作映射。将(动作键,动作对象)添加到映射中。

  将按钮和击键映射到动作对象的完整程序代码如下:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ActionTest {

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            public void run() {
                ActionFrame frame = new ActionFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            }
        });
    }
}

class ActionFrame extends JFrame {

    public ActionFrame() {
        setTitle("ActionTest");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

        buttonPanel = new JPanel();

        // define actions
        Action yellowAction = new ColorAction("Yellow", new ImageIcon("yellow-ball.gif"), Color.YELLOW);
        Action blueAction = new ColorAction("Blue", new ImageIcon("blue-ball.gif"), Color.BLUE);
        Action redAction = new ColorAction("Red", new ImageIcon("red-ball.gif"), Color.RED);

        // add buttons for these actions
        buttonPanel.add(new JButton(yellowAction));
        buttonPanel.add(new JButton(blueAction));
        buttonPanel.add(new JButton(redAction));

        // add panel to frame
        add(buttonPanel);

        // associate the Y, B, and R keys with names
        InputMap imap = buttonPanel.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
        imap.put(KeyStroke.getKeyStroke("ctrl Y"), "panel.yellow");
        imap.put(KeyStroke.getKeyStroke("ctrl B"), "panel.blue");
        imap.put(KeyStroke.getKeyStroke("ctrl R"), "panel.red");

        // associate the names with actions
        ActionMap amap = buttonPanel.getActionMap();
        amap.put("panel.yellow", yellowAction);
        amap.put("panel.blue", blueAction);
        amap.put("panel.red", redAction);
    }

    public class ColorAction extends AbstractAction {

        public ColorAction(String name, Icon icon, Color c) {
            putValue(Action.NAME, name);
            putValue(Action.SMALL_ICON, icon);
            putValue(Action.SHORT_DESCRIPTION, "Set panel color to " + name.toLowerCase());
            putValue("color", c);
        }

        public void actionPerformed(ActionEvent event) {
            Color c = (Color) getValue("color");
            buttonPanel.setBackground(c);
        }
    }
    private JPanel buttonPanel;
    public static final int DEFAULT_WIDTH = 300;
    public static final int DEFAULT_HEIGHT = 200;
}

结果显示:


CTRL+Y:


CTRL+B:


CTRL+R:


美特CRM mcc_login.jsp存在SQL注入漏洞 MetaCRM 是一种现代化的客户关系管理(CRM)平台,旨在通过集成和自动化的方式帮助企业管理与客户的关系,提高销售和服务效率。MetaCRM 的功能和特性通常涵盖了多个领域,包括销售、营销、客户服务、数据分析和自动化工具。 阅读详情

相关推荐

别再纠结Dify了!实测对比RAGFlow和Dify,聊聊企业知识库到底该怎么选

本文深度对比了RAGFlow和Dify在企业知识库选型中的实际表现,从技术架构、性能指标、部署成本等多维度进行分析。RAGFlow在复杂文档处理和准确率方面表现突出,适合有专职技术团队的企业;而Dify则以低门槛和快速部署见长。文章提供了六维度评估法,帮助企业根据文档复杂度、准确率要求等技术指标做出明智选择。

weixin_30897233的博客 674

java中的action_浅析java中action的作用

正如早先指出的那样,action()并不是我们对所有事进行分类后自动为handleEvent()调用的唯一方法。有三个其它的被调用的方法集,如果我们想捕捉某些类型的事件(键盘、鼠标和焦点事件),因此我们不得不过载规定的方法。这些方法是定义在基础类组件里,所以他们几乎在所有我们可能安放在窗体中的组件中都是有用的。然而,我们也注意到这种方法在java中是不被支持的,同样尽管我们可能注意到继承代码利用了...

weixin_29023349的博客 1902

ROS实践(四)机器人SLAM建图(gmapping)

本文介绍了SLAM技术及其实现方法。SLAM(同步定位与地图构建)让机器人在未知环境中通过传感器数据自主定位并构建地图。文章详细讲解了激光雷达、RGBD相机等常用传感器,以及gmapping和map_server这两个ROS功能包的使用方法。重点阐述了SLAM建图实验步骤:配置gmapping节点参数、启动机器人仿真、运行gmapping节点、使用rviz可视化工具、通过键盘遥控机器人完成地图构建并保存。实验结果表明,该方法能有效实现机器人自主建图功能,为后续导航等应用奠定基础。

qq_1033275663的博客 4338

Action接口的使用

《》我们常常会遇到这样一个问题:很多组件都需要处理相同的事件 ; 比如,通常一个软件在设计时会因用户习惯, 产生不同的操作方式却能达到相同的功能,例如文书编辑器中,copy功能可能在菜单中出现, 也可能在工具栏上出现,甚至在快显菜单(Popup Menu)中出现,虽然出现的方式不一样, 但均能达到copy的功能.若以我们之前的事件处理方法,我们必须为每种出现方式实现copy功能,

favomj的博客 3306

PyQt5 + HFSS:给你的仿真脚本做个专属GUI界面(零基础搭建指南)

本文详细介绍了如何使用PyQt5为HFSS仿真脚本创建专属GUI界面,适合零基础用户快速上手。通过Python二次开发,实现参数可视化调整、进度实时监控等功能,大幅提升团队协作效率。文章涵盖环境配置、界面设计、HFSS集成到打包部署的全流程,是仿真工程师提升工作效率的实用指南。

weixin_42535720的博客 185

FUEL算法解读(一)——框架解读,思维导图可以很清晰看懂算法启动框架,已更新完,图太大放不上来链接在文末

一图看懂FUEL算法节点框架!!!

weixin_43793717的博客 2786

​SSH 框架学习Java中的Action、Dao、Service、Model-

​ SSH 框架学习之初识Java中的Action、Dao、Service、Model- ​

qq_46940224的博客 1001

常见js手撕题及算法总结

设计一个lazyMan,实现以下功能: LazyMan(‘Tony’); // Hi I am Tony LazyMan(‘Tony’).sleep(10).eat(‘lunch’); // Hi I am Tony // 等待了10秒… // I am eating lunch LazyMan(‘Tony’).eat(‘lunch’).sleep(10).eat(‘dinner’); // H...

没有名字适合我的博客 3177

java中的action是指什么_Struts2【开发Action】知识要点

前言前面Struts博文基本把Struts的配置信息讲解完了.....本博文主要讲解Struts对数据的处理Action开发的三种方式在第一次我们写开发步骤的时候,我们写的Action是继承着ActionSupport类的...为啥我们继承了ActionSupport类呢?下面我就会讲解到继承ActionSupport类我们来看一下ActionSupport干了什么:也就是说,如果我们在Actio...

weixin_29370183的博客 4468

STM32实现简单的智能电梯控制

上述代码实现了一个简单的智能电梯控制器。电梯的状态包括IDLE(停止)、UP(向上移动)和DOWN(向下移动)三种状态。通过向上和向下按钮的按下,可以控制电梯移动到指定的楼层。在主循环中,不断读取当前楼层的按钮状态,并根据电梯状态决定执行的动作。具体的楼层数量和按钮的GPIO引脚可以根据实际情况进行调整。要实现简单的智能电梯控制,我们可以使用STM32微控制器来实现。

2401_85258012的博客 338

深入剖析 YOLOv11 中的 C2PSA 注意力机制

YOLOv11中的C2PSA注意力机制在目标检测领域取得突破性进展。该机制通过跨通道分组交互和轻量级位置编码,在仅增加0.6%计算量的情况下提升mAP 1.5-2.3个百分点。C2PSA创新性地结合局部跨通道交互、位置编码和双分支并行调制,采用纯卷积实现自注意力,避免传统注意力机制的高计算复杂度。实验表明,C2PSA在COCO数据集上以微小计算代价显著提升检测性能,特别是对小目标和遮挡目标效果突出。该模块可直接嵌入YOLO架构,为轻量级目标检测提供新的优化方向。

shrgegrb的博客 3400

深入分析JavaWeb Item44 -- Struts2开发核心之动作类Action

一、Action动作类(一般用**Action结尾)struts2 的Action可以是POJO(Plain Old Java Object) 为了让用户开发的Action更加规范struts2提供了一个Action接口通过method属性指定Action执行方法没有指定method属性,默认执行execute方法<action name="addCustomer" class="xgp.stru

小平果的欢乐谷 8168

光学系统仿真软件:OSLO_(13).衍射光学元件设计v1

目标函数是设计DOE的关键步骤之一。目标函数可以是一个具体的光强分布,也可以是一个特定的波前形状。在仿真软件中,目标函数通常用数学表达式或数据文件来定义。假设我们需要设计一个二元相位掩模,使其在特定位置生成三个焦点。我们可以定义一个目标函数来描述这三个焦点的光强分布。# 定义目标函数"""定义一个多焦点目标函数:param x: 横坐标:param y: 纵坐标:param z1: 第一个焦点的深度:param z2: 第二个焦点的深度:param z3: 第三个焦点的深度。

kkchenjj的博客 1003

Java Swing Action 动作

Swing包提供了一种非常实用的机制来封装命令,并将它们连接到多个事件源,这就是Action接口。一个动作是一个封装下列内容的对象: × 命令的说明(一个文本字符串和一个可选图标); × 执行命令所需要的参数(例如,在列举的例子中请求改变的颜色)。 Action接口包含下列内容: [java]view plaincopy print? p...

weixin_30412577的博客 207

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java struts action_Struts2 Action/动作

动作是Struts2框架的核心,因为他们的任何MVC(模型 - 视图 - 控制器)框架。每个URL将被映射到一个特定的动作,它提供了来自用户的请求提供服务所需的处理逻辑。但动作也提供其他两个重要的能力。首先,操作从请求数据的传输中起着重要的作用,通过向视图,无论是一个JSP或其它类型的结果。二,动作必须协助的框架,在确定结果应该渲染视图,在响应该请求将被退回。创建动作:在Struts2的动作,唯一...

weixin_35836574的博客 179

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jsp action java_【JSP】JSP Action动作标签

Action动作标签简述JSP action是JSP技术体系内置的一组标签,使用无需导入,或者添加另外的库。JSP action标签都是对Java代码的逻辑的封装。主要使用的是下面这些。标签作用jsp:include在页面被请求的时候引入一个文件。jsp:forward把请求转到一个新的页面。jsp:useBean寻找或者实例化一个JavaBean。jsp:setProperty设置JavaBea...

weixin_33708633的博客 781

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java form action_在一个FORM中实现多个ACTION动作

Untitled Documentfunction act1(){document.testForm.action="a.jsp";document.testForm.submit();}function act2(){document.testForm.action="b.jsp";document.testForm.submit();}-----------------------------...

weixin_35594924的博客 326

java动作处理_Java基础之处理事件——使用动作Action(Sketcher 6 using Action objects)...

1 //Frame for the Sketcher application2 import javax.swing.*;3 import java.awt.event.*;4 import java.awt.*;56 import static java.awt.event.InputEvent.*;7 import static java.awt.AWTEvent.*;8 import sta...

weixin_39846898的博客 164

java脚本 action,如何从struts 2中的java脚本重定向到struts动作?

how to redirect to struts action from java script?if condition in the script got success then i need to invoke one action in the config xml, otherwise no action invoking the control needs to stay at s...

weixin_39723519的博客 101

Java基础之处理事件——使用动作Action(Sketcher 6 using Action objects)

控制台程序。 动作Action是任何实现了javax.swing.Action接口的类的对象。这个接口声明了操作Action对象的方法,例如,存储与动作相关的属性、启用和禁用动作。Action接口扩展了ActionListener接口,所以Action对象既是监听器,也是动作。 一些Swing组件,包括JMenu和JToolBar类型的组件,都有add()方法,可以接受Action类型的参数。...

weixin_30421525的博客 131

咱们一起学 Java(97)

在之前的学习中,我们已经了解了Java图形程序中动作的基本概念,以及如何将动作与按钮等事件源关联起来。今天,我们将继续深入学习动作的相关知识,包括动作接口中各种方法的详细用途、如何使用`AbstractAction`类简化动作的实现,以及如何将动作与键盘按键进行关联,实现更加便捷的用户操作方式。希望通过这篇博客,大家能够更加熟练地运用动作机制,为Java图形程序添加更多丰富的功能和交互性。

wj_rdk的博客 2025

自定义Action

步骤 右击BIZ层的logic/action 目录–>新建action文件. 添加新的action,输入名称和标识。 注:‘是否是全局’表示在使用此action时无需在Process中引入。 若此action有参数,则添加参数。 Action定义完毕,生成procedure文件,点击代码按钮则可以编写Java代码。 使用此action时在process中引入即可。 ...

qq_40728951的博客 501

Swing——动作(Action)

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.youkuaiyun.com/pistolove/article/details/41258997 用同一个动作响应按钮、菜单项或击键的方式: (1)实现一个扩展于AbstractAction类的类,多个相关的动作可以使用同一个类。 (2)构造一个动作类对象。 (3)使用动作对象创建按钮或菜单项。构造器将从动作对象中读取标签文本和图标。 (4)为通过击键触发动作,首先,定位顶层窗口组件;然后,得到顶层组件的WHEN

皮斯特劳沃 3329

咱们一起学 Java(96)

在之前的学习中,我们已经深入了解了Java图形程序中事件处理的多种方式,包括按钮点击、窗口事件处理以及适配器类的运用等。今天,我们将进一步探讨如何将各种用户操作(如菜单选择、按钮点击、按键等)整合为统一的动作,以实现更加高效、灵活的事件处理机制。这将有助于我们构建更加复杂和功能丰富的图形用户界面,提升用户体验。希望通过这篇博客,大家能够掌握动作与事件整合的技巧,为Java图形编程增添更多的功能和交互性。

wj_rdk的博客 1471

Java 怎样运用Action

package com.han; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event

Gaowen_HAN的专栏 6280

java jbutton action_Java Swing - 如何在JButton组件之间共享一个Action

import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.Container;import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;i...

weixin_30030255的博客 229
上一篇: Java WindowAdapter适配器类
下一篇: AWT的语义事件和低级事件
银月术
博客等级 码龄17年 7粉丝 27原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值