Swing组件和jdk版本问题

use*_*114 7 java swing combobox

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

  1. 当我使用JDK 1.6_06时,我可以正确地点击JDialog中的按钮.
  2. 当我使用JDK 1.6_24时,我需要先点击JDialog中的任何位置.然后只需单击按钮即可.首先,我认为这是焦点的一些问题.但组件适用于JDK 1.6_06.但它仅与JDK 1.6_24有关.

我试着去谷歌吧.但没有找到任何答案.有人有任何想法吗?

use*_*114 0

@All:抱歉回复晚了。我正在尝试不同的场景。我发现问题出在线程上。看来组合框尚未完成其工作,jdialog 已打开。在该组合框尝试完成其工作之后,焦点就会丢失到父窗口。我尝试在线程中打开对话框:

             new Thread() {
                    public void run() {
                        // open dialog here
                    }
                }.start();
Run Code Online (Sandbox Code Playgroud)

而且效果很好。现在我计划使用 SwingWorker 打开对话框:

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

这也正在发挥作用。希望这是正确的方法。如果我做的是正确的事,请告诉我。