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