-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
1.1.6, 1.2.0, 1.3.0
-
x86
-
windows_nt
The test program below gives different results on 1.2beta4 and 1.1.6
On 1.2 Ctrl + i is ignored, all other accelerators work fine.
On 1.1.6 the program seems to lock up if you pull down the menu and then make
the menu go away, and then hit ctrl + i. It does not do this for other
accelerator keystrokes. Also, it doesn't matter whether the accelerator for
the menu item is ctrl + i or not. Even if you set it to something else, ctrl + i
still locks it up after the menu has been pulled down at least once.
import com.sun.java.swing.*;
import java.awt.event.*;
public class MenuTest
{
public MenuTest()
{
JFrame frame = new JFrame();
frame.setSize(200,200);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem item = new JMenuItem("Exit");
item.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("menu item selected");
}
});
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,java.awt.Event.CTRL_MASK));
menu.add(item);
menuBar.add(menu);
frame.setJMenuBar(menuBar);
frame.show();
}
public static void main(String[] args)
{
new MenuTest();
}
}
======================================================================
Name: wl91122 Date: 09/07/99
9/5/99 eval1127@eng -- fine on Solaris; problem is win32-specific. Believe we have a dupe/open bug for this. This report filed against 1.2.2, but changed to
kestrel-beta, since behavior still exists there. Accelerators look DISABLED (on both platforms).
1) run the program
typing ctrl-i has no effect
2)
public class CtrlI extends javax.swing.JFrame {
public CtrlI() {
setTitle("Ctrl-I Accelerator Bug");
buildGUI ();
pack ();
}
private void buildGUI () {
menuBar = new javax.swing.JMenuBar ();
fileMenu = new javax.swing.JMenu ();
fileMenu.setText ("File");
ctrli = new javax.swing.JMenuItem ();
ctrli.setText ("Ctrli");
ctrli.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
javax.swing.JOptionPane.showMessageDialog(null, "Menu ctrl - I called");
}});
/****************************************/
/****************************************/
// $BUG: setting CTRL-I as accelerator does not work in jdk1.2.2 on NT/SP5,
// typing CTRL-I has no effect
ctrli.setAccelerator(javax.swing.KeyStroke.getKeyStroke('I',java.awt.Event.CTRL_MASK ));
/****************************************/
/****************************************/
fileMenu.add(ctrli);
fileMenu.addSeparator();
exitMenu = new javax.swing.JMenuItem ();
exitMenu.setText ("Exit");
exitMenu.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
javax.swing.JOptionPane.showMessageDialog(null, "Menu ctrl - X called");
System.exit (0);
}});
addWindowListener (new java.awt.event.WindowAdapter () {
public void windowClosing (java.awt.event.WindowEvent evt) {
System.exit (0);
}});
// CTRL-X works well
exitMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK ));
fileMenu.add(exitMenu);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
}
protected javax.swing.JMenuBar menuBar;
protected javax.swing.JMenu fileMenu;
protected javax.swing.JMenuItem ctrli;
protected javax.swing.JMenuItem exitMenu;
public static void main(java.lang.String[] args) {
new CtrlI ().show ();
}
}
(Review ID: 94874)
======================================================================
On 1.2 Ctrl + i is ignored, all other accelerators work fine.
On 1.1.6 the program seems to lock up if you pull down the menu and then make
the menu go away, and then hit ctrl + i. It does not do this for other
accelerator keystrokes. Also, it doesn't matter whether the accelerator for
the menu item is ctrl + i or not. Even if you set it to something else, ctrl + i
still locks it up after the menu has been pulled down at least once.
import com.sun.java.swing.*;
import java.awt.event.*;
public class MenuTest
{
public MenuTest()
{
JFrame frame = new JFrame();
frame.setSize(200,200);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem item = new JMenuItem("Exit");
item.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("menu item selected");
}
});
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,java.awt.Event.CTRL_MASK));
menu.add(item);
menuBar.add(menu);
frame.setJMenuBar(menuBar);
frame.show();
}
public static void main(String[] args)
{
new MenuTest();
}
}
======================================================================
Name: wl91122 Date: 09/07/99
9/5/99 eval1127@eng -- fine on Solaris; problem is win32-specific. Believe we have a dupe/open bug for this. This report filed against 1.2.2, but changed to
kestrel-beta, since behavior still exists there. Accelerators look DISABLED (on both platforms).
1) run the program
typing ctrl-i has no effect
2)
public class CtrlI extends javax.swing.JFrame {
public CtrlI() {
setTitle("Ctrl-I Accelerator Bug");
buildGUI ();
pack ();
}
private void buildGUI () {
menuBar = new javax.swing.JMenuBar ();
fileMenu = new javax.swing.JMenu ();
fileMenu.setText ("File");
ctrli = new javax.swing.JMenuItem ();
ctrli.setText ("Ctrli");
ctrli.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
javax.swing.JOptionPane.showMessageDialog(null, "Menu ctrl - I called");
}});
/****************************************/
/****************************************/
// $BUG: setting CTRL-I as accelerator does not work in jdk1.2.2 on NT/SP5,
// typing CTRL-I has no effect
ctrli.setAccelerator(javax.swing.KeyStroke.getKeyStroke('I',java.awt.Event.CTRL_MASK ));
/****************************************/
/****************************************/
fileMenu.add(ctrli);
fileMenu.addSeparator();
exitMenu = new javax.swing.JMenuItem ();
exitMenu.setText ("Exit");
exitMenu.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
javax.swing.JOptionPane.showMessageDialog(null, "Menu ctrl - X called");
System.exit (0);
}});
addWindowListener (new java.awt.event.WindowAdapter () {
public void windowClosing (java.awt.event.WindowEvent evt) {
System.exit (0);
}});
// CTRL-X works well
exitMenu.setAccelerator(javax.swing.KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK ));
fileMenu.add(exitMenu);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
}
protected javax.swing.JMenuBar menuBar;
protected javax.swing.JMenu fileMenu;
protected javax.swing.JMenuItem ctrli;
protected javax.swing.JMenuItem exitMenu;
public static void main(java.lang.String[] args) {
new CtrlI ().show ();
}
}
(Review ID: 94874)
======================================================================
- duplicates
-
JDK-4187822 ctrl and meta KeyStrokes don't work
-
- Closed
-
-
JDK-4290675 Focus Management Enhancements
-
- Closed
-