-
Bug
-
Resolution: Duplicate
-
P2
-
None
-
1.4.0
-
x86
-
windows_nt
java version "1.4.0-beta3"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta3-b78)
Java HotSpot(TM) Client VM (build 1.4.0-beta3-b78, mixed mode)
This is a serious regression. When processing a mouse Event to show a popup menu, the isPopupTrigger is never true for MOUSE_RELEASED or MOUSE_PRESSED events.
This regression was introduced between b74 (works fine) and b77 (broken). Unfortunately, the beta 2 that was just released contains this regression.
This problem exists on Windows but not Solaris (I don't know about Linux).
See the attached test case:
------ PopupTest.java -----------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PopupTest extends JFrame {
private JPopupMenu popupMenu;
private static String[] dayData = {
"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"
};
public PopupTest() {
super("Right click with the mouse to popup a menu");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
popupMenu = new JPopupMenu();
for (int i = 0; i < dayData.length; i++) {
popupMenu.add(dayData[i]);
}
panel.addMouseListener(new PopupListener(popupMenu));
setContentPane(panel);
setSize(300, 300);
setVisible(true);
}
public static void main(String[] args) {
PopupTest test = new PopupTest();
}
class PopupListener extends MouseAdapter {
private JPopupMenu popup;
public PopupListener(JPopupMenu popup) {
this.popup = popup;
}
public void mousePressed(MouseEvent e) {
maybeShowPopup(e);
}
public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
}
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
popup.show(e.getComponent(), e.getX(), e.getY());
} else {
System.out.println("MouseEvent: " + e + " is NOT a popup trigger");
}
}
}
}
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta3-b78)
Java HotSpot(TM) Client VM (build 1.4.0-beta3-b78, mixed mode)
This is a serious regression. When processing a mouse Event to show a popup menu, the isPopupTrigger is never true for MOUSE_RELEASED or MOUSE_PRESSED events.
This regression was introduced between b74 (works fine) and b77 (broken). Unfortunately, the beta 2 that was just released contains this regression.
This problem exists on Windows but not Solaris (I don't know about Linux).
See the attached test case:
------ PopupTest.java -----------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PopupTest extends JFrame {
private JPopupMenu popupMenu;
private static String[] dayData = {
"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"
};
public PopupTest() {
super("Right click with the mouse to popup a menu");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
popupMenu = new JPopupMenu();
for (int i = 0; i < dayData.length; i++) {
popupMenu.add(dayData[i]);
}
panel.addMouseListener(new PopupListener(popupMenu));
setContentPane(panel);
setSize(300, 300);
setVisible(true);
}
public static void main(String[] args) {
PopupTest test = new PopupTest();
}
class PopupListener extends MouseAdapter {
private JPopupMenu popup;
public PopupListener(JPopupMenu popup) {
this.popup = popup;
}
public void mousePressed(MouseEvent e) {
maybeShowPopup(e);
}
public void mouseReleased(MouseEvent e) {
maybeShowPopup(e);
}
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
popup.show(e.getComponent(), e.getX(), e.getY());
} else {
System.out.println("MouseEvent: " + e + " is NOT a popup trigger");
}
}
}
}
- duplicates
-
JDK-4492177 JCK: method isPopupTrigger does not work as expected
-
- Closed
-