Desktop.browse()打开多个窗口

时间:2012-06-22 10:27:08

标签: java internet-explorer-8 applet awt windows-7-x64

我们在JRE 1.6.0_26中运行的applet中运行以下代码。

Desktop.getDesktop().browse(new URI("www.google.com")

在某些Windows 7 64位IE8计算机上,此命令会打开两个窗口,但不能打开其他窗口,这些窗口应该是相同的设置。 有没有人知道会导致什么?

1 个答案:

答案 0 :(得分:0)

我强烈怀疑这只是一些编码疏忽(我和其他人一样有罪)。

请考虑以下代码:

JButton myButton1 = new JButton("Click 1");
myButton1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
      Desktop.getDesktop().browse(new URI("www.google.com"));
    }
});

JButton myButton2 = new JButton("Click 2");
myButton1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
      Desktop.getDesktop().browse(new URI("www.google.com"));
    }
});

请注意这里的错误?

目的是为每个按钮分配一个动作,但由于myButton2定义后的粗心复制/粘贴,我们错误地将第二个动作分配给myButton1。

现在发生的事情是,当用户点击myButton1时,将调用第一个操作,导致显示带有www.google.com的浏览器,然后将调用第二个操作,从而导致另一个选项卡该窗口或整个其他窗口(取决于您的浏览器设置)。