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型と同じ方法が取れると思うのですが、
変換の仕方を統一していないのは何か意図があるのでしょうか?
671:デフォルトの名無しさん
08/02/21 17:32:06
>>670
何を意図しているのか、それとも何も考えていないのか、
その例を作った作者に聞くしかないのでは?
672:670
08/02/21 17:52:43
その後の例ではint型でもvalueOf().intValue()やってた・・・
やはり著者のきまぐれなのか・・・とりあえず進めてみます。
ありがとうございました。
673:デフォルトの名無しさん
08/02/23 00:06:52
Double#parseDoubleやFloat#parseFloatは後のバージョンで追加された
それ以前に覚えた/主流だった書き方をする人が
今でもそれなりにいるというだけの話
674:デフォルトの名無しさん
08/02/23 01:57:26
それは一つの著書の中で統一されてないことの理由にはならないと思う。
何らかの意図があると勘繰られないために、または読者を混乱させないために、
こういった方法もあるのでここではこちらを使用するの旨を書くか、
本文では統一しておいて、これ以外にもこういう方法もとれると注釈を入れるか、
少なくとも学習用の参考書であればあってもしかるべきだという気がする。
実は版を変える時に古い例がそのまま残ってしまっているとかかもしれないが。
675:デフォルトの名無しさん
08/02/23 02:05:09
新版t! 新版t!
676:デフォルトの名無しさん
08/02/23 09:15:23
独習Javaは第3版でJDK5.0対応をうたってはいるが
注釈やコラムが少し追加されているだけで
サンプルコードは初版時の1.1のままという本なので
そんなに期待してはいけない
677:デフォルトの名無しさん
08/02/23 18:01:41
Java2のコードでさえないとは……
それはさすがに今使う学習書としてはちょっとまずい気がする。
678:デフォルトの名無しさん
08/02/29 21:00:44
class Aがあったとして・・
A a;と宣言して
a = new A();とし
a = null;としたときaは空になりますか?
これをやったのですがうまくいかないので、よろしければaを空にする方法を教えてください
679:デフォルトの名無しさん
08/02/29 21:04:23
空ってなんのことだ?
うまくいかないというのは、何を期待してて実際にはどうなったんだ?
680:デフォルトの名無しさん
08/02/29 21:08:18
インベーダーゲームを作ろうとしていて弾(同時に出ていられる弾の数には限りがある)の処理で
SPACEを押したときif文でaがnullならaを初期化して(弾をつくる)
弾が画面外にでたらa = null;として再度弾を出せるようにしたかったんです
681:デフォルトの名無しさん
08/02/29 21:09:30
実際には弾を1発撃ったら再度撃てなくなったのでa = nullとするあたりがおかしいのかなと・・
682:デフォルトの名無しさん
08/02/29 21:23:11
すみません良く見たらifで使う変数を間違えていまして、そこを修正したら直りましたorz
683:デフォルトの名無しさん
08/03/01 11:40:27
Aに生きてるか死んでるかのフラグを付けた方がいいんじゃないかと
684:デフォルトの名無しさん
08/03/05 21:46:19
外部プログラムの起動で
cd /hogehoge/
が出来ないのは仕様ですか?
685:デフォルトの名無しさん
08/03/05 23:00:59
cd という名前の外部プログラムはそもそも存在しない
686:デフォルトの名無しさん
08/03/05 23:03:54
>>684
cdがカレントディレクトリを移動するコマンドのことなら大抵の環境でできるよ。
1.
直接cdを外部プログラムとして起動しようとしていないか確認。
多くの環境ではcdは外部プログラムでなくシェルが解釈するコマンド。
したがってcdを使うにはシェルを起動して、それに対してcdコマンドを渡さなければならない。
たとえば、9x系でないwindowsなら、
new ProcessBuilder("cmd", "/C", "cd \\tmp & dir")
で起動されたプロセスは\tmpディレクトリのファイルリストを標準出力に出す。
2.
外部プログラムでカレントディレクトリを移動した後、
外部プログラムから復帰した後の親プロセス、つまりJavaプログラムの方で見ていないか確認。
多くの環境でカレントディレクトリの情報は各プロセスで独立している。
唯一、プロセスを起動する時に親プロセスから引き継がれるくらい。
子プロセスから親プロセスに伝播することはない。
687:684
08/03/06 11:14:03
OSはlinux or FreeBSDなんですが
new ProcessBuilder("bash", "cd", "/hugahuga/");
で動きませんでした。
どうしたらいいのか教えて頂けませんか?
688:デフォルトの名無しさん
08/03/06 11:51:31
>>687
何をしたいのか知らんが、
子プロセスでカレントディレクトリを移動しても、
自プロセスのカレントディレクトリは変わらないよ?
689:684
08/03/06 12:03:37
やりたいことは、mecabの辞書の更新を動的にやりたいんで、
# cd /usr/local/src/mecab
に移動して、そこで一度
# /usr/local/libexec/mecab/mecab-dict-index -c utf8
で辞書を更新して
# make install
し直したいんです。
私の考えだと、子プロセスでカレントディレクトリに移動して、
その子プロセスでその次のコマンドを実行すれば出来ると考えているのですが。
690:デフォルトの名無しさん
08/03/06 13:03:24
>>689
シェルスクリプトでやりたいことを一括して書いて、それを起動すればいいんじゃないかい?
691:684
08/03/06 13:05:40
>>690
ウホッ!
そこには気づきませんでした!
確かに、シェルしか使ってないならそれがベストですね!
やってみます。ありがとうございました。
692:デフォルトの名無しさん
08/03/06 13:30:58
>>691
ちなみに>>687の
> new ProcessBuilder("bash", "cd", "/hugahuga/");
は思った結果は得られない。これはbashにcdと/hugahuga/という二つの引数を与えるもので、
cdや/hugahuga/という実行可能なファイルが存在しないというエラーになると思う。
やるなら、例えば、
new ProcessBuilder("bash", "-c", "cd /hugahuga/ && ls");
とする。bashのオプション-cはその次の引数をコマンドとして読み込む。
693:684
08/03/06 13:53:05
>>692
何から何までありがとうございました。
勉強になりました。
694:デフォルトの名無しさん
08/03/06 14:10:30
>>692
スレ違いだけど bash cd /hugahuga/ の二つ目以降の引数は一つ目のシェルスクリプトに与えられる引数だから
そんなファイルはないと言われるのはcdだけだね
あと-cを使わなければbashに渡せるのは実行可能ファイルというよりシェルスクリプト
bash cd はファイルcdが存在しないと言われるが bash ls はバイナリファイルは実行できないと言われる
695:デフォルトの名無しさん
08/03/06 23:35:54
public class Sample5_1 {
public static void main(String[] args) {
System.out.println(1+1);
System.out.println(1+1+2);
System.out.println("1+1+2の結果は"+1+1+2+"です");
System.out.println("1+1+2の結果は"+(1+1+2)+"です");
}
}
を実行すると下のようになるんですが、一番下はわかるのですが、下から二行目の112はなぜ計算されずに112になるのかわかりません。
理由を教えて下さい。
2
4
1+1+2の結果は112です
1+1+2の結果は4です
あともうひとつ
public class Sample5_4 {
public static void main(String[] args) {
int fatherAge = 52;
int motherAge = 50;
int myAge = 20;
int sisterAge = 20;
int sumAge = fatherAge + motherAge + myAge +sisterAge;
int averageAge = sumAge / 4;
System.out.println("家族の平均年齢は、"+ averageAge +"歳です");
}
}
を実行すると成功するのですが、一番下の「aveerageAge」の横の+を取ると下のエラーがでます。
上の質問も同じなのですが、前後に+を付ける理由などを教えていただきたいです。お願いします。
型 PrintStream のメソッド println(String) は引数 (String, String) に適用できません。トークン "averageAge" に構文エラーがあります。正しくは , です。
696:デフォルトの名無しさん
08/03/07 00:04:57
>>695
"1+1+2の結果は"+1 → "1+1+2の結果は1"
"1+1+2の結果は1"+1 → "1+1+2の結果は11"
"1+1+2の結果は11"+2 → "1+1+2の結果は112"
"1+1+2の結果は112"+"です" → "1+1+2の結果は112です"
+を文字列に使うと、文字列を連結してひとつの文字列にする
括弧がなければ、左から順番に
printlnには文字列はひとつしか渡せないので、+なしで
System.out.println("foo" "bar" "hoge");
などとは書けない
697:デフォルトの名無しさん
08/03/07 00:05:37
>>695
一つ目の質問について
"1+1+2の結果は"+1+1+2+"です"
は
(((("1+1+2の結果は"+1)+1)+2)+"です")
と解釈されるから。
698:デフォルトの名無しさん
08/03/07 01:54:16
>>696
>>697
すごくわかりやすく説明していただきありがとうございます。参考書にも詳しく書いてなかったので悩んでいました。
こうやって一つ一つ覚えて行くのが楽しさの一つですね。
まだはじめて少しですので、また聞くことがあるかもしれませんが、よろしくお願いします。
699:デフォルトの名無しさん
08/03/11 00:13:05
お尋ねします。
Java のコマンドライン引数には自分自身のパスは含まれないようですが、どうすれば自分自身のパスや名前を得ることができますか?
次の C 言語の例のようなことがしたいのですが。
/* hoge.c */
#include <stdio.h>
int main(const int argc, char * argv[])
{
printf("EXE NAME: %s\n", argv[0]);
return(0);
}
C:\test>hoge.exe
EXE NAME: hoge.exe
コマンドプロンプトで hoge.exe を実行すると argv[0] に hoge.exe という名前が入りそれを表示します。
700:デフォルトの名無しさん
08/03/11 00:43:00
コマンドラインでプログラムを実行しようとすると
Registry key 'Software\JavaSoft\Java Runtime Enbiroment\CurrentVersion'
has value '1.3',but'1.6' is required.
Error:could not find java.dll
Error:could not find Java 2 Runtime Enviroment.
とでて実行してくれません。
どうすればいいですか?
701:デフォルトの名無しさん
08/03/11 00:50:53
but'1.6' is required
だから、
JREの1.6をインストールして下さい
702:デフォルトの名無しさん
08/03/11 00:56:03
>>700
ランタイムの新しいバージョンをインストールすれば良いと思う。
URLリンク(java.sun.com)
703:デフォルトの名無しさん
08/03/11 01:14:40
できました!
ありがとうです
704:デフォルトの名無しさん
08/03/11 05:14:23
>>699
URLリンク(ja.doukaku.org)
705:デフォルトの名無しさん
08/03/11 07:48:49
やはりそれしかありませんか。
私もぐぐってそのページは見付けたのですが、もっと簡単な方法はないものかと。
ともあれお答えありがとうございます。
706:デフォルトの名無しさん
08/03/11 11:53:32
>>705
javaをキックするラッパを書いて、それのargv[0]を引数として渡せばいい。
707:デフォルトの名無しさん
08/03/11 17:22:50
自分自身の名前は次の方法で得られました。
コマンドライン引数ではありませんがこれで代替可能だと思います。
public class test
{
public static void main(String[] args)
{
test t1 = new test();
System.out.println(t1.getClass().getName());
}
}
708:デフォルトの名無しさん
08/03/11 17:32:13
それでいいなら、
test.class.getName()
でもいいんじゃ?
709:デフォルトの名無しさん
08/03/11 17:47:36
おー!
Windows の exe は勝手に名前を変えても実行できるでしょ。
だから自分の名前を表示したい場合はコマンドライン引数から持ってこなきゃいけないわけで。
Java なら *.class の名前を勝ってに変えてしまうと実行できませんよね。
だから getName() で充分だと思います。
色々とありがとうございました。
710:デフォルトの名無しさん
08/03/11 23:06:33
>>653
> それと、Java3Dや他の3DCGライブラリを使う場合はJREやJDKに最初から入ってるわけではないので、
> 別にインストールしないといけないのが少し手間といえば手間かも。特に他人に使ってもらう場合。
j3d.jarを自分のプログラムの中にFatJarで入れれば
そんなインストールの手間も省けると思うよ
711:デフォルトの名無しさん
08/03/14 00:31:34
コンパイルしたら
「*******.java:27: \12288は不正な文字です。」
と出るのですが「\12288」とは、何のことでしょうか
宜しくお願いします。
712:デフォルトの名無しさん
08/03/14 00:33:13
まあ検索ですぐに出てくるが
全角スペースのこと
713:デフォルトの名無しさん
08/03/15 21:59:38
javaのswingで遊んでいますが設計上よくわからないことがあるので質問させていただきます
JFrameをextendsしたクラス、TimerTaskを実装したクラス、KeyListenerを実装したクラスを作りました
JFrameに色々と画像を表示してゲームを作りたいのですが、KeyListenerの取得したイベントはどのようにJFrameやTimerTaskに伝えるのが常識なのでしょうか?
友人の書いたプログラムをのぞくと、JFrameを実装したクラスにKeyAdapterやTimerTaskクラスを記述しJFrameを実装したクラスのフィールドを使いやりとりしているようでした
714:デフォルトの名無しさん
08/03/15 22:35:54
>>713
つ URLリンク(www.pwv.co.jp)
とはいえ正解があるわけじゃなし、プログラムいじる人が直感的にわかればいいっちゃ
いいんだろうけど
715:デフォルトの名無しさん
08/03/15 23:18:49
>>714
ありがとうございます
勉強してみます
716:デフォルトの名無しさん
08/03/19 11:30:34
MySQLを使ったアプリケーションについての質問です。
データの登録や検索をしたいのですが、
例えば、String qry1 = "insert into ~ values(~,~,~)";という文で
~の部分をアプリケーションから入力するにはどうすればいいでしょうか?
717:デフォルトの名無しさん
08/03/19 11:58:42
?にして、PreparedStatement使うといいよ。
718:デフォルトの名無しさん
08/03/19 12:00:59
あー、テーブル名もか。
テーブル名には?は使えないから、文字列組み立てるしかないね。
そのときに、テーブルが本当に存在するかどうかのチェックをしないと、
とても大変なことになるので注意が必要。
719:デフォルトの名無しさん
08/03/19 12:10:12
あ、valuesの中だけで大丈夫です。ややこしくて済みません。
ご丁寧にありがとうございました。やってみます。
720:デフォルトの名無しさん
08/03/26 22:18:21
java.java:4: "]" がありません。
int check(number[0],number[1],number[2]) {
^
こんなエラーが出るんですけど原因は何でしょうか?
int[] number = new int[3]; って宣言して、
int kekka = check(args[0],args[1],args[2]); って呼び出しています。
721:デフォルトの名無しさん
08/03/26 22:44:32
argsになってんじゃん
722:デフォルトの名無しさん
08/03/26 22:49:32
argsを渡してnumberで引き取っているのですが、この書き方ではダメなのでしょうか?
723:デフォルトの名無しさん
08/03/26 22:56:08
じゃあ、その引き取ってるところのソースを貼って頂戴
724:デフォルトの名無しさん
08/03/26 23:14:47
int check(int n1, int n2, int n3) {
...
}
もしくは、
int check(int[] numbers) {
...
}
725:デフォルトの名無しさん
08/03/26 23:16:07
あ、呼び出しが
int kekka = check(args[0], args[1], args[2]);
なら、後者はエラーだ。
int check(int...numbers) {
...
}
なら使ってるバージョンによっては動く。
726:デフォルトの名無しさん
08/03/27 00:38:50
>>724-725
ありがとうございます。
前者を試してみたのですが、何かエラーが大量に出てきてしまいました・・・
>>720のエラーが出てくるソースはこれです。
public class Java {
int[] number = new int[3];
void check(number[0],number[1],number[2]) { }
public static void main(String args[]) {
check(args[0],args[1],args[2]);
}
}
727:デフォルトの名無しさん
08/03/27 01:06:44
なんか予想通りのソースだった
メソッド宣言での引数の型宣言はそういう風に書けない
解決法は上のレス参照
あとmainメソッドの引数argsには起動時に与えたパラメータが格納されるけど
数値を与えようがString型=文字列として受け取る
だから単純にcheckメソッドの引数にargsの要素を指定したら
型が違うのでエラーがでる
int型に変換したいならInteger#parseIntでも使って
728:デフォルトの名無しさん
08/03/27 01:46:04
>>726
Java では、コンパイル時における型の一致が重要です。
// 蛇足。Java 作法では、(String args[]) ではなく、(String[] args) にしましょう。
メソッド宣言の定義は以下の通り。public, static等 戻り値型 メソッド名(型 仮引数) { ... }
型、仮引数部分に、変数を直接詰め込んでも、コンパイル出来ません。
// 720 のエラーは、型部分で、"number[" と来たので、"]" を期待していました。
例えば、static void check(int n0, int n1, int n2) {} という宣言なら出来ます。
このとき、void が戻り値型、int が型、n0 が仮引数です。
check(args[0], args[1], args[2]); とは型が合わないのでコンパイル出来ません。
args[0] は String型なので、型int(autoboxing では Integer型)とは
それぞれ継承を辿っても、もう一方の型が存在しないため、型が一致しません。
729:デフォルトの名無しさん
08/03/27 20:13:47
ほんとに初心者な質問で悪いんですけど質問です。
1
2
〇
4
△
〇
7
・
・
・
みたいに「if」と「for」を使って
3の倍数は〇
5の倍数は△
3と5の倍数は×
って表示させていんですけど、
この場合どのようなソースになるのでしょうか?
ご指導お願いします。
730:デフォルトの名無しさん
08/03/27 20:18:37
値 % 3 == 0 なら3の倍数
731:デフォルトの名無しさん
08/03/27 20:33:36
>>729
URLリンク(d.hatena.ne.jp)
732:デフォルトの名無しさん
08/03/27 20:40:02
>>727-728
そういうことなのですね・・・。
理解しました。ありがとうございます。
そしてすみませんが、argsについて質問です。
・void main(int[] args) のような書き方はいけないのでしょうか?
・また、argsを使わないコードでもString[] argsを記述するようですが、なぜですか?
・args以外の、例えばstrなどと言った他の配列名はダメなのでしょうか?
重ねての質問すみませんが、答えていただけると嬉しいです。
733:デフォルトの名無しさん
08/03/27 20:44:10
>>732
>・void main(int[] args) のような書き方はいけないのでしょうか?
>・また、argsを使わないコードでもString[] argsを記述するようですが、なぜですか?
引数の数や型が異なると、それは別のメソッドなので、いわゆるmainとしては扱われない。
そのためint[]や引数無しは不可。String[]でなければならない。
>・args以外の、例えばstrなどと言った他の配列名はダメなのでしょうか?
名前は違ってもいい。
734:デフォルトの名無しさん
08/03/27 20:45:44
・void main(int[] args) のような書き方はいけないのでしょうか? ・・・・・ いけない
・また、argsを使わないコードでもString[] argsを記述するようですが、なぜですか? ・・・・ 決まりだから
・args以外の、例えばstrなどと言った他の配列名はダメなのでしょうか? ・・・・・ よい
735:デフォルトの名無しさん
08/03/27 20:54:21
>>730
>>731
わかりました♪
ありがとうございます(__)
736:デフォルトの名無しさん
08/03/29 23:55:35
質問です。
public class java {
public static void main(String[] args) {
try{
int suuji = method();
}
catch(Exception e){}
System.out.println(suuji);
}
int method() {
int suuji2 = 777;
return suuji2;
}
}
こういうコードを書くと
java.java:4: static でない メソッド method() を static コンテキストから参照することはできません。
int suuji = method();
^
java.java:7: シンボルを見つけられません。
シンボル: 変数 suuji
場所 : java の クラス
System.out.println(suuji);
^
と2つエラーが出ます。
前者はmainメソッドをstaticでなくし、
後者は出力をtryの中に入れれば解決しましたが、なぜエラーが出るのでしょうか?
737:デフォルトの名無しさん
08/03/30 00:06:30
staticを付けない場合はインスタンスを作る必要がある
java obj = new java();
obj.method();
こうするか,もしくはmethodにstaticを付ける
後者はsuujiがtryブロックの中で宣言されてるからその中でしか使用できないため
例外とか後でいいから基礎的なとこを先にちゃんとやった方がいいよ
738:デフォルトの名無しさん
08/03/30 00:23:22
>>736
main から使うのに static を付け忘れるのはたまにやるかな。
機能を使うのにインスタンスの生成はしなくても良いと思う。
後者はスコープの問題だけど、コレも割りと気が付かずにやるので注意。
どちらもそのうち慣れると思うから、精進あるのみ。
739:デフォルトの名無しさん
08/03/30 14:39:25
質問です。
現在、mainクラスのガベージコレクションを、
多重継承されたインスタンスからコントロールしています。
ただ、Heap領域にアクセスする場合について、
そのコレクションフレームワークからマルチスレッド化させると、
ローカルにremoveしようとしても同期的な排他制御が取れません。
やはりラッパークラスのプリミティブ型は、エレメントのイテレータもhasNext()メソッドもどきで
volatile修飾子のシリアライゼーションをさせるのが絶対条件なのでしょうか。
ちなみに、もしコマンドライン引数によってJava.langのStringBufferまでimportしたとしても、
SetインターフェースのisEmptyメソッドにするとなぜかStackOverflowErrorの例外が発生します。
staticなyield()メソッドを汎用させるため、
throwsで例外ハンドラをコンストラクタなアサーションをしているのですが・・・。
C言語が腐るほど考えたのですが、
バイナリでのファイル操作がなかなかまとまらないため質問した次第ですので、
どうかお答えお願いします。
740:デフォルトの名無しさん
08/03/30 14:47:05
>やはりラッパークラスのプリミティブ型は、エレメントのイテレータもhasNext()メソッドもどきで
>volatile修飾子のシリアライゼーションをさせるのが絶対条件なのでしょうか。
それは絶対条件です。
C言語が腐るより前にあなたの脳みそが腐ってないかが心配です。
741:デフォルトの名無しさん
08/03/30 15:09:01
回答ありがとうございます。
しかし、私の脳みそは至って健全であるため、ご心配には及ばないかと思います。
万一の事態を考えわざわざ心配をして頂けたというのは、とても光栄です。
では、SetインターフェースのisEmptyメソッド使用時に
コマンドライン引数によってJava.langのStringBufferまでimportすると、
なぜStackOverflowErrorの例外が発生するのでしょうか?
staticなyield()メソッドを汎用させるためにthrowsで例外ハンドラを
コンストラクタなアサーションをしてはいけないのは仕様でしょうか?
回答よろしくお願いします。
742:デフォルトの名無しさん
08/03/30 20:06:19
人工無能が適当な単語組み合わせて発言しているようにしか見えんな……。
743:デフォルトの名無しさん
08/03/30 20:22:48
えと、質問します。
入力してもらったデータを他の文字に変換するにはどうしたらいいですか?
つまり、あいうえおと入力されるとaiueoと表示されるようにしたいのです。
よくわからん質問でスマソ
744:デフォルトの名無しさん
08/03/30 20:51:21
Map<Character, Character> table = new HashMap<Character, Character>() {{
put('あ', 'a'); put('い', 'i'); put('う', 'u'); put('え', 'e'); put('お', 'o');
}};
とでもしといて、
public String convert(String str) {
StringBuilder buf = new StringBuilder(str.length());
for (char ch : str.toCharArray()) {
buf.append(table.get(ch));
}
return buf.toString();
}
かな
745:デフォルトの名無しさん
08/03/30 20:53:05
質問です。
私がどのような問題を抱えているかを理解して、その解決方法を示してください。
私の状況としては、いろいろ調べて色々試行錯誤しましたが、うまくいきません。
ソースコードは守秘義務のため教えることは出来ません。
それでは、よろしくお願いします。
746:743
08/03/30 20:59:52
Map<Character, Character> table = new HashMap<Character, Character>() {{
put('あいうえお', 'aiueo'); }};
public String convert(String str) {
StringBuilder buf = new StringBuilder(str.length());
for (char ch : str.toCharArray()) {
buf.append(table.get(ch));
}
return buf.toString();
}
で表示させるのは無理なのでしょうか。
馬鹿臭い質問ですいません。
747:デフォルトの名無しさん
08/03/30 21:15:21
'あいうえお'とか'aiueo'はcharじゃないだろ。
というか、コンパイルしてみればいいじゃないか。
748:743
08/03/30 22:05:27
Exception in thread "main" java.lang.NoClassDefFoundError:com/sun/tools/javac/main
だそうです
・・・CLASSPATH?
749:デフォルトの名無しさん
08/03/30 22:15:12
メインつくってないだけじゃね?
750:743
08/03/30 22:25:46
ごめんなさい俺にわかるように教えて下さいorz
751:デフォルトの名無しさん
08/03/31 00:25:37
>>750
こういう掲示板で手取り足取りなんて無駄もいいところだから、
Javaの入門サイトや教科書を読んで基礎を作った方がいい。
752:デフォルトの名無しさん
08/03/31 11:14:34
>>751
わかりました。出直してきます。
皆さんありがとうございます。
753:デフォルトの名無しさん
08/03/31 13:34:19
初めてぬるぽがでたーー!!!!\(T▽T)/
感動したーー!!!!\(T▽T)/
ClassArray[] a = new ClassArray[3];
とやっただけではすぐにa[0~2]が使えるようになるわけじゃないんだね。
ひとつひとつまたnewしないといけないんだね。
754:デフォルトの名無しさん
08/03/31 13:45:07
どんなクラスにでも引数なしのコンストラクタがあるとは限らないからね。
それに、必要でもないときに勝手に作られてもいやだし。
755:デフォルトの名無しさん
08/04/01 23:21:28
質問です
あるサイトを開いたら画面下の方に、エラーが発生しました、と出ました
またそのサイト内にある動画を見れるメディアへのリンクをクリックしても、
javascript:void(playMedhia2~うんちゃらかんちゃら~)という表示が出てしまい、
見ることができません。詳細を見たらオブジェクトを指定してくださいと出たのですが、
見れるようにするためには一体どのような方法を取ればよいのでしょうか
ご教授よろしくお願いします。
756:デフォルトの名無しさん
08/04/01 23:23:24
スレ違い、いや板違い
757:デフォルトの名無しさん
08/04/01 23:57:16
調べてみたら全然違うんですね・・・
失礼しました
758:デフォルトの名無しさん
08/04/02 00:12:10
質問があります
サーブレットではなくクライアントサイドの話しなんですが
HTTPヘッダのログをプロキシ等の外部ツールではなく
JAVAのプログラム単体でログを取りたいのですが
どうにも方法がわからず行き詰っています
解説サイトやサンプルコードなどがあると助かるのですが
ご存知のかたいらっしゃいませんでしょうか?
759:デフォルトの名無しさん
08/04/02 09:40:45
>>758
JAVADOCはダウンロードしましたか?
760:デフォルトの名無しさん
08/04/02 10:17:50
netstatアプリを作りたいのですが、
Runtimeクラスでnetstatコマンドを叩くのではなく、JavaのAPIでnetstatを実行することって可能ですか?
761:759
08/04/02 11:19:12
>>758
JavaDocのjava.net→URLConnectionが詳しい。"一般要求プロパティを修正するには"ってところ。
762:デフォルトの名無しさん
08/04/02 13:00:06
eclipseでサーブレット作るには、他に何が必要でしょうか。
763:デフォルトの名無しさん
08/04/02 13:16:50
eclipseでサーブレットを作る環境と、eclipseでサーブレットを作る知識
764:758
08/04/02 13:37:08
>>761
早速紹介していただいた項目読みました
おかげさまでなんとかなりそうです
ログをとると言う事でjava.util.loggingなどの
項目ばかり読んでいて深みにはまっていました
759さんありがとうございました
765:デフォルトの名無しさん
08/04/02 17:15:37
SDKとJDKって何が違うんでしょうか
766:デフォルトの名無しさん
08/04/02 17:20:00
JDKはJavaのSDKです
略称ではないんだけど
767:デフォルトの名無しさん
08/04/02 17:28:38
あと、1.4 以前は Sun は JDK と呼ばず、SDK と呼んでいたはず。
それで若干混乱あるかも。
768:デフォルトの名無しさん
08/04/03 00:54:05
質問です。
コンストラクタの javadoc に /** コンストラクタ */ って書くの、
すっごいまぬけだと思うのですが、皆さんはどう書いてますか?
あと、setter/getter も教えて欲しいです。
769:デフォルトの名無しさん
08/04/03 03:06:55
もともとJDKと呼ばれていてJ2SDKに呼称変更されて5でJDKに戻ったんじゃなかったっけ?
770:デフォルトの名無しさん
08/04/03 03:21:57
>>768
javadoc自身が認識して出力してくれるような内容を、
ドキュメンテーションコメントに書くのは無駄なので、
もっとコンストラクタやメソッドの内容について書いた方がいいと思う。
どういうことを書けばいいかの参考になるものとしては、
JavaプラットフォームAPI仕様を眺めてみればいいのでは。
771:デフォルトの名無しさん
08/04/03 07:58:31
Tomcatプロジェクトでmyweb/hoge.jspを作成したところ、
Tomcatのトップ画面(URLリンク(localhost:8081))は表示されますが、
URLリンク(localhost:8081)が表示されません。
一体どうしたらいいでしょうか。
772:デフォルトの名無しさん
08/04/03 09:24:04
すみません単なるミスでした
773:デフォルトの名無しさん
08/04/03 11:27:27
>>768
引数や例外の説明、他コンストラクタとの違い、各プロパティのデフォルト値などを書く
引数なし、例外もなし、他のコンストラクタもなし、とかなら、まぁ書くことがないかも・・・
setterやgetterは、そのset/getする値の意味や、取り得る値の範囲を説明する必要があると思う
774:デフォルトの名無しさん
08/04/03 19:45:23
3年くらい前に自分で書いたJavaプログラムなのですが、
今となってはソースがなかなか読めません。
そして動いてくれません。
記憶によると四角形が二つ表示されて画面を適当に動き回り、
その二つが重なった時だけその旨が画面に表示されるという
プログラムだったはずです。
誰かデバッグしてもらえませんでしょうか?
ソースコードは以下にアップしました。
ダウンロードのパスワードはありません。
URLリンク(www.uploda.net)
775:774
08/04/03 19:51:36
すみません。デバッグしてくれなんて虫がよ過ぎでした。
デバッグのための方針を教えて頂けたら幸いです。
どうかよろしくお願いします。
776:774
08/04/03 20:00:38
ほんとすみません。方針をわざわざ教えてもらうなんてそれでも虫がよ過ぎですよね。
上の発言はなかったことにしてください。
スレ汚しすみません(´;ω;`)
777:774 ◆RnrYWCN3sM
08/04/03 20:37:05
と思ったけどやっぱり方針だけでも良いんで教えてください。
それと念のため鶏もつけときます。
778:デフォルトの名無しさん
08/04/04 00:24:21
Point pts[] = new Point[4];
this.pts[0].x = x;
779:774 ♦RnrYWCN3sM
08/04/04 00:26:34
なかなか返答がないので締め切らせて頂きます。
わざわざすみませんでした。
780:デフォルトの名無しさん
08/04/04 07:02:38
横からすみませんが、
new Point[4]←これがPointの実体では無いで良いのかな?
781:デフォルトの名無しさん
08/04/04 08:35:52
私も横ですが。
オブジェクト配列の初期化忘れは、よくある間違いの1つ。
箱を用意するだけでは、中身は null のまま。
782:デフォルトの名無しさん
08/04/04 13:04:54
最近プログラミングをはじめたものです。
C言語の関数とその定義の関係、
javaのクラスとオブジェクト.メソッドの関係が似てるような気がしてならないのですが、
間違っていますか?
783:デフォルトの名無しさん
08/04/04 13:10:51
間違ってます
784:デフォルトの名無しさん
08/04/04 13:12:38
気のせい
785:デフォルトの名無しさん
08/04/04 13:55:14
似てるか似てないかなんて主観だからねえ
786:デフォルトの名無しさん
08/04/04 18:58:32
System.out.println(args.length);
で配列数を示す際、*が含まれてるとなぜか本来の数の前に*の数がくっついてしまうようです。
例えば、argsがaと*と1と*の場合は4になるはずが24になります。
これはなぜでしょうか?
また、これを回避するためにはif文で振り分けなければならないのでしょうか?
787:デフォルトの名無しさん
08/04/04 19:01:55
>>786
* を含めたとき、args の中に何が入っているか確認してごらんなさいな。
for(String arg: args) System.out.println(arg);
788:デフォルトの名無しさん
08/04/04 19:14:57
コマンドラインのワイルドカードを解釈せずに引き渡してくれるシェルを使えばいいんじゃね
789:デフォルトの名無しさん
08/04/04 19:18:23
カレントディレクトリにあるフォルダが全て出てきました・・・
この*をワイルドカードの役割ではなく文字としての*と
認識させるためにはどうすればいいのでしょうか?
790:デフォルトの名無しさん
08/04/04 19:21:45
"*" でどうかな
791:デフォルトの名無しさん
08/04/04 19:23:22
>>789
windowsのコマンドプロンプトなら*でなく"*"とすると*そのものが渡せる
linuxのシェルとかでも同様のエスケープの仕方がシェルごとにある
792:デフォルトの名無しさん
08/04/04 21:41:52
解決しました。
皆さん丁寧にありがとうございました。
793:デフォルトの名無しさん
08/04/04 22:13:49
質問です。
double型を使うと値が整数の時も.0が付きますが、それをなくすにはどうすればいいでしょうか?
4なら4と表示され、4.56なら4.56と普通に表示する感じです。
int型に変換したりするのが良いのかと思いますが、
値に小数点があるか否かは分からないとすると、どう振り分ければ良いのでしょうか?
794:デフォルトの名無しさん
08/04/04 22:27:06
つString#format
795:デフォルトの名無しさん
08/04/04 23:13:05
ナンでサーブレットはthrowsが必要ですか
796:デフォルトの名無しさん
08/04/05 08:48:23
URLリンク(itpro.nikkeibp.co.jp)
関数と、メソッドは似ている。
関数(メソッド)の呼び出し先が、public function ・・・・って定義されてますし。
このfunctionは紛れもない関数の定義だと思います。
しかし、JAVAでは関数を呼び出す場合、メソッド(関数)の前に、クラスを格納したオブジェクトを付けて、
クラスを指定しないといけない・・・と。
思うわけです。
797:デフォルトの名無しさん
08/04/05 11:04:15
class MyClass { public void func() { ... } } このfunc (※インスタンスメソッド)は
static void func(MyClass this) { ... }
こういうstaticメソッドと同じようなもので,thisには常に現在のインスタンスが渡される
staticメソッドは本当にただの関数で,呼び出すときに前に付けるクラス名はただの飾り
798:デフォルトの名無しさん
08/04/05 15:45:16
>>795
別に要らないよ
例外を自分でcatchするなら
799:デフォルトの名無しさん
08/04/06 13:58:41
ウインド開いた時にアラートで
「好き?」
「嫌い?」
を10回繰り返したいんですけどどのようなソースにすればいいんでしょうか?
お願いしゃーす!!
800:デフォルトの名無しさん
08/04/06 14:47:08
アラートってことはもしかしてJavaScript?そうならスレ違い
801:デフォルトの名無しさん
08/04/06 17:19:43
教えてください。
RMIでウェブアプリのようにセッション管理は出来ますでしょうか?
よろしくお願いします。
802:デフォルトの名無しさん
08/04/07 20:22:06
>>800
すまない。
ちょっとJavaScriptに行ってきます。
803:デフォルトの名無しさん
08/04/07 21:05:01
Tomcat6.0にMYSQLのJDBCドライバ入れたんですが、この後どうしたらいいでしょうか。
804:デフォルトの名無しさん
08/04/07 21:15:13
質問・相談スレッドから来ました。
オブジェクトをコンストラクタを使って初期化しつつ配列にする方法が
わかりません。
もしかしてそんなこと出来ないんでしょうか?
新しいクラスを作ったりする必要があるんでしょうか?
どうかよろしくお願いします。
805:デフォルトの名無しさん
08/04/07 22:07:41
>>804
public class Hoge {
public Hoge(String name) { /* コンストラクタで何らかの初期化 */ }
private static final String[] names = {"aaa", "bbb", "ccc", "ddd", "eee"};
public static void main(String[] args) {
Hoge[] hoges = new Hoge[names.length]; // 配列の宣言と生成
for (int i = 0; i < hoges.length; ++i) {
hoges[i] = new Hoge(names[i]); // 要素ごとにインスタンスを生成し代入
}}}/* end of for, main, class */
こんな感じの宣言から代入までのコードを一行にまとめたい、ということでしょうか?
806:デフォルトの名無しさん
08/04/07 23:58:03
質問です。 以下のカスタマイズを行いたいのです。
フィールド変数の追加:private User u;
コンストラクタの修正
引数の追加:User型
処理の追加:フィールド変数に引数で受け取ったオブジェクトを代入する
以下カスタマイズ前のソースです。
class Reference extends JFrame{
JLabel lblId;
//フィールド中略
public Reference(String title){
super(title);
cnt=this.getContentPane();
cnt.setLayout(null);
フィールドにprivate User u;
コンストラクタの引数にUser user;を追加するのは分かるのですが
「フィールド変数に引数で受け取ったオブジェクトを代入する」 が上手くいきません。
Userは同パッケージ内の別クラスです。
古いコードですし、お手数をおかけ致しますがよろしくお願い致します
807:デフォルトの名無しさん
08/04/08 00:42:47
>>804
Hoge[] hoges = {new Hoge("aaa") , new Hoge("bbb"), new Hoge("ccc")};
みたいな事をやりたいの?新しいクラスってどういう事?
808:デフォルトの名無しさん
08/04/08 00:58:24
>>807
みたいな事とはどんなことですか?
809:807
08/04/08 01:22:55
どんなこともコードのままなんだけど。
>>808はどう思うの?ちょっとコード書いてみて。
810:デフォルトの名無しさん
08/04/08 01:49:02
>>809
どう思うって何についてですか?
何のコードを書けばいいですか?
811:デフォルトの名無しさん
08/04/08 02:09:48
>何のコードを書けばいいですか?
「>>804の質問に対する>>810なりの答え」をJavaで書けばいい。
812:デフォルトの名無しさん
08/04/08 03:25:47
「私はあなたに質問する方法がわかりません。何語で話せば
私の質問を理解してもらえますか」と聞かれたら普通「あなた
言葉わかる?」と聞かれてるので、馬鹿にされてんだと思うんだ
ろうがここではそう思わない能天気なおバカちゃまが多いんだろうな
813:デフォルトの名無しさん
08/04/08 08:13:25
横から失礼。
かなり錯綜したから、質問者は自分のレス番号を明確にしないと答えを貰えないと思う。
814:デフォルトの名無しさん
08/04/08 08:28:29
>>806
こういうこと?
class Reference extends JFrame{
JLabel lblId;
private User user;
//フィールド中略
public Reference(String title){
super(title);
cnt=this.getContentPane();
cnt.setLayout(null);
}
public Referecne(String title, User user) {
this(title);
this.user = user;
815:デフォルトの名無しさん
08/04/08 11:19:39
自分のホムペのお気に入り用アイコンを、ランダムでチェンジさせたいんですが
よそからコピってきた画像ランダム表示のスクリプトを書き換えてもうまくいきません。
↓こんな感じなんですが、おかしな箇所をご指摘いただけるとありがたいです。
<SCRIPT language="JavaScript">
<ico = new Array();
ico[0] = "icon01.ico";
ico[1] = "icon02.ico";
ico[2] = "icon03.ico";
n = Math.floor(Math.random()*img.length);
document.write("<link rel="Shortcut Icon" href='"+ico[n]+">");
>
</SCRIPT>
816:デフォルトの名無しさん
08/04/08 12:05:03
>>815
スレ違い
× img.length
○ ico.length
817:デフォルトの名無しさん
08/04/08 12:53:23
いや板違い
>Javascript は Web 制作板、CGI は Web プログラミング板へ。
818:デフォルトの名無しさん
08/04/08 13:07:59
板違いでしたか・・・失礼しました。
>>816ありがとうございました!
819:デフォルトの名無しさん
08/04/08 22:41:16
アノテーションでdefaultにnullを設定したい場合ってあると思うんだけど、
そういう時ってどうしてる?とりあえずNullObjectみたいなのを定義するのが普通?
820:デフォルトの名無しさん
08/04/09 20:57:23
質問です。
ある命令を実行した時から別のある命令が実行される時までの所要時間を計測することはできますか?
日付を出して差から求めるっていうのが正確かと思いますが、時間を計る専用メソッドはありますか?
821:デフォルトの名無しさん
08/04/09 21:06:17
>>820
import org.apache.commons.lang.time.StopWatch;
StopWatch clock = new StopWatch();
clock.start();
...
clock.stop();
System.out.println(clock.getTime() + "ms");
clock.reset();
clock.start();
...
822:デフォルトの名無しさん
08/04/09 21:08:08
>>821
素早い回答ありがとうございます。
今から試してみようと思います。
823:デフォルトの名無しさん
08/04/09 21:17:56
>>822
ライブラリが分からなくて出来ないに1000ガバス。
普通に↓でいいだろ。
import java.util.Date;
public class Main {
public static void main(String[] args) {
long start = new Date().getTime();
//ここに処理を書く
System.out.println("time:" + (new Date().getTime()-start) + "ms");
}
}
824:デフォルトの名無しさん
08/04/09 22:17:26
>>823
回答ありがとうございます。
getTimeで時間を取得すると1207746884155などといった数字になったのですが、
これはどう見ればいいのでしょうか?
何度もすみませんがよろしくお願いします。
825:デフォルトの名無しさん
08/04/09 22:23:04
>>824
javadocぐらい見れるようになろうぜ
URLリンク(java.sun.com)()
826:デフォルトの名無しさん
08/04/10 03:52:53
package packagename;と書いたらそのファイルはpackagenameフォルダに入れないといけないの?
827:826
08/04/10 04:21:19
自己解決しましたv(^-^)
828:デフォルトの名無しさん
08/04/10 11:14:17
プログラムの実務の為の練習するのに良い本やサイトないですか?
829:デフォルトの名無しさん
08/04/10 11:23:10
>>828
Javaの入門サイト
URLリンク(www.nextindex.net)
Javaで学ぶデザインパターン
URLリンク(www.amazon.co.jp)
830:デフォルトの名無しさん
08/04/10 12:12:44
>>828
「実務」って何?というかどういう方向?それによって違うし、
どの程度経験があったり使ったことあるかでも話が全然違う。
831:デフォルトの名無しさん
08/04/10 12:36:40
ほんと基礎って感じです!練習問題的な。
SJC-Pの資格は取ったんですけど、プログラムの仕方みたいなのは全然わからなくて!
832:デフォルトの名無しさん
08/04/10 12:50:30
役に立たない資格だな・・・
833:デフォルトの名無しさん
08/04/10 17:33:29
助けてくだしあ><
jdk-6u5-windows-i586-p.exeをインストールして
システム環境変数の末尾に;C:\Program Files\Java\jdk1.6.0_05\binと書いたんですが
set pathの結果が
C:\>set path
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Ju
stsystem\JSLIB32;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program
Files\QuickTime\QTSystem\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
てなってjavacが通らないんです
quicktimeがclasspathをどうにかしてたんでアンインストールして現在はclasspathが無い状態です
システム環境変数を編集してみてもquicktimeは無いのにsetPathで出てきます
834:デフォルトの名無しさん
08/04/10 18:05:45
再起動したらできますた
すまそんw
835:デフォルトの名無しさん
08/04/10 18:09:14
ちょwwwwwwwwwww
個人情報出すなよwwwwwwwwwwwwwwwwwwwwwwww
やばすぎwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
>Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Ju
>stsystem\JSLIB32;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program
>Files\QuickTime\QTSystem\
>PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
やろうと思えば今すぐにでもお前のPCに侵入できる状態なんだが・・・
836:デフォルトの名無しさん
08/04/10 18:14:12
これは酷いww
今すぐ>>834-835の削除依頼出してこい。
837:デフォルトの名無しさん
08/04/10 18:20:40
おお、なんかすごいのあるな。
今から侵入を試みてみる。ちょっと待ってて。
838:デフォルトの名無しさん
08/04/10 21:23:51
>>831
初めは簡単なプログラムやアプリを軽く書ける練習すると良いのではないだろうか?
これしかない!という本は無いと思うから、本屋で自分と波長が合う簡単な本を
買って一冊踏破すれば。慣れたらもっとセンスを研く本を買うと良いと思う。
839:デフォルトの名無しさん
08/04/11 09:37:28
すみません、助けてください。
ApacheTomcatが起動できません。
ConfigureTomcatからStartさせようと思うのですが、
スタートできません。
バージョンは5.5.26でインストールは問題なく終了しました。
OSはXPです。
なんとか起動まで導いてください。
お願いします。
840:デフォルトの名無しさん
08/04/11 10:09:39
スレ違い
841:デフォルトの名無しさん
08/04/12 10:26:59
JAVAでMSDNにあたる資料は、
URLリンク(java.sun.com)
これでしょうか?
もう少し見やすいものはないものでしょうか……?
842:デフォルトの名無しさん
08/04/12 12:53:34
どういうものを求めてる?
どのへんが見づらいの?
843:デフォルトの名無しさん
08/04/12 12:56:44
継承メンバ一覧は冗談かと思うよな
844:デフォルトの名無しさん
08/04/12 13:52:58
質問!
0.0以上1.0未満の整数値をランダムに生成して表示するプログラムを作ってます。
import java.util.Random;
class ex0209 {
public static void main(String[] args) {
Random rand = new Random();
double lucky = rand.nextDouble(1);
System.out.println("0.0以上1.0未満の実数値:" + lucky);
}
}
上記のようにすると
ex0209.java:8: nextDouble() (java.util.Random 内) を (int) に適用できません
double lucky = rand.nextDouble(1);
^
エラー 1 個
というメッセージが出てきます。
1を1.0に変えても同じでした。
どうすればいいのでしょうか。
845:デフォルトの名無しさん
08/04/12 14:30:11
>>844
宿題?ちゃんと API を見ろ。引数いらん。
ついでにずいぶんいらん変数が多いなぁ。つーか変数いらん。
まぁできえばいいかな。
846:デフォルトの名無しさん
08/04/12 14:42:06
>0.0以上1.0未満の整数値をランダムに生成して表示するプログラムを作ってます。
ランダムも何も、0だけ表示しとけばいいだろwww
847:デフォルトの名無しさん
08/04/12 16:34:11
今GUIプログラミングをしているのですが、
キーの押下に反応するメソッドはありますか?
例えばaを押したらすぐにキーコードかaが表示される感じです。
848:デフォルトの名無しさん
08/04/12 17:00:16
>>845
API見たら確かにのってた。アホな事聞いてすんません。
Javaは趣味でやってます。今使ってる入門書に答えが載ってなかったんで。