- ベストアンサー
初めてのJava学習でのポップアップ課題について
- 学校で初めてJavaを学び始め、突然の課題でポップアップを使ったプログラムを作成する必要があります。
- プログラムは好きな背景色と文字色を選ぶと、それに応じて背景色と文字色が変わる仕組みです。
- プログラムの一部を作成しましたが、Variableを使ってInputが必要なことに困っています。アドバイスをお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 わたしも、しかられることがおおいです・・・ というか、しかってないし・・・ (師も、いうだろうなぁ~) 「にゅうりょく・はんだん・しょり」をわけてかきなさい。 ひとがにゅうりょくするものは、ちぇっくしなさい。と。 var list = ['red','green','blue','maroon','navy']; var check = new RegExp( '^(' + list.join ('|') + ')$','i'); var name; while (name = prompt("好きな背景色は?:", "")) { //にゅうりょく if (check.test (name)) //はんだん document.body.style.backgroundColor = name; //しょり else alert('Error!!'); }
その他の回答 (5)
- fujillin
- ベストアンサー率61% (1594/2576)
No3です。 >全ての色が変わってしまいます。 部分的に色を変えたいということでしょうか? No4様がお答えのように、ちょっと複雑になります。(というより、HTMLの内容と関係してくるので方法がひと通りとは限りません) 参考までに。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>test</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <div id="target" style="width:10em; height:6em; border:1px solid #000;"> ここの背景をかえる。 </div> <script type="text/javascript"> <!-- var gg = prompt('enter a color',""); document.getElementById("target").style.backgroundColor = gg; //--> </script> </body> </html> ------------------------------------ 某所でこっぴどく叱られましたので、ついでにNo3も訂正しておきます。 (キャンセルの処理も追加してあります) function colorChange() { var name = prompt("好きな色は?:", ""); var color = ["red","green","blue","maroon","navy"]; var i, n, flag = false; while (name !== null && !flag) { n = name && name.toLowerCase(); for (i=0; i<color.length; i++) if (color[i] == n) { flag = true; break; } if (!flag) name = prompt(color.join(", ") + "のどれかを入力してください", name); } if (name) document.body.style.backgroundColor = name; } ( color.join() も外に出せと言われるかも…) >プロが使うコードだ、もっとシンプルに、 先生の意図はわからないでもないですが、人間の入力値をチェックするのはコーディングの上では必須といってもいいことなので、大変疑問が残ります。(まだ、配列を習っていないかも知れないので、それを利用してよかったかどうかはわかりませんでしたが) ちなみに、私は質問者様のように学校で習ったこともなければ、本を読んだわけでもなく、ネット上の情報を拾い読みして覚えただけのまったくの素人です。
- yyr446
- ベストアンサー率65% (870/1330)
No.3の補足より 「これでは全ての色が変わってしまう」 どこの部分の色を変えるのか、指示されているのでしょうか、 ページ内の任意の文字列を検索して、背景色を変えたり、戻したりするのは、 難易度が超高いですよ。
- fujillin
- ベストアンサー率61% (1594/2576)
>それ以外はエラー のところも考慮すると…(エラーにせずに再入力にしてますが) *全角空白は半角に変換のこと <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head><title>test</title> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <script type="text/javascript"> <!-- colorChange(); function colorChange() { var name = prompt("好きな色は?:", ""); var color = ["red","green","blue","maroon","navy"]; var i, flag = false; while (!flag) { for (i=0; i<color.length; i++) if (color[i] == name.toLowerCase()) { flag = true; break; } if (!flag) name = prompt(color + " のどれかを入力してください", name); } document.body.style.backgroundColor = name; } //--> </script> </body> </html> 配列を使ってはまずかったのかなぁ… あと、キャンセルボタンを押したときの処理とかも付け加える必要があるかも。
補足
完璧なコードどうも有難う御座います、しかも詳しく書いて頂けて非常に助かりました。 ただ自分でそこから工夫して提出した所、これはJAVASCRIPTのプロが使うコードだ、もっとシンプルに、と言われてしまい再度スタートする事になりました。大変申し訳ないです。お二方の意見を元に <html> <head> <script type="text/javascript"> var gg = prompt('enter a color',""); var color = ["red","green","blue","maroon","navy"]; document.bgColor=gg ; </script> </head> <body> と背景の色を変える所までは成功しました。しかしこれでは全ての色が変わってしまいます。大変恐縮でレベルが低い質問ではありますがお答え頂ければ恐縮です。
- yyr446
- ベストアンサー率65% (870/1330)
私も、笑われました。 ×document.body.backgroundColor="blue"; じゃなくて、 ○document.body.style.backgroundColor="blue"; です。
補足
JAVASCRIPTなのですね。勉強になりました。またBODY部分という事は<body></body>の間にdocument.body.style.backgroundColor="blue";らを置くということでしょうか?
- yyr446
- ベストアンサー率65% (870/1330)
まず、JAVAじゃなくてJavascriptです。 JAVAとJavascriptは全く別物です。これをなおざりにしちゃ、 学校で、笑われますよ! 背景色や文字色等は、普通はCSS(カスケーディングスタイルシート)という物で 指定しますが、javascriptでHTMLの要素毎に色や背景色等のスタ イル属性を変更したり、CSSのルール事態を変更します。 習い初めなら、スタイル属性の変更からマスターしましょう。 とりあえず、<body>部のスタイル属性を変えましょう。 document.body.style.color="red"; document.body.backgroundColor="blue"; 今のところ、先生はそんなに高度な事を要求してるわけじゃ ないでしょう。 (この先生ちょっと意地悪:背景色と文字色が同じだと何も見れないので そこを考慮しなくちゃ) var color=prompt("好きな色は?","red"); if (color!=null && color!="") { 場合分けの処理 }
お礼
助かりました。ネット上で覚えていられたのですね、何だか不快感を与えてしまったのであれば申し訳なかったです。先生の意図はわかりませんがJAVA Programを組むことが出来る方からのコードは非常に助けになります。どうぞありがとうございました。