2012-03-22 50 views
2

我在windows xp中使用模式jdialog时出现了一个奇怪的问题。它接缝我无法切换Windows语言与alt +班次,而对话是集中。我不希望父框架可以访问。请帮帮我。Swing - 无法在Windows中使用模式JDialog切换语言

public class MyDialog extends JDialog { 
     public MyDialog(java.awt.Frame parent, boolean modal) { 
      super(parent, modal); 
      initComponents(); 
     } 
     public static void main(String args[]) { 
      java.awt.EventQueue.invokeLater(new Runnable() { 
       public void run() { 
        MyDialog dialog = new MyDialog(new javax.swing.JFrame(), true); 
        dialog.setVisible(true); 
       } 
      }); 
     } 
    } 

回答

3

我想你的例子中,没有任何成功,Toolkit is never locked,的Java6在WinXP /的Win2008

同为

  • 与摇摆AWT对话框

  • AWT框架AWT框架JDialog

  • Swing JF RAME与Swing的JDialog

  • 的Swing的JFrame与AWT对话框

基于代码示例

import javax.swing.JDialog; 
import javax.swing.JFrame; 

public class MyDialog { 

    private JFrame frame = new JFrame(); 
    private JDialog dialog = new JDialog(); 

    public MyDialog() { 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400, 300); 
     frame.setVisible(true); 
     //dialog = new JDialog(frame, JDialog.ModalityType.TOOLKIT_MODAL); 
     dialog = new JDialog(frame, true); 
     dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 
     dialog.setModal(true); 
     dialog.setSize(300, 200); 
     dialog.setVisible(true); 
    } 

    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 

      public void run() { 
       MyDialog dialog = new MyDialog(); 
      } 
     }); 
    } 
} 
+0

谢谢!我的问题出现了,如果我注释掉'frame.setVisible(true);'为什么? – 2012-03-22 14:16:28

+0

也许是因为你将AWT Frame与Swing JDialog混合在一起:-),最好使用相同的组件类型,我也试过,没有成功:-) – mKorbel 2012-03-22 14:20:42

+0

请耐心等待。我不明白我在哪里混合框架和JDialog?我需要更改我的代码? – 2012-03-22 14:26:43