Tag: 听众

当对象的状态发生变化时,在Java中触发事件

我有一个Java对象,其状态随着时间的推移而变化。 当对象中的一个字段达到某个值时,我希望触发一个外部事件。 我知道Swing通过Listeners处理这个模式 – 我在这个项目中使用Swing – 但是我不确定哪种Listener会适用于这个案例。 用户不会更改对象的状态,并且监听器似乎仅由用户的操作触发。 编辑 :我正在监视的对象本身不是Swing组件 – 它在主线程的后台运行。

短信广播接收器无法正常工作

好吧,我已经尝试了Stack上的每个解决方案,没有任何效果。我当前的方法从MainActivity注册“SmsListener”接收器。 我要做的就是初始化onReceive方法。 没有错误; 它根本就没有接收广播。 我究竟做错了什么? 在此处粘贴适用的代码。 还有其他可能需要的东西请你问一下。 更新:这是一个类似的未解决的问题当Google Hangout或其他应用收到它时,听取Android传入的短信我正在Android 6.0.1下测试。 目标Sdk版本是22. Min Sdk是19.值得注意的是,我刚刚使用Android 4.4.2在LG Optimus GPro上测试了我的原始代码并且它有效。 它仍然无法在我的Nexus上运行Android 6.0.1。 表现: ` 主要活动 package com.biapps.makin_biscuits; import android.service.notification.NotificationListenerService; import android.app.NotificationManager; import android.content.Context; import android.content.IntentFilter; import android.media.AudioManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.content.Intent; import android.view.View; import android.widget.ImageButton; import android.widget.Toast; public class MainActivity extends AppCompatActivity { //set object labels and […]

我想在鼠标hover在JMenuItem上时执行一些操作。 我应该使用什么样的听众?

我想在鼠标hover在JMenuItem上时执行一些操作。 我应该使用什么样的听众?

首次显示组件时监听

我试图抓住屏幕上显示组件的第一时刻,而不使用“脏”解决方案,就像使用计时器一样。 基本上,我想知道我可以安全地开始在组件上使用getLocationOnScreen()方法的那一刻。 我认为组件监听器可以帮助但在这里没有运气。 我现在卡住了,不知道哪个听众可以使用。 有什么建议么? 下面是一些示例代码,显示组件侦听器失败。 import java.awt.Color; import java.awt.Dimension; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; public class CompListenerTest { static ComponentListener cL = new ComponentAdapter() { @Override public void componentShown(ComponentEvent e) { super.componentShown(e); System.out.println(“componentShown”); } }; static MouseListener mL = new MouseAdapter() […]

用Java创建自定义监听器

我想知道如何为某些东西创建我自己的监听器,并且能够像任何其他监听器一样使用它,例如。 public interface Listener { public void onListen(Event e); } 然后在我的class上 public class test implements Listener { Object.add(new Listener() { @Override public void onListen(Event e) { } }); } 我想我真正要问的是我在哪里定义如何检查是否发生了与我创建的监听器有关的事情? 如果其中任何一个没有意义,请告诉我,我会澄清它。 如果充其量这对你没有意义,我会试试这个。 如何让侦听器检查combobox中的选定选项是否已更改为其他选项。 我实际上并不需要一个组合代码监听器,这只是一个例子。

在“耦合”JSliders中避免不必要的事件和无限循环?

我有一个GUI,它根据滑块值向Web服务器发出命令。 其中一些滑块在Web服务器上“耦合”,因此更改其中一个滑块也可能会改变另一个滑块。 通过Web服务器返回基于发出的命令设置的值列表来完成耦合。 因此,我可以根据此响应轻松设置相应的滑块,但问题是这样做会导致触发ChangeListener,然后再次向Web服务器发出命令。 理想情况下,“耦合”应该表现良好并避免无限循环,但这是一个潜在的问题,发送所有这些额外的事件似乎是不必要的。 我能想到的两个解决方案是: 暂时删除侦听器,更改值,然后将它们放回原处。 添加“手动”标志,让听众知道它应该忽略更改。 这些似乎都不是我理想的解决方案,但其中一个比另一个“更好”? 还是有第三个我不考虑的解决方案?

在TextArea,Java中使用Document Listener时出现java.lang.IllegalStateException

DocumentListener dl = new MessageDocumentListener(); ((AbstractDocument) nboxArea.getDocument()).setDocumentFilter(new DocumentFilter() { public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException { string = string.replaceAll(“\t”, “”); super.insertString(fb, offset, string,(javax.swing.text.AttributeSet) attr); } public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException { text = text.replaceAll(“\t”, “”); //TODO must do something here […]

另一个类中的动作监听器 – java

它可以有两个类,在一个类似的东西 arrayButtons[i][j].addActionListener(actionListner); 在另一个 ActionListener actionListner = new ActionListener() { public void actionPerformed(ActionEvent e) { for (int j = 0; j < arrayButtons.length; j++) { for (int i = 0; i < arrayButtons[j].length; i++) { if (arrayButtons[j][i] == e.getSource()) { if ((gameNumber == 2) && (playHand.getNumberOfCards() == 0)) { if (player[j].getCard(i).getSuit() == Suit.HEARTS.toString() && player[j].hasSuitBesideHearts()) //second […]