我在windows xp中使用modal jdialog有一个奇怪的问题。它接缝我无法在对话框聚焦时用alt + shift切换windows语言。我不希望父框架可以访问。请帮我。
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);
}
});
}
}
答案 0 :(得分:3)
我尝试了你的例子,没有任何成功,Toolkit is never locked,WinXp / Win2008上的Java6
同样适用于
使用AWT对话框的AWT帧
使用Swing JDialog的AWT框架
使用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();
}
});
}
}