※ ChatGPTを利用し、要約された質問です(原文:JAVA DialogのModalの設定について)
JAVA DialogのModalの設定について
このQ&Aのポイント
DialogのModalの設定変更で悩んでいます。はじめModalをfalseに設定したDialogを表示し、親Frame上の'Change Modal'を押すと5秒間DialogのModalがtrueに変わり、親Frameへのアクセスをガードします。最後の処理がうまくいかない問題があります。何がいけないのでしょうか?
JAVAのDialogのModal設定についての問題です。はじめModalをfalseに設定したDialogを表示し、親Frame上の'Change Modal'を押すと5秒間DialogのModalがtrueに変わり、親Frameへのアクセスをガードします。最後の処理が正しく動作しません。修正方法を教えてください。
JAVAのDialogのModal設定について質問です。はじめModalをfalseに設定したDialogを表示し、親Frame上の'Change Modal'を押すと5秒間DialogのModalがtrueに変わり、親Frameへのアクセスをガードします。しかし、最後の処理が正しく実行されません。問題の解決策を教えてください。
DialogのModalの設定変更で悩んでいます。
以下にサンプルソース(文字数制限のため、不要部分を大幅カットしています)を記します。
このサンプルは、はじめModalをfalseに設定したDialogを表示し、親Frame上の"Change Modal"を押すと5秒間DialogのModalがtrueに変わり、親Frameへのアクセスをガードします。その後、Modalを再度falseに切り替え、はじめの状態へ戻すことを目的とするものなのですが、最後の処理がうまくいきません(親Frameへのアクセスがガードされっぱなしになってしまう)。
何がいけないのでしょうか?
[sample]
class Modal_Test_Sample extends Frame implements Runnable, ActionListener
{
Dialog test_dialog;
Thread thread, owner_thread;
Button modal_change;
Modal_Test_Sample()
{
super("test_frame");
modal_change = new Button("model_change");
modal_change.addActionListener(this);
add(modal_change)
pack();
test_dialog = new Dialog(this,"test_dialog",false);
test_dialog.show();
}
public void actionPerformed(ActionEvent ae)
{
owner_thread = Thread.currentThread();
thread = new Thread(this);
thread.start();
test_dialog.setModal(true);
test_dialog.setVisible(false);
test_dialog.setVisible(true);
test_dialog.setModal(false);
test_dialog.setVisible(false);
test_dialog.setVisible(true);
}
public void run()
{
try
{
thread.sleep(5000);
}
catch(Exception e)
{
}
owner_thread.interrupt();
}
public static void main(String args[])
{
(new Modal_Test_Sample()).show();
}
}