【发布时间】:2012-04-03 05:18:15
【问题描述】:
我正在从一个小程序背靠背调用 2 jDialog。一旦我从第一个对话框中选择选项并单击“确定”按钮,小程序窗口就会获得焦点,而第二个对话框会失去焦点。
该问题仅在 IE 中出现,并且在 firefox 和 chrome 中运行良好。请输入代码 sn-p。 (虽然我的完整代码中的实际问题只出现在 IE9 中,但我不确定为什么这在 SSCCE 的 IE8 中不起作用)
public class SampleApplet extends Applet{
protected JButton countryButton = new JButton("Select");
public synchronized void init()
{
this.setBounds(new Rectangle(350,350));
this.add(countryButton);
countryButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
getCountries();
getCountries();
}
});
}
protected void getCountries() {
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
JComboBox CountriesCombo = new JComboBox();
CountriesCombo.addItem("India");
CountriesCombo.addItem("Japan");
panel.add(CountriesCombo, gbc);
JOptionPane optionPane = new JOptionPane(panel, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
final JDialog dialog = optionPane.createDialog(panel, "Select Countries");
dialog.setModal(true);
dialog.addWindowListener ( new WindowAdapter ()
{
public void windowOpened ( WindowEvent e )
{
dialog.requestFocus ();
}
});
dialog.pack();
dialog.setLocationRelativeTo(null);
dialog.setVisible(true);
}
}
HTML 代码:
<html>
<head>
<title>Sample Code</title>
</head>
<body>
<applet code="SampleApplet.class" width="350" height="350">
</applet>
我能得到一些帮助吗?
【问题讨论】:
-
那么我想你需要展示一些很好的构建SSCCE
-
SSCCE 已准备好,如何分享
-
请用您的 SSCCE 编辑您的问题,就是这样,用这个新代码替换以前的代码。
-
给我一些时间,同时,让我告诉你一些你做错了的事情。您将
Swing与AWT混合在一起,这在任何意义上都被认为是好的:( -
实际上在我这边它按预期工作,
JDialogs 都得到了关注,而没有将焦点恢复到Main Application。我的 IE 9 版本是9.0.8112.16421 (Updated Version : 9.0.5 (KB2647516)),希望我的版本和你的一样!!
标签: java swing internet-explorer-9