くだすれJava(超初心者用) その2at TECH
くだすれJava(超初心者用) その2 - 暇つぶし2ch357:デフォルトの名無しさん
07/10/23 03:24:45
この和暦変換のJavaScriptで全角が入力された場合にエラーチェックを
かける方法がわかりません。
どなたか書き加えてもらえませんか?
お願いします。

<br />
</p>
<script language="JavaScript"><!--
function wareki_to_seireki(str)
{
var m = str.charAt(0).toUpperCase();
var y = eval(str.substring(1,str.length));
if ((m == "H") && (y > 0) && (y < 50)) return 1988 + y; // 平成
if ((m == "S") && (y > 0) && (y < 65)) return 1925 + y; // 昭和
if ((m == "T") && (y > 0) && (y < 16)) return 1911 + y; // 大正
if ((m == "M") && (y > 0) && (y < 46)) return 1867 + y; // 明治
return Error;
}
// --></script>
<p>
<form name="myFORM">
和暦<input name="dt" /> <input onclick="alert(wareki_to_seireki(document.myFORM.dt.value)
)" type="button" value="変換" />
</form>
</p>
<p><img height="28" alt="" width="140" src="URLリンク(fileman.rakurakuhp.net) /></p>


358:デフォルトの名無しさん
07/10/23 06:39:34
>>357
WebとJavaScriptの組み合わせの場合。
+ JavaScript の質問用スレッド vol.60 +
スレリンク(hp板)l50

Webを含まないJavaScriptのコア部分だけの場合はこっちでも可。
ECMAScript デス 3
スレリンク(tech板)l50


359:デフォルトの名無しさん
07/10/23 14:57:49
>>327
public class Anime_2 implements Runnable{
Anime_1 an;
public Anime_2(Anime_1 an){
this.an=an;
}

public void run(){
while(an.circle_a<200){
try{
Thread.sleep(100);
an.circle_a = an.circle_a+4;
an.circle_d = an.circle_d-1;
an.repaint();
}
catch(InterruptedException ie){
}
}
}
}

遅くなりましたが点が一つの時のソースです。
点が二つ以上になる時は、stopを使ってたんですが
参考にしてる本が古いようで推奨されないようなのでやり直しです。。。

360:デフォルトの名無しさん
07/10/23 18:57:41
いやハテナが大量に出てくるばかりなんだが
>>326とどう違うんだこれ?
circle_aとcircle_dって何を表す変数だ?
stopってどこに使うんだろう……?
増分が+4と-1で固定だけどこれでいいのか?

>stopについて
stop()は突然死だからな。後処理をまったく行わずに強制終了してしまう。
interrupt()をしてやればスレッドライブラリ中の時間のかかる処理をするメソッド(sleepとかwaitとか)
は処理をやめてInterruptExceptionを投げる。そしたらキャンセル処理をやってやればいい。
つかこの場合tryがwhileの内側にあるからinterruptしてもスレッドが終わらないなw

自分で時間のかかる処理を実装してる場合は自分でisInterrupted()を調べてやんなきゃいけないけど、
そういう事態は今のところは少ないだろうと思うので気にしなくていい

361:デフォルトの名無しさん
07/10/23 19:30:37
>>359はもっと根本的なところで知識不足な気がするんだが。
Javaプログラミングの基礎ができてない感が否めない。

362:デフォルトの名無しさん
07/10/23 19:40:42
点が二つ以上のときのソースに関心のある者はさらにおぞましきものを見ることになるだろう

363:デフォルトの名無しさん
07/10/24 15:08:52
爆発する感じで□を飛ばす方法を伝授してください!

364:デフォルトの名無しさん
07/10/24 17:57:07
口に火のついたダイナマイトを突っ込むとか?

365:デフォルトの名無しさん
07/10/26 13:44:55
>>364
花火みたいな感じですorz

366:デフォルトの名無しさん
07/10/26 20:33:56
放物線で四方八方へ

367:デフォルトの名無しさん
07/10/29 12:40:22
>>366
なるほど!
飛ばした"□"の描画を消さずに移動させていけば花火っぽくなりますよね?
ありがとうございました。

368:デフォルトの名無しさん
07/10/29 16:42:16
ホントかよw

369:デフォルトの名無しさん
07/11/06 04:44:18
真剣に悩んでいます。
あるアプリケーションの開発で、J2SE を要求されています。
最新版の Java 6 を導入すれば J2SE もインストールされるのでしょうか?

SunのJavaのページにいくと、
最新版は、Java 6?で、Java SE 6というものがありました。
J2SE は Java 2 SE らしいのですが、この Java SE 6 をインストールすれば問題ないのでしょうか。

Windows XPで i アプリ(Doja 3.5)の開発環境を整えています。


370:デフォルトの名無しさん
07/11/06 04:45:50
JDK6 と J2SE の違いがわからなくて、悩んでいます。


371:デフォルトの名無しさん
07/11/06 07:04:13
JDK ⇒ 開発キット(Java Development? Kit) JREも含む
JRE ⇒ 実行環境(Java Runtime Everopment)

J2SE ⇒ Java2 Standard Edition
つまり、JDKとJ2SEは見方が違うのですよ。
開発に使うならばJDKでおk
でも、携帯向けならばSEではなくMEだと思うけど
まずはググれ

372:デフォルトの名無しさん
07/11/06 12:37:43
ありがとうございます!
これでも、ここ2週間ほどググりっぱなしなんです。
iアプリ開発は、MEでなく、SEで良かったと思います。

java_ee_sdk-5_03-preview2 をDLしたのですが、
これは、J2SE ではなく、J5SE ということでいいのでしょうか?
それとも、J6SE?

ネット上はJ2SEの情報が溢れかえってるけど、J2SEって過去のバージョンですね??

何度も質問してしまってすみません。
プログラミングさえできるようになれば、あとは自力でなんとかしようと思っています・・・
環境整えるのが一番難しいorz


373:デフォルトの名無しさん
07/11/06 14:00:02
JDK1.2以降を全部J2SEっていうんだよ。JDK1.1までより劇的な変化が当時あったから
Javaの2バージョン目という位置づけ。まあ、厳密に言えば、今はJ6SEなんだろうけど。

J2SEっていうのは、JDK1.2以降を全部さすんだよ。JDKの変異は
jdk1.1→j2sdk1.2→j2sdk1.3→j2sdk1.4→jdk5(j2sdk1.5)→jdk6(j2sdk1.6)
だ。

ちなみにj2seのSEっていうのはStandartEditionのこと。企業向けのはEnterpriseEdition。enterpriseっていうのは、企業とか事業って言う意味だから
企業向けシステム構築の際につかわれることもあるけど、standartEditionで事足りる事もたくさんある。

meっていうのはmobile editionかなんかで、モバイル(携帯端末)向けの、ライブラリだ。

ようするに、Javaは用途別にわかれてるってことだね。

374:デフォルトの名無しさん
07/11/06 14:30:00
おおお、ありがとうございます

そういうことだったんですね・・・
バージョンが多すぎて、もう発狂寸前でした。
いくら調べても、ググっても、分かりやすく書いてあるところがなくて
携帯アプリ開発のように、ケースバイケースとなるとって愚痴はこの辺にしておきます。

本当にありがとうございます。
J6EE をDLしてインストールしようと思います。
携帯アプリ以外にも、デスクトップアプリとか作りまくって腕磨きます!


375:デフォルトの名無しさん
07/11/06 15:50:27
そこで J6EE を選ぶのか……

376:デフォルトの名無しさん
07/11/06 16:10:56
教えて頂いた情報を元に、自分なりに更にググっていくと、
どうやらJDK6 ( J6SE + コンパイラ + VM )というのが丁度良いみたいですね・・・
J6EE は、Tomcat に付属しているようなので、どうせWebアプリを開発するときは
Tomcat を導入することになるようですので、
今は、J6EE じゃなくて、JDK6 で十分でしたね。

今日は、JDK6をインストールして、ぐっすり眠れそうです。


377:デフォルトの名無しさん
07/11/06 20:02:27
はじめまして。
Java超初心者の者です。

VistaでJavaを勉強しようと思って、JDK5でインストールを試みたのですが・・・
できませんでした(泣)。

どなたかVistaでのJavaの使用方法教えてください~!!

378:デフォルトの名無しさん
07/11/06 20:18:00
     )、._人_人__,.イ.、._人_人_人
   <JDKがインストールできないのは >
   <´ 天狗じゃ、天狗の仕業じゃ! >
    ⌒ v'⌒ヽr -、_  ,r v'⌒ヽr ' ⌒
