`
zhuyifeng
  • 浏览: 44713 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于事件源的应用

 
阅读更多
    今天被画图板的一个鼠标右键单击处理事件的事情搞得晕头转向的,为了让鼠标左键点击和右键点击在画图面板上设置不同的景色,也就是前景色和背景色。按理来说只需要点击时获取点击的按钮颜色,然后再在需要展示的按钮上设置相关的背景色setBackground();即可,不过这里有一点麻烦:我给每个颜色按钮添加了动作监听器addActionListener();当我的鼠标左键点击时完全是没有问题的,能够在ActionPerformed()里获取点击的按钮的相关信息,在进行操作,但是这方法到了右键就出问题了啊,首先是我打算在ActionPerformed()里面直接运用判别句来对鼠标不同键进行监听:
if(e.getButton()==e.BUTTON1){
*******************
}
else{
*******************
}
但是试图用过的人都知道这肯定是错的,因为ActionListener是监听动作的,和界面组件有关,所以它里面是绝对不可能有什么和鼠标相关的e.getButton()的方法的。


所以,我就迫不得已的转战将ActionPerformed里面的代码移到了MouseClicked里面,然后只留下一个按下按钮返回的值方法,但是这又有一个问题了,当鼠标右键点击按钮时,程序不会执行ActionPerformed里面的方法,也就是说得不到按钮的返回值,也就无法设置颜色了。


正在我纠结之时,在这关键时刻,好戏就要登场了,这就是今天要介绍的事件源的应用,再次得多谢熊哥,这个方法是他提醒我的,具体代码如下:

if(e.getButton()==e.BUTTON1){
jb1.setBackground(color);
}
else{
         Object sour = e.getSource();
if(sour instanceof JButton){
JButton bu = (JButton)sour;
int n = Integer.parseInt(bu.getActionCommand());
jb2.setBackground(str[n]);
}
}

如果是左键单击,就直接能返回值,然后直接.setBackground(color);否则认定为右键(注:滑轮不考了,当右键吧,一般也没多少人会点那玩意),然后就对点击返回一个事件源了,如果点击的是按钮,则怎么样怎么样.....,中间过程我也不是很明白,就不细讲了,反正利用这种方法是能够得到按钮的返回值的,最后通过设定的颜色数组str[]来设置颜色,就大功告成了~~~~!!!


写在片尾:以上只是一种解决该问题的方法,至于其他能够实现的方法,肯定是有的,比如说我们一组的黄高乐就已经实现了这种方法,不过他给我讲的我还是不怎么明白,但是大概我应该也能觉得他用的是另一种方法。欢迎大家多多指教~~~
分享到:
评论

相关推荐

    C# 浏览事件日志、事件源和项

    事件源是产生事件的实体,例如,你可以为你的应用程序创建一个事件源,以便在遇到异常或其他需要记录的事件时向事件日志写入。在C#中,可以通过`EventLog.SourceExists`方法检查事件源是否存在,`CreateEventSource`...

    浏览事件日志、事件源和项

    总的来说,理解和利用事件日志、事件源和日志项对于开发健壮的应用程序至关重要。它们可以帮助开发者及时发现和解决系统问题,提供关键的调试信息,并确保系统的稳定运行。通过学习和应用.NET中的相关API,你可以更...

    java 触发事件应用实例

    在Java中,事件处理主要是通过事件监听器、事件源和事件对象来实现的。本篇将深入探讨Java事件处理机制,以及如何在实际应用中使用事件。 首先,事件源(Event Source)是能够产生事件的对象,通常是指组件,如按钮...

    asp.net 浏览事件日志、事件源和项

    ASP.NET 是一个强大的Web应用程序框架...综上所述,理解并熟练使用ASP.NET中的事件日志、事件源和事件项对于开发健壮的Web应用至关重要,同时结合C#编程能力,可以有效地监控和调试应用程序,提高软件的质量和稳定性。

    ProophEventStore一个事件源组件用于持久化事件消息

    事件源是一种软件设计模式,它将应用程序的状态变化记录为一系列不可变的事件,这些事件可以用于重建系统状态。这种模式在复杂系统中特别有用,因为它提供了对系统历史的完整审计跟踪,有利于故障排查和系统恢复。 ...

    《将异常写入事件日志中(一):将异常写入应用程序的事件日志中》源代码

    1. **创建事件日志源**:在写入事件之前,可能需要先创建一个事件日志源。如果源已经存在,则无需重复创建。可以使用`EventLog.CreateEventSource()`方法完成这个操作,如: ```csharp if (!EventLog.SourceExists...

    dotnet-整的ASPNET核心应用程序包括DDDCQRS和事件源

    标题中的"dotnet-整的ASPNET核心应用程序包括DDDCQRS和事件源"指的是一个基于.NET Core框架构建的完整Web应用程序,它应用了领域驱动设计(DDD)、命令查询职责分离(CQRS)模式以及事件源(Event Sourcing)概念。...

    事件驱动模型实例详解(Java篇)

    该模型围绕三个核心概念构建:事件源、侦听器以及事件处理程序。事件源可以是任何能产生事件的对象,例如用户界面中的按钮;侦听器则是能够响应这些事件的对象;而事件处理程序则具体执行事件触发后的逻辑。 #### 2...

    C#显示应用程序事件日志

    要显示应用程序事件日志,我们首先要创建一个`EventLog`对象,并指定日志的源(通常是你的应用程序名)。如果该源不存在,C#会尝试创建它。以下是一个简单的示例: ```csharp using System; using System....

    使用域驱动设计、CQRS和事件源的实验性全栈应用程序 -C#-TypeScript-下载

    这是一个关于使用域驱动设计(Domain-Driven Design, DDD)、命令查询责任分离(Command Query Responsibility Segregation, CQRS)和事件源(Event Sourcing)构建的全栈应用程序的实验项目,主要采用C#和...

    C#源代码-使用Winform应用程序模拟事件.zip

    通过分析这个源代码示例,你可以更好地理解C#中事件的工作原理,以及如何在Winform应用程序中利用事件来实现用户交互。这将对你的C#编程技能有极大的提升,帮助你构建更加健壮和用户友好的桌面应用程序。

    HoaEventSource-一个事件源库

    HoaEventSource是一个专为PHP设计的事件源库,旨在帮助开发者更有效地构建反应式和异步应用程序。本文将深入探讨HoaEventSource的核心概念、特性以及如何在实际项目中应用。 1. **事件源(Event Source)的概念** ...

    Java 开发中事件驱动模型的实例详解

    1. **事件源(Event Source)**:这是产生事件的对象,如用户界面中的按钮、文本框等。 2. **事件(Event)**:由事件源产生的信号,表示某件事情的发生,例如按钮被点击的事件。 3. **事件处理器(Event Handler)*...

    关于事件结构

    在LabVIEW中,事件源可以是前面板上的控件、控件引用或用户定义的事件等。 2. **事件分支(Event Cases)**:用于处理特定事件的代码块。每个事件分支都与一个或多个事件源相关联。 3. **超时接线端(Timeout Terminal)...

    7个Android应用程序源代码

    这个压缩包包含了7个Android应用程序的源代码,对于初学者和有经验的开发者来说都是极好的学习资源。这些源代码设计简洁,易于理解,可以帮助你深入理解Android应用的工作原理,以及如何构建它们。 1. **Android...

    读写WIN2K事件日志的源代码

    - 源:产生事件的应用程序或服务的名称。 - 描述:关于事件的详细信息,可能包括错误消息、建议的解决方案等。 - 用户信息:执行动作的用户账号,如果适用。 四、实际应用 源代码`W2kEventLog`可能被用于开发自定义...

    Excel-VBA宏编程实例源代码-确定应用程序事件.zip

    本压缩包"Excel-VBA宏编程实例源代码-确定应用程序事件.zip"提供了关于如何利用VBA处理Excel应用程序事件的实例源代码。下面我们将深入探讨VBA宏编程和应用程序事件相关的知识。 1. **VBA宏编程**:VBA是Microsoft ...

    Broadway一个事件源和CQRS库

    事件源是一种软件设计模式,其中应用程序的状态通过一系列发生的事件来维护。这些事件是不可变的,并且记录了系统中发生的所有更改。这种模式允许开发者从事件日志中重建整个系统的状态,从而提供了强大的历史追溯和...

    awt事件模型AWT 事件结构事件控制的要点

    每个事件源都有一系列的方法用于注册特定类型的事件监听器,这些方法通常以`add<EventType>Listener`的形式存在。 AWT事件控制过程涉及监听器对象,它们实现了特定的监听器接口,如`ActionListener`、`...

    Google Android 应用开发揭秘 源代码

    在Android应用开发的世界里,源代码是学习和提升技能的关键资源。"Google Android 应用开发揭秘 源代码"提供了深入理解Android应用构建过程的机会,让我们能够直接探索那些专业开发者是如何实现各种功能和交互的。这...

Global site tag (gtag.js) - Google Analytics