On Mon, 14 Oct 2024 15:00:17 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:
>> test/jdk/javax/swing/JButton/bug4323121.java line 69: >> >>> 67: SwingUtilities.invokeAndWait(() -> { >>> 68: button = new TestButton("gotcha"); >>> 69: button.addMouseMotionListener(eventHandler); >> >> Don't think it is required anymore to add `MouseMotionListener`. > > I just kept it because it was there. When the event handler extends > `MouseAdapter`, there are no additional methods to override. > > However, you're right, `MouseMotionListener` is not needed. Since you are simplifying the test, I guess this can be considered. >> test/jdk/javax/swing/JButton/bug4323121.java line 70: >> >>> 68: button = new TestButton("gotcha"); >>> 69: button.addMouseMotionListener(eventHandler); >>> 70: button.addMouseListener(eventHandler); >> >> You may get rid of `eventHandler` object (provided MouseMotionListener is >> not required) by adding the mouse listener similar to WindowFocusListener >> where you used WindowAdapter class and override WindowGainedFocus method. >> >> button.addMouseListener(new MouseAdapter() { >> @Override >> public void mouseEntered(MouseEvent e) { >> if (button.getModel().isArmed()) { >> modelArmed = true; >> } >> mouseEntered.countDown(); >> } >> }); > > Yes, it's an option. > > I used the same approach in #21474 where the test object serves as an event > handler. This avoids anonymous classes which add indentation. Yeah, this is an option. As I mentioned earlier that MouseMotionListener is not needed, so creating an eventHandler object may not be of great use. I agree if more than one listener needs to be added, creating an eventHandler object is a good idea. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21475#discussion_r1799716318 PR Review Comment: https://git.openjdk.org/jdk/pull/21475#discussion_r1799715177