// // ///:: <   _,ノ`' 、ヽ、_ ノ  ;;;ヽ  //
///// /::::   (y○')`ヽ) ( ´(y○')    ;;|  /
// //,|:::     ( ( /    ヽ) )+     ;| /
/ // |:::     +  ) )|~ ̄ ̄~.|( (       ;;;|// ////
/// :|::       ( (||||! i: |||! !| |) )      ;;;|// ///
////|::::    +   U | |||| !! !!||| :U   ;;; ;;;| ///
////|:::::       | |!!||l ll|| !! !!| |    ;;;;;;| ////
// / ヽ:::::       | ! || | ||!!|    ;;;;;;/// //
// // ゝ:::::::: :   | `ー-----' |__////

              ↓

            , ;,勹
           ノノ   `'ミ
          / y ,,,,,  ,,, ミ
         / 彡 `゚   ゚' l
         〃 彡  "二二つ
         |  彡   ~~~~ミ      はいはい、わしのせい わしのせい
     ,-‐― |ll  川| ll || ll|ミ―-、
   /     |ll        |   ヽ
  /       z W`丶ノW     ヽ
 /        \\   / /      |
/    天      \`i / /  狗   |


379:デフォルトの名無しさん
07/11/06 20:20:41
        ::::::::::::::::∧口∧   そうやってなんでも
        ::::::::: ( ::;;;;;;;;:)      天狗のせいにしてりゃいいさ…
          _..  /⌒:::;;;;;ヽ
-― ―'ー'-''―-''/ / ::;;;;;;;;:| |―'''ー'-''―'`'
 ,,  '''' .  ''''' と./ゝ_;_;_ノヽつ   、、, ''"
    ,,, ''  ,,,    ::;;;;;;;;;::: ,,  '''''  ,,,,

380:デフォルトの名無しさん
07/11/06 20:38:56
「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

pathの設定どうしたら・・・?

381:デフォルトの名無しさん
07/11/06 20:47:30
>>380
Java質問・相談スレの>>1参照

382:デフォルトの名無しさん
07/11/06 21:07:18
WEBサーバ、アプリケーションサーバ、WEBアプリケーションサーバ
これらの違いを教えてください。

ぐぐってみると
WEBサーバ→apache,tomcat
アプリケーションサーバ→JBOSS
ってのが出てきますが違いがよく分かりません

383:デフォルトの名無しさん
07/11/06 21:23:11
>>382
URLリンク(e-words.jp)


384:デフォルトの名無しさん
07/11/06 22:13:41
SUNのホームページからjre6をインストールしようと試みましたが、
「選択した機能は現在使用できないネットワークリソースにありまっせ」
と表示されました。どなたか解決法わかりますか?

385:デフォルトの名無しさん
07/11/07 01:42:25
質問です。
SunとWindowsで通信をするとEUC(Sun側)とS-JIS(Windows)でどうしても文字化けが起こってしまいます。
JavaコードでWindows側にプログラムを作成したい場合どのようにしたらよいでしょうか??




386:デフォルトの名無しさん
07/11/07 08:52:56
たぶん通信するときに文字コードを指定してないから

387:デフォルトの名無しさん
07/11/07 13:50:13
>>382 サーバーっていうのは、本来Webサーバーとかデータベースサーバーとか
最近では家庭用の音楽・ビデオのマルチメディアサーバーまであるけど、
一般的にそれを保存して必要なときに情報を提供するプログラムのことまたはその機械。

>>382の場合だと(Javaの場合だとプログラム自体をさす事が少なくない。
Webサーバーっていうのは、最初は固定的なHTMLをリクエスト毎に
提供するものだったけど、CGIとかが出てきて動的なHTML放出も
HTMLサーバーの役目になったから、トムキャットみたいなJSP・サーブレット
コンテナも一応WEBサーバーの一種なのかもしれない。

で、アプリケーションサーバーっていうのは、Javaの場合だとEJBなんかのアプリケーションをおくんだけど、
アプリケーションは(EJBは)、ブラウザ経由じゃなくても普通の通信プログラムなんかもつくれたりするから
アプリケーションサーバー(APサーバー)って呼ぶんだけど、ようするに色々な処理をするだけのアプリケーションがおかれるから
APサーバーってよばれる。ここからデータベースサーバにデータをおくったり、Webサーバーに色々処理したデータを提供してHTML配信したりする。

俺が5年前くらいサーバーサイドやったときにはトムキャットもAPサーバっていわれてたんだけど。

388:デフォルトの名無しさん
07/11/07 14:47:07
本を買わなくてもjava言語のほとんどが解る
一番良い日本語のホームページのURL(Uniform Resource Locator)
を教えてください

389:デフォルトの名無しさん
07/11/07 15:08:40
>>388
URLリンク(java.sun.com)

390:デフォルトの名無しさん
07/11/09 16:20:15
起動時に、任意のTextBoxにフォーカスするにはどうすればいいですか?

391:デフォルトの名無しさん
07/11/10 17:13:29
あるメソッドの引数がnullであってはいけない場合、
そのメソッドの実装はどうするのが普通ですか?
・何もしないで、戻り値があるならnullとか無意味な値を返す
・nullではないと仮定する
・nullかどうか意識的にチェックして例外を投げる

392:デフォルトの名無しさん
07/11/10 17:39:33
3番目。NullPointerExceptionを投げるのが普通。

393:デフォルトの名無しさん
07/11/10 18:47:38
メソッド内で直ちに参照を引く場合には何もしない
参照を代入するだけみたいな場合にはぬるぽを投げる
結局ぬるぽを投げるって事だが

394:デフォルトの名無しさん
07/11/10 23:29:38
NullPointerExceptionはnullなのにメソッド呼び出しをするとかの、
nullオブジェクトの不正操作に対して投げるものだと思う。
引数が不正で例外を投げるのならIllegalArgumentExceptionの方がいいと思うが。
標準APIのクラスでもnullを不正な引数として扱うメソッドはIllegalArgumentExceptionを投げるものも多い。

395:デフォルトの名無しさん
07/11/11 00:06:16
けど NullPointerException を投げるのもあるんだよな。Class クラスのメソッドとか。

396:デフォルトの名無しさん
07/11/11 20:46:07
パッケージ javax.servlet は存在しません。
というエラーでコンパイルできないんですが、どうしたらコンパイルできるでしょうか?
環境変数を使って設定したいのですが、できません。
Tomcatのサンプルプログラムはjsp、servlet共に動いています。

導入したもの
・jdk1.6.0_03
・Tomcat6.0

環境変数
JAVA_HOME
C:\Program Files\Java\jdk1.6.0_03

CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 6.0;

CLASSPATH
%CATALINA_HOME%\lib\servlet-api.jar;
%CATALINA_HOME%\lib\jsp-api.jar;
%CATALINA_HOME%\webapps\ROOT\WEB-INF\classes;

jarファイルは上記のパスに存在していました。何がいけないのか・・・

397:デフォルトの名無しさん
07/11/12 08:28:14
たとえばTextFieldに"あいうえお"って入力して
それを配列に入れとく方法ってある?

398:デフォルトの名無しさん
07/11/12 08:37:54
はい

399:デフォルトの名無しさん
07/11/12 08:45:53
暇なら教えてちょ

400:デフォルトの名無しさん
07/11/12 20:23:54
文字入力したときにイベントを発生させなきゃいかんのかも

401:デフォルトの名無しさん
07/11/13 20:08:07
>>397
使う時に、textField.getText().toCharArray() ではいけないかね?
配列で持つ方法ではなくて、ばらして何がしたいかを書くほうがいいと思うぞ

402:デフォルトの名無しさん
07/11/14 11:35:56
私もTextFieldのことを聞いていいでしょうか。
テキストを入力し、Enterを押したときにTextFieldを空にするにはどうすればよいのでしょうか。

くだらない質問ですみません…

403:デフォルトの名無しさん
07/11/14 11:49:36
>>402
何を実現したいのか解らん

404:402
07/11/14 12:17:22
文字を入力してエンターを押したらフォントと色を変えて表示する簡単なプログラムです。
エンターを押しても文字が残ってしまうので、チャットのようにエンターを押したら
TextFieldが空になったらいいなとちょっと思っただけであります…

405:デフォルトの名無しさん
07/11/14 12:19:00
空にするメソッドはないので
"" をテキストフィ-ルドにセットする

406:402
07/11/14 12:28:06
できました。
ありがとうございました。

407:デフォルトの名無しさん
07/11/15 20:31:17
JAVAでtridentエンジンとgeckoエンジンの切り替えが出来るブラウザ作ったら、重要度あるだろうか?
多分マルチプラットホームになる予定。

408:デフォルトの名無しさん
07/11/15 20:36:09
Tridentエンジンってマルチプラットフォーム?Windowsでしか使えないんじゃないの?

409:デフォルトの名無しさん
07/11/16 00:15:09
>>407
そんなブラウザを作るより、もっと使いやすくてシンプルで軽いマルチプラットフォームな俺々エンジンを作ってくれ

410:デフォルトの名無しさん
07/11/16 22:18:52
JDK6のドキュメントをダウンロードしても、上手く開けないのは俺だけ?
なんか、トップhtml開くと空白ページで、何度やっても同じorz

雑誌の付録の5は、ちゃんとできてるんだけど。。。

411:デフォルトの名無しさん
07/11/16 22:45:41
未だにIEなんか使ってるからそうなるんだ

412:デフォルトの名無しさん
07/11/16 23:01:57
IE6で確かに開けないね
docs\ja\api\index.htmlは普通に開けるから問題無いけど

413:デフォルトの名無しさん
07/11/17 01:29:39
>>412
ありがと!火狐使ったら開けた!

火狐でおかしくなることは思いついても、IEでおかしくなることは思いつかなかった。
なぜにIEだとダメなん?

414:デフォルトの名無しさん
07/11/17 03:19:47
>>413
index.htmlの先頭の
<head>
<title>JDK 6 ドキュメント</title>
のあいだに
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
を入れてみんさい

415:デフォルトの名無しさん
07/11/17 13:22:00
正規表現で「.」を任意の一文字ではなく「.」文字として
マッチさせたいのですが、.をエスケープするのに\.とするとeclipseで
エラーが出るのですが、これってどう書いたら良いのでしょうか?

416:デフォルトの名無しさん
07/11/17 13:28:45
\\.
正規表現でのエスケープと実際の文字でのエスケープで二重になる

417:デフォルトの名無しさん
07/11/17 14:28:08
>>416
ありがとうございます!
おかげで出来ました!!

418:デフォルトの名無しさん
07/11/17 15:23:33
単純にStringをintに変換したい場合↓では全く同じ動作と考えていいですか?
string s;
int n = Integer.valueOf(s).intValue();
int n = Integer.parseInt(s);


419:デフォルトの名無しさん
07/11/17 15:26:29
いいよ

420:デフォルトの名無しさん
07/11/17 15:27:14
まったく同じみたいだね
ソースコード読んでみたら?

421:デフォルトの名無しさん
07/11/17 15:28:26
>>419
ありがとうございます!

422:デフォルトの名無しさん
07/11/18 13:17:15
JSPの本からコピーした文に警告が出てしまいます↓
ArrayList<String[]> list = (ArrayList)application.getAttribute("datalist");
型の安全性:型 ArrayListの式は、未検査の型変換を使用してArrayList<String[]>に準拠するようにする必要があります。

こうしても別の警告が出てしまいます。↓
ArrayList<String[]> list = (ArrayList<String[]>)application.getAttribute("datalist");
型の安全性:ObjectからArrayList<String[]>へのキャストは、実際には消去された型 ArrayListに対してチェックを行います。

どうすれば警告を回避できますか?


423:デフォルトの名無しさん
07/11/18 13:24:21
ArrayListで受けたら

424:デフォルトの名無しさん
07/11/18 13:27:20
>>422
ArrayList<?> list = (ArrayList<?>)application.getAttribute("datalist");

425:デフォルトの名無しさん
07/11/18 14:37:53
>>423>>424ありがとうございます。
その通りやるとその文の警告は取れました。しかしその後のaddメソッドで警告やエラーが出てしまいます
String[] obj = new String[]{"test1","test2","test3"};
list.add(obj);

いろいろ調べてみましたがgenericやらオートボクシングやらラッパークラスやら
わけわからない単語が出てきて頭痛くなってきました・・・

>>423
↓出た警告です
「メソッド add(Object)はraw型ArrayListに属しています。総称型ArrayList<E>への参照はパラメータ化される必要があります」
list.add(obj);のobjが、仮にintのような基本型であればlist.add(new Integer(obj));でできるのはわかったんですが
String[]で同じような事はできないんでしょうか?

>>424
↓出たエラーです
「ArrayList<capture-of ?>のメソッド add(capture-of ?)は引数(String[])に適用できません」
<?>の意味が調べきれなかったのでちんぷんかんぷんな状態です





426:デフォルトの名無しさん
07/11/18 18:47:43
>いろいろ調べてみましたがgenericやらオートボクシングやらラッパークラスやら
>わけわからない単語が出てきて頭痛くなってきました・・・

最初から応用的なコードを書くお前が悪い
足し算引き算がわからない奴に方程式の解き方は解らないだろう
配列とArrayListの違いから説明する神が現れれば神に聞いてくれ

list.add("test1");
list.add("test2");
list.add("test3");

427:デフォルトの名無しさん
07/11/18 21:57:56
>>426
はい、すみません。勉強します。
genericを用いなくても結局addで警告が出るので
genericを用いた宣言部分の警告を取るように自力で頑張ってみます。



428:デフォルトの名無しさん
07/11/18 22:25:18
意味はわからんだろうが、警告はこうすれば出ない
ArrayList<String> list = (ArrayList<String>)application.getAttribute("datalist");


429:デフォルトの名無しさん
07/11/19 00:25:59
>>428
ありがとうございます。ただStringの配列でないとスマートでないんです。

本当は掲示板のプログラムでタイムスタンプ、名前、メッセージを取得して
配列としてlistにaddし、applicationに保存。そして別ページでlistの要素数分、配列の要素数を指定して
タイムスタンプ、名前、メッセージを取得、出力を繰り返す処理をしています。

といっても勉強の為、本のソースをコピーして動かし
わからない部分があったら調べるって作業をやっていただけなので
完全に作り直す気もスキルもありません。
この警告は無視していいのか、排除するべきなのかはわかりませんが
とりあえずこの仕様のままで警告が取れたらいいなと思っただけです。
もう少し調べてみますが、限界だと思ったら諦めます。ありがとうございました。


430:デフォルトの名無しさん
07/11/19 00:32:40
@SuppressWarnings("unchecked") を付ければ警告は出なくなる

431:デフォルトの名無しさん
07/11/19 00:54:47
まあ、なんだ
配列に拘っているのが問題、List使え、List。
Mapも使えMap。
後でメンテナンスしにくくなるぞ。

スマートだと思うなら使えwww
ArrayList<String> list = (ArrayList<String>)application.getAttribute("datalist");
String[] array = list.toArray(new String[list.size()]);


432:デフォルトの名無しさん
07/11/19 01:26:50
>>430
そういうのもあるんですね。
ってかそれをググったら同じような質問をいくつも見つけました。
自分で調べたら一例も見つけられなかったのに・・。

>>431
まだJAVA勉強初めて3日目なんですよ。
もう今日はgenericsでお腹いっぱいです
まさに同じような質問からList使えって回答がありましたw
Listの勉強の機会があったら、このサンプルソースを作り直してみます!


433:デフォルトの名無しさん
07/11/20 21:29:14
oracleのJDBCを使っているんだけど。
DATE型で格納されているデータをgetString()で取ってきたら、どんな形式で取得されるんだっけ?
YYYY-MM-DDとかYYYY/MM/DD HH24:MI:SSとか。
で、どっかの設定を変更すると、日付の形式も変更できたと思ったんだけど、どこで設定するんだったっけな。


434:デフォルトの名無しさん
07/11/20 22:56:49
プログラム初心者かつ、oracleも触ったことないけど、
ResultSet rs;
SimpleDateFormat formatter = new SimpleDateFormat("YYYY/MM/DD");

formatter.format(rs.getDate(i))じゃ駄目っすか?

435:デフォルトの名無しさん
07/11/21 00:45:19
>>433
>DATE型で格納されているデータをgetString()で取ってきたら
何でも文字列でとらなきゃいけないってどんなコボル脳?

436:デフォルトの名無しさん
07/11/22 17:09:14

初めまして、宜しくお願いします

java超初心者です

「明解 Java入門 柴田望洋(著)」を購入し、第2章 変数を使おうP45
で行き詰り、こちらの板を訪問しました。

----------
演習2-9

以下に示すプログラムを作成せよ(実数値の乱数の生成には nextDouble() を使うこと。)

・問1   0.0以上1.0未満の実数値をランダムに生成して表示。

・問2   0.0以上10.0未満の実数値をランダムに生成して表示。

・問3   -1.0以上1.0未満の実数値をランダムに生成して表示。
---------- ---------- ---------- ---------- ---------- ---------- ----------

自分なりに書いたソースも載せようとしたのですが、改行が多いためエラーとなりまして
問題文のみを書き込みしました。

どうぞ宜しくお願いします。


437:デフォルトの名無しさん
07/11/22 17:20:40
その本持ってないけど、適当に考えてこんな感じかな
public class 問1 {
public static void main(String[] args){
System.out.println(new Random().nextDouble());
}
}
public class 問2 {
public static void main(String[] args){
System.out.println(new Random().nextDouble() * 10);
}
}
public class 問3 {
public static void main(String[] args){
System.out.println(new Random().nextDouble() * 2 - 1);
}
}
章題に反して変数使ってないが…まぁいいか
なんでそんなに改行多くなるんだ?

438:デフォルトの名無しさん
07/11/22 17:37:54
>>437
ご回答有難うございます

>なんでそんなに改行多くなるんだ?
・・・超初心者なので1行書いたら2~3行、改行してまして →レス(板)書き込みエラー、となってしまいました。

見習いまして、詰めて書いてみます↓

★自分なりに書いてみました、誤りはどこでしょうか?  ご指摘、お願いします。

問1

import java.util.Random;
class Seminar2_9 {
public static void main (String[] args) {
Random aaa = new Random();

double x = aaa.nextDouble(11);
System.out.print("今日の実数値:" + x + "です。");
}
}

439:デフォルトの名無しさん
07/11/22 17:40:44
Randamというクラスに
double nextDouble(int n)というメソッドは存在しない

440:デフォルトの名無しさん
07/11/22 17:42:09
>>438
URLリンク(java.sun.com)()
その意味不明の11は何だ?

441:デフォルトの名無しさん
07/11/22 17:45:16
>>438
誤りはどこでしょうかってコンパイラが間違った場所を指摘してくれてるだろう。

442:デフォルトの名無しさん
07/11/22 18:12:44
>>439
>>441
はい、そうなんです。 

437さんの回答頂きましたが、私(超初心者)は基礎通りの書き方しか術がないもので、、、
基礎通りの書き方でお願いできれば幸いです。

>440
はい、1桁の正の整数値で1以上9以下のランダム生成は書けるのですが、
import java.util.Random;
class Seminar2_7 {

public static void main(String [] args) {
Random rand = new Random();
int Lucky = rand.nextInt(9);

System.out.println("今日のラッキーナンバーは" + (1 + Lucky) + "です。");

実数値 nextDouble() を用いて
・問1(0.0以上1.0未満の実数値をランダムに生成して表示。)の正解答がわからず
行き詰まっております。
(11)も、あれこれ考えているうちに入れてみました すみません


443:デフォルトの名無しさん
07/11/22 18:16:38
基礎通りのやり方ってのがなんだかわからないが
URLリンク(java.sun.com)
で目的のクラスを探して『メソッドの概要』にないメソッドはない

444:デフォルトの名無しさん
07/11/22 18:16:51
>>442
> 実数値 nextDouble() を用いて
> ・問1(0.0以上1.0未満の実数値をランダムに生成して表示。)の正解答がわからず
> 行き詰まっております。
> (11)も、あれこれ考えているうちに入れてみました すみません

?? >>437 さんがばっちり正解書いてるじゃん?
ばらしたければ、ばらせばいいだけだよ。


445:デフォルトの名無しさん
07/11/22 18:20:55
>>442
URLリンク(java.sun.com)
を見てみるといい

Randomクラスで使えるメソッドの一覧が載っている
そこには nextInt は引数なしと引数付きの 2 種類あるが、
引数付きの nextDouble は無いのがわかるだろう
そこに載ってるものしか使えないから、その中から説明を読みながら目的に合ったものを選ぶんだ
自分勝手に新しいメソッドを考えてはいかん

446:デフォルトの名無しさん
07/11/22 18:44:11
436です。皆様、ご指摘有難うございます

>>443
>>445
リンク先有難うございます、勉強いたします 

>>444
はい、自分の書き方との違いに戸惑ってまして ご参考させて頂きます。

恐縮です、今後とも是非宜しくお願いします   436。

447:デフォルトの名無しさん
07/11/22 20:44:29
>>437
お世話になります 436です、宜しくお願いします。

// 問1 437さん回答(回答有難うございます) クラス名 問1→Q1としてコンパイルしました。

public class 問1 {
public static void main(String[] args){
System.out.println(new Random().nextDouble());
}
}

G:\MeikaiJava>javac toi_1.java
Q1.java:21: シンボルを見つけられません。
シンボル: クラス Random
場所 : Q1 の クラス
System.out.println(new Random().nextDouble());
^
エラー 1 個

G:\MeikaiJava>

437さんのご回答をコンパイルしたのですが、エラーが出てしまいました。


448:デフォルトの名無しさん
07/11/22 20:46:51
//問1 私、436 改めて書いてみました。
import java.util.Random;                            // 入門書通りでしかソースを書けないので、入門書通りimport を最初に書きました。
class Q1 { // クラスを書きました。
public static void main(String[] args){                   // 入門書の意向で、初心者は、とりあえずこの"型"で覚えるようにとの事です。
System.out.println(new Random().nextDouble());           // 437さんご回答の"型"で、少々戸惑っております。
}
}

public class 問1 {     // public を最初に書く事を習っておらず、戸惑っております。public とは
class Q1 {          // 入門書通り書きました。


449:デフォルトの名無しさん
07/11/22 20:49:48
なにその本
入門書なら問題の答えは載せるべきだろ

450:デフォルトの名無しさん
07/11/22 20:58:06
>>449

436です。はい、応用問題に解答は記載されていません "自ら考え解く力を養う"というコンセプトは良いと思いますが
初心者には、解答もほしいところです

451:デフォルトの名無しさん
07/11/22 21:23:22
なんせ、ぼーよーちんの本だからなあ

452:デフォルトの名無しさん
07/11/22 22:13:17
問題の解答は作者HPで順次公開
ってスタイルじゃなかったっけ

453:デフォルトの名無しさん
07/11/22 22:20:27
436です。

「明解Iava入門編」に関しては、解答は見当たりませんでした  ・・・残念です。

ですが、本の内容は不親切な感を受けません  初心者でも、まずソースを書いてみて  後々「コレはこういう事だよ」という、後の章で説明もありますし。

454:デフォルトの名無しさん
07/11/22 22:58:09
>>453
演習は独習Javaでやるべし

455:デフォルトの名無しさん
07/11/23 00:39:03

こんにちは、よろしくお願いします。
JAVAを始めたばかりの者です。
学校の講義で課題が出たのですが、分からないので教えてください。

【課題】
『5つの配列にそれぞれ数字を代入し、指定した値が配列に含まれているかを探すプログラムにおいて、
指定した数が見つかった場合には、それが5つの中で何番目の要素であるかを出力する文を書きなさい。』
というものです。
配列を指定し、指定した値を探し、それがあるかないかを探すプログラムは示されているのですが、
それが0~4のどの要素であるかを探すプログラムが欠けている状態です。
どうか教えてください。よろしくお願いいたします。


456:デフォルトの名無しさん
07/11/23 00:41:22
>>455
宿題スレ行け
スレリンク(tech板)

457:デフォルトの名無しさん
07/11/23 00:43:45
Arrays.binarySearch使ったら怒られるんだろうな

458:デフォルトの名無しさん
07/11/23 01:13:09
>>455
なにを教えて欲しいかを書けない奴は超初心者以前という事を覚えておけ

459:デフォルトの名無しさん
07/11/23 01:28:42
>>454

アドバイスありがとうございます。  ググってみて拝見しました(Amzn) レヴューを一読しましたが、評価が1、2。 もしくは4,5。 と、はっきり2分化されてるようですね

平均(3)がないのも、・・・それだけ読み手を選ぶのでしょうか。 初心者が高評価して、玄人が低評価するとは考えにくいですし
万人の"聖本"があれば、どうぞ宜しくお願いします。

P.S.
最近HDD購入しました Travelstar 5K160    ・・・静音性に賛否あるようですが。 私はそれほど気にならないと感じますが。    本日はアリガトウございました。  436。



460:デフォルトの名無しさん
07/11/24 00:03:33
javaでcabochaを使うにはどうしたらいいのでしょうか?

461:デフォルトの名無しさん
07/11/24 04:21:52
>>460
マルチするな
スレを移動するなら移動元はきちんとクローズしておけ
cabochaなんて知らねえ
そんな単語だけで情報が得られると思ってるのか
少なくとも関連情報へのポインタを示すべきだろ
お前の自明は他人の不明だ
もしcabochaでなく日本語係り受け解析器のCaboChaのことなら
Runtime#execなりProcessBuilderなりで起動して
標準入出力でデータの受け渡しをするようにすればいい
一時ファイルを使ってもいい

462:デフォルトの名無しさん
07/11/24 05:05:57
>>461
マルチのことはともかく、知らなければレスしなければいいだけだろ。

463:デフォルトの名無しさん
07/11/24 09:57:14
>>462
何を恥ずかしがっているんだ?

464:デフォルトの名無しさん
07/11/24 22:56:08
googleのような入力フォームのあるサイトにアクセスし
適当なクエリを打ち込んで、その結果をテキストファイルに
保存してくれるようなプログラムはどのように書けばいいのでしょうか?

465:デフォルトの名無しさん
07/11/24 23:09:08
Httpでサイトに接続する
サイトに渡す引数やそのフォーマットはサイトが公開しているのが条件
戻ってきたXMLなりHTMLを解析して、テキストファイルに出力する
HTTP通信の部分はCommonsのライブラリ等を使うと楽。

だが超初心者に出来るとは思えない。

466:デフォルトの名無しさん
07/11/24 23:14:44
初心者なら丁度いいレベルだな

467:464
07/11/24 23:24:35
>>465
ありがとうございます。
さっそく試してみたいと思います。

468:デフォルトの名無しさん
07/11/24 23:54:14
>>466
Java初心者ならなんとかなるがプログラミング初心者には無理だろ

469:デフォルトの名無しさん
07/11/26 13:10:52
Java とかより Ruby とかの方が全然簡単そうなタスクだな。

470:デフォルトの名無しさん
07/11/26 15:06:43
吉岡先生、どうぞ

471:デフォルトの名無しさん
07/11/27 10:18:36
清十郎?

472:デフォルトの名無しさん
07/12/04 21:49:46
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.Insets;

public class GameTestMain {
JFrame frame1;

GameTestMain(){
frame1 = new JFrame("ゲームテスト");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setBackground(Color.WHITE);
frame1.setResizable(false);

frame1.setVisible(true);
Insets insets = frame1.getInsets();
frame1.setSize(600 + insets.left + insets.right,
400 + insets.top + insets.bottom);
frame1.setLocationRelativeTo(null);
}

public static void main(String[] args) {
GameTestMain gtm = new GameTestMain();
}

473:デフォルトの名無しさん
07/12/04 21:50:47
>>472に書いたプログラムを実行した所、ウィンドウの背景が白になりませんでした。
どこが間違ってるんでしょか?


474:デフォルトの名無しさん
07/12/04 23:29:56
たぶん
frame1.getContentPane().setBackground(Color.white);

475:デフォルトの名無しさん
07/12/05 14:39:29
JPanel jp = new JPanel();
jp.setBackground(Color.white);
frame1.getContentPane().add(jp);

の方が良くないかな?

476:デフォルトの名無しさん
07/12/05 21:30:36
java:超初心者
参考書:明解Java入門編   柴田望洋(著)        ※著者御中 どうか、解答集をupして頂けたら幸いです

横から恐れ入ります
"絶対値"...なんて言葉、久しく接しておらず   ...奮闘しとります("絶対値詳細"は、ググって独学します。)

解答のプロセスが解りません
講義頂ければ幸いです、どうぞ宜しくお願いします。     途中まで書いてみました ↓

477:デフォルトの名無しさん
07/12/05 21:31:38
整数値を読み込んで、その絶対値を求めて表示するプログラムを作成せよ。
整数値:-5
解答:5

import java.util.Scanner;
class Seminar3_1 {

public static void main(String [] args) {
  Scanner a1 = new Scanner(System.in);
System.out.print("整数値:");
  int n = a1.nextInt();          //ここまでは淡々と書けました
                      //...ここからフリーズ。おろおろしながら書きましt
  if (n>0)
System.out.println("その絶対値は"+"です。");


478:デフォルトの名無しさん
07/12/05 21:36:43
if (n < 0) {
n = -n;
}

479:デフォルトの名無しさん
07/12/05 22:43:36
>>478
有難うございます、解決致しました。 //そして、"java if 絶対値" でググってみました。

import java.util.Scanner;
class Seminar3_1 {

public static void main(String [] args) {
  Scanner a1 = new Scanner(System.in);
System.out.print("整数値:");
  int n = a1.nextInt();
  if (n<0) {n =-n;}
System.out.println("その絶対値は"+n+"です。");
}
}


480:デフォルトの名無しさん
07/12/05 23:50:28
素直に Math.abs(n) でもいいような気もするが。

481:デフォルトの名無しさん
07/12/06 17:08:15
Seminar3_1って名前と本の目次からみてif文の使い方の段階じゃないかな

482:デフォルトの名無しさん
07/12/06 17:49:25
Seminar3_1_Math.java

import java.util.Scanner;
class Seminar3_1_Math{

public static void main(String [] args) {
Scanner a1 = new Scanner(System.in);

System.out.print("整数:");
int n = a1.nextInt();

n = Math.abs(n);
System.out.println("絶対値"+n+"です。");
}}

はい、現段階でif文を学んでます。"n = Math.abs(n);"を理屈もわからず書いてみたところ・・・できました、が理解度は??です

Math.abs(n); は、どこを見ればいいですか?
URLリンク(java.sun.com)

483:デフォルトの名無しさん
07/12/06 17:59:05
>>482
すべてのクラスの Math をクリックして abs っていうところ

484:デフォルトの名無しさん
07/12/06 20:36:23
>>483
有難うございます。  /* if文 →次はswitch文のようです、が 残り20ページほどif文が続きそうです */

485:デフォルトの名無しさん
07/12/10 21:22:58
キーボード入力でコンパイルしてファイルを実行しても

java.lang.NoClassDefFoundError: javaapplication3/e4no1
Exception in thread "main"
Java Result: 1
がでます、誰か実行の仕方教えて
























486:デフォルトの名無しさん
07/12/10 21:37:45
>>485
エラー内容:お前が実行しろと指定したクラスが見つからないんだが
原因その1:クラスの名前が間違ってる
原因その2:クラスパスの設定が間違ってる
このへん
URLリンク(www.wikiroom.com)

487:デフォルトの名無しさん
08/01/09 15:14:43
大学の宿題でいきなり以下のものを参考にして簡易お絵かきソフトを作成
しろと言われました。参考書を見ましたが、import、 public cass、
public void等覚えましたが難しいです。
初めに与えられたヒントです。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Dots extends Applet implements ActionListener,
MouseListener{

int imaX,imaY;
Button kesigomu;
Graphics egaku;

public void int(){
kesigomu=new Button("kesuyo")
kesigomu.addActionListener(this);
add(kesigomu);
egaku=getGraphics();
this.addMouseListener(this);
}
です。意味がわかりません。さらに、ヒントで
マウスがクリックされた時 mouseClicked MouseListener MouseAdapter
マウスがボタンを押された時 mousePressed MouseListener MouseAdapter
マウスがボタンを離された時 mouseReleased MouseListener MouseAdapter
マウスカーソルがアップレット領域に入った時 mouseEnterd MouseListener MouseAdapter
マウスカーソルがアップレット領域から出た時 mouseExited MouseListener MouseAdapter
マウスでドラッグした時 mouseDragged MouseMotionListener MouseMotionAdapter
マウスで動かした時 mouseMoved MouseMotionListener MouseMotionAdapter
これも使用しなさいとのことです。詳しい方、よろしくお願いします。


488:デフォルトの名無しさん
08/01/09 15:18:11
すみません、上記はjavaアプレットです。

489:デフォルトの名無しさん
08/01/09 16:03:45
>>487
唐突に出されたわけでなく授業をさぼっていたからいきなりと感じてるだけじゃないの?
単に分からないだけでは漠然としているので質問を絞り込むか、
タメにはならないから勧めたくはないが、自分でやる気がないのなら宿題スレへ。

490:デフォルトの名無しさん
08/01/09 21:03:53
日本語初心者で説明できないから、いきなりということにしたのかも。
高校出ても日本語は初心者のままって奴増えてるから……

491:デフォルトの名無しさん
08/01/09 22:07:05
日本語の問題というよりも基本的な考え方がわかってないように
しか見えん。ヒントでなんとかなるレベルじゃなくて、答を作って
もらって書き写すしかなさそ。しかも、} 忘れるとかちょっと
写し間違えたらグリコ状態になりそうだ。

492:デフォルトの名無しさん
08/01/11 09:12:52

String型文字列の比較を行うとき
見た目は同じ文字列なのに一致しないというケースはありうるんでしょうか?
そうとしか思えない現象が起きているんですが

String letter="れません 冬ゎやっぱりコタツだょね あったかぁ~";
String word="コタツ";

letter.indexOf( word ) ← これが -1


入力の文字列はUTF-8で、
入力するとき .toLowerCase() とかやっているんですが何か関係あるでしょうか?

しかも、同じようにやっているのに
他の文字列(これも日本語、マルチバイト文字)では一致する場合もあります。


そしてこういう場合、何が原因というか対策などないでしょうか...



493:デフォルトの名無しさん
08/01/11 21:38:09
すみません
ふらっとC#スレ→win32スレから誘導されてきました

お聞きしたいのですが
ブラウザ(IE)上に表示されたテキストボックスからテキスト取得ってできるんですかね?
サイトはJAVAアプレットで書かれているものです
参考サイト、ググるキーワードなどあればご教示下さい

宜しくお願いします

494:デフォルトの名無しさん
08/01/11 23:13:56
>>492
toLowerCase で 「ツ」 が 「ッ」 になってたりしてな。

>>493
出来なくはないけど只管難しい。

495:デフォルトの名無しさん
08/01/16 08:39:34
java(というかswing?)を使って外部のプログラムを操作

(ex.ボタン押したらLinux端末にコマンドを打ち込む。
コマンドから出た文章をテキストボックスに表示する)

とかいうことをするには、何かいいクラスとかあるのでしょうか?

496:デフォルトの名無しさん
08/01/16 14:17:00
標準入出力を読み書きする程度の操作で済むなら普通にProcessBuilderかRuntime#execで
シェルでも起動させてProcess#getInputStreamと#getOutputStreamでいじればいいんじゃないか

497:495
08/01/16 18:47:13
>496
できれば、その後定期的(1秒ごと程度)
に出力の値を読めるようにしたいのですが、
シェルを毎度起動するとさすがにうざいですよね?

498:デフォルトの名無しさん
08/01/16 19:32:12
なんで毎度起動する必要がある?
起動しっぱなしにしとけば?

499:495
08/01/16 22:27:34
>498
あ~調べてみたら確かにできそうですね。
あとはシェル常時起動がツールバー的に邪魔じゃないことを祈ります。

500:デフォルトの名無しさん
08/01/18 21:50:59
ここで聞くことではないのかもしれませんが

「プログラムの追加と削除」を見ると
Java(TM)6 Update 2
Java(TM)6 Update 3
と2つのプログラムがありました
このうち(2)を削除しても問題ありませんか?
お忙しいかと思いますが
超初心者の私にお答えをお願い致します

501:デフォルトの名無しさん
08/01/18 21:57:06
まったく問題ない

502:デフォルトの名無しさん
08/01/18 22:42:58
>>501
有難うございます。

503:デフォルトの名無しさん
08/01/19 19:37:15
ものすごい初心者ですみません。
JavaServletに複数のクライアントが接続した再に、クライアントごとに変数を容易するにはどうしたらいいでしょうか?

例えばクライアントがサーブレットにアクセスした回数をカウントするプログラムなど。

504:デフォルトの名無しさん
08/01/19 19:56:54
プログラミング<<<CPU設計だから

505:デフォルトの名無しさん
08/01/20 17:26:45
アプレットで画像を印刷しようとしているのですができますか?

Image a = getImage(getCodeBase(),"img.gif");
で読み込んだ画像を、パネルに表示せずにそのまま印刷することが理想ですが、
無理でしたら画像をパネルに表示し、それをパネルごと印刷したいと考えています。
やり方が分かる方よろしくお願いします。

506:デフォルトの名無しさん
08/01/20 18:32:43
>>505
java.awt.print.Printableを実装したクラスを作ってjava.awt.print.printerJobにセットして
printメソッド呼んでやればできると思う。(実際はもうちょいやる事あるけど)
JDKに同梱されているjava2Dのデモにほぼまんまの処理があったはずなので探してみて。

507:デフォルトの名無しさん
08/01/20 19:59:11
柴田望洋のJavaの入門書が発売されましたが
やさしいJavaとどちらが初心者にはいい感じですか?

508:デフォルトの名無しさん
08/01/20 20:21:37
>>506
レスありがとうございます。早速やってみますね。
もしまた分からないことがあったらよろしくお願いします。

509:デフォルトの名無しさん
08/01/20 21:40:24
>>507 Java の初心者?それともプログラミングの初心者?

510:デフォルトの名無しさん
08/01/20 22:19:48
柴田望洋の明解JAVA使って一通り終わって
GUIの勉強を軽くでいいのでしたいmpですが、分かりやすい本ってなんかないですか?

ベクターだとかスイングだとかボタンとかテキストフィールドとかテーブルモデルとかわけわかんないorz

なんとか3日以内に理解したいんだけど・・・


511:デフォルトの名無しさん
08/01/20 22:47:23
>>506
すみません、デモが見つからないのですがどこにありますか?orz
java初心者ですみません(つд`)

512:506
08/01/21 00:00:11
>>511
Javaのインストールディレクトリ直下のdemoの下です。
うちのマシンだと
C:\Program Files\Java\jdk1.6.0_01\demo\jfc\Java2D\src\java2d

ここのTools.javaとSurface.javaが対象になるかと。


513:505
08/01/21 00:28:33
>>512
何度もすみません、ありがとうございます。
おかげで見つかりました^^(自分のマシンだとjdk1.5.0_12の中にしか入ってませんでしたが)

ですが・・・ソースが難しくて理解が困難ですorz
また、これをそのままコンパイルにかけたらエラーが出てしまって・・・
どうやったらこの二つが動くようになるでしょうか?
あとどこを取り入れたらいいのか、アドバイスお願いします><

514:506
08/01/21 01:03:59
>>513
んと、ざっとプログラム見てみた感じだと
Tools.javaのrunメソッドでPrinterJob使っているところがあるので基本的な使い方は
そこを参照すればいけそう。
Printableの方はなんらかのコンポーネントに対してPrintableをimplementsしたクラス
を作ってやってprintメソッドを実装。
このオブジェクトにイメージのっけてPrinterJob#print()実行
でいける…かな?(「イメージのっけて」ってのが面倒かもしれんけど)
プログラム斜め読みなんで間違ってたらすまん

515:506
08/01/21 02:13:37
目が冴えて眠れないんでサンプル作ってみた
URLリンク(rg550.hp.infoseek.co.jp)
プリンタが無いんで稼動テストできないけど一応こんな感じになるかな、という参考程度に。

516:デフォルトの名無しさん
08/01/21 12:04:35
>>503
>複数の接続
ひとつからの断続的な接続なのか同時多数接続なのかわからないYO

517:デフォルトの名無しさん
08/01/21 12:39:26
>>503
おとなしくJSPを使うことをすすめる。

518:503
08/01/21 16:22:22
>>516
同時多数接続です。接続順にサーブレットがユーザー番号を発行して、
ユーザー番号ごとに変数を用意すればOKですかね?

>>517
サーブレットでやりたいのです。


519:デフォルトの名無しさん
08/01/21 23:31:00
なぜ茨の道を歩もうとするのか

520:505
08/01/21 23:42:36
>>515
昨日は眠くなって寝てしまいました、すみません><
>>515でいただいたものを使ったらできました!
何度もアドバイスしていただいただけでなく、わざわざ作っていただき本当に感謝です><
おかげで思った以上の物が作れそうです。
本当にありがとうございました!

521:デフォルトの名無しさん
08/01/22 18:35:17
public class PetTester2 {
static void intro(Pet p){
p.introduce();
}



public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
Pet[] a = {
new Pet("Kurt","アイ"),
new RobotPet("R2D2","ルーク"),
new Pet("マイケル","英夫")

};

for(Pet p : a){
intro(p);
System.out.println();
}

}

}

この文章のfor(Pet p : a)の意味がわからないのですが、どういった意味なんでしょうか?
調べてもわからなかったので教えてくださいm(__)m


522:デフォルトの名無しさん
08/01/22 18:44:55
>>521
java 5 の新機能でググレ。いわゆる for each文。

523:デフォルトの名無しさん
08/01/22 18:48:34
>>522
理解しました!ありがとうございましたm(__)m

524:デフォルトの名無しさん
08/01/23 01:54:51
Vector data = new Vector<クラス名>();

これってどんな意味ですか?

Vector data = new Vector();
これとどう違うのですか?(こちらの意味は普通にわかります)

<>これの意味が調べても良くわからなかったので教えてくださいm(__)m

525:デフォルトの名無しさん
08/01/23 02:37:53
連スレでごめんなさい

  JButton saveButton, openButton, insertGoodButton;
JTextField goodNameTextField, goodPriceTextField;
JTextArea messageArea;
GoodsTableModel goodsTable;
JFileChooser fileChooser;

GUIのクラスのはじめにこのような記述がありますが
この中のGoodsTableModel goodsTable;の役割は何ですか?(役割というか、このような記述がどういった意味があるのか)

他のはGUIを作るうえでのボタンや画面などを表しているっていうのは何となくわかるのですが・・・

526:デフォルトの名無しさん
08/01/23 10:29:08
CGIを使って非同期をするとあるのですが
CGIのファイルは自分のパソコンに置いてテストできるのでしょうか?
どこかにうpしないと無理でしょうか?
よろしくお願い致します

527:デフォルトの名無しさん
08/01/23 11:21:43
>>524
ジェネリクス、genericsでぐぐる

5.0からの機能を解説してる入門書ってほんと少ない
あっても欄外解説や改訂版の付け足しコラムで触れてる程度だったり

528:デフォルトの名無しさん
08/01/23 16:05:53
>>525
Swingコンポーネントはデータを保持するモデルクラスとそのデータを表示するビュークラスに分かれている
TableModelはテーブル用のデータを保持するモデルクラス
JTableはTableModelが保持しているデータを表示するビュークラス
同様にJButtonとかJTextFieldもビュークラスであって、対応するモデルクラスが(普段は気にしないけど)存在している

529:デフォルトの名無しさん
08/01/23 16:07:12
>>526
それJavaとなんか関係が?

530:デフォルトの名無しさん
08/01/23 19:12:52
>>529
詳しくかけないけど関係あるんですよ

531:デフォルトの名無しさん
08/01/23 19:16:52
>>530
自分のパソコンにwebサーバを入れれば自分のパソコンに置いてテストできますよ

532:デフォルトの名無しさん
08/01/23 19:18:37
>>531
そうなんですか
即レスありがとうです

533:デフォルトの名無しさん
08/01/24 03:55:35
>>527-528
お二方有難うございますm(__)m
5.0からの新機能とやらに大分悩まされていますが頑張って見ますorz...

テーブルモデルってのは、クラスでいうところの抽象クラスみたいなもんなんですかね
はっきりとはまだ分からないけどなんとなく分かった気がしました!

534:デフォルトの名無しさん
08/01/24 14:51:11
>>524
> Vector data = new Vector<クラス名>();
>
> これってどんな意味ですか?
>
> Vector data = new Vector();
> これとどう違うのですか?(こちらの意味は普通にわかります)

Vector<Type> data = new Vector<Type>();

今までは Object なら何でも入れられたけど強力すぎて
バグの元だからなんとか制限しましょ、てことだと思っ
てる。上の例だと data に add するには Type か、
Type を継承してる必要がある。

ところが remove() とかは Object を渡せちゃうんだよ
ね。

それと Type 情報は最終的には消えちゃうので C++ の
ような型安全性とはちょっと違うのもポイント(ゴリゴ
リ書いてれば「アレ?」というケースがママ登場する)。


535:デフォルトの名無しさん
08/01/25 01:41:21
removeの引数がObjectであることは問題にならない
リストに入っていないものを渡しても何もせずに戻ってくるだけ

536:デフォルトの名無しさん
08/01/25 01:44:34
というか、入門書でListを説明してるものが少ないんだよね。
Listが載ってない入門書は、はっきりいって無価値なのに。

537:デフォルトの名無しさん
08/01/25 01:49:09
>>535
つ「型安全性」

見つけにくいバグの恩賞になるのになんで Object のままなのか
さっぱりわからん > remove()

538:デフォルトの名無しさん
08/01/25 02:40:07
URLリンク(www-128.ibm.com)

539:デフォルトの名無しさん
08/01/25 09:32:37
>>538
> URLリンク(www-128.ibm.com)
>
> クラス・ライブラリーをgeneric化する大きな目的の
> 一つは、既存コードの意味体系を壊したり変更したり
> しないということです。ですからremove() や
> removeAll()、retainAll()、それにcontainsAll() な
> どは、全く初めからgeneric用に再設計されたものよ
> りも、弱いタイプ制約で定義されている必要があった
> のです。

URLリンク(java.sun.com)

> ソースレベルの下位互換性はサポートされていません。

イミフ(w

540:デフォルトの名無しさん
08/01/25 11:58:45
バイナリ互換性のためだろ
古いクラスファイルを最新のVM上でも動かしたかった
ソースの互換性はないので、再コンパイルする場合は書き直しが必要

541:デフォルトの名無しさん
08/01/25 12:06:13
javaはOSは関係ないと書いてあったのですが

ファイル操作をするとき
OSXは/
Winは¥
でフォルダー、ディレクトリを区切っていますがそこのところはどうなるのでしょうか?

542:デフォルトの名無しさん
08/01/25 12:14:09
java.io.File.separatorChar に区切り文字(OSXなら/、Winなら\)がセットされてるので、それを使う

543:デフォルトの名無しさん
08/01/25 13:49:39
>>540
> バイナリ互換性

コンパイル結果のバイトコードは Object 受けでもいいけど、
コンパイル時に指定した型以外を渡せないようにしなかったのは
何故なんだぜ?

544:デフォルトの名無しさん
08/01/25 14:19:53
>>543
そういやそうだった
なんでだろね

545:デフォルトの名無しさん
08/01/25 16:25:53
>>542
サンクス

546:デフォルトの名無しさん
08/01/25 20:31:34
javaでひし形の3次元モデルを作ってます。そこで質問なんですが

頂点座標のデータ
P1{-1,0,0}
P2{0,1,0}
P3{0,0,-1}
P4{1,0,0}
P5{0,0,1}
P6{0,-1,0}

面のデータを加える場合は、{{-1,0,0},{0,1,0}{0,0,-1}}のように
記述するんでしょうか?

547:デフォルトの名無しさん
08/01/25 22:08:30
>>546
ちょっとわからんが、3D model をどう作ってるの?
code を見ないとわからん。

548:デフォルトの名無しさん
08/01/26 01:49:36
>>547
レスしてもらったのに申し訳ないです。
データの入ったパソコンを実家に忘れてしまいました。
また、後日質問させていただきます。

549:デフォルトの名無しさん
08/01/26 22:15:21
URLリンク(www7.axfc.net)
どなたか助けてください。コンパイルはできるのに表示されないんです

550:505
08/01/27 21:06:43
>>515でいただいたソースで印刷はできるようになったのですが、
セキュリティー警告のポップアップで取り消しを押すとエラーが出てしまいます。
このエラーを出すとその後印刷ができなくなってしまうのですが、対処法は有りますか?

551:デフォルトの名無しさん
08/01/27 21:27:29
>>549
例外メッセージが出てるはずだから、それをよく読むこと。
ヒント:ArrayList の get() メソッドの引数は、ゼロから size() - 1 までの値を入力するように。


関係ないけど、ヒント2:きみがやりたいのは「/ 3」ではなく「% 3」のはず。

552:デフォルトの名無しさん
08/01/29 19:23:07
>>550
セキュリティーで問題ありそうなのに対処せずに使い続けようとすればどっかにしわ寄せがくる希ガス
大丈夫と判っていても判断するのはOSだけど

↓こんなんみつけたけど別件かな?
URLリンク(www.losttechnology.jp)
ご利用は自己責任で。

553:550
08/01/30 23:56:46
>>552
そうですか(´・ω・)
レスありがとうございました。

あと使用するのが自分のPCではないので、
URLの先のものはちょっと無理ですね;
でもせっかくなんで自分のPCで少し試してみようと思います。

554:デフォルトの名無しさん
08/02/02 00:50:16
質問です。ロジックの問題なのですがお願いします。

「名前クラス」はString型の変数kanaとspellを持っています。
①kanaに「けんじ」と入っている場合、spellには「kennji」と入っています。
②kanaに「きんや」と入っている場合、spellには「kinnya」と入っています。
③kanaに「こんにゃく」と入っている場合、spellには「konnnyaku」と入っています。
ローマ字入力の方式は複数あり、
たとえば「ん」の入力の時に次の文字が子音で始まる場合、
「n」の入力を一回で済ましてしまう方法があります。
「けんじ」の場合、spellに「kenji」と入力する方法です。
この二つの方法に対応するようにspellの内容を入れ替えるメソッドを作りなさい。

以上が問題なのですが、まずkennjiをkenjiにするためのロジックを考えてみました。
Stringクラスのreplaceを使って、
public void change() {
 spell = spell.replace("nn","n");
}
とすると、「ん」の次の文字が母音の場合とYの場合におかしくなってしまいます。
「kinnya」が「kinya」になってしまいます。(「きんや」が「きにゃ」になってしまう)
逆に戻すメソッド(kennjiをkenjiにする)も考えようとするとまったく思いつきません。
どなたかいい方法をお教えください。

555:デフォルトの名無しさん
08/02/02 01:50:51
>>554
replace("ny", "nny");
replace("nn", "n");

556:デフォルトの名無しさん
08/02/02 02:53:45
>>554
「たんい」と「たんに」の区別をどう判定するんだ?
「tanni」これは単位?単に?


557:554
08/02/02 12:06:05
>>555
ありがとうございます
そのやり方はまったく思いつきませんでした。
ほぼうまくいったのですが「こんにゃく」の場合に「konnnyaku」が「konnyaku」になってしまいました
これはどうアレンジすればいいでしょうか ほんとに考えたんですけどまったく思いつきません。
>>556
「tanni」は「たんい」です
わかりにくい説明ですみません。自分なりに整理してみました。
方法1は「ん」の入力のとき必ずnを二回押さなくてはならない。
方法2は「ん」の次の文字が子音(yを除く)で始まる場合のみ「n」は一回押すだけでよいようにする。

方法1を方法2に変換するにはこうやりました。
spell = spell.replace("na", "01");
spell = spell.replace("ni", "02");
spell = spell.replace("nu", "03");
spell = spell.replace("ne", "04");
spell = spell.replace("no", "05");
spell = spell.replace("ny", "06");

spell = spell.replace("nn", "n");

spell = spell.replace("01","na");
spell =spell.replace("02","ni");
spell = spell.replace("03","nu");
spell = spell.replace("04","ne");
spell = spell.replace("05","no");
spell = spell.replace("06","nny");
しかし方法2を方法1にするやり方がまったく思いつきません。
方法1ももっとスマートなやり方はないでしょうか?

558:デフォルトの名無しさん
08/02/02 12:25:35
質問です。
やさしいJava活用編を元に勉強しているのですが、Tomcatのインストールで失敗してしまいます。

具体的には、
Using Jvm:C:Program Files\jre1.5.0_07\bin\client\jvm.dll
の時点でエラーが出てしまいます。
JDKを1.5から1.6に入れ直して再び試しましたが同じ結果でした。
JAVA_HOMEも設定しました。
インストールしようとしているTomcatのバージョンは6.0.14です。OSはWindows Meです。
どなたかご教授お願いします。

559:デフォルトの名無しさん
08/02/02 12:58:27
エラーの内容は?

とりあえず、コマンドプロンプトで
%JAVA_HOME$\bin\java -version
って実行したらどうなる?

560:デフォルトの名無しさん
08/02/02 13:00:01
>>554
正規表現で出来そう

561:デフォルトの名無しさん
08/02/02 14:15:24
>>554
n二文字にするのが根本から間違ってるんじゃね?

562:デフォルトの名無しさん
08/02/02 16:47:05
ん[あいうえお] nn
(な|に|ぬ|ね|の|にゃ|にゅ|にょ) n
ん(な|に|ぬ|ね|の|にゃ|にゅ|にょ) nnn
こうなのか?

563:デフォルトの名無しさん
08/02/02 17:13:14
今日はじめたばっかりの者ですが、パス指定がよく分かりません。
C:\>Documents and settings\sela>cd C:\program Files\Java\jdk1.6.0_04>
コマンド構文が正しくありません
正しく入力してあると思うんですが、結果がでません。
どこが正しくないですかね?

564:デフォルトの名無しさん
08/02/02 17:19:01
最後の>は不要

565:デフォルトの名無しさん
08/02/02 17:47:05
レスありがとうございます。
最後の>はずしたら今度は
'Documents' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
って出てきました。質問ばっかですんません

566:デフォルトの名無しさん
08/02/02 17:54:13
とりあえず入力するのは
cd C:\program Files\Java\jdk1.6.0_04
これだけだ。

Javaより、まずはコマンドプロンプトの勉強しろよ。

567:デフォルトの名無しさん
08/02/02 18:00:36
できました。ありがとうございます。まずはコマンドプロントからがんばって
いきたいと思います。

568:デフォルトの名無しさん
08/02/02 18:44:45
>>563
いまから始めるJava 第1回「Java2 SDKで学習の準備」
URLリンク(www.atmarkit.co.jp)

569:558
08/02/02 22:46:11
>>559さん、ありがとうございます。

インストーラにしたがってnextをポンポン押して進めていくと、インストール中に

「Failed to install Tomcat6 service.
Check your setting and permissions.
Ignore and continue anyway(not recommended)?」

というメッセージが出て来て、中止or再試行or無視の選択を迫られます。
(このときの進捗状況が Using Jvm:C:Program Files\jre1.5.0_07\bin\client\jvm.dll でした)
再試行しても、やっぱりこのメッセージが出てきます。
無視してインストールを進めて、その後
スタートメニュー → プログラム → apache Tomcat6.0 → monitor Tomcat
から起動させてみると、

「C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin\tomcat6w.exe
システムに接続されたデバイスが機能していません」

「プログラム開始エラー
TOMCAT6W.EXEファイルがリンクしている
エクスポート NETAPI32.DLL:NetApiBufferFreeは見つかりません」

という二つのメッセージが同時に出て来てtomcatは起動できませんでした。

あとコマンドプロンプトで、「%JAVA_HOME$\bin\java -version」と入力したところ、
「コマンドまたはファイル名が正しくありません」
と表示されました。これはJAVA_HOMEの設定が正しくされていないという事なんでしょうか?

570:デフォルトの名無しさん
08/02/03 01:38:03
インストール済みの既存の
Tomcatサービスをとめればいいんだよ。
Windowsだったら、常駐プログラムとしてTomcatサービスが起動していると思う。
まずはそれを切る。常駐アイコンが見当たらなければタスクマネージャでtomcatを強制終了するか
設定-サービスでTomcatのサービスを探してTomcatサービスを終了すればいい。

もしくは、既存のTomcatをアンインストールしてみてはどうだろう?

571:558
08/02/03 13:05:55
>>570さん
常駐プログラムとしてTomcatは起動していないみたいです。
タスクマネージャって、[Ctrl]+[Alt]+[Delete]押して出てくるやつですよね?
そこにもTomcatの名前はありませんでした。

[アプリケーションの追加と削除]からTomcatをアンインストールして
再びインストールを試みても、>>569のような状況になってしまいます。

572:デフォルトの名無しさん
08/02/03 18:56:21
正直言って tomcat の事はあまり詳しくないんだけど
あんまし有用なレスもついてないっぽいので・・・

OS は Me だという事で、それじゃ「サービス」には登録できない。
9x 系 (Win95, 98, Me) には「サービス」が無いから。
もしかしたら「Failed to install Tomcat6 service.」はその警告なのかも。

> エクスポート NETAPI32.DLL:NetApiBufferFreeは見つかりません

これ、Win2000 や XP 専用のアプリを 9x 上で動かそうとした時に
よく見かけるよなあ。9x には NETAPI32.DLL が存在しないんだっけ?
もしかしたら tomcat6 って、もう 9x 系じゃ動かないのでは?
あるいは、別バイナリが配布されているとか???

573:デフォルトの名無しさん
08/02/03 19:09:01
あわわ、追記。
tomcat ってピュア java なんだっけ?
EXE ファイルは、起動やらモニタリングを便利にする、ただのオプション?
じゃあ JRE さえ動くなら、java -jar tomcat.jar みたいな感じで手動で起動できるのかも。

574:558
08/02/03 21:28:09
>>572-573
>9x には NETAPI32.DLL が存在しないんだっけ?

[ファイルやフォルダの検索]から NETAPI32.DLL を検索かけてみたところ、
[C:\WINDDOWS\SYSTEM]フォルダにありました。

>java -jar tomcat.jar みたいな感じで手動で起動できるのかも。

プロンプトから入力してみたところ、
「Unable to access jarfile tomcat.jar」
と表示されました。

575:デフォルトの名無しさん
08/02/03 21:43:20
Apache-TomcatとEclipseを使っているのですが、

追加したディレクトリがlocalhostで表示されません。

URLリンク(localhost:8080)プロジェクト名/
のディレクトリは見えるのですが、
Eclipseで追加した、
webapp直下のxxxxというフォルダが見れません。

どうしたらいいでしょうか?

576:575
08/02/03 23:58:18
web.xmlを直せばいいかもしれないと分かりましたが
どう直せばいいのか分かりません。
どなたかアドバイスいただけますか?

577:デフォルトの名無しさん
08/02/04 00:10:17
お前さんには、そう当たりで試して切り開いて行く精神が足りないと思う

578:デフォルトの名無しさん
08/02/04 18:48:57
>>575は意志が弱いが総当り方式が効率が良いとはとても思えんぞ。
>>576の態度ではいつまでたっても何も成就できないが

579:デフォルトの名無しさん
08/02/06 00:06:52
質問です。

java3DのPoint3dで書いた頂点をcanvasに表示し、その座標値をテキストフィールドに表示できるのですが、
自分でテキストフィールドに書い座標値をその頂点に対応させることができません。
たぶん、getText()で持ってきた値を頂点の座標に対応させれば出来るとは思うのですが、
String型をPoint3d型に変換することが出来ません。
どなたか、型の変換方法か、それに代わるもっとよい方法があれば教えていただけないでしょうか?
よろしくお願いします。

また、板違いでしたら申し訳ありません。


580:デフォルトの名無しさん
08/02/06 10:19:01
たぶんこんな感じか?
String s = ... ;
Scanner sc = new Scanner(s);
sc.useDelimiter(",");
Point3d p = new Point3d(sc.nextDouble(), sc.nextDouble(), sc.nextDouble());

581:デフォルトの名無しさん
08/02/06 10:37:15
デバッグ用に、メソッド実行中に自分のクラスの名前をprintfしたいです。
で文字列で "hoge" とか hoge.class.getName() とか、自クラス名 hoge を
ソース中に書きたくありません。

普通のメソッドだと
this.class.getName()
で名前がとれるのだけど、staticメソッドだと this がないので
どうやってとればいいのかわかりません。

教えてください。

582:デフォルトの名無しさん
08/02/06 10:39:21
スタックトレースとってこればいいんじゃね?

583:デフォルトの名無しさん
08/02/06 10:44:50
1.5以降だったら
StackTraceElement[] s = Thread.currentThread().getStackTrace();
で、それ以前だったら
StackTraceElement[] s = null;
try {
  throw new Exception();
} catch (Exception e) {
  s = e.getStackTrace();
}
で取得できるよ

584:デフォルトの名無しさん
08/02/06 11:05:55
ありがとうです。でも
StackTraceElement stack = Thread.currentThread().getStackTrace()[0];
System.out.printf(stack.getClassName() + "\n");
だと、java.lang.Thread が表示されました。

Thread.currentThread() を (new Throwable()) にして得たい表示ができました^o^v

585:デフォルトの名無しさん
08/02/06 12:31:03
>>515のコードが読める位まで到達するにはどうすればいい?

SJC-P持っているけど、コードが読めないorz

586:デフォルトの名無しさん
08/02/06 13:19:06
リバーシを作ってるんですが
どこかオススメのサイトとかありますかね?
いろいろ見たのですが盤を作るところからよくわからないのですが

587:デフォルトの名無しさん
08/02/06 13:23:25
>>586
盤って int[][] board = new int[8][8]; とかじゃだめなのか?

588:デフォルトの名無しさん
08/02/06 13:28:00
>>586
Javaでリバーシを作る初心者向けの本があったはず…

これだ
URLリンク(www.amazon.co.jp)

589:デフォルトの名無しさん
08/02/06 13:33:07
その本マジでやめといたほうがいい。
JavaにしてもC++にしてもかなりダメなくせが付く、最低の本

590:デフォルトの名無しさん
08/02/06 14:03:11
>>587
どうもです
配列でそうやってやるだけでいいんですね……


>>588-589
そうなんですか……
どこかオススメとかないですかねぇ

591:デフォルトの名無しさん
08/02/06 14:58:14
>>587
これをどうやってパネル化すればいいんですかね……?


592:デフォルトの名無しさん
08/02/06 15:08:41
>>589
まじですか

設計に関しても最低?

593:デフォルトの名無しさん
08/02/06 15:12:03
>>590
もちろん配列でも良いけど
Javaの勉強と言うことなら、盤・列・マスといったクラスを設計する方が楽しいぞ

594:デフォルトの名無しさん
08/02/06 15:13:00
設計に関して最低。
アルゴリズムとかは別に悪くない、
というか、普通なんだけど、
「オブジェクト指向」を謳っておきながら酷い設計
というか、オブジェクト指向をなんか勘違いしてる本。
ってことで、よほどの初心者じゃなければ別にいいのかも。
ただ、>>591じゃね・・・

595:デフォルトの名無しさん
08/02/06 15:50:07
URLリンク(javagame.main.jp)
URLリンク(netresearch.ics.uci.edu)
まあこの辺でどうかな
パネルは使ってないみたいだが

596:デフォルトの名無しさん
08/02/06 16:24:43
8x8のGridLayoutにJLabelを64個置くのが簡単かと

597:デフォルトの名無しさん
08/02/06 20:38:42
なんというVB

598:デフォルトの名無しさん
08/02/06 21:24:20
ボタンの表示を反転したいんですが、
現在のボタンがTrueなのか、Falseなのか、取得する方法ってありませんか?
お願いします。

599:デフォルトの名無しさん
08/02/06 23:04:56
ありますよ

600:デフォルトの名無しさん
08/02/07 00:30:06
ボタン自身にON/OFF有ったっけ?フラグはアクションリスナーで実装するんでないけ?

601:デフォルトの名無しさん
08/02/07 08:56:23
現在のボタンがTrueかFalseか言ってる時点でラジオボタンか何かか、
有効無効のことを言ってるんだと思ったけど。

602:デフォルトの名無しさん
08/02/07 11:55:19
ButtonModel#isPressedかisSelectedあたりだろう

603:デフォルトの名無しさん
08/02/07 15:07:32
Java3Dを使わずにJavaで立体を作りました。
ボタンをクリックするとx軸を中心に回転させるプログラムを作りたいのですが
どうすれば良いのでしょうか?

ボタンは↓のようにしています。
btn1 = new Button("x軸を中心に回転");
this.add(btn1);


604:デフォルトの名無しさん
08/02/07 15:22:49
ガワだけですか…

x軸を中心に回転させたいなら回転行列を使って各点座標を変換すれば良いだけでは?

605:デフォルトの名無しさん
08/02/07 18:10:14
私も少し分からなくて検索してみて自分なりの解答を作ってみた。
プログラムはエクリプスなので一番上のpackage Chap2;は
要らないと思うけどね。

>436

質問時期より結構遅れてしまったけど
こんな感じで良いかと。

package Chap2;

import java.util.Random;

class En29{
public static void main(String[]args){
Random rand=new Random();
double x=rand.nextDouble();
double y=rand.nextDouble()*9.9;
double z=rand.nextDouble()*1.9-0.9;
System.out.println("xのランダム実数値:"+x);
System.out.println("yのランダム実数値:"+y);
System.out.println("zのランダム実数値:"+z);
}
}


606:デフォルトの名無しさん
08/02/07 18:15:10
>477
これで良いかと。

package Chap2;

import java.util.Scanner;

class En28{
public static void main(String[]args){
Scanner stdIn=new Scanner(System.in);
System.out.print("整数値:");

int x=stdIn.nextInt();
int y=(int)(Math.random()*-11)+5;
int z;
z=x+y;

System.out.println("その値の+-5の乱数を生成した。");
System.out.println("それは"+z+"です。");
}
}

明解java入門編 柴田望洋(著)の
演習の解答の1つの例となれば幸いです。

607:デフォルトの名無しさん
08/02/07 18:45:34
訂正です。
1.9-0.9だと低確率で1が出てしまい1未満ではなくなるので
1.9-0.9を1.9-0.91に修正。

>436

package Chap2;

import java.util.Random;

class En29{
public static void main(String[]args){
Random rand=new Random();
double x=rand.nextDouble();
double y=rand.nextDouble()*9.9;
double z=rand.nextDouble()*1.9-0.91;
System.out.println("xのランダム実数値:"+x);
System.out.println("yのランダム実数値:"+y);
System.out.println("zのランダム実数値:"+z);
}
}


608:デフォルトの名無しさん
08/02/07 19:12:15
zが0を表示した際に-0.91になり
それ以下の数値を表示できない点
yが9.9より上の9.999999999等を表示できない問題点を
忘れていました。^^;

>>436

以下、訂正後のプログラムです。
何度もすみません。

package Chap2;

import java.util.Random;

class En29{
public static void main(String[]args){
Random rand=new Random();
double x=rand.nextDouble();
double y=rand.nextDouble()*9;
double z=rand.nextDouble();
double a=rand.nextDouble();
double b=rand.nextDouble();


System.out.println("xのランダム実数値:"+x);
System.out.println("yのランダム実数値:"+(y+b));
System.out.println("zのランダム実数値:"+(z-a));
}
}

609:デフォルトの名無しさん
08/02/07 19:22:18
二ヶ月以上前のになぜいまさらそんなにがんばるwwwwww

610:デフォルトの名無しさん
08/02/07 21:06:03
>>609
私もつい最近この本を買ったばかりで
今日ちょうどココをやってたんですよ。

で、問題は一応無かったと思って見直したら
問題点が出てきて直して見直してを繰り返して
これならほぼ問題ないだろwという所まで
凝ってしまったんですよww

611:デフォルトの名無しさん
08/02/08 14:16:05
>>604
古い本を使ってるのでボタンを押して動作するという事が載ってないです
マウスでドラッグしたら動くようにはしてるんですが…

btn1 = new Button("x軸を中心に回転");
**************←普通はここに記述すれば良いですかね?
this.add(btn1);

x = x * cosθ + z * sinθ

612:デフォルトの名無しさん
08/02/08 15:40:01
>>611
いや、イベント処理になるから
回転・表示させるactionPerformedメソッドを書いたActionListnerを用意して
(JFrameにimplementsすることが多い)
そのボタンにそのActionListnerを登録すればいい

613:デフォルトの名無しさん
08/02/08 19:25:15
> (JFrameにimplementsすることが多い)
MVC派の俺様はコントローラクラス作ってそこにactionPerformedを書くぜぃ
とか言ってみる

614:デフォルトの名無しさん
08/02/08 20:15:57
無名クラス派ですが何か?

615:デフォルトの名無しさん
08/02/08 21:27:44
>>603
>ボタンをクリックするとx軸を中心に回転させるプログラムを作りたいのですが

作ってみた。
URLリンク(rg550.hp.infoseek.co.jp)

616:デフォルトの名無しさん
08/02/08 23:28:19
インスタンスって何?ラーメン?

617:デフォルトの名無しさん
08/02/09 10:43:18
それはインスタント

618:デフォルトの名無しさん
08/02/09 12:29:28
素朴な疑問なんですが、Javaのキャッチコピーって
「一度コードを書けばどんな環境でも動作する」ですよね
欠点って何でしょう?

619:デフォルトの名無しさん
08/02/09 12:36:29
>>618
そのせいで起動に時間がかかる
起動時にメモリを食う

がよく言われます
起動したあとの実行速度とかメモリ消費はよく誤解されます

620:デフォルトの名無しさん
08/02/09 12:37:03
特定の環境にしかない機能が使えない
DirectXとかCoreAnimationとか

621:デフォルトの名無しさん
08/02/09 15:34:14
int a = args.length;
上のプログラムでよくわからないことがあるんですが
配列変数名.メソッド;
の形ですよね?

今まで、
インスタンス化したメソッド.メソッド名();
の形でしかだめだと思っていたんですが、どういうことなんでしょうか?

622:デフォルトの名無しさん
08/02/09 15:36:30
>の形ですよね?

違う
配列変数名.フィールド名
の形

>インスタンス化したメソッド

そんなものはない

623:デフォルトの名無しさん
08/02/09 15:45:15
>>622
なるほど、ありがとうございます。

インスタンス化したメソッドは私の参考書に書いてありました。
~main(){
  keisan keisan1 = new keisan();
  keisan1.tate=1.3;
  p=keisan1.tasizan();
}
class keisan{
double tate;
double tasizan(){


見たいな感じで
keisan1.tateと言う変数がそうなってるみたいです

624:デフォルトの名無しさん
08/02/09 16:18:14
keisan1はkeisanのインスタンスが入ってるローカル変数
tateはkeisanのインスタンス変数
tasizanはkeisanのインスタンスメソッド
君の読み違いでなければその参考書は今すぐ焼き捨てるべき

625:デフォルトの名無しさん
08/02/09 16:52:22
>>619
>>620
ありがとうございます。
やはりどんなモノにも欠点はあるんですね

626:デフォルトの名無しさん
08/02/09 18:11:08
>>621
Javaでは、配列は実質クラス

627:デフォルトの名無しさん
08/02/09 18:57:15
けど length は配列のインスタンスフィールドではない

628:デフォルトの名無しさん
08/02/09 19:28:52
>>624
>>626
>>627
皆様ありがとうございます。インスタンスかした”クラス”でした、。申し訳ありません。
keisan1がインスタンスかしたクラスなんですね。

>keisan1はkeisanのインスタンスが入ってるローカル変数
なるほど、やっと分かりました。これも変数なんですね

そう考えると確かにkeisan1.tateは変数名.フィールド名になってますね。
配列が特殊なんだと考えて起きます
ありがとうございました

629:デフォルトの名無しさん
08/02/09 22:16:15
>>627
しかし言語仕様にはフィールドだと書いてある

URLリンク(java.sun.com)
>The public final field length

630:デフォルトの名無しさん
08/02/09 22:47:33
変数の型についての質問です。
byte型は1バイト、short型は2バイト、int型は4バイト、long型は8バイトまでの整数を扱えるとのことですが、それ以外の違いはないのでしょうか?
だとしたら、あらゆる整数を格納できるlong型を常に使えば他の整数型を意識する必要がなくなって便利だと思うのですが・・・。
int型の範囲を超える整数を扱うことは滅多にないので通常はint型を使うにしても、byte型やshort型はなんのためにあるのでしょうか?
素朴な疑問って感じですが、お答えお願いします。

631:デフォルトの名無しさん
08/02/09 23:04:02
それだけメモリをたくさん使う
たとえば10000000個のデータを扱う場合、
byteが10000000個だったら10MBで済むが、
longが10000000個だったら80MBになってしまう

632:デフォルトの名無しさん
08/02/09 23:20:53
>>631
なるほど、メモリの問題があるのですね・・・。
回答ありがとうございました。

633:デフォルトの名無しさん
08/02/10 13:35:45
実際、short なんて滅多に使わないね。


634:デフォルトの名無しさん
08/02/11 14:37:03
>>612
>>615
参考にさせてもらいます。
文系の出で、プログラムに触れた事がないので助かります。

635:sage
08/02/11 17:30:28
javaに近いと思うのですがoctaveというのを使っていて、以下のプログラムを少し変えて出さなければなりません。
(なぜなら以下のプログラムは友達が作ったもののため)
プログラムの本質自体はかわらないようにちょっとでもいいので変え方わかる方いましたらぜひ教えてください。
・ダイクストラ法
☆Dijkstra.m
function [distance, pointer] = Dijkstra(A)
n = size(A)(1); %Aはn×n行列
S = zeros(1, n);
d = zeros(1, n);
for i=2:1:n
d(i) = Inf; % d = [inf, inf, inf, ... ]
endfor
pointer = zeros(1, n); %Pointer for previous check point
check = 0
while(check < 1 && check > -10)
if(sum(S) == 4)
check = 1
else
check -= 1
d
S
[minimum, v] = minD(d, S)
S(v) = 1;
for j=1:1:n
if(d(j) > d(v)+A(v, j))
d(j) = d(v) + A(v, j) %過程を見せたい場合;をのぞく
pointer(j) = v
endif
endfor
endif endwhile distance = d; pointer; endfunction

636:つづき
08/02/11 17:31:23
☆minD.m
function [min, min_index] = minD(d, S)
% min : min(d) not included to S
% min_index : d(min_index) = min
% d[] : distance array
% S[] : searched = 1 : not yet = 0
min = inf;
min_index = 0;
n = size(d)(2);
for i=1:1:n
if( S(i)==0 && d(i) < min )
min_index = i
min = d(i)
endif
endfor
endfunction



637:デフォルトの名無しさん
08/02/11 17:34:09
なるほど
つまりまったく一緒だと怒られるから適当にいじりたいけど
まったく分からないからなんとかしてくれということですね

638:デフォルトの名無しさん
08/02/11 17:39:59
そういうことなんです、1mmもわからないので変えようがないのです。。。
どなたかお願いします。

639:デフォルトの名無しさん
08/02/11 18:01:56
Javaに近いとは思いません
>Gnu Octave とは、MATLABと互換性を持ったフリーな数値解析ソフトウェアであり、
>GNUによって開発されている。

640:デフォルトの名無しさん
08/02/11 18:17:07
javaに近いという理由でoctaveの宿題の解答の偽装依頼をこのスレで見る日が来ようとは

641:デフォルトの名無しさん
08/02/12 14:22:30
うん、とりあえず逝ってくれ。
あと、名前欄にsageは入れないほうがいいと思うよw

642:デフォルトの名無しさん
08/02/13 19:24:45
int i,j;

for(i=0;i<2;i++){
for(j=0;j<2:j++){}}
System.out.println(i,j);

ってやるとj「だけ」未定義エラーになるのですが何故なんですかね
両方エラーならまだわかるんだが・・・

643:デフォルトの名無しさん
08/02/13 19:26:18
あ、最後(i,j)じゃなくて

System.out.println(i+":"+j);
ってことで

644:デフォルトの名無しさん
08/02/13 19:31:41
外側のループが条件によっては実行されないから
内側のループでjが必ず初期化されるかは不明としている
この場合は外側のループは必ず実行されるけど
その条件が成立するかどうかまでは検査していない

645:デフォルトの名無しさん
08/02/13 19:57:38
やっぱそれだけのことなのか
どうせソース見るなら最後まで見てくれよな、って思う
型キャストとかのあたりとか特に、
自動でキャストしたりコンパイルエラーだったり実行時エラーだったりはっきりしてくれぃ!


>>644さんくす

646:デフォルトの名無しさん
08/02/14 00:08:17
URLリンク(java.sun.com)
言語仕様では、(原文ではi,jはn,kだけど>>642に合わせれば)
> a Java compiler must produce a compile-time error
> ...
> even though the value of (i) is known at compile time,
> and in principle it can be known at compile time that
> the assignment to (j) will always be executed
だから、そのエラーについてはコンパイラは言語仕様に従ってるだけ。
フロー解析をどこまで詳細にやるかの規定次第で人にとっては妙に思える結果も出てくるけど、
解析の精度を高めることとコンパイラの負荷とのバランスの問題でここに落ち着いたんじゃないかな。
とりあえず、はっきりしてくれと思ったときにはまず言語仕様を見てみる癖を。

647:デフォルトの名無しさん
08/02/14 00:28:06
JPanelを継承したMainPanelとJLabelのhazimeとLoadがあるんですが
Startというクラスのコンストラクタで

Start(MainPanel panel){
hazime.setSize(new Dimension(LabelSizeWIDTH,LabelSizeHEIGHT));
Load.setSize(new Dimension(LabelSizeWIDTH,LabelSizeHEIGHT));
hazime.setLocation(100,33);
Load.setLocation(100,266);
panel.add(hazime);
panel.add(Load);
}
と書いてMainPanelのコンストラクタでStartを初期化してJFrameを継承したクラスにMainPanelを貼り付けたんですが
hazimeとLoadに書いてある文字は表示されたんですがサイズと位置が変わりません
なんででしょうか?

648:デフォルトの名無しさん
08/02/14 00:32:42
>>647
MainPanelのレイアウトマネージャがサイズと位置を自分のポリシーに合わせて自動で変更してるとか
レイアウトマネージャはnullまたはコンポーネントの勝手に任せるようなものになってる?

649:デフォルトの名無しさん
08/02/14 01:04:21
>>648
MainPanelの引数にも何もとっていないのでレイアウトマネージャーは何も設定していません
自分でnullに設定しないといけないのでしょうか?

650:デフォルトの名無しさん
08/02/14 01:15:45
JPanelはデフォルトでレイアウトマネージャが設定されてるので
レイアウトマネージャを無くしたいならsetLayout(null)しないと
継承先のMainPanelでも同じものがつかわれる

651:デフォルトの名無しさん
08/02/14 01:19:19
デフォルトで設定されていたんですか
うまく解決できました、どうもありがとうございます

652:デフォルトの名無しさん
08/02/14 14:35:25
Java3Dじゃなくても3次元モデルが出来るようですが
Javaで作るのとJava3Dで作るのって何が違うんでしょうか?

653:デフォルトの名無しさん
08/02/14 17:28:18
>>652
Java3Dは3Dグラフィックス関連のプログラムを簡単に書くためのためのJava API群。
コアJava APIではないけれど準標準的なライブラリ。
Java3Dを使わなくても座標計算や表示を自分で実装したり、
Java3D以外のJavaとのインタフェースを持った3Dグラフィックスライブラリを使えば、
Java3Dと似たようなことができる。
ただ、他のライブラリを使うのは別として、自分で実装していくのはかなりの労力がいる。
まあ、Java3Dの全機能は不要で、立方体のワイヤーフレーム表示をしたいだけです、
とかの単純なことなら、頂点の座標変換計算を自前のコードでしてJava2D APIで線を描画しても、
それほど難しくないと思う。
それと、Java3Dや他の3DCGライブラリを使う場合はJREやJDKに最初から入ってるわけではないので、
別にインストールしないといけないのが少し手間といえば手間かも。特に他人に使ってもらう場合。
あと、Java3DはOS依存の機能を使って表示を高速化するとかも行ってるので、
そこまで自分で実装するとかになると大変だと思う。
自分の用途に合わせて選択を考えてみては?

654:デフォルトの名無しさん
08/02/14 23:18:17
スレッドのrunメソッドに引数をとりたいのですが、Startメソッドで呼び出して実行するため引数をいれることができません
どのように引数をいれればいいのでしょうか?

655:デフォルトの名無しさん
08/02/15 02:48:20
start()の呼び出しタイミングでなく、
ThreadやRunnableのインスタンス生成の段階で引数を与えてもいいのなら、
class AThread extends Thread {
private int arg1;
private Object arg2;
public AThread(int arg1, Object arg2) {
this.arg1 = arg1;
this.arg2 = arg2;
}
public void run() {
System.out.println(arg1 + ", " + arg2);
}
}
new AThread(1, "hoge").start();
みたいな感じでどう?
new時点でなくstart時点でないとってことなら、
コンストラクタで設定する代わりに引数を与えるメソッドを定義したサブクラスにして、
startの直前でそれを呼び出して設定するとか。

656:デフォルトの名無しさん
08/02/16 02:09:18
>>655
そういうやりかたがありましたか、ありがとうございます

657:デフォルトの名無しさん
08/02/16 12:52:49
>>653
ありがとうございます
まだJavaを触り始めたばかりなのでJava3Dは止めておきます

658:デフォルトの名無しさん
08/02/16 16:01:20
Javaの全身であるOakの呼び方って「おーえーけー」で良かった?

659:デフォルトの名無しさん
08/02/16 16:02:03
全身=前身でお願いしますorz

660:デフォルトの名無しさん
08/02/16 16:07:26
オーク

661:デフォルトの名無しさん
08/02/16 18:54:12
>>660
ありがとう!!!!!

662:デフォルトの名無しさん
08/02/17 00:49:48
ローカル変数の存在意義って何ですか?
全てメンバ変数にしたほうが扱いやすい気がするのですが・・・

663:デフォルトの名無しさん
08/02/17 01:59:23
>>662
そう思うならそうすればいいじゃん
君のコードとの接点を俺が持たない限り止めはしないよ

664:デフォルトの名無しさん
08/02/17 03:57:19
接点t! 接点t!

665:デフォルトの名無しさん
08/02/17 04:38:59
>>662
メンバ変数って用語はあまりJavaでは使われないかもしれない。
存在する理由はいろいろあると思うけど、例えば、
同じクラス内でも別スコープなら同じ変数名が使えるローカル変数と違い、
フィールドはクラス全体が同じスコープになるから名前がダブらないように気をつけないといけない。
名前付けが面倒だからと同じ変数を違う場所で違う役割に使用するのはバグの元になりやすい。
また、ローカル変数の方がフィールドに定義されたものよりアクセスがたいていのJVM実装では速いはず。
それに、スレッドごとにメソッドの呼出しごとに違う場所が用意されるローカル変数と違って、
フィールドはインスタンスまたはクラスごとに一つしかないという違いもある。
マルチスレッドプログラミングやメソッドの再帰呼び出しをやり始めればその違いが分かる。
ごくごく小さなプログラムだけなら、そうは感じないのかもしれないけれど、
自分でプログラムを書き始めればローカル変数を全て排除しようとすると扱いにくくなると感じると思うよ。

666:デフォルトの名無しさん
08/02/17 13:35:32
面の法線の計算について
右手座標系で頂点P0(x0,y0,z0) ,P1(x1,y1,z1), P2(x2,y2,z2)とした場合
z軸から見た場合の計算式はどうなるのでしょうか?

667:デフォルトの名無しさん
08/02/17 18:14:36
>>666
それは、Javaの質問か?

668:デフォルトの名無しさん
08/02/17 18:21:31
>>666
java関係ないやん。
Java3Dを使うならjavax.vecmath.Vector3d#crossで
3頂点の位置ベクトルの差から作られる2つのベクトルの外積を求めればいい。
正規化が必要なら外積を求めた後、Vector3d#normalizeをする。
float精度ならjavax.vecmath.Vector3fを使う。

669:デフォルトの名無しさん
08/02/21 15:59:33
質問です。
初心者丸出しの質問ですみません。

同じパッケージ内のクラスを使うにはどうしたらいいのでしょうか?
よろしければご教授お願いします。

670:デフォルトの名無しさん
08/02/21 17:28:15
独習やっているんですが、ひとつ解せないところがあったので質問します。

ある例で、実行時の引数をdouble型に変換するために

double d = Double.valueOf(args[0]).doubleValue();

と記述されているんですが、その他の例では、実行時の引数をint型に変換するのに

int i = Integer.parseInt(args[0]);

と記述されています。
2つ目の例でもdouble型と同じ方法が取れると思うのですが、
変換の仕方を統一していないのは何か意図があるのでしょうか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch