Issue with Java version 7u17 / Mac only.
Add a JComboBox to a JWindow. Show the window from a parent frame. The combo
can be opened, but it does not allow selection from the mouse. The popup
closes on mousePressed, but no selection is made. On other OSes and on Java
1.6 the item is selected correctly on mouseReleased.
Test case:
import java.awt.FlowLayout;
import java.awt.Point;
import java.awt.Window;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JWindow;
import javax.swing.SwingUtilities;
public class TestClass {
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300, 200);
f.setLocationRelativeTo(null);
f.setLayout(new FlowLayout());
final JButton popButton = new JButton("Press me");
popButton.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
Window parentWin =
SwingUtilities.windowForComponent(popButton);
JWindow popup = new JWindow(parentWin);
JPanel panel = new JPanel(new FlowLayout());
panel.add(new JLabel("Cannot Select with Mouse:"));
panel.add(new JComboBox(new String[] { "One", "Two", "Three"
}));
popup.add(panel);
Point p = popButton.getLocationOnScreen();
popup.add(panel);
popup.pack();
popup.setLocation(p.x, p.y + popButton.getHeight());
popup.setVisible(true);
}
});
f.add(popButton);
f.setVisible(true);
}
}