- - PR -
JFrameでのモーダル化(?)の解除について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-12-03 00:11
こんばんわ。
親フレームにボタンを作り、そのボタンを押すと子フレームが生成されるプログラムを組んでいます。 子フレームでの操作が済むと子フレームについたボタンを押し、子フレームを終了し親フレームに操作を戻す、というものです。 子フレームの操作中は、親フレームで操作をできないようにモーダル化しています。 親フレームについているボタンを押したときに、イベント処理でsetEnabe(false); で親フレーム自身を編集できないようにしています。 そして、子フレームのボタンを押して親フレームのモーダル化を解除しようと思っています。 質問したいのはここからです・・・ 親フレームのボタンを押してモーダル化することはできたのですが、この後のモーダルの解除がどうしてもできません。 子フレームのボタンイベントの時に、setEnable(true);を返すようにしてはいるのですが 何も起きません;; いろいろ試してはみましたが、どうすることもできず質問さえていただきました。 よろしくお願いしますm( __ __ )m | ||||||||
|
投稿日時: 2004-12-03 06:58
もちろん setEnabled(true) は親のフレームインスタンスに対して行っているのですよね? そのようにしても駄目ならば環境によるものかもしれません(私の環境では問題無く動作可) まずは、お使いの環境を提示してみてはいかがでしょうか。 | ||||||||
|
投稿日時: 2004-12-03 12:23
環境は
WindowsXPのHomeEditon SDKのバージョンは j2sdk1.4.2_06 実行環境はDOS窓です。 ソースを一応書いておきます。 親フレームのクラスをSample1、子フレームをSample2としています。 親フレームメインのところで public static void main(String args[]){ Sample1 sm1 = new Sample1(); sm1.setSize(1200, 900); sm1.setVisible(true);} としていて、親フレームのボタンのソースは JButton bt1 = new JButton(); bt1 = new JButton("次"); bt1.addActionListener(this); pane.add(bt1); ・・・ イベント public void actionPerformed(ActionEvent e) { Sample2 sm2 = new Sample2(); sm2.show(); setEnabled(false); } 子フレームのソースはメインはサイズ、クラス名以外は同じです。 ボタンのソースは JButton bt2 = new JButton(); bt2 = new JButton("終了"); bt2.addActionListener(new EndListener()); pane.add(bt2); ・・・ イベントは class EndListener extends Sample1 implements ActionListener { public void actionPerformed(ActionEvent e) { sm1.setEnabled(false); dispose(); } } としています。 仕方はわかるのですが、実際のソースが悪いのかな・・・^^; 私的には子フレームのソースがまずいのかな、と思っています; まだまだ未熟者ですが、みなさんのご教授をよろしくお願いします。 また何か足りないことがありましたら、補足しますのでご指摘くださいm( __ __ )m | ||||||||
|
投稿日時: 2004-12-03 13:36
うーん。正直、このソースでは意味が分かりません。
とりあえずSample1は一部を除いて問題ありません(一部とはボタンのインスタンス 生成部分で、何故 new を二回もせねばならないのかという疑問) で、分からないのは、Sample2やEndListenerがSample1とどういったスコープ関係を もっているかという部分です(省略されるのも結構なのですが、肝心の部分が欠落して いてはどうにもなりません) この状態では、
何でEndListenerはSample1を継承してるの?
sm1って何処で定義されてるの?で、その中身は? これがもし、Sample1の参照なのだとしたら何故にsetEnabled()への引数がfalseなの? って疑問に対し推測することも困難です。 |
1