我正在使用一个带有 2 个 JTextfields 和 JButtons 的 JDialog。当 Jdialog 第一次打开时,我的第一个文本字段上有一个光标。现在,如果我单击 Jdialog 外部的某个位置,然后尝试返回 JDialog,我在任何文本字段上都看不到光标,并且无法在文本字段上编写或编辑任何内容。
我已将模态设置为 true。因此,即使我单击其他任何地方,我的对话框仍会出现在屏幕上,但会被停用。
此问题仅适用于 linux 服务器,而不适用于 windows。Windows 完美运行。
在此处添加示例代码以了解该问题。这里TestClass 是扩展JFrame。
public TestClass(){
setSize(new Dimension(600,500));
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
myPanel = new JPanel();
JButton openDialog = new JButton("Click here");
openDialog.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
dialog = new JDialog(myFrame,true);
dialog.setSize(new Dimension(400,400));
JTextField myField = new JTextField(10);
JPanel innerPanel = new JPanel();
innerPanel.add(myField);
dialog.add(innerPanel);
dialog.setVisible(true);
//add(dialog);
}
});
myPanel.add(openDialog);
add(myPanel);
}