Tag: 事件处理

将事件转发到所有组件JAVA

我不知道如何解决这个问题。 我正在开发一个图形编辑器,可以绘制弧线(线)。 我手动将弧组件的大小设置为1000×1000,因此我不必在拖动此弧时更改它。 然后我在这个组件中绘制所需尺寸的弧。 每个弧组件都安装了鼠标侦听器。 问题是,只有最上面的弧组件才能获得鼠标消息。 此外,我在JPane本身上安装了一个鼠标点击监听器,但最上层组件上的鼠标点击监听器只是获取所有事件……有点难以描述这个问题,所以我将为您提供简单的图像 所以第一个解决方案是以某种方式将收到的消息转发给下面的组件,但是我不知道该怎么做,所以你有什么想法吗? 第二个解决方案是,不是为弧对象设置常量尺寸,而是以某种方式旋转该弧将成为的矩形,我的意思是这样。 但是,仍然存在重叠问题。 那么,您有什么想法如何解决这个问题? 或者如果您有任何其他想法,如何解决这个问题,我很高兴,我只需要正确的弧线对鼠标点击做出反应。 我不认为我的代码会以某种方式帮助,但在这里它是 arcObject.setSize(1000, 1000); // ! 然后,在这个组件中我画一个弧 toX = o2.x – 24 * Math.cos(theta); toY = o2.y – 24 * Math.sin(theta); g2.draw(new Line2D.Double(toX, toY, o1.x, o1.y));

将JPanel制作成JOptionPane.OK_OPTION

目前我有一个扩展JPanel的类,基本上显示了一些传递给它的构造函数的对象的信息。 屏幕上有各种标签和图像图标,并设置了BorderLayout。 当用户从主GUI单击ImageIcon并显示在屏幕上时,将触发此面板。 我想知道,如何(如果有办法)我可以在整个面板上实现JOptionPane.OK_OPTION,这样我就不必使用事件处理来关闭面板,因为屏幕只是显示信息以及用户何时完成,他们按好了,面板应该关闭。 谢谢乔丹

JScrollPane的滚动事件

奇怪的是, JScrollPane没有方法addAdjustmentListener() 。 然而,adjustListener据说与滚动条一起使用。 每当JScrollPane以任何一种方式滚动时,我都希望发生一些事情。 怎么实现这样的事情?

如何在DDD中管理域逻辑和事件之间的事务?

我正在研究DDD和事件源中的编程。 我看到一个例子,当一个域逻辑被调用时(例如Order.placeOrder() ),它会发布一个事件(例如OrderPlaced )。 事件将作为事件存储发送到MQ。 域逻辑( Order.placeOrder() )应该是一个primefacesAPI,如果使用Spring作为事务管理器,它应该有@Transactional注释。 现在我的问题是: 如何确保数据库更改和事件发送在同一个事务中? 即如果在将数据提交到DB时出现任何错误,则该事件永远不应发送给MQ。 我知道有像XA或2阶段提交这样的解决方案来强制数据库更新并在同一事务中发送MQ消息。 但似乎现在还没有广泛使用。 如果仍然使用Spring @Transactional注释而没有XA,那么在事务成功提交后我们可能会做一些逻辑吗? 这样做的最佳做法是什么?

从普通Java事件创建Observable

从传统的Java事件模式创建Rx-Java Observable的最佳方法是什么? 也就是说,给定 class FooEvent { … } interface FooListener { void fooHappened(FooEvent arg); } class Bar { public void addFooListener(FooListener l); public void removeFooListener(FooListener l); } 我想实施 Observable fooEvents(Bar bar); 我想出的实现是: Observable fooEvents(Bar bar) { return Observable.create(new OnSubscribeFunc() { public Subscription onSubscribe(Observer obs) { FooListener l = new FooListener() { public void fooHappened(FooEvent arg) […]

使用JavaFX在任何地方处理鼠标事件

我有一个JavaFX应用程序,我想在场景中的任何地方添加一个鼠标单击的事件处理程序。 以下方法可以正常工作,但不完全符合我的要求。 这是一个说明问题的示例: public void start(Stage primaryStage) { root = new AnchorPane(); scene = new Scene(root,500,200); scene.setOnMousePressed(new EventHandler() { @Override public void handle(MouseEvent event) { System.out.println(“mouse click detected! “+event.getSource()); } }); Button button = new Button(“click here”); root.getChildren().add(button); primaryStage.setScene(scene); primaryStage.show(); } 如果我单击空白处的任何位置, EventHandler调用handle()方法,但如果单击该button ,则不会调用handle()方法。 我的应用程序中有许多按钮和其他交互元素,因此我需要一种方法来捕获这些元素的点击,而无需为每个元素手动添加新的处理程序。

java中的事件处理和java中actionPerformed方法的执行

我在java中为simpleGUI编写了一个小代码。 package guidemo1; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class GuiDemo1 implements ActionListener{ JButton button; /** * @param args the command line arguments */ public static void main(String[] args) { GuiDemo1 gui=new GuiDemo1(); gui.go(); } public void go() { JFrame frame=new JFrame(); button=new JButton(); frame.getContentPane().add(button); button.addActionListener(this); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); frame.setVisible(true); } @Override […]

找出类的构造函数中的实例化对象

如何从java中的构造函数中获取实例化对象? 我想存储一些GUI类的父对象的引用,以模拟事件冒泡 – 调用父级处理程序 – 但我不想更改所有现有代码。

我如何以编程方式将ActionEvent发送到JButton?

如何以编程方式将ActionEvent (例如按下的按钮/ ACTION_PERFORMED)发送到JButton ? 我知道: button.doClick(0); 和 button.getModel().setArmed(true); button.getModel().setPressed(true); button.getModel().setPressed(false); button.getModel().setArmed(false); 但是不可能直接发送一个ActionEvent吗? 编辑:这不是生产代码,只是一个小小的个人实验。

无法从JavaFX中的MenuItem获取场景

我试图基于menuItem单击更改javafx阶段中的场景。 这是我的sample.fxml: 这是我的Controller.java: package sample; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.MenuItem; import javafx.stage.Stage; import java.net.URL; import java.util.ResourceBundle; public class Controller implements Initializable { @FXML protected void onManageAccountsMenuActionPerformed(ActionEvent event) { System.out.println(“Manage Accbtnclick”); // Node node=(Node) event.getSource(); // Stage stage=(Stage) node.getScene().getWindow(); // // Scene scene = new Scene(root); // […]