Tag: event listener

hibernate中的PreInsert和PreUpdate事件监听器

我使用了PreInsertEventListener和PreInsertEventListener事件侦听器在表中插入创建日期和更新日期。 我面临的问题是,当我在数据库中保存实体时创建的日期无法插入表中,与更新记录时插入更新日期相同,它也不会插入更新日期。 我的代码示例如下所示: 听众课程: public class PreInsertListener implements PreInsertEventListener, PreUpdateEventListener { @Override public boolean onPreInsert(PreInsertEvent arg0) { City.class.cast(arg0.getEntity()).setCreated_date(new Date()); return false; } @Override public boolean onPreUpdate(PreUpdateEvent arg0) { System.out.println(“Update event……”); City.class.cast(arg0.getEntity()).setUpdated_date(new Date()); return false; } } Hibernate Connection类: public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { AnnotationConfiguration config = new […]

是否可以在包含多个侦听器类型的Java中创建自己的事件侦听器列表?

我正在实现一个客户端 – 服务器系统,其中客户端处于连续阻塞读取循环中,侦听来自服务器的消息。 当收到消息时,我想根据消息的类型引发“事件”,其他GUI类可以添加监听器。 我对C#事件更熟悉,所以我仍然习惯于Java的做事方式。 将有许多消息类型,所以我将需要每个接口,称为MessageTypeAListener,MessageTypeBListener等,每个都将包含一个句柄方法,我的GUI类将实现。 但是,将会有许多类型,而不是维护每种类型的侦听器列表,并且有几个“fire”方法,我想要一个大的侦听器列表和一个类型化的fire方法。 然后,fire方法可以说“只有那些类型是我指定的火灾听众”。 所以例如(伪代码): ListenerList.Add(MessageTypeAListener); ListenerList.Add(MessageTypeBListener); fire(message) { ListenerList.Where(type is T).handle(message) } … fire(message); 但是,类型擦除似乎使这很困难。 我可以尝试投射和捕获exception,但这似乎是错误的。 是否有一种干净的方式来实现这一点,或者为每种类型保留一个单独的侦听器列表更为明智,即使有大量的类型?

JSpinner给出了旧的价值观

我在我的项目中使用几个JSpinner来显示小时和分钟。 当JSpinner递增或递减时,我必须将值保存到数据库中。 但问题是JSpinners给了我很旧的价值观。 例如 – 如果显示的时间是09:30 ,我将时间增加到10:30 ,我将返回09:30作为返回值。 我正在使用以下代码 更新的SSCCE package spinnerupdation; import java.awt.Container; import java.awt.FlowLayout; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSpinner; import javax.swing.SpinnerDateModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.text.DateFormatter; import javax.swing.text.DefaultFormatterFactory; /** * * @author Rohan Kandwal */ public class SpinnerUpdation extends JFrame{ public JSpinner spinner; SpinnerUpdation(){ Container […]

为什么EventListenerList在fireFooXXX()中向后遍历?

我不明白这段代码的基本原理,取自javax.swing.event.EventListenerList docs: protected void fireFooXXX() { // Guaranteed to return a non-null array Object[] listeners = listenerList.getListenerList(); // Process the listeners last to first, notifying // those that are interested in this event for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==FooListener.class) { // Lazily create the event: if (fooEvent == null) fooEvent = […]

Swing和AWT混音很糟糕,但仍然完成,为什么?

我注意到人们建议不要混合使用Swing和AWT Components ,但是我们看到了很多: import javax.swing.AbstractButton; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.ImageIcon; //AWT imports though only for listeners import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; 那么为什么包括Java在内的许多人(因为我在这里得到了他们的教程)仍然使用AWT导入,尽管我看到它主要用于Listener 。 如何为Key , Button , JComboBox press / slections等东西添加原生的 Swing Listener s / Libraries? 或者我会使用firePropertyChangeListeners() ? (虽然这与Java Bean有关) 一段时间以来我一直困惑我,我的应用程序大部分都有Swing和AWT,据说这很糟糕?

jFormattedTextField的Formatter.setCommitsOnValidEdit(true)在第一次焦点时不起作用

我有一个jFormattedTextField ,我将setCommitsOnValidEdit设置为true然后我在“value”属性上添加了一个事件监听器“属性更改”。 在jFormattedTextField第一个焦点处,它在键入时不会调用事件侦听器方法。 但是在“focusLost”上它会调用事件监听器,之后当它再次获得焦点时,它会在键入时调用事件监听器。 我希望在jFormattedTextField中的任何时间发生任何变化之后调用事件监听jFormattedTextField (即使在第一个焦点中)。 有什么问题? 我该如何解决?