Swing - не могу переключить язык в Windows с модальным JDialog - PullRequest
2 голосов
/ 22 марта 2012

У меня странная проблема с модальным jdialog в Windows XP. Похоже, я не могу переключить язык окон с помощью 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);
                }
            });
        }
    }

1 Ответ

3 голосов
/ 22 марта 2012

Я попробовал ваш пример, но безуспешно, Набор инструментов никогда не блокируется , Java6 на WinXp / Win2008

то же самое для

  • Рамка AWT с диалогом AWT

  • Рамка AWT с Swing JDialog

  • Swing JFrame с 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();
            }
        });
    }
}  
...