Swing组件和jdk版本问题

时间:2011-04-15 09:26:53

标签: swing combobox java

我有一个组合框。在组合框中选择一个项目后,新的JDialog将打开。

  1. 当我使用JDK 1.6_06时,我能够 单击JDialog中的按钮 正常。
  2. 当我使用JDK 1.6_24时, 然后我需要点击任何地方 JDialog首先。然后只点击 按钮工作。首先,我想到了这一点 重点是一些问题。但 组件适用于JDK 1.6_06。但它仅与JDK 1.6_24有关。
  3. 我试着去谷歌吧。但没有找到任何答案。有人有任何想法吗?

2 个答案:

答案 0 :(得分:1)

我不知道java版本 - 但是在SwingUtilities中调用dialog.setVisible(true)#initokeLater已经为我解决了这个问题。 YMMV。

答案 1 :(得分:0)

@All:Aplogize延迟回复。我正在尝试不同的场景。我发现问题在于线程问题。似乎组合框尚未完成其工作,并且jdialog已打开。在该组合框尝试完成其工作之后,焦点将丢失到父窗口。我尝试在线程中打开对话框:

             new Thread() {
                    public void run() {
                        // open dialog here
                    }
                }.start();

它工作正常。现在我打算使用SwingWorker打开对话框:

                 SwingWorker worker = new SwingWorker() {
                @Override
                protected Object doInBackground() throws Exception {
                    // TODO Auto-generated method stub
                    // open dialog here
                    return null;
                }
                 };

这也有效。希望这是正确的方法。如果我做对了,请告诉我。