- - PR -
ウィンドウ処理について
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-27 15:12
はじめまして、最近Javaを勉強し始めたgrand_blue_xといいます。
以後よろしくお願いします。 早速ですが、やりたいことがあるのですがどうすれば実現できるのかまったくわからないのです。 それは、簡単な質問プログラムです。 1、質問をつくる。 2、ウィンドウにチェックボックス(もしくはラジオボタン)をつくる。 3、Buttonを利用して次のアクションへ。 をしたいのですが、1,2はプログラムを書けるのですが、3がわかりません。 ボタンを押した後に例えば”正解”などとウィンドウに表示し、なおかつ次の質問を表示するにはどうすればいいのでしょうか? 中途半端な質問で申し訳ありませんがどうぞよろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-03-27 15:41
分かるところまでのソースを提示してみてはいかがでしょうか?
(意図した動きをしなくても良いので) その方が回答を付け易くなると思いますよ。 | ||||||||||||
|
投稿日時: 2004-03-27 22:11
レスありがとうございます^^;
ソースは以下の通りですが、正解とした後どうすれば、次の問題(最初と同じような画面)に戻れるのかがわからないのです。 import java.awt.*; import java.awt.event.*; public class Test7 extends Frame{ Label mylabel,mylabel2; Checkbox cb1,cb2,cb3; CheckboxGroup cbg; public Test7(){ super(); setTitle("問題"); setSize(300,150); setLayout(null); cbg = new CheckboxGroup(); ClickItem ci = new ClickItem(); mylabel = new Label("今勉強しているのは何言語??"); mylabel.setBounds(50,25,200,25); this.add(mylabel); cb1 = new Checkbox("C言語",true,cbg); cb1.setBounds(20,50,150,20); this.add(cb1); cb1.addItemListener(ci); cb2 = new Checkbox("Java言語",true,cbg); cb2.setBounds(20,70,150,20); this.add(cb2); cb2.addItemListener(ci); cb3 = new Checkbox("Perl言語",true,cbg); cb3.setBounds(20,90,150,20); this.add(cb3); cb3.addItemListener(ci); } public static void main(String args[]){ new Test7().show(); } class ClickItem implements ItemListener{ public void itemStateChanged(ItemEvent ev){ String str1,str2; if(cb1.getState()){ str1 = "不正解"; mylabel.setText(str1); //System.exit(0); } else if(cb2.getState()){ str1 = "正解"; str2 = "next"; mylabel.setText(str1+str2); } else if(cb3.getState()){ str1 = "不正解"; mylabel.setText(str1); //System.exit(0); } } } } どうぞよろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-03-28 10:37
修正してみました。
修正のポイントとしては 1.繰り返し処理を行えるようにする(initialize) 2.情報を体系的にまとめる(Question・Choice) です。 ※ソースは適当なので修正して下さい。
[ メッセージ編集済み 編集者: ぽん 編集日時 2004-03-28 10:38 ] | ||||||||||||
|
投稿日時: 2004-03-30 09:15
返事が遅くなりましてすみません。
ぼんさん、ご親切にありがとうございました。 まだ全然さわりの部分だと思いますが、Javaってパズルみたいで面白いですね^^; まだ、ソースの全ては理解できませんがなんとなく、流れはわかりました。 また、質問があるのですが、 public class Test extends Frame{ //略 public static void main(String args[]){ new Test().show(); new Test1().show(); } } class Test1 extends Frame{ //略 } というソースだとウィンドウが二つ現れてしまうのですが、クリックなどの情報を生かして同じウィンドウに表す(画面の切り替え?)場合はどうすればよろしいのですか? 質問ばかりで申し訳ありませんがどうぞご教授願います。 | ||||||||||||
|
投稿日時: 2004-03-30 12:35
おっそれは良かったですね。
下記のソースで如何でしょう? ポイントはコンポーネントを直接ContentPaneに追加するのではなく、 いったんPanelに追加してからContentPaneに追加する事です。 そうする事によって追加or削除が容易になり、また追加or削除の範囲を決める事も出来ます。
| ||||||||||||
|
投稿日時: 2004-03-31 23:57
度々、ありがとうございます。
まさに自分がやりたいことが実現できそうです^^; 前回頂いたソースと今回頂いたソースをある程度改良して動くようになりました。 もし、Javaを学習する上で読んでいたほうがいいという本などご存知でしたら教えていただけないでしょうか? | ||||||||||||
|
投稿日時: 2004-04-01 12:01
取り合えずこのスレッドを見てみては? 他にも同様なスレッドがいくつかあったので、探してみると良さそうです。 | ||||||||||||
