Swing - 无法使用模态 JDialog 在 Windows 中切换语言



我在windowsxp中遇到了一个关于模态jdialog的奇怪问题。当对话框处于焦点状态时,我无法用alt+shift切换窗口语言。我不希望父框架是可访问的。请帮帮我。

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);
                }
            });
        }
    }

我试过你的例子,没有成功,Toolkit从未被锁定,WinXp/Win2008 上的Java6

相同

  • 带有AWT对话框的AWT帧

  • AWT框架与摆动JDialog

  • 带Swing JDialog 的Swing JFrame

  • 带AWT对话框的摆动JFrame

基于代码示例

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();
            }
        });
    }
}  

相关内容

  • 没有找到相关文章

最新更新