Tag: 事件

使用JavaFX中的Enter键触发按钮的onAction

我是JavaFx的新手。 在我的JavaFX应用程序中,我设置了onAction属性,当我使用鼠标按下按钮时,它工作正常。 即使用户按下Enter按钮,我也要发射相同的内容。 我知道我可以使用偶数处理程序来做到这一点。 但是当我阅读onAction JavaDoc时,它说这个事件会被按键发生。 楼盘简介: 按钮的动作,每当按钮被触发时都会调用它。 这可能是由于用户使用鼠标单击按钮,或通过触摸事件, 或通过按键 ,或者开发人员以编程方式调用fire()方法。 但是当我按下Enter键时没有任何反应。 在文档中是错误的吗? 如果不在按钮上添加alistener,还有其他方法可以实现吗? PS 在评论后我用空格键检查然后它被解雇了。 但我想将其设置为Enter键。 我有很多按钮。 我试过了button.setDefaultButton(true); 但它不会被解雇。 我认为这是因为有多个按钮。 如果我只将它设置为一个按钮就可以了。 如何设置多个按钮?

如何编写JUnit测试用例来测试线程和事件

我有一个在一个(主)线程中工作的java代码。 从主线程,我产生一个新线程,我在其中进行服务器调用。 服务器调用完成后,我在新线程中做了一些工作,然后代码加入主线程。 我正在使用eclipse Jobs来进行服务器调用。 我想知道,我如何为此编写一个JUnit测试用例。

JavaFx事件参数类型不匹配

我第一次使用JavaFx,遇到了事件问题。 我使用SceneBuilder构建了一个表单,并在.fxml和controller上添加了一个事件,但它始终返回: Exception in thread “JavaFX Application Thread” java.lang.IllegalArgumentException: argument type mismatch FirstScene.fxml: FirstSceneController.java: public class FirstSceneController implements Initializable { @FXML private Button firstScene_newbutton; @FXML private TableView firstScene_tableView; /** * Initializes the controller class. */ @Override public void initialize(URL url, ResourceBundle rb) { } @FXML private void newButtonClick(ActionEvent event) { System.out.println(“You clicked me!”); } } […]

Java事件传播已停止

我有一个主窗口: public class MainPanel extends JFrame implements MouseListener { public MainPanel() { setLayout(new FlowLayout()); setDefaultCloseOperation(EXIT_ON_CLOSE); addMouseListener(this); ChildPanel child = new ChildPanel(); add(child); JPanel spacer = new JPanel(); spacer.setPreferredSize(new Dimension(50, 50)); add(spacer); pack(); setLocationRelativeTo(null); } @Override public void mouseClicked(MouseEvent e) { System.out.println(“Mouse click event on MainPanel”); } } 和一个孩子JPanel: public class ChildPanel extends JPanel implements MouseListener […]

如何在Swing中暂时禁用事件监听器?

我有一个带有模型和视图的Swing应用程序。 在视图(GUI)中有许多组件,每个组件都映射到模型对象的某些属性并显示它的值。 现在有一些UI组件会在UI中的值发生更改时自动触发某些模型属性的更新。 这需要我在UI中重新加载完整的模型。 这样我就进入了一个无限的更新循环,因为UI中的每个模型重新加载都会触发另一个模型重新加载。 我有一个标志指示加载过程,我想用它来暂时禁止监听器通知,同时从模型中设置UI字段。 所以我的问题是: 有没有办法在Swing中全局暂时禁用某些组件的侦听器而无需删除并重新附加它们?

JTextArea中的文本已更改事件? 如何?

我一直在尝试为我的JTextArea创建一个文本更改事件处理机制。 为了我的目的,只要JTextArea的文本发生变化,就必须触发事件。 我尝试使用KeyListener接口,这是我的代码。 txtArea.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent arg0) { } @Override public void keyReleased(KeyEvent arg0) { // TODO Auto-generated method stub } @Override public void keyPressed(KeyEvent arg0) { currentText = text.getText(); if (currentText == textString) JOptionPane.showMessageDialog(null, “Correct”); } }); 当textarea的文本与硬编码文本匹配时,什么也没发生。 如何为此事件改变事件。 可以使用PropertyChangedListener实现此目标吗? 如果可以,那怎么样?

如何将事件监听器与“询问”事件相结合?

我为一个终端写了一个简单的小迷宫游戏,它反复要求用户做某事(例如“你想去哪个方向?[N / E / S / W]”)。 我有一个在循环中运行的navigate()方法,它会触发这些问题,存储它们的答案并根据答案做一些事情。 public enum Dir (N, E, S, W); public void navigate() { Dir nextDir = utils.askDirection(“Which way do you want to go?”); // Do stuff with answer, like changing position of user in maze } 现在,我为我的游戏编写了一个简单的GUI。 我故意将所有对终端的引用放在ConsoleUtils类中,该类实现了Utils接口(这有像askQuestion()这样的方法) – 这个想法是我可以创建一个GuiUtils类并让我的游戏作为终端游戏或作为GUI游戏。 问题是navigate方法向用户询问一个问题,然后“等待”响应, Utils类通过使用Scanner读取最新的输入行来给出响应。 但是,如果我在GUI中使用事件监听器来处理新的N / E / S / W按钮,则无论navigate方法是否要求,都会触发事件。 […]

如何捕获trayicon.displayMessage()鼠标点击工具提示气球

嗨,我想在用户点击消息气球工具提示后显示更详细的信息。 但是,我找不到如何捕获该事件。 这可能吗?

事件派发线程如何工作?

在stackoverflow上的人的帮助下,我能够获得以下简单GUI倒计时的工作代码(它只显示一个倒数秒的窗口)。 我对这段代码的主要问题是invokeLater东西。 据我了解invokeLater ,它向事件调度线程(EDT)发送任务,然后EDT在“可以”(无论这意味着什么)时执行此任务。 是对的吗? 根据我的理解,代码的工作原理如下: 在main方法中,我们使用invokeLater来显示窗口( showGUI方法)。 换句话说,显示窗口的代码将在EDT中执行。 在main方法中,我们也启动counter ,并且计数器(通过构造)在另一个线程中执行(因此它不在事件调度线程中)。 对? counter在一个单独的线程中执行,并定期调用updateGUI 。 updateGUI应该更新GUI。 GUI正在EDT中运行。 因此, updateGUI也应该在EDT中执行。 这就是为什么updateGUI的代码包含在invokeLater 。 是对的吗? 我不清楚的是为什么我们从美国东部时间拨打电话。 无论如何,它不是在EDT中执行的。 它立即启动,一个新线程和counter在那里执行。 那么, 为什么我们不能在invokeLater块之后调用main方法中的counter呢? import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingUtilities; public class CountdownNew { static JLabel label; // Method which defines the appearance of the window. public static void showGUI() { JFrame frame […]

如何发出和处理自定义事件?

javafx中有几个预定义的事件类。 Event.ANY,KeyEvent.KEY_TYPED,MouseEvent.ANY等。 还有用于事件的高级过滤和处理系统。 我想重复使用它来发送一些自定义信号。 如何创建自定义事件类型CustomEvent.Any,以编程方式发出此事件并在节点中处理它?