2012-03-22 46 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