【トリビアの泉】Java初心者質問スレ【32へぇ〜】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html
を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。 その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを立ち上げなおしてください。
設定したパスが正しければ、javacが使えるようになります。
それでも同じエラーが出る場合は、設定した値が間違っています。
よく見直してください。

Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落とさないように!
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02
を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。

クラスパスとはなにか(JavaFAQ 基礎知識)
http://www.gimlay.org/~javafaq/S004.html
Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html
を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。 その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを立ち上げなおしてください。
設定したパスが正しければ、javacが使えるようになります。
それでも同じエラーが出る場合は、設定した値が間違っています。
よく見直してください。

Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落とさないように!
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02
を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。

クラスパスとはなにか(JavaFAQ 基礎知識)
http://www.gimlay.org/~javafaq/S004.html
Q. Javaのインストール方法、パスや環境変数の設定方法が分かりません。
A: Java(TM) 2 SDK インストールガイド
http://java.sun.com/j2se/1.4.1/ja/install.html
http://java.sun.com/j2se/1.4.1/ja/install-windows.html

Q: クラスの使い方が分かりません。
A: Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html

Q: SDKの仕様や、Javaの使い方、コマンドの使い方を教えて下さい。
A: Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html

Q: Javaの言語仕様が知りたいです。
A: Java言語規定
http://www.y-adagio.com/public/standards/tr_javalang/index.htm
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html

Q: 「僕以外の人も、同じ疑問を持ったはず」と思えるような質問があります。
A: Java House ML Topics / Java FAQ / Java Tips
http://java-house.jp/ml/topics/
http://www.gimlay.org/~javafaq/
http://www.javaworld.com/columns/jw-tips-index.shtml

このほかのFAQ(良くある質問とその回答)はこちら↓をご覧ください。
http://www.gimlay.org/~javafaq/javafaq.html

Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html
を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。 その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを立ち上げなおしてください
【初心者・ネタ】Java質問・相談スレ【大歓迎】
01 http://pc.2ch.net/tech/kako/1021/10218/1021817147.html
02 http://pc.2ch.net/tech/kako/1023/10233/1023319551.html
03 http://pc.2ch.net/tech/kako/1024/10248/1024885660.html
04 http://pc3.2ch.net/tech/kako/1026/10266/1026601774.html
05 http://pc3.2ch.net/tech/kako/1028/10280/1028096225.html
06 http://pc3.2ch.net/tech/kako/1029/10297/1029774594.html
06+ http://pc3.2ch.net/tech/kako/1031/10313/1031397913.html
07 http://pc3.2ch.net/tech/kako/1032/10329/1032944182.html
08 http://pc3.2ch.net/tech/kako/1032/10329/1032944246.html
09 http://pc3.2ch.net/tech/kako/1034/10343/1034303501.html
10 http://pc3.2ch.net/tech/kako/1035/10355/1035570359.html
11 http://pc3.2ch.net/tech/kako/1036/10361/1036142056.html
12 http://pc3.2ch.net/tech/kako/1037/10374/1037407642.html
13 http://pc3.2ch.net/tech/kako/1038/10387/1038731106.html
14 http://pc3.2ch.net/tech/kako/1040/10401/1040150533.html
16 http://pc3.2ch.net/tech/kako/1042/10424/1042407622.html
16+ http://pc2.2ch.net/tech/kako/1043/10436/1043654161.html
18 http://pc2.2ch.net/tech/kako/1044/10449/1044983072.html
19 http://pc2.2ch.net/tech/kako/1046/10461/1046166884.html
20 http://pc2.2ch.net/tech/kako/1047/10475/1047544179.html
21 http://pc2.2ch.net/tech/kako/1048/10486/1048689029.html
22 http://pc2.2ch.net/test/read.cgi/tech/1049715659/l50
23 http://pc2.2ch.net/test/read.cgi/tech/1051284438/l50
24 http://pc2.2ch.net/test/read.cgi/tech/1052625006/l50
25 http://pc2.2ch.net/test/read.cgi/tech/1054041744/l50
26 http://pc2.2ch.net/test/read.cgi/tech/1055601178/l50
27 http://pc2.2ch.net/test/read.cgi/tech/1057249423/l50
28 http://pc2.2ch.net/test/read.cgi/tech/1058408362/
29 http://pc2.2ch.net/test/read.cgi/tech/1059654451/
30 http://pc2.2ch.net/test/read.cgi/tech/1062421340/

■■■ Java関連スレいろいろ ■■■ 
【IDE 統合開発環境】
【Java/C/他】統合開発環境Eclipse RC6
http://pc2.2ch.net/test/read.cgi/tech/1051840417/
えっ?JBuilder8が発売?
http://pc2.2ch.net/test/read.cgi/tech/1038042372/l50
【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc2.2ch.net/test/read.cgi/tech/1017214967/l50
【統合】Java開発環境スレ
http://pc2.2ch.net/test/read.cgi/tech/1038118138/l50
【Java】NetBeans vs Eclipse【IDE】
http://pc2.2ch.net/test/read.cgi/tech/1029407008/l50

【携帯・モバイル】
携帯JAVAのスレッド
http://pc2.2ch.net/test/read.cgi/tech/1011977260/l50
iモード携帯電話用Java(iアプリ) Part 3
http://pc2.2ch.net/test/read.cgi/tech/1040898596/l50
iアプリでゲーム (ゲーム製作技術板)
http://pc2.2ch.net/test/read.cgi/gamedev/1005042631/l50
京セラJAVA搭載PDauPocketCosmo」 (モバイル板)
http://pc3.2ch.net/test/read.cgi/mobile/1021979970/l50
【サーバサイドやエンタープライズ】
EJB(初心者歓迎)
http://pc2.2ch.net/test/read.cgi/tech/1017240849/l50
■■ Servlet/JSP(EJB含む) 質問スレ ■■ (WebProg板)
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50
《The Jakarta Project》
http://pc2.2ch.net/test/read.cgi/tech/1019996589/l50
TOMCAT
http://pc2.2ch.net/test/read.cgi/tech/998525941/l50
Servlet/JSPのフレームワークを語るスレ
http://pc2.2ch.net/test/read.cgi/tech/1001950590/l50
EJBは終わってる
http://pc2.2ch.net/test/read.cgi/tech/1036481443/l50
JavaサーブレットQ&A LV2
http://pc.2ch.net/tech/kako/1012/10127/1012728608.html
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/tech/kako/1004/10049/1004972840.html
【その他】
クライアントサイドJavaどうよ?
http://pc3.2ch.net/tech/kako/1002/10021/1002160815.html
クライアントサイドJavaどうよ? part2
http://pc2.2ch.net/tech/kako/1032/10326/1032665721.html
クライアントサイドJavaどうよ? part3
http://pc2.2ch.net/test/read.cgi/tech/1045891783/l50
ム板のみんなでRobocode (・∀・)ヤロ−ウヨ!1台目
http://pc3.2ch.net/tech/kako/1020/10201/1020161792.html
Java 高速GUI SWT
http://pc2.2ch.net/test/read.cgi/tech/1032448424/l50
【徹底討論】Java3Dの可能性について考える
http://pc2.2ch.net/test/read.cgi/tech/1033703640/l50
★お前らJavaはJNIで組もうぜ★
http://pc2.2ch.net/test/read.cgi/tech/1033795664/l50
Javaアプレットのゲームの限界は! (ゲーム製作技術板)
http://pc2.2ch.net/test/read.cgi/gamedev/1005230153/l50
【Java編】 学校の宿題は俺にやらせろ 【Java編】
http://pc2.2ch.net/test/read.cgi/tech/1040552821/l50
祝 JAVA Developer創刊
http://pc2.2ch.net/test/read.cgi/tech/1024967343/l50
■■■ 他板のJavaスレッド ■■■
UNIXでJAVA (Unix板)
http://pc.2ch.net/test/read.cgi/unix/1011292632/l50
LinuxのJAVAチューニングスレ (Linux板)
http://pc.2ch.net/test/read.cgi/linux/1004594459/l50
◆◆◆◆◆◆MacでJava◆◆◆◆◆◆ (新Mac板)
http://pc.2ch.net/test/read.cgi/mac/991194610/l50

■■■ 撲滅させたいかた、死滅を心配してるかた ■■■
CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/tech/kako/1009/10097/1009707596.html
C#とJava、どっちをおぼえればいいの?
http://pc2.2ch.net/test/read.cgi/tech/1006715468/l50
Java撲滅委員会
http://pc.2ch.net/tech/kako/996/996848309.html
Java撲滅委員会
http://pc3.2ch.net/test/read.cgi/tech/996848309/l50
●●JAVAって死滅しちゃうの????●●
1 http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
2 http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
3 http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
4 http://pc2.2ch.net/tech/kako/1042/10422/1042268758.html
5 http://pc2.2ch.net/tech/kako/1046/10465/1046539052.html
6 http://pc2.2ch.net/test/read.cgi/tech/1047748598/
LinuxのJAVAチューニングスレ (Linux板)
http://pc.2ch.net/test/read.cgi/linux/1004594459/l50
◆◆◆◆◆◆MacでJava◆◆◆◆◆◆ (新Mac板)
http://pc.2ch.net/test/read.cgi/mac/991194610/l50

■■■ 撲滅させたいかた、死滅を心配してるかた ■■■
CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/tech/kako/1009/10097/1009707596.html
C#とJava、どっちをおぼえればいいの?
http://pc2.2ch.net/test/read.cgi/tech/1006715468/l50
■■■ 民間サイト ■■■
巨大なJavaリンク集
Java的リンク
http://www.geocities.co.jp/SiliconValley/6064/java_link.html
What's New about Java(Java に関する最新ニュース)
http://www.gimlay.org/~andoh/java/javanew.html

■■■ 無料の統合開発環境 ■■■
【Eclipse R2】
http://www.eclipse.org/downloads/index.php
【Sun ONE Studio 4 (Forte 4)】
http://jp.sun.com/products/software/tools/jde/try/index.html
【NetBeans v3】
http://www.netbeans.jp/dowonload.htm
【JBuilder 7 Personal】
http://www.borland.co.jp/jbuilder/jb7/download/

※2chではないので暴れないように。
前スレ
【初心者】 Java質問・相談スレ31 【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1062421340/
■■■ 民間サイト ■■■
巨大なJavaリンク集  
Java的リンク
http://www.geocities.co.jp/SiliconValley/6064/java_link.html
What's New about Java(Java に関する最新ニュース)
http://www.gimlay.org/~andoh/java/javanew.html

■■■ 無料の統合開発環境 ■■■
【Eclipse R2】
http://www.eclipse.org/downloads/index.php
【Sun ONE Studio 5 (Forte 5)】
http://jp.sun.com/products/software/tools/jde/try/index.html
【NetBeans v3】
http://www.netbeans.jp/dowonload.htm
【JBuilder 9 Personal】
http://www.borland.co.jp/jbuilder/jb9/download/

※2chではないので暴れないように。
前スレ
【初心者】 Java質問・相談スレ31 【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1062421340/
15デフォルトの名無しさん:03/09/17 14:21
SURETATEOTU.
16デフォルトの名無しさん:03/09/17 14:21
>>1-14
>>13と被ってもうた。version番号が古くなっていたから数字かえておいた。

>>6から続きを張ってみたが、やっと終わった。

>>12は重複しているからイラン。
前スレでスレ立てるタイミングに荒らしがコピペした分まで張らんでいい。
>>17
さすがだな
しかしJBuilderのバージョンアップの激しさを物語る13,14だ
バージョン2個も飛んでる・・・
>>1
おつ〜

それよりJ2SDKって1.4.2_01が最新だよね・・・
2017:03/09/17 14:28
>>19
おれはスレをたてるまでもない質問スレにしたがって
続きをかいてくれといわれたんで>>6から>>11までと>>14を立てた。

>>11までで一旦とまってしまったのは連続投稿が5回までと制限されているからだ。

しかしテンプレが長すぎるきがするのだが。連続投稿規制の影響もあるので
なんとか5スレにまとめることはできないか?
再投稿を待つまでに荒らしに隙を与えてしまう。
だれかがJava用のテンプレサイト、過去ログ集を作っておいて、
そのリンクだけを張るようにすればこんなに長いテンプレの必要性も
なくなりそうだ。
>>1-2 とかみたいに前スレの 1 が連打した結果で被ったのまでコピーするし…
>>1
> Q. javac コマンドを実行したときに、
> 『コマンドまたはファイル名が違います』や
> 『'javac' は、内部コマンドまたは外部コマンド、
> 操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
> と表示されてコンパイルできません。
> A. javac.exeへのPATHが通っていません。

このあたりの質問もJavaFAQ http://www.gimlay.org/~javafaq/
をみれば済んでしまいそうなので省略できないか?

それでもテンプレに細かいQ&Aを書く理由があるとか?
初心者がそれをしつこく質問する頻度が高いと?
>>23
そのヘンの経緯は過去スレみてくれ。
Eclipse が流行ってからいくらか減ったけど、かなり多かったよ。

ここまで、『へぇ〜』が一つも出ていないのですが・・・
>>22
テンプレのテンプレを誰かが作ったサイトに保存しておいて
前スレではなくそれを参照してテンプレを貼り付けられればいいけど。
誰もやりたがらないか・・・。
27デフォルトの名無しさん:03/09/17 14:43
テンプレ長過ぎなのは同感。
つーか、>>1のような質問はなくならないので
書かなくてもいいともおもう
前スレ、関連リンクも 個人的には見返す気はないので不用
実際に、既出事項であったとしてもあるいは不変の事柄であったとしても
生の情報の方が良い。
>>28
自分に必要ないからといって削るわけにもいかんだろ。

それに、自分で調べるより他人に聞く方が早いと思ってる奴はウザがられるぞ。
>>29
いや、前スレなどのリンク貼ろうが貼らまいが
聞く奴はそこで聞く、意味ないよ前スレリンクなんて
実際ココ来る人初心者だしね
それに、中上級者が見返すほどの内容でもない
いらねーだろ?関連リンクなんて
必要と思っている人はそのぐらい自分で探せるよ
>>30
> それに、中上級者が見返すほどの内容でもない
全部が全部そうならいいんだけどね、
30 もスレがあるとそうでもないんだな。
32デフォルトの名無しさん:03/09/17 15:24
前スレリンクの利用法キボン。
>>32
http://pc3.2ch.net/tech/kako/1040/10401/1040150533.html
の 164 〜 とか。

http://pc3.2ch.net/tech/kako/1036/10361/1036142056.html
の 80 〜 とか。

他の検索方法でも見つかるだろうが、
ここで見かけた話題だってのを知ってれば
前スレへのリンクがあれば検索の幅が広がるね。
>>32
他人の勉強みさせられた時とか、過去スレをつらつら読むと「初心者」が
どの辺で引っかかりそうかとか理解できるんですが。
mainメソッドからそのmainメソッドがあるクラス名を取得する方法がわかりません
36986:03/09/17 16:16
>>987
closeはちゃんとしています。

普通は上書きできるものなんでしょうか?
>>35
1.4 以降であれば、
(new Throwable()).getStackTraceElement()[0].getClassName();
とかすれば取れる。
>>36
英語の API document見たけど
File#renameTo() が異なるファイルシステムで renameTo できるかはプラットフォーム依存とは書いてあるけど
既存のファイルを上書きできるかどうかには言及してないね。

移動先を delete() してから、renameTo() するのが確実だと思われ。
3936:03/09/17 17:21
>>38
そうなんですか。

ご丁寧に調べていただいてありがとうございました^^
4035:03/09/17 17:26
>>37
> 1.4 以降であれば、
> (new Throwable()).getStackTraceElement()[0].getClassName();
> とかすれば取れる。

(new Throwable()).getStackTrace()[0].getClassName();
でしたね

できました
ありがとうございました
現在JTableについて困っています。

ネタ心者歓迎!今更ながらにJava相談室 その4
http://pc.2ch.net/test/read.cgi/tech/1010545421/571
と同じことをしたいのですが、出来なくて困っています。

一年前のカキコですし、もう解決されているかと思い過去スレ全部検索してみたのですが、
解決策が見つからなかったので質問させてもらいます。

M$Excelで任意のセル範囲を選択・コピーして、SwingのJTableに貼り付ける
これをするには、どうしたらいいのでしょうか。

よろしくご指導願います。

自分では、、
コピーペースト機能をもってるMyEditorを用意し
ソースの、JTextAreaをJTableに代えてみました。
ですが、コピーペースト機能は、JTextクラス?じゃないと使えないみたいで
エラーが出てしまっています。
>>41
java.awt.datatransferを調べてみるべし。
43デフォルトの名無しさん:03/09/17 19:11
すいません 前スレでもちょこっと書き込んだのですが、

Javaアプリケーションで画像を表示させることってできますか?
また、できる場合具体的にどのようにしたらできますか?

どうもへなちょこな質問でスマソ。
でも何か書いてるうちにAppletとかextendしてきて
よくわからなくなりますた。(;´д`)アハァ
>>41
Java clipboard Excel で ぐぐったら
http://www.javaworld.com/javaworld/javatips/jw-javatip77.html
が見つかった。
plain text だとタブ区切り、行間は \n で区切られてるみたい。
45デフォルトの名無しさん:03/09/17 19:30
appletでランキングに対応させるには、cgiくらいしか手がないもんでしょうか?
46デフォルトの名無しさん:03/09/17 20:16
47デフォルトの名無しさん:03/09/17 20:32
今appletをやっているのですが分からないエラーが出てしまいました。
このソースを動くようにするにはどうしたらいいでしょうか?
どなたかお願いします。
ソースをテキストであげてみます。
http://www.kari.to/upload/source/d/1849.txt
48デフォルトの名無しさん:03/09/17 20:49
>>47
どんなエラーなのかも書いてね。
49デフォルトの名無しさん:03/09/17 20:51
extendするのって、1クラスにつき1つ?
JFrameとDialogとかってだめなの?
5047:03/09/17 20:53
48さんごめんなさい。
エラーは「式の開始が不正です」というものです。
場所は public static void main(String[] args){ のところです。
すみませんでした。
51デフォルトの名無しさん:03/09/17 21:00
>>50
コンパイルしてみたら、class名で引っ掛かった。
1849っていうクラス名はダメなんじゃないの?
52デフォルトの名無しさん:03/09/17 21:05
自作プログラムからサーチエンジンを利用する方法ってありますか?
googleだと同一アカウントで1日100回までしか利用できないんで、
それ以外のエンジンでおねがいしまつ。
5347:03/09/17 21:06
51さん
試してみたらそうでした・・・。
もともとM1というclass名でやっていたのですが、あげるときに変えたほうがいいと思って変えてしまいました。
ごめんなさい
>>49
無理。
Java は多重継承のトラブルを嫌って単一継承しかできないようにしてる。
55デフォルトの名無しさん:03/09/17 21:15
>>53
90行目の終わりに}がないってエラーが出ます。
5647:03/09/17 21:23
55さん
私のところでコンパイルすると90行目で「式の開始が不正です」と言われるのですが
なんで違うエラーがでてしまうんでしょう・・・
142行目に}がないとは言われました。
57デフォルトの名無しさん:03/09/17 21:29
>>56
keisanメソッドの定義が終わってないのに、
mainメソッドの定義が始まってるのがおかしんじゃないの?

普通に保存したら、
public static void main(String[] args){
は92行目にあります。あなたに合わせるので、
あなたの所で何行目か教えてください。
5847:03/09/17 21:37
56さん
メソッドの定義が終わっていないのは宣言したものがコンパイルしたときエラーがでてしまったため終わらさずにつづけてしまいました。

私が保存すると90行目になります。改行のみでの行数です。
59デフォルトの名無しさん:03/09/17 21:42
>>58
89行目に}を入れて、keisanメソッドの定義を終えた。
91行目にstatic関連のエラー出るね。

さっきから気になってるんだけど、このmainメソッドは
どこから呼び出されるわけ?
6047:03/09/17 21:47
59さん
keisanメソッド以下の計算式はアルゴリズムの本から写したものなので呼び出しはないかもしれません。
アルゴリズムの本はJAVAのもので
class Cannibals{
static final int M=3;
static final int C=3;
static final int B=2;

static int np=0;
static int solution=0;
static int[] mb=new int[(B+1)*(B+2)/2];
static int[] cb=new int[(B+1)*(B+2)/2];
static int[] mh=new int[2*(M+1)*(C+1)];
static int[] ch=new int[2*(M+1)*(C+1)];
static boolean[][][] flag=new boolean[M+1][C+1][2];
と書いてあってその後、foundメソッド→doitメソッド→mainメソッドになっています。
61デフォルトの名無しさん:03/09/17 21:53
>>60
今、作ってるのはアプレットでしょ?
その本で解説してるのはJavaアプリだと思う。
そのまま写すだけじゃアプレットにはならないよ。
ああ、やっぱりかぁ
どこかで見たとソースだと思ったら、
『Javaによるアルゴリズム辞典』?
いきなり真似するのは、ちと無茶かと。
もう少し軽めのものからにするべきでは・・・
6347:03/09/17 21:58
61さん
計算の部分は同じかと思って写してしまいました。
アプレットにするのは難しいんですね・・・
6447:03/09/17 22:01
62さん
その本です。軽めのものですか・・・
でもこの問題を解きたいのです。よろしくお願いします。
>>23 >>28-30
テンプレにそのQAを導入した当人ですが
このQAが無いともっと悲惨なことになります。
酷いときは1スレで何度もpath/classpathの質問が出てくるから。
加えて見てる方もイライラしてくるから荒れ易い。

最初は2に書いてたけど最近1に移動させたのは正解だと思う。

10 http://pc3.2ch.net/tech/kako/1035/10355/1035570359.html
11 http://pc3.2ch.net/tech/kako/1036/10361/1036142056.html
↑テンプレにQA無し

↓テンプレにQAあり
12 http://pc3.2ch.net/tech/kako/1037/10374/1037407642.html
13 http://pc3.2ch.net/tech/kako/1038/10387/1038731106.html
> 47

ヒント。
1)
元のソースの変数のスコープと改造ソースのスコープの違いは?

2)
アプリケーションの場合に最初に呼ばれるのは main
じゃあ、アプレットで最初(または、その後)に呼ばれるのは?
6766:03/09/17 22:20

ただ移しただけじゃ駄目だ

2)取り消し。
スマソ

6847:03/09/17 22:29
66さん
元のソースはすべてに利用可能だけど改造ソースはkeisanメソッドのみに利用可能です。
であっているでしょうか?
6966:03/09/17 22:51
> 47
合っている。

そうすると
doitやfoundの中で使われている変数はどうするか?
doitが再帰的に呼ばれていることに注意。
単純に全部keisanメソッドの中に移すことはできない。
>>60
Javaによるアルゴリズム事典のソースコードは、
コーディングした香具師があまりオブジェクト指向に詳しくないC厨なので
あんまし美しいソースコードじゃないぞ。

Javaによるアルゴリズム事典のコーダーは
継承の使い方も下手だった。
自作したクラスを継承しているのがあったが、
何か継承を上手に利用する方法を勘違いしているような気がしてならない。
あのソースでは、従来のCのように委譲をやっているのとあんまりかわらんかったな。
7241:03/09/18 00:08
書き込んだ後ネットに繋げなくなった為、遅レスすいません。

>>42 これから調べてみます。
どうも、APIですか?あれ使いづらくてわからないので、時間かかり、
また、質問しに来るかもしれませんが、また、よろしくお願いします

>>44
ここにある、ExcelAdapter、Frame1両方class作ることは出来るのですが
ExcelAdapterは使い方わからずで、
Frame1は、この表の意味がわかりません。
英語もう少し読んで、意味を考えてみます。

助言、ありがとうございました。

まだ解決できていませんので、
>>41 M$Excelで任意のセル範囲を選択・コピーして、SwingのJTableに貼り付ける
詳しい方、いらっしゃいましたら、引き続き助言いただけるとうれしいです。
それでは、徹夜で勉強してきます。
>>70-71
コードを極力短くするために、わざとやってる可能性とかは考えないの?
74デフォルトの名無しさん:03/09/18 00:34
「Javaによるアルゴリズム事典」に載ってるソースがあった。
Cannlbals.javaっていうのが、今、問題になってるやつ。
http://www.matsusaka-u.ac.jp/~okumura/java-algo/
7547:03/09/18 00:36
>>69さん
mainをkeisanとつなげて閉じて、
void doit(int i,int np,int M,int C,int B,int solution)
void found(int n,int np,int M,int C,int B,int solution)
としてみたところ配列を同じようにしようとするとエラーが起きてしまいました。
配列は渡せないのでしょうか?
>>71
ところで、継承とは何のために存在していて、どう使うのが上手な使い方だと思いますか?
そして継承を使うことの利点と欠点とはどういうものなのでしょうか?
77デフォルトの名無しさん:03/09/18 00:42
>>75
複数のメソッドで共有したい変数は、
メソッド定義の外側で宣言すればよくて、
わざわざ引数としてやりとりする必要はない。
7847:03/09/18 01:09
77さん、ありがとうございました。
エラーはなくなったのですが、結果が表示されません。
どこが悪いのでしょうか?

今のソースです。
http://www.kari.to/upload/source/d/1853.txt
7947:03/09/18 01:11
ごめんなさい間違えました。
こっちです
http://www.kari.to/upload/source/d/1859.txt
>>73
継承のところみてみるといいよ。ワラタヨ。
フィールドがカプセル化されていないのが多いのもワラタヨ。
staticメソッドの巣窟になっているのもワラタヨ。
>>76
デザインパタンを勉強しましょ。
本を読んで、ミスの10や20見つけられないようなら、まだまだ自分はその程度だってことだ。
>>76
何のために存在するか?
…既存のクラスを変更しないで拡張するため
同一の性質のクラスを兄弟としてまとめるため

どう使うのが上手な使い方だと思うか?
…正確にis-a関係が成り立つときのみ使用

継承を使うことの利点
…機能拡張が容易である
多態性を利用できる

欠点
…継承されたクラスはクラス階層に縛られる

かなり不備があると思うが
8466:03/09/18 01:27
>> 47

受け取る方を配列にしてないとか?
それはともかく、そういう要らない苦労をする前に、
まずは元のソースをなるべく活かしてアプレットに
する方法を考えてみたら?

mainの中身*だけ*keisanに移して、変数は*宣言だけ*
しておいて初期化をkeisanでするようにして、後は出力先を
標準出力からcanvasにでも書き出すようにすれば終わりだし。

あと、エラーの内容を出すのは必須。
8566:03/09/18 01:30
うわぁ
更新してなかった・・・

> 47
初期化を宣言と同時にしたら駄目っしょ
>>83
ご返答ありがとうございました。
87デフォルトの名無しさん:03/09/18 01:39
47ガンガレ。漏れは寝る。オヤスミ♪
8847:03/09/18 01:40
66さん
エラーは今ありません。動くのですが、結果が表示されないのです。
受け取るほうを配列にするというのはどうすれば・・・
>>80
具体的に何処がまずいんで?

ひょっとして、どっかの本で
「フィールドがカプセル化されているべき」
「staticメソッドはイカン」
とか読んだので適当に言ってみただけかな?
>>89
なにもかもがそうでないといかんとかおもてないけど
複素数クラスのソースが笑えた。
91としあき:03/09/18 01:58
今までアプレットが表示されていたんですが、
何回もコンパイルと実行を繰り返しているうちに実行できなくなりました。
コンソールを開いてみると、
java.lang.OutOfMemoryError
というエラーが書いてありました。
これを解決するためには、javaソースの中に何かメソッドを作らなければならないでしょうか?
お願いします、おしえてください。
>>90
複素数クラスって Complex.java だろ?
本に載ってるのは知らんが、ダウンロードした奴を
ざっとみても そんなに変な所は無いような…
>>91
OS を再起動すれば?
9441:03/09/18 02:50
>>72 であんなことかいてますが、
解決できました、ほんとうにありがとうございます。
>>94 解決したのならどのようにして解決したのか、
それを詳しく書いておくと他の人も参考になってよろしいかと。

その解決法を詳しく記述しておくことの利点は、
貴方自身、>>41にて
「一年前のカキコですし、もう解決されているかと思い過去スレ全部検索してみたのですが、
解決策が見つからなかったので質問させてもらいます。」
と発言していることから、ご承知とは思うが。

またその解決法を書かず「解決できました」とだけ書いてあるのでは、
>>94>>41を騙っているだけとも限らない。
9641:03/09/18 04:54
>>95 了解しました。

>>44さんがリンク張ってくれたページにて、
ExcelAdapter.java というものをコピペしコンパイルしたあと、

Frame1.javaにある一番最後の行を参考に
「ExcelAdapter myAd = new ExcelAdapter(jTable1);」
という一文を入れることで、JTableでのコピーペースト可能になりました。

エクセルとの互換性もしっかりありました。
自分は、メニューバーでやろうとおもっていたのですが、
ctrl+c、+vでも問題なかったので、解決とさせてもらいました。

自分の次やりたいことは、セルを使った計算なので、今度はそっちを勉強したいと思います。
セル一個一個識別し、行毎に計算をして一番右の列に答えを出していく
これの繰り返しをさせるプログラムを考えて行きます。

95さん、こんなものでよろしいでしょうか?
97デフォルトの名無しさん:03/09/18 09:25
質問させてください。

初心者本で勉強中,”Javaは動作のプラットホームを選ばない。
(WinでコンパイルしたクラスをMacでも再コンパイルの必要なしに使用可能)”
と書いてあったのですが,どうして実現可能なのでしょうか?
コンパイラの出来がいいからですかね??

ぐぐってみたのですが,見つけられませんでした。
よろしくお願いします。
>>92
カプセル化していないことは多めに見るとして

せっかく同じクラス内に演算かいているなら
staticやめてインスタンスめそっどにして
メソッドの引数を節約できるのにって思ったね。
static Complex add(Complex a, Complex b)
とするより
Complex add(Complex b)
のほうが効率もよくすっきりすると思うんだよね。

Mathクラスのように値型しか扱えないわけでもないなら
あれくらいならインスタンスにしても
いいんじゃないかと思ったね。
>>97
「Java VM マルチプラットフォーム」でググってみたらこんなページが見つかった。
ttp://www.tokyo-nagasaki.net/dayan/java/step1.html

しかし、JavaVMの仕組みを説明しないとは、その初心者本は使えないなぁ。
その本だけど、きっともうすぐあなたにとって役に立たないものになると思う。
逆に聞きたい。一体なんてタイトル?
10097:03/09/18 10:10
レスありがとうございます。

なるほど,JavaVMがプラットフォームの違いをなくすんですね。
書名はやさしいJavaです。
直前にVMのことは書いてあったんですが,詳しい仕組みまでは解説していないようでした。

ありがとうございました。
101デフォルトの名無しさん:03/09/18 10:13
>>100
Java VMのおすすめページ。
http://www.netgene.co.jp/java/documents.html
さすがに、いまどき virtual を仮想と訳したりはしないよな?

最近のJava本でもJVMをJava仮想マシンと訳すのはないよな?
>>102
あるかどうかはしらないが
Java仮想マシンと訳すのは、何か都合が悪いのか?
104デフォルトの名無しさん:03/09/18 10:31
>>102
ほかにどう訳せと。
>>102
Java妄想マシンとでもいうのか?
こんなこと書くと、アンチJava厨に使われちゃうかな
http://dictionary.goo.ne.jp/search.php?MT=virtual&kind=ej
で、日本語的には仮想でもかまわんとおもう。
仮想じゃ駄目だって言いたい気持ちもわからんでもないけどね。
107デフォルトの名無しさん:03/09/18 10:48
事実上の機械と呼ぼう。
>>98
ぱっと見た感じ
Complex add(Complex b)
だと a.add(b) とやったときに a += b になりそうに見えるんだよな
Complex は不変クラスであるべきだろうし
>>91
>これを解決するためには、javaソースの中に何かメソッドを作らなければならないでしょうか?
javaコマンドのオプションに -Xms -Xmx とかあるけどね。
でもVMがブラウザの物だったらどうすりゃいいんだろう?

でもそんなにでかいプログラムとは思えないから
OutOfMemoryErrorでるのはなんか変だね
>106
辞書が追いついてない、というか古い。

グランドコンサイス英和辞典のような新しい辞書には、
「仮想の」あるいは「(コンピュータ)仮想記憶の」という意味が記されている。
111108:03/09/18 11:00
>>98
すまん
BigIntegerやBigDecimalは不変クラスだが
あなたのいうような仕様だったよ
>>98
> カプセル化していないことは多めに見るとして
「アルゴリズム辞典」に載ってるソースにカプセル化は必須か?
あと、「大目に見る」だろ?

> Complex add(Complex b)
> のほうが効率もよくすっきりすると思うんだよね。
java.math のクラス群と対応とる以外に意味はないかと。
「効率もよくすっきりする」ってのは個人的意見でしょ?

ちなみに
http://www.matsusaka-u.ac.jp/~okumura/java-algo/
で見れるソースだと これらの点は直ってるね。

> Mathクラスのように値型しか扱えないわけでもないなら
> あれくらいならインスタンスにしても
> いいんじゃないかと思ったね。
意味不明。ここで言う「インスタンス」って何すか?
113デフォルトの名無しさん:03/09/18 11:13
不変クラスってfinalクラスの事かと思ってググってみたら違った。
http://www-6.ibm.com/jp/developerworks/java/030418/j_j-jtp02183.html
不変クラスの作成は簡単です。以下の条件をすべて満たしていれば、
そのクラスは不変クラスになります。
*すべてのフィールドがfinalである
*クラスがfinalとして宣言されている
*作成時に this 参照がコンストラクター外部に渡されない
*配列、コレクションなどの可変オブジェクトや、Date などの
可変クラスへの参照を含むフィールドが以下の条件を満たす
 *privateである
 *返されないか、呼び出し側に公開されない
 *参照の対象となるオブジェクトへの唯一の参照である
 *参照するオブジェクトの状態を、そのオブジェクトが作成された後で変更しない

難しいね。
>>113
> 不変クラスってfinalクラスの事かと思ってググってみたら違った。
11598じゃないけど:03/09/18 11:55
>>112
> java.math のクラス群と対応とる以外に意味はないかと。
> 「効率もよくすっきりする」ってのは個人的意見でしょ?
APIと同じ仕様というだけでも十分に利点だと思うがどうか?

> > Mathクラスのように値型しか扱えないわけでもないなら
> > あれくらいならインスタンスにしても
> > いいんじゃないかと思ったね。
> 意味不明。ここで言う「インスタンス」って何すか?
文脈から判断するに,インスタンスメソッドのことだね
>>115
> APIと同じ仕様というだけでも十分に利点だと思うがどうか?
っても java.* 配下のクラスと似ている仕様にしなかっただけで
笑うってのも了見が狭いような気もするけどね。
それに >>98 が当初言ってたのって
>> せっかく同じクラス内に演算かいているなら
>> staticやめてインスタンスめそっどにして
>> メソッドの引数を節約できるのにって思ったね。
だし。

> 文脈から判断するに,インスタンスメソッドのことだね
なるほど。
空行が入ってるから別の話なのかと思ったけど、そうじゃなかったんね。
117デフォルトの名無しさん:03/09/18 13:28
>>47
http://www.kari.to/upload/source/d/1866.txt
面白そうなので、完成させてしまいますた。
Windows、Macで動作確認済。
11847:03/09/18 13:40
できました。
みなさんありがとうございました。
pageContext.forwardでhtmlファイルを指定するとエラーになるんですが、
何を言われているのさっぱりです。
どうすればいいのか教えてください。
org.apache.jasper.JasperException: getOutputStream()はこのレスポンスに対してすでに呼び出されています
120デフォルトの名無しさん:03/09/18 14:19
120へぇ〜
121デフォルトの名無しさん:03/09/18 14:24
お願いです。
N*Nの盤面にチェスのクイーンをN騎ならべて、どの2つの駒も互いに張り合わない
配置を全て求めるプログラムをjavaアプレットで作って下さい…。
ほんっとにお願いします。今、命が危ないんです。
>>121
javaアプレット関係ないじゃん
Nクイーン問題なんてアルゴリズムの問題だろ?
>>121
宿題は宿題板へ
124デフォルトの名無しさん:03/09/18 14:42
>>119
pageContext.forward()でHTMLなどの静的コンテンツにフォワードできないようだ。
Tomcatだけなのか、J2EEで決まっているのかは知らないが。
response.sendRedirect()で代用したら?

>>121
学生さん?手を抜いちゃダメだ。それくらい自分で解け。
もっとも、N-Queen問題くらいメジャーな問題だと、
ちょっとググれば一発で答えが見つかるんだが…ゲフゲフ
>>124
ありがとうございます。
でも何でなんですかね?
ところで、124さんに言われてふと疑問に思ったんですけど
pageContext.forward()とresponse.sendRedirect()の違いって何なのですか?
ドキュメントみても違いがわからなっかんです。
宿題やってやるスレってのがなかったっけ?
127デフォルトの名無しさん:03/09/18 14:57
121さん
そうなんです。アルゴリズムをだいたいは理解したんですが、
C++のソースプログラムを見つけたので、ちょっと見てみたら
何をやってるのか分からなくなってしまったんです。
124さん
1ヶ月ほどググッたんですが、ダメでした…。
学校の宿題なのですが、僕の頭では2ヶ月考えてもダメでした。
おさわがせしてごめんなさい。もう単位落ち覚悟します。
129デフォルトの名無しさん:03/09/18 16:19
Dialogを開くときの引数のownerって何ですか?
Topで書いてるときはthisで直結なんですが
トップで宣言したDialogを別のDialogから開いたりとかするときは
どうすればいいんでしょうか?
130デフォルトの名無しさん:03/09/18 18:28
torque を試しているんですが、実行させるとNullPointerExceptionが
throwされてしまうんですけど、原因として考えられるものはないでしょう?
>>103
Javaヴァーチャルマシンと訳せばいい。
以前VR関係の研究をしている教授が指摘したことだ。
Virtual Realityの業界ではこれが常識になってる。
>>113
「Javaの鉄則」ではもっとシンプルに説明していたぞ。
setterメソッド相当を破棄、クラスをfinal, フィールドをprivate
こんな程度だったかな。

StringクラスやBigInteger, BigDecimalクラスのソースコードなどを
参考にすればいい。


>>112
多めに見ることを前提にして、
コピーコンストラクタがあることがC++経験者らしいソースかと思ったよ。
本当にどうでもいいが,Cloneableインターフェースを実装し
clone()メソッドをオーバーライドすればいいんじゃないかねと思った。

さらにComparableインターフェースを実装してcompareTo()メソッドを実装とかね。
あとはNumberインターフェースを実装すると便利かな〜?

あとはhashcode()かな?
しかしここまでやるとアルゴリズムとはかなりかけ離れてしまうことは確かだね。

133デフォルトの名無しさん:03/09/18 18:56
枠もタイトルバーも何もないウィンドウを作りたいんですが、
どうやったらできるんでしょうか?
画像を1枚枠なしで表示したいんですが。
134デフォルトの名無しさん:03/09/18 19:28
JavaBeansを作っているのですが
staticなメソッドを使っており引数を仮にAとして
getで取り出すメンバ定数もAの場合
A=this.Aで値を書き込もうとするとエラーがでてしまうのですが
同一の名前で行う何かいい方法はないでしょうか?
なければ違う名前にすればいけるのですが・・
>>133
java.awt.Windowかjavax.swing.JWindowを使う。
>>134
staticメソッドでthisは使えない。違う名前にするしかないかな。
>>132
突っ込み所多すぎ…

> 本当にどうでもいいが,Cloneableインターフェースを実装し
> clone()メソッドをオーバーライドすればいいんじゃないかねと思った。
不変クラスに Cloneableインターフェースを実装することにあまり意味はない気が…

> さらにComparableインターフェースを実装してcompareTo()メソッドを実装とかね。
> あとはNumberインターフェースを実装すると便利かな〜?
複素数で何を比較するんですか?絶対値?偏角?
あと,Numberインターフェースなんてありません

> あとはhashcode()かな?
hashCode() な
あと,toString() と equals() くらいかな
137U ◆CZtFsGiu0c :03/09/18 20:31
>>119
forward呼び出す前にHTMLタグとか出力していませんか?
サーブレットでもそうですが、レスポンスに対してなんらかの出力処理を行った
後にforwardはできません。
>>136
> 不変クラスに Cloneableインターフェースを実装することにあまり意味はない気が…
あれの場合はComplexのフィールドに可変クラスが使われていないから確かに
意味ないね。けど、フィールドに可変クラスまたは配列などが使用されていた場合は
必要だよ。

> 複素数で何を比較するんですか?絶対値?偏角?
絶対値でええって。と思うがどうよ。

> あと,Numberインターフェースなんてありません
中傷クラスとインタフェスまちげえた。

> あと,toString() と equals() くらいかな
equals()とtoString()はもうすでに入ってるよ。
>>138
> あれの場合はComplexのフィールドに可変クラスが使われていないから確かに
> 意味ないね。けど、フィールドに可変クラスまたは配列などが使用されていた場合は
> 必要だよ。
そうだけどね
でもこういうプリミティブな型はどうしても不変クラスってイメージが…

> 絶対値でええって。と思うがどうよ。
実際,複素数に<(不等号)の関係はないからなぁ…

> equals()とtoString()はもうすでに入ってるよ。
ごめん,元ソース見てなかった
140デフォルトの名無しさん:03/09/18 21:08
java.io.FileのrenameToメソッドで、
ファイルを別フォルダに移動することはできるんだけど、
ファイルをコピーするメソッドってないのかな。
>>139
> > 絶対値でええって。と思うがどうよ。
> 実際,複素数に<(不等号)の関係はないからなぁ…
しかしあの絶対値による比較は信号処理では重宝するよ。
わざわざ実装すべきか? という問題もあるけれど。
142デフォルトの名無しさん:03/09/18 21:55
1ソースファイル内にアクセス指定子なしのクラスを複数書いた場合、
そのソースファイルの外のクラスからアクセスできるのは
ソースファイル名と同名のクラスのみですよね?
でも、eclipse上だと赤波線のエラーは出るけど実行するとアクセスできるんですよ。
eclipseのプロジェクトってデフォルトの設定だと何か問題あるんですか?
>>142
パッケージ外のクラスからアクセスできなくなるだけ。
同一パッケージのクラスからはアクセスできる。
>>142
package-privateは同一パッケージ内からならアクセスできると思うが…
145デフォルトの名無しさん:03/09/18 22:53
>>143>>144
package-privateのクラスにパッケージ外からアクセスできるかとか
試してる時だったんで、多分パッケージ外からのアクセスだと思います。
エラーは出てるのにアクセスできたんですよ。
ちょっと今ソースないんで思い出しながらソース書いてるんですが。。。
>>145
同一ディレクトリが同一パッケージなんだが
その辺の認識は合ってるよな?
147デフォルトの名無しさん:03/09/18 23:09
>>146
>同一ディレクトリが同一パッケージなんだが
読んだまま受け取っていいなら
そのように理解しているが。
148デフォルトの名無しさん:03/09/18 23:51
Thread.sleep(int)のメソッドを使う場合は必ずTry、catchを使わないといけないのでしょうか?
sleepのみの単体で使用できませんか?
149デフォルトの名無しさん:03/09/18 23:56
>>148
そのままうえに丸投げしちゃえば?
アホカと思うけど。
Thread.sleep(long) じゃなかったかなあ。
まあそれはおいといて、その sleep があるメソッドに throws InterruptedException
つければ try-catch はなくてもいいよ。
結局どこか別のとこで try-catch か throws InterruptedException が要るけど。
151デフォルトの名無しさん:03/09/18 23:58
>>145
参照を使用する側が、そのpackage-privateなクラスの
継承元となるpublicなクラスまたはインターフェイス型で
参照を保持していれば、継承元のクラスが持っているメソ
ッド経由でならアクセス自由です。
152デフォルトの名無しさん:03/09/19 00:00
>>148
例外ハンドリングがソース上の「鬱陶しいゴミ」だと思っている奴は
三流以下。考え改めろ。
153貧乏紙:03/09/19 00:02
なんの話してんの?
おりもまぜてちょ!
>>148
private static void sleep(long milis){
try {
Thread.sleep(milis);
} catch(InterruptedException ie){}
}

ってメソッドつくりゃいいだけ。Utilityクラスのpublicメソッドにしてもいい。
まぁこれがどれだけ危ないかは、自分で判断しな。
>>151
継承元のクラスがpublicなら継承先のクラスはpackage-privateにできないだろ
156デフォルトの名無しさん:03/09/19 00:07
>>155
ハァ?ハァ?ハァ?ハァ?
157貧乏紙:03/09/19 00:08
>>152
やばい!おれ「鬱陶しいゴミ」だとおもってる。
try{
・・・
・・・
}catch(Exception e){}
いつもこうなるぽ・・・
>>134

定数ならAもスタティック宣言しておけば
thisつかわなくともクラス名使って
こんな感じで行ける。

HogeClass{
 static final int A = 111;

 static getA( int A ){
  A = HogeClass.A;
 }
}
>>156
出来るんだっけ?
メンバだけか?厳しくする方向にはアクセス制限できないのは
多態性が崩れるとかの理由で
160デフォルトの名無しさん:03/09/19 00:13
>>158
話題からそれますが、ローカル変数に代入してどうすんの。
161159:03/09/19 00:15
メソッドのオーバーライドと勘違いしてたかな?
162デフォルトの名無しさん:03/09/19 00:16
>>159
そです。
ワタシ、実装クラスをユーザから隠蔽するために良く使いますです。

1.公開メソッドだけpublicなインターフェイスに定義
2.インターフェイスを継承した、not-publicなクラスを作り、実装をそこに行う
163貧乏紙:03/09/19 00:19
だれも相手にしてくれないので寝ます。。。
>>142
Eclipse使ったことないけど
コンパイルエラーが出てるなら
コンパイルできなくて実行できないのでは?
古いクラスファイルを読み込んでる可能性は?
"a".toUpperCase().equals("A") == true
"a".toUpperCase().equals("A") == false
とするにはどうすれば良いのでしょうか?
166159:03/09/19 00:26
>>162
ゴメン
インターフェースとクラスは話を分けて欲しい,ややこしくなるから

例えば,「クラスは多重継承できない」が
「インターフェースは多重継承できる」みたいな例があるからな
interface SubInterface extends SuperInterface1, SuperInterface2 {
 ...
}

publicクラスを継承してnon-publicなクラスは作れるんだよな?
>>166
> publicクラスを継承してnon-publicなクラスは作れるんだよな?

もち。
168デフォルトの名無しさん:03/09/19 00:49
>>165
SunにいってコアAPIの仕様変更してもらえ(ワラ
Object を継承したら public な クラスしか作れないとなると
困るだろうなぁ。
>>165
char 型にしてから
Characterクラスのpublic static boolean isLetter(char ch)メソッド
を呼び出してみれば?
>>169
なるほど
172質問です:03/09/19 09:12
JOptionPaneクラスを使って、
テキストフィールドを二つもつダイアログはつくることができるのでしょうか?

ユーザーからIDとPASSを二つをいっぺんに入力してもらえるようにしたいのですが。
173デフォルトの名無しさん:03/09/19 12:29
今日の日にちに1日加算は下記
Calendar dt = Calendar.getInstance();
dt.add( Calendar.DATE,1 );
今日ではなく指定日に日を加算するにはどうするのでしょうか?
174U ◆CZtFsGiu0c :03/09/19 13:04
>>173
Calendar#setで日付を指定してから加算する。
間違えた(´・ω・`)ショボーン

>>170
そうか、やはりその手のやり方しかないんだろうね。
ありがとう。
最近JavaHouseのサイトに繋がらないんですが、
あれってどうなってるんだかどなたか知りませんか?
>>177
え?また?
こないだ繋がったけど・・・?つながるやん!ボケ
179デフォルトの名無しさん:03/09/19 15:52
>>174
レスありがとう。
具体的な例があると助かります。
>>177
> Subject: [JavaHouse-Brewers:52535] Re: ネットワーク工事に伴うサービス休止
>   Date: Thu, 11 Sep 2003 21:00:54 JST
>   From: "TAKAGI, Hiromitsu" <[email protected]>
>    To: [email protected] (JavaHouse Brewers ML)
>
> > ネットワーク工事に伴い、java-house.jp のサービスのすべてを、
> > 本日深夜から、最大で1週間、休止します。
>
> 復旧が遅れ、ご迷惑をおかけしてすみません。
> 先ほどより復旧できたと思います。
>
> しかし、予想外の制約が生じたため、新たなメールのWebへのアーカイブがで
> きない(手作業を伴わないとできない)状態がまだ続いています。これについ
> ては、復旧には少し時間がかかりそうです。
>
>
> 高木 浩光@Java Houseお世話人
>>179
あの説明でわかんないの?
そのままだろ?
創造力無いのですか?
182177:03/09/19 16:12
>>177,180
すみません、わかりました。
トップページは見られるんですが、検索やアーカイブは全然ダメなようですね。
調べたいことがあったんですが、諦めて別を当たります。
>>182
ココで聞きゃあいいじゃん
俺たちは信用できないのか?
>>183 ここで聞く前にgoogleさんに聞いて欲しいなと思うぞ。
185U ◆CZtFsGiu0c :03/09/19 17:18
>>179
APIリファレンス見ましたか? それでもわからないことがあれば説明しますが。
正規表現で質問です。1.4.2betaを使っています。

System.out.println("<あAB>".matches("<([^123]*)>"));
System.out.println("<AB>".matches("<([^123]*)>"));
System.out.println("<あAB>".matches("<([^1-3]*)>"));

1番目だけfalseになります。
これは仕様としてわりきるしかないんでしょうか?
System.out.println("あ".matches("[^123]")); ==> false
System.out.println("あ".matches("[^1-3]")); ==> true

なんでこうなるの?
教えてえらい人。
188デフォルトの名無しさん:03/09/19 20:15
Date型から年、月、日を取りたいんですがどうやるのでしょうか?
>>188
Calendar 使え。
>>188
int year = date.getYear() + 1900;
int month = date.getMonth(); // 0 〜 11
int day = date.getDate(); // 1 〜 31
>>190
古典的な unix の教科書のようだな。
スロットのアプリ作りたいんですが、
初めてゲームを作るもので、
止めたときの役判定がよくわかりません。
どなたかこの質問の意味がわかればおしえてくださいまし。
>>192
ぐるぐる回るやつのデータ構造はどうなっとるのかね?
194142,145:03/09/19 21:54
昨日の夜お答えいただいた方、ソース見つかりました。
以下の3つのファイルを作って実行してみてください。
★test\Test999.java
★test\pa\Test100.java
★test\pa\Test200.java
eclipseだとエラーは出るのですが実行できます。
DOSプロンプトでだとエラーが出てコンパイルできません。
また、new Test200().print();のコメントを外すと
エラーは消えどちらやっても実行できます。
どういうことが考えられますでしょうか。
195142,145:03/09/19 21:54
★test\Test999.java
import pa.*;
class Test999 {
public static void main(String[] args) {
System.out.println("Test999!!");
Test100.main(null);
}
}
★test\pa\Test100.java
package pa;
public class Test100 {
public static void main(String[] args) {
System.out.println("Test100!!");
//new Test200().print();
new Test400().print();
}
}
★test\pa\Test200.java
package pa;
class Test200 {
public void print() {
System.out.println("Test200!!");
new Test400().print();
}
}
class Test400 {
public void print() {
System.out.println("Test400!!");
}
}
java houseってアクセス不能?
197142,145:03/09/19 21:58
書き忘れました。
CLASSPATHは . (ポチのみ)
作業ディレクトリは test ディレクトリです。
198デフォルトの名無しさん:03/09/19 22:55
非矩形のウィンドウか、透過型のウィンドウを作りたいのですが、何か良い方法はないでしょうか。
Robotを使って背景をキャプチャし、それを貼り付けるという方法は良く見られますが、
これだと背景が再描画された時に対応できないので、これ以外で教えてください。
>>198
ものすごいスピードで表示・非表示を繰り返せば半透明にみえるかも
>>199
ドラゴンボールの、悟空 対 クリリンで同じような技が使われてたなぁ。
消える奴だったけど。
>>192
マジメな話全ての止まり方に対して一つ一つ自分で定義していくわけだが。
202デフォルトの名無しさん:03/09/19 23:18
>>194
エラーだけではわからんよ。
漏れの環境では問題なし。(Mac)
java Test999
Test999!!
Test100!!
Test400!!
>>201
んな訳ねーだろ。全ての役は定義しておく必要はあるけど。
204142,145:03/09/19 23:48
>>202
Macではエラー出なかったですか。
俺のWindowsではこんな感じです。
test>javac Test999.java
.\pa\Test100.java:6: シンボルを解決できません。
シンボル: クラス Test400
場所 : pa.Test100 の クラス
new Test400().print();
^
エラー 1 個
205デフォルトの名無しさん:03/09/20 00:02
>>204
初めにTest200.javaをコンパイルして、
Test400.classを作っておかないとダメだよ。
>>184
googleさんに聞いてみたら2chのム板のJava質問スレに聞け!
と盥回しにされました(藁 なんちゃてや
207198:03/09/20 00:23
誰か教えてください。
教えてくれたら、Javaで動く伺かを作ります。
既にあるような。
>>208
あるのか!?
210142,145:03/09/20 00:50
>>205
Javaって芋蔓式にコンパイルするのが当たり前だと思ってた。。。
1ファイルに1クラス(ソースファイル名と同名のクラス)しか書かない
ようにした方いいのかな。
これのこと? 動かしてみたこと無いけど。
ttp://www.din.or.jp/~boya/void/index.html
>>210
使えね〜
package privateができないやん。
>>211
なんだその怪しいサイトは
214142,145:03/09/20 01:00
package privateはできるんじゃない?
>>211
意味がわからん。説明が冗長すぎて何をいってんだか。
>>210
sun の javac では

直接的に必要としてるクラスファイルはコンパイルしてくれるが
間接的に必要としてるクラスファイルはコンパイルしてくれない。

public static final な定数を書き換えても
それを使ってるクラスファイルはコンパイルしてくれない。


eclipse ではそのへんの依存関係を把握して必要なもの全部コンパイルしてくれる。
217デフォルトの名無しさん:03/09/20 02:37
>>216
今の場合だと、
Test999.javaをコンパイル→Test100が必要になる→
pa\Test100.javaをコンパイル→Test400が必要になる→
Test400.classもTest400.javaも見つからんぞゴルァ!
となって、途中で止まる方が自然じゃないの?
と言ってみるテスト。
218デフォルトの名無しさん:03/09/20 09:14
なんていうか忘れたんですけど、
ウィンドウを開いたときに、その新しいウィンドウを閉じないと、親ウィンドウをアクティブにできないウィンドウってありますよね?
保存するときのウィンドウみたいなやつです。
あれをJFrameで設定するにはどうすればいいんですか?
>>218
Dialog?
>>198
Graphics2Dクラス使えないの?
221デフォルトの名無しさん:03/09/20 10:09
>>219
ありがとうございます。Dialogでできました。
モーダルってやつでした。ちなみに、Frame,JFrameでは
モーダルにできないんですかね?
> 186

うちの1.4.2_01環境では再現しない。
betaなのが問題?
>>221
できない。
擬似的にやってやれないことは無いが、してはいけない。
なぜなら、ユーザを混乱させぬよう、
ほとんど全ての OS, アプリケーション (Java 以外も) に、
Frame, Dialog をキチンと区別して使うような暗黙の了解がある。

だからこそ Java の API でもきちんと Frame, Dialog を分けてる。妙なことはするな。
javaからcgiにデータを送ることに関して詳しくのってるとこってないですか?
>224
何を言ってるのかわからない。
Cからcgiにデータを送ったり、VBからcgiにデータを送ったり、
Javaからcgiにデータを送ったりできるのか?

cgiにデータを送るってどういう意味?

> 142, 145

C:\test>javac Test.java pa\*.java
で無問題。再現せず。

>>225
ごめん、アプレットですた。
>>227
相変わらず意味不明。
何がアプレットなのか不明だし、>>224 のどこを "アプレット" で置き換えても意味不明。
>>225

「アプレットがHTTPリクエストを発行できるか」という質問か?
230デフォルトの名無しさん:03/09/20 11:24
内部クラスになっているプログラムのクラス図を書かなくてはいけないんですが、各クラスの関係は一番外側のクラスに対して集約とかコンポジションにしとけば、とりあえず間違いないですよね?
>>229
"cgi にデータを送る" とか言ってる時点で、
CGI の仕組みも分かってない悪寒がするよ
232227:03/09/20 11:35
いや、アプレットからGETメソッドなりでデータを送ってcgiでチャッチして
サーバに保存できるもんなのかなと思いまして。
アプレットだとファイル出力はできないみたいだから。
どうなんですか?
>>232
アプレットからそのアプレットをダウンロードしたサーバに
リクエストを送ることはできる。
サーバ上のファイルを取得するのと同じだから、
送りたいデータをパラメータとして送り先CGIのURLにくっつけてから
オープンすれば、結果的に「CGIにデータを送った」ことになる。

わかりにくい日本語でスマン。
CGIとやり取りはできるだろ
前スレでもやってたじゃん
>>232
そこまで分かってるなら、何故やってみないのだ。
236227:03/09/20 11:47
なんかすいません。
なぜやってみなかったのか自分でもバカです。
逝ってきます・・・
もっとうまい方法があるのかなと思ったんだよね。
237のやさしさに惚れそうだ
239デフォルトの名無しさん:03/09/20 12:57
HttpURLConnectionでOutputStreamを作って、ObjectOutputStream
でラップ→Serialzableなオブジェクトを送信

HttpServletでServletInputStreamを取り出し→ObjectInputStream
でラップ→オブジェクトとして受信

逆方向も可能。

C/S両方Javaプロセスなら、オブジェクトの送受信が簡単にできます。
>>239
そんなこと得意げに書いたって、
ここには既に理解している奴と理解できない奴しかいないって・・・
そんなこと得意げに書いたって、
ここには既に理解している奴と理解できない奴しかいないって・・・

単に今知らなくて、理解できる奴がいると期待したのがマチガイでしたか
(ウエーン
>>225は、もうこれからの時代、プログラマとしてはどこからも必要とされないね。
243デフォルトの名無しさん:03/09/20 17:17
Calendar dt = Calendar.getInstance();
int wday1 = dt.get( dt.DAY_OF_WEEK );
out.println("曜日--->" + wday1 + "<BR>");
dt.set(2003,9,20);
int wday = dt.get( dt.DAY_OF_WEEK );
out.println("曜日--->" + wday1 + "<BR>");

結果
曜日--->7
曜日--->2
なぜ、年月日を設定したら曜日の戻り値がかわるのでしょうか?
244デフォルトの名無しさん:03/09/20 17:18
どなたか教えてくださ愛

メソッドへの参照渡しでDate型(java.util.Date)は渡せないのでしょうか?

メソッド側でreturnの直前で、引数に渡したDateを編集しているのですが
メソッドを抜けると値が変わっていません・・・
String等の配列でテストしてみると、うまくいくのですが、Dateの時がうまくいきません。

JDKは1.3.1_08です。
245デフォルトの名無しさん:03/09/20 17:18
ファイルから読み込んだ文字列を配列に入れたいんですけど
その文字列がいくつあるか不確定な場合、どうやって配列を確保すれば良いんですか?

例えば
String[] data = new Stinrg[1000];
とした場合、文字列が1000以上あった場合入りきらなくなってしまいます。
>>243
どうぞ
System.out.println(Calendar.SEPTEMBER);
>>244
VB か何かから移って来て混乱しているな?
「Date を編集」なんていう物言いもちと怪しい。
どっかで勘違いしてるんだろうからまずソースを貼りなさい。

>>245
Collection のお仲間から、お好きなのを選んで使用しましょう。
ArrayList か Vector がいいでしょう。
配列は使う必要なくなると思うけど、どうしても使いたかったら new String[list.size()]; する。
248デフォルトの名無しさん:03/09/20 17:40
JTableのDefaultDataModelの
rowを全部消してrowを加えるという操作を
スレッドから行うと
途中で再描画のイベントがきてしまい
ArrayIndexOutOfBoundsExceptionが発生しています。
ボタンを押されたら上の操作を行うとすると
大丈夫なのですが。
また、ボタンを押すメソッドdoClickをスレッドから呼んでも
同様の例外が起きてしまいます。
再描画をされないようにする方法は無いでしょうか?
外に方法があれば教えていただけると嬉しいです。

よろしくお願いします。
>>248
syncronizedを使えよ。
250248:03/09/20 17:51
>>249
即レスありがとうございます。

何をロックすればよいのでしょうか?
tableでしょうか?
わたしはデータモデルではないかと思います。
それではやってみます。参考になります。
251244:03/09/20 17:51
>>247
ありがとうございます。
なんかもう訳わからないです。

呼び元:
java.util.Date l_date = new java.util.Date();
boolean bret= cnvPreDt(l_date);


public boolean cnvPreDt(Date ltDate){
 Calendar cal;
(略)
cal = Calendar.getInstance();
cal.setTime(ltDate);
cal.add(Calendar.DATE, i + 1);
ltDate = cal.getTime();
return true;
}

みたいな感じなですが。
うーん。これで今日の半日潰しました。
>>248
「スレッドから」というのが具体的に何をさすのかいまいち分かんないんだけど、
(Java の "動作" は全部 Thread によるものだから)
DataModel の概念を使う以上、
消したいという要求が DataModel に対してなされて、
消されたよという通知が DataModel から GUI その他に対して行われ、
これらの処理は "スレッドセーフ" になるべきなんだけど、
そういう風にプログラミングしてる?

単純な話、Model をいぢくる Thread が 10 も 20 もあって、
構成要素変更の要求がのべつまくなしにきたら、
どっかの時点で描画(だけでなく要素変更そのもの)に破綻をきたすのは分かるよね?

俺の書いたことが一般論として理解できないと、
Java でどうしたらいいのか(回答は >>249 なんだけど)も多分理解できないよ
>>251
まず「参照渡し」という言葉をすっぱり忘れて欲しい。

で。単刀直入に書くと、こういうことだ。

public boolean cnvPreDt(Date 一行目にしか使えない変数){
Date ltDate = 一行目にしか使えない変数;
 Calendar cal;
(略)
cal = Calendar.getInstance();
cal.setTime(ltDate);
cal.add(Calendar.DATE, i + 1);
ltDate = cal.getTime();
return true;
}

つまりローカル変数の参照先を変更したに過ぎない。
この場合は Calendar#getTime() によって新たに生成された Date インスタンスに、
ltDate の参照が向けられた。そんだけ。
254248:03/09/20 18:00
>>252
レスありがとうございます。

「スレッドから」という表現は伝わらなくてだめですね。
データモデルを一定時間おきに更新するスレッドを1個だけ生成するということです。
>>250のようにしましたが、だめでした。
ということは、描画側でsynchronizedで書いていないということですね。
すぐには解決策は浮かびませんが考えてみます。

>>252さんの発言は理解できていると思います。

ありがとうございます。
>>248 Swingコンポーネントをマルチスレッドでいじるつもりなら
SwingUtilities.invokeLaterやSwingUtilities.invokeAndWait
を使おう。
256253:03/09/20 18:10
追記

>>251
オブジェクト指向言語で特に覚えておかなければならないのは、
変数の参照先をかえたいのか、インスタンスの内部情報を変えたいのか、
はっきりと自己の要望を分析すること。

変数 l_date 君は、自分の今見ているものが何であるかを告げる機能しか持たない。
今赤いものを見ている l_date 君に、ある時点以降、誰に聞かれても「青いものを見ています」と告げさせるには、
新たな青いものを用意して、l_date 君の首を回して向けてやるか、l_date 君が見ている赤いものを青く塗ってやるかの二通りしかない。
君のやったことは、ltDate 君に l_date 君が見ている赤いものを見せた上で、
ltDate 君の首を青いものに向けなおしてやったにすぎない。l_date 君は赤いものを見たまんま。
l_date 君にも青いものを見せたかったら、
ltDate.setTime(cal.getTime().getTime()); などとして、ltDate君(l_date君も) が観ているものを青く塗ってやるか、
設計をかえてメソッドの型を Date にして、
l_date = cnvPreDt(l_date) などして、return 青いもの; してやるしかない。

一般的には前者の方がいいだろうけど、
Date や Calendar は性格上、扱いがプリミティブ型に近いから、後者の方を俺は好む。
257デフォルトの名無しさん:03/09/20 18:12
>>246
指定した日の曜日を知りたいのですが
月曜の戻り値は4のみになります。
>>257
意地でも回りくどい教え方をしてあげます。
なぜなら、できるだけ自分で答えを導き出す苦労をしてほしいからです。

dt.set(2003,Calendar.SEPTEMBER,20);

上記を実行してください。
>>257
CalendarのAPIドキュ嫁。
260248:03/09/20 18:27
>>255
ドキュメントを読んで
SwingUtilities.invokeAndWait
でdoClickを呼ぶと
うまくいきました。

ありがとうございました。
swingについて知識が増え、もっと詳しく勉強しようと
思います。

厳しく指導してくださった他のみなさま
深く感謝します。
261デフォルトの名無しさん:03/09/20 18:29
どうしてJavaは、

String abc = "abc"
abc = abc.substring(0, 4);

みたいなコードがエラーになるんですか?
いちいち長さを確かめなきゃならないのはウザいです。
>>261
APIの仕様に文句があるならSunにいえよ(ワラ
>>261
じゃ、もうやめろ。
>>261
Jakarta Commons Lang の StringUtils 使え。

ttp://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/StringUtils.html#substring(java.lang.String, int, int)
265244:03/09/20 18:40
>>253
ありがとうございます。
はっきりとではありませんが、なんとなくわかってきました。
オブジェクト指向をもう一度勉強しなおします。
>>261
プ
>>261
も前はC言語なら
"ABC"[-4] = 0;
とかいうコードを平気で書くのか?
268ひとりごと:03/09/20 22:08
>>261 だけ見ると確かにエラーにしなくてもいいような気もするけど
>>267 を見るとなるほどと思う。

ここら辺のバランスについて考察しているようなサイトは無いものだろうか。
Javaはどうも
「C++から危険なポインタ操作を除いた安全な言語を作りたい」
ってとっから設計されたらしいから
文字列関係のそっけなさもC++譲りなんだろう。
270142,145:03/09/20 23:27
>>216>>217
ありがとうございます。仕組みが理解できました。
必要なクラスがなかった場合、同名のソースが合った場合は芋蔓式にコンパイルしてくれる。
ソースファイルにあるクラスは全部コンパイルされる。
ということですね。
だからnew Test200().print();のコメントを外すとエラーが消えたんですね。
271デフォルトの名無しさん:03/09/20 23:36
入社前研修でJavaを勉強してます。
開発の現場ではJavaは何に使われてますか?
環境によらないで動くって言うのがJavaの利点であると
よく聞きますが、実際にそういう理由で使われてるのでしょうか?
Javaじゃなければならない理由は他に何がありますか?
OOPLの中では習得しやすい方だと考えられていること。
273デフォルトの名無しさん:03/09/20 23:59
>>272
ありがとうございます。
オブジェクト指向が現場ではどういう恩恵をもたらしてるか
まだわかりませんが、Javaがオブジェクト指向である事を意識して
勉強しようと思います。
274デフォルトの名無しさん:03/09/21 02:03
今javaのウィンドウアプリの作成で
チェックボックスを選択させてOKボタンを押したらその選択した内容を
適用させたいと思って試行錯誤しているのですが
ボタンはActionEvent、チェックボックスはItemEventでやっていて
ItemEventで選択した内容をActionEventに持っていくにはどうすればよいのでしょうか?
例としてはチェックボックスに色を割り当て、
選択してOKを押したら背景の色が変わるという感じです
かなり分かりづらいとは思うのですが何かヒントを頂けないでしょうか?
>>274
処理内容は全てchangeColorメソッドに書き込んでおく
ActionEventからchangeColorメソッドをよぶ
ItemuEventからchangeColorメソッドをよぶ
やりたいことはわかるが
>ボタンはActionEvent、チェックボックスはItemEventでやっていて
>ItemEventで選択した内容をActionEventに持っていくにはどうすればよいのでしょうか?
の意味がわからない。

もし listener 使う話を言ってるならそのアプリ自身のフィールドに持たせて受け渡せば済む。
277261:03/09/21 02:30
>>267
Cなら、

char abc[] = "abc", def[10];
strncpy(def, abc, 4);

みたいに書くし、C++なら

std::string abc = "abc";
abc = abc.substr(0, 4);

って書くよ。
どっちもエラーは起こらない。
Javaで類似の操作をすると例外が出る。
実に面倒だ。
>>277 俺の経験上はそのあとに何文字とってきたかチェック
することがおおいね。その後の処理に影響することが多いので。
結局、前にチェックするか後にチェックするか、どちらかは
必須だと思ってる。だからJavaで例外が出るときはチェックを
すり抜けた場合での例外なので、その処理を書くことに抵抗はないな。
母親にケツの拭き方を教えられて、それをありがたいと思うか、ウザイと思うかは人による。
280デフォルトの名無しさん:03/09/21 10:45
つまらない質問ですみません。
コンパイルできないんです!
../classes/Servlet.java
../classes/mypackage/Bean.java
の状態でServlet.javaのコンパイル時にmypackageが存在しないと言われちゃいます。
Bean.javaでpackage宣言はしてるんで、classpathの問題かと>>1のリンク先をみて
いろいろとやったんですがどうしてもだめです。
ほんと助けてください
ちなみにマックOSXです。
頼みます(T T)
携帯Javaの移植について勉強してるんですが、
移植するときってAPI一覧を照らし合わせて同じようなのに書き換えるんですか?
282デフォルトの名無しさん:03/09/21 10:53
>>280
カレントディレクトリを「…/classes/」にしてから、
javacしる。
283280:03/09/21 11:05
>>282さんのおっしゃてるカレントディレクトリって
% pwdで../classesになるってことですよね?
それでしたらいます。
284デフォルトの名無しさん:03/09/21 11:09
>>283
ソース内の、エラーが出る個所をコピペしてちょ。
285ひらがなまおう:03/09/21 11:09
>>281
そうしなきゃならないならそうだし。そうでなくてすむならそうでない。まずじぶんでみてみな。

>>283
がいとうするとこ、ここにはりなさい。
286280:03/09/21 11:15
>>284さんこれです

Controller10.java:8: パッケージ egupackage は存在しません。
import egupackage.Model01;
^
Controller10.java:20: シンボルを解決できません。
シンボル: クラス Model01
場所 : Controller10 の クラス
Model01 model01 = null;
^
Controller10.java:22: シンボルを解決できません。
シンボル: クラス Model01
場所 : Controller10 の クラス
model01 = (Model01)java.beans.Beans.instantiate(
^
エラー 3 個
287280:03/09/21 11:23
間違ってエラー張っちゃいました。ごめんなさい。
全部張ります。
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
import egupackage.Model01;

public class Controller10 extends HttpServlet {
public void doPost( HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {

req.setCharacterEncoding("Shift_JIS");
res.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = res.getWriter();
Model01 model01 = null;
try {
model01 = (Model01)java.beans.Beans.instantiate(
this.getClass().getClassLoader(),
"egupackage.Model01");
model01.setValue01(req.getParameter("value01"));
model01.setValue02(req.getParameter("value02"));
model01.kakezan();
}
catch(Exception e) {
e.printStackTrace();
}
288280:03/09/21 11:24
つづき
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println("計算結果:");
out.println(model01.getKekka());
out.println("</body>");
out.println("</html>");
}
}
>>286
ディレクトリ・ファイル・カレントディレクトリ構成もういっかいキチンと全部書いて
>>280 の例示と違う
290280:03/09/21 11:30
性格には
/Library/Java/tomcat/webapps/tomcat/samples/WEB-INF/classes/Controller10.java
/Library/Java/tomcat/webapps/tomcat/samples/WEB-INF/classes/egupackage/Model01.java
です。
すみませんでした。
291280:03/09/21 11:36
抜けてました。
今いるところは、
/Library/Java/tomcat/webapps/tomcat/samples/WEB-INF/classes/
です。
あせっちゃってヘマばっかでごめんなさい。
292デフォルトの名無しさん:03/09/21 11:48
>>291
Model01.javaの先頭に
package egupackage;
って書いてある?
293280:03/09/21 11:50
>>292
書いてます。
294デフォルトの名無しさん:03/09/21 11:55
クラスパスの問題のような気がしてきた。
javac egupackage/Model01.java
はOKなんだよね?
295デフォルトの名無しさん:03/09/21 11:57
http://up.isp.2ch.net/up/54b8a4d8e252.txt
この様なスプリクトを書いて試しているのですが、
何回やっても一番下に書いた奴しか反映されずに
どこを押しても同じファイルしか開けないのですが、
どうすれば別々のファイルを開けるようにできますか?
296280:03/09/21 11:57
>>294
はい、大丈夫です。
297デフォルトの名無しさん:03/09/21 12:03
クラスパスの問題だと思う。
javac -classpath . Controller10.java
でいいのかなぁ。
298デフォルトの名無しさん:03/09/21 12:18
>>295
Java scriptの話はスレ違い。
299280:03/09/21 12:33
>>297
できました!
ほんとありがとうございます!ほんとうれしいです!
297さん、もしよろしければ教えてほしいのですが、javac -classpath Controller10.javaって
どこを指定してるんでしょうか?質問ばかりで怒られそうですが、setenv CLASSPATHで
いろんなところを指定していたんですがだめだったもんですから。

でも、結果的にできてよかったです。
みなさんほんとありがとうございました。
10時ごろから悪戦苦闘してたのでほんとうれしいです。
ってこれ以上書いているとうざいですね。
ほんとありがとうございました。
300デフォルトの名無しさん:03/09/21 12:40
>>299
> javac -classpath Controller10.java
javac -classpath . Controller10.java
ね。カレントディレクトリ「.」をクラスパスに設定してる。
Mac OS XはUNIXだから、
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/solaris/classpath.html
が参考になるよ。
301デフォルトの名無しさん:03/09/21 12:40
>>258
setする情報が足りないということでしょうか?
中々うまくいきません。。。
302280:03/09/21 12:43
エラーがでなかったので、うれしくて確認もしないで書き込んだんですけど、
classファイルが作られてませんでした。
エラーも出なければController10.classも作られないです。
もうなにがなんだか訳が分からなくなっちゃいました。
泣きたくなっちゃいます、>>297さんごめんなさいでした。
303デフォルトの名無しさん:03/09/21 12:47
>>302
どっかにあると思う。Sherlockで探してみて。
304280:03/09/21 12:52
>>303
なかったです。
305デフォルトの名無しさん:03/09/21 13:01
>>304
javac -classpath . Controller10.java
ちゃんとこう打った?「.」も忘れずに。
-dオプションの話ではないのか
307280:03/09/21 13:17
>>305
はい打ちました。そうしたら今度は違うエラーがでました。
servlet系のパッケージがimportできないっていうんです。
setenv CLASSPATH /Library/Java/tomcat/common/lib/servlet-api.jar/とはしてあるんです。
普通にjavac Controller10.javaとするとegupackageが読めなくて、
305さんのとおりにやると、servlet関連が全部読めないってでるようになりました。
なので、
javac -classpath ./:/Library/Java/tomcat/common/lib/servlet-api.jar Controller10.java
とやってみたらできたんです。
できたんですが、なんか意味がわかりません。
なんだか、setenvと矛盾してます。しかも実行すると404。tomcatリロードしても404。
MACだからなのか?とか思っちゃいます。
>>305さんほんといろいろとありがとうございます。
つかれちゃったので、ご飯食べてきます。
308デフォルトの名無しさん:03/09/21 13:32
>>307
-classpathを使うとCLASSPATHの設定が無視される。
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/solaris/classpath.html
に全部書いてある。
サーブレットのことは全然知らないのでスマソ。
こんなスレもあります。
MacOSX Java総合スレッド
http://pc.2ch.net/test/read.cgi/mac/1047361032/l50
309デフォルトの名無しさん:03/09/21 13:43
>>307
こんなんあった。
Mac OS XでTomcat (Java ServletとJSP)
http://homepage1.nifty.com/glass/tom_neko/web/web_tomcat.html
310280:03/09/21 14:20
>>308
そんなスレあったんですね、読んでみます。
>>309
ここおもしろそうですね。

ご飯食べて、落ち着いてもう一度全部見直しました。
classpath設定も全部削除して、もう一度設定し直しで問題なくなりました。
404の問題も単純にhtmlファイルのaction指定先が間違ってました。
なんかこんなことで、みなさんに迷惑かけちゃってほんとごめんなさい。
それにレスも結構つかっちゃったしでなんか申し訳ないです。
助言してくださったみなさんほんとありがとうございました、それとごめんなさいでした。
すみません。何故か全く分からないので教えてください。
今まで普通にコンパイルできていたのに、突然下記の様になり
コンパイルできなくなりました。
過去にコンパイルできたソースそのままでもコンパイルできません。

Stringにアクセスできません。
クラスファイル .\String.javaは不正です。
ファイルにクラスStringが含まれていません。
削除するか、クラスパスの正しいサブディレクトリににあるかを確認してください。

と出てしまいます。何故でしょうか。
312デフォルトの名無しさん:03/09/21 15:11
>311
エラーメッセージだけでは、わからない。
具体的に何をしたのか書かないと。
>>311
特に何をしたとかはないのです。
Hello Java みたいなのも
>>311になってコンパイルできなくなってしまいました。
314デフォルトの名無しさん:03/09/21 15:40
Hello Java
が出力されるようになった!
次は何をすればよいでしょうか?
315313:03/09/21 15:47
スレ汚しホントにすみません。
1ヶ月、Javaの勉強してきたのですが
突然、何でもない簡単なソースもコンパイルできなくなって困ってます。
俺のソースが駄目駄目でコンパイルできないなら良いのですが
明らかに通るはずのソースも突然駄目になっちゃいました。ウーン・・・
316313:03/09/21 15:53
保存するフォルダを変えてみたら、コンパイルできました!
すみませんでした。
でも、どうして前のフォルダではできなかったんだろ?
317デフォルトの名無しさん:03/09/21 16:29
iniファイルみたいなのってjavaにある?
318デフォルトの名無しさん:03/09/21 16:35
 JTabbedPane Tabbed = new JTabbedPane();
/*中略*/
   for (int i=1 ; i<=5 ; i++) {
   Tabbed.addTab(Integer.toString(i-1),paneladd());
  }
/*中略*/
 JComponent paneladd(){
  JPanel Paneled = new JPanel();
  JTextArea Texted = new JTextArea("文");
  Paneled.add(Texted);
  return Paneled;
 }

雰囲気としてはこんな感じで、
それぞれのタブの中に同じようなコンポーネントを置いているのですが、
この状態から3番目のタブの中にあるTexted(JTextAreaコンポーネント)に
Texted.setText("文その2");のようなことをしたいのですよ。

どうやったらできますかね?
319デフォルトの名無しさん:03/09/21 17:57
>>318
JTextArea[] Texted=new JTextArea[5];
JTabbedPane Tabbed = new JTabbedPane();
/*中略*/
for (int i=1 ; i<=5 ; i++) {
  Tabbed.addTab(Integer.toString(i-1),paneladd(i));
}
/*中略*/
JComponent paneladd(int i){
  JPanel Paneled = new JPanel();
  Texted[i-1]= new JTextArea("文");
  Paneled.add(Texted[i-1]);
  return Paneled;
}

で、Texted[0]〜Texted[4]にsetTextできるんじゃない?
違ってたらスマソ。
∧田上∧
(@≧д≦)<  イタダキマス
 ( つ旦O
 と_)_)

∧田上∧
(@≧◎≦)<   ズズ…
 ( ゙ノ ヾ
 と_)_)

   ∧_, ._∧
  ( ゚ 管゚)   …………
  ( つ旦O
  と_)_)

∧田上∧
(@≧д≦)<   ガシャ
 ( つ O. __
 と_)_) (__()、;.o:。
          ゚*・:.。

      _ _  ξ
    (´   `ヽ、     __
  ⊂,_と(    )⊃  (__()、;.o:。
      V V         ゚*・:.。
322デフォルトの名無しさん:03/09/21 19:45
swingの勉強をしはじめてるのですが、
どこかお勧めのサイトまた書籍などがありましたら
教えてください。
sunのAPIドキュメントも並行して利用しますので、
それ以外のところで。
323318:03/09/21 21:00
やはり事前に考えられるだけの配列を宣言しないと無理ですか....
ありがとうございました。

>>317
java.util.Propertiesでできます。
>>321,323
ありがと
325319:03/09/21 22:12
>>323
他に方法はあるかも知れないよ。
初心者の漏れにはワカンナイ.
>>322
"誰にも分からない"
でもこんななぁ、awt で苦労してれば大して難しくも無い
いくつになるか分からない配列ってできます?
1かもしれないし、1000かもしれない時って
どうするの?
>>327
Vector
329327:03/09/21 22:38
>>328
そういうフリーのツールがあるの?
>>317
> iniファイルみたいなのってjavaにある?
java.util.Properties使うよりも、今はXMLで書く時代ってきがする。

そうでなくても Java Preferences APIというのがJ2SE1.4から使えるようになったらしい。
331274:03/09/21 22:40
>>275-276
こんな簡単なことに気づかないとは…まだまだ勉強不足でした
言葉足らずの質問に答えて頂きありがとうございました
>>329
java.util.Vector
>>328-329
藁多。こういう話の流れ方で昔大笑いしたことがあった。

java.util.Vectorのこと
334327:03/09/21 22:42
>>332
ありがとう
勘違いしてた。。
すごい恥ずかしい・・。
>>328の説明が曖昧なのも悪い。
336328=332:03/09/21 23:18
ガーン。・゚・(ノД`)・゚・。
337デフォルトの名無しさん:03/09/21 23:28
>>327

今から可変配列を覚えるのなら

java.util.ArrayList

のほうがいいと思う。
細かいことだが。。。
Java七不思議の一つだな。なんで今になってもVectorやHashtableを薦める奴が多いのだろうか?
>>337
スレッドセーフじゃなさ杉
ArrayListよりもLinkedListのほうがええて

341327:03/09/21 23:36
混乱
342337:03/09/21 23:44
>>339
どっちにしろスレッドならきちんとして同期処理を書かないと
だめかと。
Vectorに完全なスレッドセーフを期待するのはまずくない?

>>340
へー。
今まで使ったことありませんでした。
勉強になります。
少しAPIを見てみましたが、ほんとに単純な配列を作るためだけには
機能が豪華すぎる気がしましたが。

>>327
すいません。
可変配列にも色々あるよ。
って感じで自分なりに調べてもらえるとありがたいです。
>>339
Collections.synchronziedList(List) を知っているかね?
>>337
>>338

java.util.ArrayList の説明に
> このクラスは、同期化されないことを除いて Vector とほぼ同等です。
と書いてあるのだが…
>>339
Vector, Hashtable は過去との互換性のためだけに存在している。
今は Collection フレームワークで導入されたものが推奨される。
同期化したいときは >>343 みたいに Collections のメソッド使え。
>>338
現状では何を使うのが最善なの?
347337:03/09/22 00:59
>>344

そう。
だから本当に細かい事だけど、
同期化する処理の分だけパフォーマンスがいいので。

同期化したいときは>>343さんの言うとおり。
348346:03/09/22 01:03
Vector
→ List list = Collections.synchronizedList(new ArrayList(...));

Hashtable
→ Map m = Collections.synchronizedMap(new HashMap(...));

これが最善なのか?
349337:03/09/22 01:06
>>346
同期化する必要があるときはそれが最善かと。
必要がなければ
List list = new ArrayList();
Map map = new HashMap();
が最善だと思ってますが。
当たり前だけど 挿入・削除が何度も行われる場合は LinkedList の方がいいよ。
>>350
スタックのような操作(最後尾だけに挿入削除)だった場合に限り、
ArrayListのほうがはるかに性能よいよ。
あと、MapやList自身を同期化するってあまりイミナイと思うよ。
コレクションにアクセスを行うメソッド同士が、トランザクション単位で
同期取ってるようにすべき。
>>351
そういうのは挿入といわず追加という
354338:03/09/22 02:27
>>344 それがVectorを使う理由にはならない。
>>343 >>348 にしても、Vectorと同等なだけで、スレッドセーフではない。

全く >>352 のとおりなんだけど、複数スレッドで共有されるlistに対して、
for (int i = 0; i < list.size(); i++) {
 Object o = list.get(i);
 doSomething(o);
}
というコードはlistがArrayListだろうがVector(=Collections.synchronizedList(list))だろうが
スレッドセーフではない。(ちなみにIterator使っても同じことね。.)
スレッドセーフにしたければ、全体をsyncronazied(list) {..} で囲むか、
Collections.unmodifiableList(list)でlistがどこからも変更されないことを保証する必要がある。

つまり、VectorやHashtableでいう「同期化」というのは、
スレッド間で共有されない場合は全く無駄な処理であり、
スレッド間で共有される場合は全く用を足さない。

これを理解していない人が多いのが
未だにVectorやHashtableが多く使われる原因なんだろうな。
ここ読んだ人は周りにVectorやHashtable使わないように伝えてくれ(笑)
>>354
Vector、HashtableからArrayList、HashMapに推奨が変更になった際に
あわせてsynchronizedを全廃したのって、まさしくそれが理由なんだろね。

即ち、大抵の用途にとって「無駄だから」。
356354:03/09/22 03:31
>>354
>つまり、VectorやHashtableでいう「同期化」というのは、
>スレッド間で共有されない場合は全く無駄な処理であり、
>スレッド間で共有される場合は全く用を足さない。

訂正、「用をなさない」だ(笑)
357デフォルトの名無しさん:03/09/22 04:21
二つ質問があります。

1つめ
このリストを定数として各クラスから参照したいのですが、安全でしょうか?
public static final List l = new AllayList() {{
  add(〜
   …
}};

2つめ
定数にjavadocを付与すると下のように非常に見づらくなってしまいます。
セミコロンの後に//コメントの用に付加できれば見やすくなりそうなのですが
なんとかならないものでしょうか?
public final class Const() {
/**
* アプリケーションで使用する色コード
*/
public static interface color {
  /** 赤 */
  int red=1;
  /** 青 */
  int blue=2;
   …
}
}
358357:03/09/22 04:23
>>357の補遺です
1つめのListは2つめ同様public final classが保持するものとします。
>>357
>>354読んだらわかりそうなもんだけど、安全ではない。

定数として使うなら、
public class A {
 public static final List 定数リスト;
 static {
  ArrayList list = new ArrayList();
  list.add("定数A");
  list.add("定数B");
  定数リスト = Collections.unmodifiableList(list);
 }
}

リストの要素が不変オブジェクトじゃないと完全に安全ではないけどね。StringとかならOK.
定数リストは・・・早く1.5のGenerics使いたいな
>>357
2番目はJavadocを利用するならその通りの書き方しかできない
〜〜;//コメントの方が私も好きです
ただ仕事とかで使ってるのなら
変換するツールを作るなどしてみてはいかがでしょうか?
http://www.dmz.hitachi-sk.co.jp/Java/Tech/javacc/
上記はJavaでかかれているフリーの構文解析ツールです
わたしもこれを使っています
>>355
> synchronizedを全廃した
詳細キボン
>>359
漏れならこうするかな。

public class A {
 public static final List 定数リスト;
 static {
  Hoge[] hoges = {定数A, 定数B};
  定数リスト = Collections.unmodifiableList(Arrays.asList(hoges));
 }
}

ちょっとだけすっきり。
今274氏と同じような背景を設定するアプリを作っているのですが
私の場合はメインウィンドウが別にあり、メイン側の背景を設定するための別ウィンドウ
を作成しています。
ttp://javawakame.at.infoseek.co.jp/BGset.java.txt
お見苦しいソースで恐縮なんですが、注釈にあるように
チェックボックスの表示場所をセンターに持っていく方法と
背景色を選択したとき、そのウィンドウではなく別ウィンドウ(メインの方)の
背景を変える方法が思いつきません…
戻り値をColorにしてColorを返してみたりもしたのですが。。。
どなたかヒントを頂けないでしょうか_| ̄|○
>チェックボックスの表示場所をセンターに持っていく
API だけで実現するなら、fill しない GridBagLayout でできたんじゃなかろうかのう。
GridBagLayout はややこしいし、使いこなしたところで大して役に立たないから、
初心者にはお勧めしたくないけど・・・

>別ウィンドウ(メインの方)の 背景を変える方法が思いつきません…
その別ウィンドウ(Frame しか対象でないならフレームと呼んでおきなさい)の参照を引っ張ってきて
setBackgound すればいいんじゃないの

private Frame target_;
bgc.setTarget(Frame f) {
 target_ = f;
}

OK 押したら
target_.setBackground(cb.getBackground());
何か変なこと書いた

bgc.setTarget(対象となるフレーム);

public void setTarget(Frame f) {
 target_ = f;
}

こうね。
>>359
> 定数リストは・・・早く1.5のGenerics使いたいな
Genericsって何?
G.E.N.E.S.I.S.なら知ってるが
>>366
> > 定数リストは・・・早く1.5のGenerics使いたいな
> Genericsって何?
ttp://www.jcp.org/aboutJava/communityprocess/review/jsr014/

ただ、>>359が言いたかったのはTypesafe Enumのほうかも知れぬ。
ttp://www.jcp.org/aboutJava/communityprocess/jsr/tiger/enum.html
>>367
> ただ、>>359が言いたかったのはTypesafe Enumのほうかも知れぬ。
Typesafe Enum は Joshua の本で読んだな
O_CREAT | O_WRONLY | O_TRUNC
みたいな定数がうまくいかない例は解消されてるの?
>>26-34
昔の話を蒸し返して申し訳ないが
このスレのまとめサイトって需要あるのか?

370366:03/09/22 14:08
>>367
Vector<String> みたいな型が使えるということか
ごめんよ,別のところの記事で読んだよ
そこの英文の記事は "generic type declarations and methods" の件で既に意味不明だったよ
ただ,JVMの下位互換性があるんだね
>>368
それって個々のフラグの寄せ集めであって列挙された要素じゃないような…
>>371
enum { SPADE = 1, CLUB = 2, HEART = 4, DIAMOND = 8 };
const int BLACK = SPADE | CLUB;
card = getCard( CLUB );
373372:03/09/22 14:46
card = getCard( CLUB );

card = getCard( BLACK );
>>372
その場合、SPADE であり、なおかつ CLUB でもあるということはありえないけど、
>>368 みたいな場合は O_CREAT とかを他のフラグを組み合わせて使う。
全てのフラグが常に使えるわけないし、 boolean を幾つも引数にしたくないので
引数型を int にしてるだけで、基本的には enum であらわして良いものでない。
>>374
本質はそこではない

int enum を使えば簡単な「列挙定数の和集合」が
Joshua の本の時点での typesafe enum では難しかった
これが解消されているか,だ

その例として,open システムコールのオプション定数や
黒いスートのカードを取得する例を挙げた
>>375
> その例として,open システムコールのオプション定数や
こっちは、本質的に別々の、読み込み専用、書き出し専用、読み書き両用と
ファイルが無い時にファイルを作成するかのフラグ、
などの個々の列挙を利便性のために一まとめにしてるだけ。
>>375
> 黒いスートのカードを取得する例を挙げた
こっちは 一つの列挙内での集合を問題にしてるのか。

ちなみに、これを open の例に適用すると
open("hoge", O_RDONLY | O_WRONLY);
とかになるけど。
>>375
getCard(CLUB) が既にできるとして、
getCard(Math.random() < 0.5 ? CLUB : SPADE) で代用できそうだね。
>>378
山札の中身が分からないのになぜ CLUB と SPADE が同じ確率になる?
>>379
だったら getCard(List<Suit>) で良いだろ。
>>380
それをいうなら List じゃなくて Set だろ
汎用の Set じゃ使いにくいっていうのが Joshua の本で挙げられた
数少ない typesafe enum の欠点なんだよ
>>381
> 汎用の Set じゃ使いにくいっていうのが Joshua の本で挙げられた
どこが?
typesafe enum とは関係ないがSet が使いにくいと思うこと。

Set が保持する要素のうち、どれでもいいから一個取り出したときに
set.iterator().next() とかやらないといけないこと。
>>382
p112の最終段落(The type safe enum pattern has few disadvantages 〜)から
p113の前半部までだ

typesafe enum は int enum に比べて,集合を表すときに明快さと速さで劣る
これはどうしようもないが,
専用の Set を実装して,その typesafe enum 型しか受け付けないようにして,
内部的にビット配列で実現すれば,ある程度差を埋めることは可能だ

まあ Generics とやらの Set<typesafe enum> を使えば型の不一致は何とかなるだろう
これが Joshua の本の時点からの進歩の1つかもしれないな
>>384
> p113の前半部までだ
悪いが、 Joshua の本ってのを持ってないので。

> typesafe enum は int enum に比べて,集合を表すときに明快さと速さで劣る
int enum は型チェックが無い点と拡張性が著しく制限されている点で劣る、と。

ところで型制限の厳しい enum を持ってて、かつ集合が簡単に表せる言語ってあるんか?
>>386
そう
388357:03/09/22 22:10
>>359.362
ありがとうございます。安全なソースになるよう気をつけます。

>>360
残念…。ツールはまずそのツールが正しく働くか検証しなければならないのが
難点なんですよね。JavaDocを使わないわけにもいかないので多少の見栄えを我慢するしかないようです。
>>386
サンプルでおいてある pdf に該当部分があった。
http://developer.java.sun.com/developer/Books/effectivejava/Chapter5.pdf

該当部分は >>382 が書いてる事と殆ど同じか。
>>389
そんなのあったのか…
Javaにもだいぶ慣れたので、今日の午後は
図書館でC言語の厚めの入門書を読んでみた。
文字列の扱いにキョーガク....ヤッテラレンヨ....
java.lang.String マンセー
392Javaの基礎:03/09/22 23:19
型制約を、面倒くさい厄介事だと思う奴→三流
型制約が、バグの発生を防ぐ便利な道具だと理解している奴→まとも
>>392
なにをいまさら
394デフォルトの名無しさん:03/09/23 02:23
これって間違えていますか?
DocumentListenerの実装部分でエラーがでるのですが、なぜかわかりません。

import省略
class Dr28_2Frame extends JFrame{
public JTextField tf1, tf2;
public Dr28_2Frame(){
setSize(300, 100);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}});
Container c=getContentPane();
c.add(tf1=new JTextField("", 20), "North");
c.add(tf2=new JTextField("", 20), "South");
tf1.getDocument().addDocumentListener(new DocumentListener(){
public void insertUpdate(DocumentEvent e){
tf2.setText(tf1.getText());}
public void removeUpdate(DocumentEvent e){
tf2.setText(tf1.getText());}
public void changeUpdate(DocumentEvent e){}});
}
}
public class Dr28_2{
public static void main(String[] args){
JFrame w=new Dr28_2Frame();
w.show();}
}
395デフォルトの名無しさん:03/09/23 03:33
>>394
×:changeUpdate
○:changedUpdate
>>351
> >>350
> スタックのような操作(最後尾だけに挿入削除)だった場合に限り、
> ArrayListのほうがはるかに性能よいよ。
Stackクラスは高性能と聞いたんだがどうだ?
StackはVectorを継承してるからな〜
398デフォルトの名無しさん:03/09/23 04:45
>395
下らない質問にお答え下さいましてありがとうございました。
今度からはもっと注意して質問いたします。
399デフォルトの名無しさん:03/09/23 07:03
C/C++で
BYTE b=200;
int n=(int)b;
とするとn=200だが、








同じことをJavaのbyteですると
n = - 5 6 に な る

いや、理由は分かったけどさ・・・この相違に気付くまでえらい苦労したな・・・。
Stringがポインタというのに未だに馴染めん。
ウカーリするとstr=="0"とかやってたりしてバグフィクスに手間取る。
>>400
1.「C の char * だって、 == では比較不可能だ」
 ということを、感覚としてつかんでいない。

2. 条件文に文字列リテラルが現れるのは美しくない。
 できるだけ final String 宣言した定数を使うことをお勧めする。
Stringの比較演算については前スレの終盤でかなり議論になったな。
403400:03/09/23 14:49
>>401
char *は俺はポインタだーと全力で叫んでるからまだいいんだが。
いっそのこと基本データ型を一切使わないほうがいいかねぇ。
統一性がとれそうだし。実行効率が著しく悪くなりそうだが。

>条件文に文字列リテラルが現れるのは美しくない
それは確かに。DBのフラグなんか扱ってるとついやっちゃうけど。
40441:03/09/23 16:08
41で質問させてもらったものです、また、質問させてもらいます。

現在JTableで、
A+B=Cという簡単なプログラムを作ろうと思っているのですが

JTableのgetValueAt(int row, int column) を使うと
Object型で返ってきてしまい、計算式に持っていけません。

自分でObjectのAPI見ても、そこからintやdoubleに持っていく方法がわからず
簡単な式を計算させることも出来ません。

JTableに入力した数字をintやdouble型で抜き出すにはどうしたら良いか
または、Object型をint、double型にする方法を
どなたかわかる方、教えてもらえないでしょうか。

視野の狭い質問ですが、ご指導よろしくお願いします。
>>404
・・・・・・例えば、Collection とか使ったことないのか?
JTable なんか触る前に Java の "やり口" を勉強した方がよさそうだな。

どう組んでるのか知らんが、とにかくこうやってみろ
Object obj = getValueAt(r, c);
System.out.println(obj.getClass());

これで例えば Integer とかなんとか表示されたら、
int i = ((Integer)obj).intValue();
これで int にもっていける。Double やなんかだったら頑張ってやり方探せ。
406デフォルトの名無しさん:03/09/23 16:53
CreateNewFile()使ってファイルを作るとき、
ディレクトリを指定する方法はありますか?
407363:03/09/23 17:05
>>364-365
やってみたところコンパイルは通りましたが
色を変えようとするとDOS窓の方でエラーっぽいのが出て
思い通りには行きませんでした_| ̄|○
今試行錯誤中ですが、一歩前進出来た気がします
大変参考になりました ありがとうございます
408デフォルトの名無しさん:03/09/23 18:28
はじめまして。
ダブルクリックはgetClickCountを使えば検出することができるようですが、
キーを二度(というか、複数度)すばやく叩くのを検出する方法はありませんか?
一度目に叩かれてから何秒後に二度目が叩かれたかを計算するとできそうですが、
なんだか泥臭いのでもっとスマートにgetClickCountのような方法を使いたいんです。
よろしくお願いいたします。
>>408
そんな入力方法が、ちまたの OS においてサポートされていない以上、
Java にもそんな API はないと思われ。
keyPressed と keyCode と System.currentTimeMillis でも使っときなさい
410デフォルトの名無しさん:03/09/23 19:21
取得した文字列の前後にスペースがある場合
それを削除して文字列を返すプログラムを考えてるんですが、
やはり文字列を文字に一個一個分解してそれがスペースかどうか
確かめて削除するしか方法ないっすかね?
412408:03/09/23 19:43
>>409
やっぱりうまい方法はないんですね。
keyPressedとkeyCodeとSystem.currentTimeMillisでも使っときます。
413デフォルトの名無しさん:03/09/23 20:48
抽象クラスを勉強してるんですが、
どうも処理の流れのイメージがつかめなくて
こまってます。

今は
抽象クラスを継承したクラスをインスタンス化したら
抽象クラスと継承したクラスをひとまとめにしたようなクラスが
インスタンス化されてんのかなー
みたいな認識でいます。

このような考え方で大丈夫でしょうか。
>>413
>抽象クラスと継承したクラスをひとまとめにしたようなクラス
というより継承したクラスが抽象クラスの特徴をもっている
というほうがオブジェクト指向の正しい考え方です
仮想マシンなどの実装レベルの話しでは
抽象クラスと継承クラスをひとまとめにしたクラスをインスタンス化していますが
Javaプログラムを作成している段階では
抽象クラスの特徴をもっているという考えの方がいいです
415デフォルトの名無しさん:03/09/23 21:13
ネットワークプログラムを書いていて、デッドロックの問題が起きました。
どのようにすれば、デッドロックが避けられるか、ご意見お願いします。

2個のマシンa,bが同じプログラムでデータを送受信します。
デッドロックは次のようにして起きます。
aがデータをロックし、bにデータ送信を依頼
bも同様。
データ送信するときにもロックするため、タイミングによっては
デッドロックが起きてしまいます。

どうしたら、回避できるでしょうか?

よろしくお願いします。
>>415
2フェーズコミットとかは?
417413:03/09/23 21:23
>>414
なるほどー!そういうことだったんですね。
すごくよくわかりました!
どうもありがとうございます!
実装レベルと製造段階での捉え方まで教えていただき
ありがとうございました。
418415:03/09/23 21:28
>>416
レスありがとうございます
2フェーズコミットを知らないので調べてみます。
ちらっと検索した感じでは この例でいえば
送信、受信側が処理できると事前に確認してから
ロックして処理を行うということですね。
ありがとうございます。
419デフォルトの名無しさん:03/09/23 21:32
質問というかアドバイスが欲しいのですが、お願いします。

絵の上に青で半透明をかけたいのですがよい方法はないでしょうか?
今の僕の考えでは1ドットおきに青い点をおくしか想像が付かないのですが、それではプログラムが重くなってしまうので。
いい方法があったら教えてください。
>>415
データ送信の要求前にデータのロックが必要なのは何故?

で,どうしても必要なら根本的な解決法はなさそうだから
タイムアウトするしかないんじゃない?

資源割り当てにおいてデッドロックが発生する条件
1.排他制御を要求
2.ある資源を持った状態で他の資源を持つ
3.資源の横取り不可
4.循環が存在

1.は問題の根本.排他制御が必要なければそれで終わる
2.は最初に聞いた質問と関連する
3.はタイムアウトして資源を解放すれば解決する
4.は双方向通信ならしかたない
>>419
目的の色(青)のRGB値と画像のドットのRGBで平均取ればいいだろ。
アルファチャネルでぐぐれ
423415:03/09/23 22:10
>>420
丁寧なレスありがとうごさいます。

>データ送信の要求前にデータのロックが必要なのは何故?
私の書き方が正確ではなかったかもしれません。
synchronized中でデータを受信をしているのです。
この実装は手抜きすぎました。

これは送受信できることを確認するように実装すれば(2フェーズコミット?)、
解決すると考えます。
全くご指摘の通りで、送信要求の前にロックしなくてもよいです。
これでデッドロックは避けられそうです。


文字の比較について質問です。
一文字ずつ文字を比較していきたいのですが
どの方法が処理が軽いのでしょうか。

1.一文字ずつをsubStringで抜き出してequalsで比較する。
2.あらかじめ比較する文字列をStringの配列にしてequalsで比較する。
3.Characterの配列にしてequalsで比較する。

もっといい処理方法があれば教えてください。
>>419
http://www2u.biglobe.ne.jp/~kaduhiko/java_05.html
こんなの参考にしてみれてはどうでしょう?
>>424
String s="abcde";
char c[] = s.toCharArray()
宿題ですか?がんばってください
427デフォルトの名無しさん:03/09/23 22:49
>>421
是非、詳しいやり方を教えてください。
>>424
toCharArrayでchar配列に変換するか
charAtで1文字ずつ比較
>>426
>>428
ありがとうございます。
プリミティブのchar型は扱った経験が
ないのですが、比較にはどのような
方法で行えばよいのですか?
比較メソッドなどあるのでしょうか。
教えてください。

メインメソッドから引数も型も何も指定しないで
違うメソッドを呼び出すにはどうしたらできるのでしょうか?

また、returnでメインメソッドを返すときString型の値も返す場合
return hoge;
でいいのでしょうか?
for(int i=0; i<c.length; i++){
if(c[i]=='a'){//シングルクオート
System.out.println("equals - " +i);
}
}
>>430
言ってる意味がよく理解できないけど
多分呼び出すメソッドをstaticにすればいいのでは?
>>431
なるほど、比較演算子でよかったのですか。
シングルクオートということも知らなかったです。
ありがとうございました。
>>430
何でもかんでも main メソッド内に書いてないか?

どっちかというと main メソッド内にはコンストラクタだけ書いて
コンストラクタ内で何でもかんでもする方がまだまし。
435430:03/09/24 00:02
>>434
いえ、mainメソッドには一番最初に呼び出すメソッド名と
処理が正常終了したと表示する命令しか書いてません。

public static hoge
{
…処理・・・
return;
}
public static void main(String[] args)
{
hoge;
System.out.println("処理が正常に終了しました。");
}

こんな感じになってます。(結構略しましたが)
多分メソッドの呼び出しが間違ってるのかと。
javaでキーボードの状態を知る方法はあるのでしょうか?
Win32APIで言うと、GetKeyStateのような。
>>435
hoge();
>>436
状態はワカランかも。イベントがオブジェクトとして拾えるだけっぽ。
>>436
多分ない
そうですか。
やっぱり、ゲームとかには向いてないですね
>>440
たったそれだけのことで。。。
>>435
>>437 も書いてるけど hoge() だ。

ただ今後さらに上を目指すなら、よっぽど簡単な処理でない限り
main から static メソッドを呼び出すようにするのはやめた方がいい。
たぶん hoge メソッドに static がついてる意味わかってないでしょ?
443430:03/09/24 00:55
ええと、できなくて困ってたプログラムは無事完成できました。

自分もまだまだ未熟なんで>>442の意味を詳しく知りたいです。
>>440
それはWin32APIを念頭に置いているからそう思うだけで、
イベントドリブンなプログラミングを理解できれば同じことができる…
と思ってちょっといじってみたが、アクションゲームで頻繁に使う
キーの同時押しの判定を一発でできるようなAPIが見つからない。
自前で実装しないといけないのか?
Win32APIは使ったことないが、その辺楽に実装できるのかなぁ
445デフォルトの名無しさん:03/09/24 03:23
>>444
キーの押下状態「変更」の度に「押下状態が変更されたキーの識別用のデータ
を持った」イベントが上がるわけなので、ソレ拾ってStateオブジェクトにでも
保存しとけばええんでねえの。
446質問です:03/09/24 03:27
JScrollPane、JEditorPane、JTextField の大きさを固定することはできないのでしょうか。

public void setMaximumSize(Dimension maximumSize)
public void setPreferredSize(Dimension preferredSize)
public void setSize(int width, int height)

どれも継承メソッドとして利用できそうなのですが、
機能しない(ウィンドウの大きさの変化に伴い大きさが変わってしまう)のです。

これらを格納するパネルやコンテナのレイアウトの仕方などに関係してくるのでしょうか?

447デフォルトの名無しさん:03/09/24 03:35

>これらを格納するパネルやコンテナのレイアウトの仕方などに関係してくるのでしょうか?
そうです。親のレイアウトマネージャと、そのレイアウトのどこに貼るかによって
挙動が変わります。
448446:03/09/24 03:51
>>447
そうなんですが…。

IEの上部のボタン列のようにボタンを並べたいのですが、
不可視コンポーネントを使いたいので、
Box bb = new Box(BoxLayout.X_AXIS);
を利用しています。
bb.add(button1) ;
bb.add(nutton2) ;
bb.add(button3) ;
bb.add(nutton4) ;
bb.add(jScrollPane) ; //
bb.add(Box.createHorizontalGlue());
   ※jScrollPane は JScrollPane

といった具合に配置した場合、JScrollPaneの大きさが変化してしまいます。
bbを格納するコンテナは
Container con = getContentPane() ; // Containerクラス
con.setLayout(new BorderLayout()) ;
con.add(bb, BorderLayout.NORTH);
con.add(mainPanel, BorderLayout.CENTER); //大きなテキストフィールド
con.add(subPanel, BorderLayout.SOUTH); // ボタンのみの配列こちらは問題なし
と設定しています。

この場合、どこが問題なのでしょうか。
449デフォルトの名無しさん:03/09/24 04:00
>>448
Boxじゃなくて、GridLayout貼ったJPanelにするとか。
BoxのなかにJPanel2枚はって、一方をサイズ固定にしてそこに
JScrollPane貼るとか…
コンポーネントはツリー構造のネストがいくらでもできるので、
ちゃんと考えれば必ず方法はある。
あんたの作りたい画面を知らないので、後は自分で考えれ。
450446:03/09/24 04:05
>>449
ありがとうございました。試行錯誤してみます。
45141:03/09/24 06:34
>>404,405で質問し書き込みもらってるのですが
わからないのでまた聞きます。

JTableで、
A+B=Cをセル3つ使って出来ますでしょうか。
>>405さんが示してくれた
System.out.println(obj.getClass());
これをやると、class java.lang.Stringclassとでます。
ここから、数値に持っていくこと出来るのでしょうか。

ただ、↓のものをセルで出来ないかと探しているのですが
http://www.kari.to/upload/source/1946.txt
java、セル計算 でいくら探してもサンプルがみつからず。。
もしや、JTableなんてマイナーなのか?と思ってしまったり、
どなたか助け舟もらえませんか。
>>440
もしかして、メインループを用意して、ループをぶん廻して
関数を呼び出そうとか考えてるんじゃないのか?

だとすると思考パターンが10年くらい遅れてねぇか?
違うなら、良いけど。
453デフォルトの名無しさん:03/09/24 06:55
jakartaのhttpclientをDLしたのですが、
ttp://www.meisei-u.ac.jp/mirror/apache/dist/jakarta/commons/
httpclient/binary/commons-httpclient-2.0-rc1.zip

インストーラがないのですが、ディレクトリはどこにいれればいいのでしょうか。
(環境変数の変数名はどのように設定すればよいのでしょうか)
454453:03/09/24 07:08
すいません、解決しました。
解決したとき 射精くらい気持ちよかったです。
455453:03/09/24 07:13
(´・ω・`)…
>>451
Object obj = ...;//object(String type)
//Object to String
String s = (String)obj;
//String to double
double d = Doiuble.parseDouble(s);
int i = Integer.parseInt(i);
457デフォルトの名無しさん:03/09/24 09:07
へぇ〜
458453:03/09/24 09:29
。・゚・(ノД`)・゚・。
Arrays.sortでソートする場合
ArrayListとLinkedListはどちらが速いですか?
ArrayList
46141:03/09/24 16:07
>>456 ありがとうございます><
やっと、出来ました。
JTableで作る範囲おわりましたので、次はサーバーサイドにチャレンジしてきます。
お世話になりました。
>>453
それは使ったことがないけど
大抵のAPIは適当に解凍して(半角だけのパス推奨)
そこにクラスパスを通せばいけるはず
と泣いていたから中途半端にレスしとく
Javaのトリビア
以下のクラスはj2se 1.3.1以降でコンパイルできる。しかもj2se 1.4.2では
実行もできる(それ以前では実行はできない)
----file 寿司.java-------
package 江戸前;
public class 寿司 {
private String ネタ;
public 寿司(String ネタ){
this.ネタ = ネタ;
System.out.println("ヘイ!" + ネタ + "一丁お待ちぃ!");
}
public void 寿司食いねえ(){
System.out.println("江戸っ子だってねぇ、" + ネタ + "食いねえ。");
}
public static void main(String[] 引数達){
寿司 一人前 = new 寿司(引数達[0]);
一人前.寿司食いねえ();
}
}
-----
実行結果
> javac -d . 寿司.java
> java -classpath . 江戸前.寿司 トロ
ヘイ!トロ一丁お待ちぃ!
江戸っ子だってねぇ、トロ食いねえ。
最近までC勉強してて、これからjavaをやろうと思うんですが
javaではexeファイルは作成できないんでしょうか?
サンプルとか落としてみたんですが*.javaと*.classしか入ってなかった物で…
465デフォルトの名無しさん:03/09/24 21:39
ウィンドウのサイズ変更を禁止したいのですが
買った本に何も説明が有りませんでした(´・ω・`)
どのような命令を使うか教えて頂けないでしょうか
466デフォルトの名無しさん:03/09/24 21:43
>>465
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Frame.html#setResizable(boolean)
使ったことないので、違ってたらスマソ。
Javaチャットというものもあるので、cgiとJavaを使って、
ホストPCを立てずに将棋とか囲碁の対局ソフト作ってみようと思ったんですが、
こういうことは可能なんでしょうか?
TomcatでJNI使をうと思って、やってみたんですけど
java.lang.NoClassDefFoundError
ってエラーがでて、表示できません。
JNI.dlll→JNI.Lclass(wrapper class みたいなもの)→Test.class(Servlet)
なんすけど、TOMCAT側の設定のようなものは必要なんでしょうか?

servlet以外からなら普通にうごきます。
469デフォルトの名無しさん:03/09/24 22:46
JavaでCSVファイルの読み込みを行うプログラムを作っていますが、
CSVファイル内のあるセルで改行(Alt + Enter)を使っていると、
readLine()メソッドを使うときに、一行すべてを読まずに改行のところで
終了してしまいます。
APIでそのようになっているのでしかたないのですが。

csvファイルの中身をNotePadで開いて見てみると、改行しているところで
改行コード(0x0a)が入っています。この改行コードがきても無視するように
しないといけないと思うのですが、なにかいい方法はないでしょうか?


470デフォルトの名無しさん:03/09/24 23:17
>>469
readLine()で読まないのが正しいと思われ。
471デフォルトの名無しさん:03/09/24 23:19
>>468
UnsatisfiedLinkErrorなら、dll見つかりませんエラー。
NoClassDefFoundErrorなら、ラッパークラスのほうが見えてませんよ。
String同士の比較はどうやったらできるんでしょうか?
<=とかじゃコンパイルエラーでます。
compareTo
compareTo("abc", "abc")
475デフォルトの名無しさん:03/09/25 00:01
一回Statement#executQueryでResultSet返してもらって
ResultSet#closeでとじる
このときStatementがNullになっちゃうんですけどどうして?
DBはSQLSERVERです
>>469
それCSVファイルのフォーマットとしては正しいの?
>>474
それは compare
478デフォルトの名無しさん:03/09/25 00:22
>>470
ということは、一文字ずつ読み込んでいくしかないのでしょうか?

>>476
ファイルを保存するときに、ファイルの種類で「CSV(カンマ区切り)」を
選んで保存しているだけです。

>>476
CSVってちゃんとした仕様がある訳じゃないから、正しいか
どうかは、それを処理するプログラムが解釈できるかどうか
って話になると思うが。
>>479
CSVって,だけじゃなくて改行も区切りになるだろ
>>480
理解できないなら無理にレスしなくていいよ

「CSVってちゃんとした仕様がある訳じゃないから...」
482デフォルトの名無しさん:03/09/25 00:35
EXCELが吐き出すCSVフォーマットは、特殊なルールがある。
1.\nが、行末デリミタでないことがある。
2.","が、カラムデリミタでないことがある。

つうか、こんないい加減なフォーマットをインターフェイスにする
の、危険なだけで意味がないからいい加減やめろよ、このカス業務
SEドモが。
483デフォルトの名無しさん:03/09/25 00:38
>>463
ウソコケ。もっと前からコンパイルも実行もできる。
484デフォルトの名無しさん:03/09/25 00:41
画像の上から黒い幕のようなものを掛けたいのですが、どうすればよろしいでしょうか?
例えるならば、サウンドノベルにある文字を見やすくするための黒い幕のような感じです。
485デフォルトの名無しさん:03/09/25 00:41
>>484
AlphaCompositeとか。
>>481
あなたと同じで曖昧なんですね
>>486
・・・
もういい大人なんだから少し指摘されたぐらいでムキなって荒らすなよ・・・
>>487
> もういい大人なんだから少し指摘されたぐらいでムキなって荒らすなよ・・・
で、事実は?
おれもCSVはちゃんとした仕様がないって聞いてたけど。
仕様に近いものはあるが
Excel がそれに沿っていないのが問題だ
>>482
Excel自身はそれを認識するんだよな
保存して読み込んだら表示が違いました,とかだったら間抜けだな
>>489
それで正解。明確に決まっているものは無い。
例えば、>>469が求めてる「Excelが吐き出すCSV」の仕様では値に改行が入ることもある。
ちなみに「Perlメモ CSV」でぐぐれば解析方法も見つかる。
(実際にExcelに読み込ませようとすると、値の中の改行はLFで行区切はCRLFとか更に細かい決まりもあるが)

>>490
その仕様どこにあるの?(煽ってるんじゃなくて純粋に知りたい)
493デフォルトの名無しさん:03/09/25 02:16
あのぉ ごめんなさい。
ついでですので、僕に
CRLFとLFの違いをご教授願えないでしょうか。

494デフォルトの名無しさん:03/09/25 02:30
>>493
CRLF=CR+LF。
流れをぶった切って申し訳ないです。質問です。
あるファイルをバイナリで開いてそれをtxt形式にしようと思っています。

BASICでそのファイルを

open "ファイル" for bininp as #1
for i=1 to 60000
fread #1, BN
BN = BN and &HFFF
A(i) = BN
next i
で、配列Aに入っている値をtxtファイルでほしいのですが、それをjavaで
同様に以下のようにバイナリで開いてtxtに直すと本来ファイルには60000
個のデータ(数)が入っているはずなのにきっかりその倍の120000個のデ
ータがでてきてしまっている状態です。

FileInputStream fileinputstream = new FileInputStream("入力ファイル");
byte bytearray[] = new byte[1000000];
if (fileinputstream.read(bytearray) != 1000000)
{
out.println("Could not get 1000000 bytes");
}

PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("出力ファイル")));
for(int i=0;i<1000000;i++)
pw.println(bytearray[i]);

ファイルのフォーマットはわからないのですがBASICの方ではうまく取り出せてるので
同じ方法でjavaでもとりだしたいと思っています。どなたか教えてください。
>>494
0x0a + 0x0d ってことは…
>>492
仕様というかデフォルトというかそういうものがまったくなかったらこの世の中に
CSV ファイル解析ライブラリの類が存在するわけがない。
>>497
>>490と同じ人?
だからExcelが従うべき標準(のようなもの?)ってのがどんなものか、どこにあるのか知りたいんだけど・・・
Excelがそれに従ってないから批判されるような仕様、っていうのか?

それを挙げないままExcelはカス、って言われてもなんの説得力も無いしCSVがカスとしか言えない。

カンマ「,」区切りの値の列でレコード区切りが改行、ってのは誰でもわかるんだから
それ以上(値にカンマが入ったら?値に改行が入ったら?...etc)がどこかで明確に決まってるのかと。
各アプリケーションやらライブラリ毎の俺仕様なら無数にあるだろうが。
>>495
これだめよ
>PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("出力ファイル")));
>for(int i=0;i<1000000;i++)
>pw.println(bytearray[i]);
492=498です。
繰り返すけど煽ってるんじゃなくてそういうの(CSVの標準仕様)があるのなら切実に知りたい
>>500
dempa://490/脳内/csv.html
CSVってそもそもいつ出来たんだろ。multiplanには既に使えたよね。
Excel自身の仕様としてはこんなの見つけた。セル内改行についても書いてある。
http://support.microsoft.com/default.aspx?scid=kb;ja;405482
で、これ、笑った。
http://support.microsoft.com/default.aspx?scid=kb;ja;400253
503502:03/09/25 09:20
ああ、400253の内容は405482に書いてあるのか。
テキストファイルからデータを読んでスペースの部分でデータを分けて配列に保存したいんですけど
ParlのScriptみたいな都合のいいコマンドってあるんですか?
コマンドはないなぁ
Java にコマンドなんてものは一つも無い
Perl にコマンドなんてあるのも聞いたこと無いし
java.util.regex パッケージとか StringTokenizer クラスとか便利なものはあるけど
違うかもしれないなぁ なんせ話がよく分からないから
>>504
split じゃないのかと
StringTokenizer を利用しる
>>505は融通の利かないアフォ
ちなみにOpenOfficeのCalcはExcelとは違うんだよなぁ
>>467
アプリケーションとして作れば可能。
ホスト立てないならcgiはいらないはず。
510デフォルトの名無しさん:03/09/25 17:48
Javaアプリが高速に動く、専用チップってありますか?
511デフォルトの名無しさん:03/09/25 17:57
うっせばーか
>>510
ケータイやPDAによく使われる
ARM系組み込みCPUにはバイトコードを直接実行できるやつがあるな。
探せばほかにもいろいろあるが
メジャーで売れてるJavaチップってこれくらいじゃないか?
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class e extends Applet {
private int oldx,oldy;
public void init() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
oldx=e.getX();
oldy=e.getY();
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Graphics g=getGraphics();
g.drawLine(oldx,oldy,e.getX (),e.getY ());
oldx=e.getX();
oldy=e.getY();
showStatus("x="+oldx+",y="+oldy);
g.dispose();
}
});
}
}
質問です。上記のそのまんま絵を書くアプレットなんすけど、コンパイルすると、e.classのほかに、e$1.classとe$2.classっていう意味のわからないクラスファイルができちゃいます。
これはどうしてできちゃうんでしょうか?それと名前をe1.classとかにするようにできないのでしょうか?
>>513
無名クラスのクラスファイルで、無名クラスを定義する以上必ずできる。
どうしようもない。
el.classにしたら、e1クラスのクラスファイルと区別できないでしょ。
515デフォルトの名無しさん:03/09/25 23:12

java.util.zip.ZipOutputStreamを使って圧縮ファイルに
日本語のファイル名をエントリするとどうしても化けてしまいます・・・・

無理なんでしょうか?
516デフォルトの名無しさん:03/09/25 23:18
>>515
漏れも興味ある。
↓こんなのあった。
http://homepage2.nifty.com/igat/igapyon/diary/2001/ig011207.html
517デフォルトの名無しさん:03/09/25 23:42
>>512
アリガd。
518デフォルトの名無しさん:03/09/26 00:04
>>515
> 日本語のファイル名をエントリするとどうしても化けてしまいます・・・・
単にファイル名が UTF-8 で出力されてるだけ。
java.util.zip を使う限りパラメータとかで変更する手段は無い。
>>518
ありがとうございました。
ほかの圧縮手段を探して見ます
520デフォルトの名無しさん:03/09/26 00:33
Delphiは
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
バッファオーバーフロー
>>520
( ´,_ゝ`)
522519:03/09/26 01:05

みつからない (-_-)

もう寝る 明日 朝ミーティングでまた文句言われるなぁ

 
523デフォルトの名無しさん:03/09/26 01:30
>>522
化けてるんじゃないってば。ファイル名がUTF-8になってるだけ。

問題があるのは君の使ってる解凍ツールのほう。
そもそもUTFなんか使うのが悪いわけだが。
>>524
UTF-8使うこと自体は悪かねぇ。
ファイル名に日本語使うこと自体がナメきってるとしか言い様がねえ。
>>523
再度ありがとうございます。

それは理解したつもりです。
ファイル名がUTF-8以外で出力されない圧縮方法を探してる
わけだけど、僕 何か勘違いしてますか?(^_^;

ファイル名がどの文字コードで解凍されるかは
100%解凍ツール依存ではないですよね?
基本的にはOS依存。
日本語Windows9xならSJIS
>>526
> ファイル名がどの文字コードで解凍されるかは
> 100%解凍ツール依存ではないですよね
完全に解凍ツール依存。

そもそも米国製の pkzip および zip形式は日本語に関する仕様なぞない。
慣習によって Win では Shift_JIS(っつか、Windows-31J)が使われてるだけ。
その辺は国産の lzh のがマシ。
>>528
> そもそも米国製の pkzip および zip形式は日本語に関する仕様なぞない。

MacのDropZip & Stuffit Expanderのzip対応も、
前バージョンまでWinのZipと日本語ファイル名の互換性がなくて参った。
530495:03/09/26 03:42
>>499
すみませんそうですね、ありがとうございます^^
もう少しいろいろやって考えてみることにします。ありがとうございました。
xml/xsltに関してためになるサイトを教えてください。
532デフォルトの名無しさん:03/09/26 15:15
すいません、わからないのでどなたか教えてください。
CanvasをJScrollPaneに入れて一定の大きさで表示させたいんですが、
何故かCanvasの四角が設定した領域からはみ出してしまってうまくいきません。
どうしたらいいでしょう?
533デフォルトの名無しさん:03/09/26 15:17
534デフォルトの名無しさん:03/09/26 15:20
a
tomcat-connectorsは今どこから入手するの?
ここみてもないみたいなんだが。
ttp://ring.asahi-net.or.jp/archives/net/apache/dist/jakarta/
>>535
下から4つ目にありますが何か?
>>536
そうなんだけど、ディレクトリ内になんもないでしょ?
538MIDIなのですが:03/09/26 23:22
MIDIのプログラムを書いてコンソールアプリケーションで鳴らすと、mainメソッドからリターンしてくれず、プログラムが終了しません。
何が問題なのか調べるため、下のプログラム(Sequencerを取得するだけのもの)を書いたら、コメントアウトしている行を加えると(closeをしているにもかかわらず)プログラムが終了しなくなることが分かりました(このままなら正常に終了します)。
どなたか対処法を教えてください。
sunのチュートリアルはSystem.exit(0)を使ってますが、どうしてexitを使わないと終了できないのでしょうか


public static void main(String args[]){
 File file;
 Sequence sequence;
 Sequencer sequencer;
 try{
  file = new File(args[0]);//長いのでargs.length!=1の処理とかは割愛
  System.out.println("File " + file.toString() + "is available.");
  sequence = MidiSystem.getSequence(file);
  System.out.println("corresponding midi-sequence creation succeeded.");
  
  /*以下の文を加えるととたんに終わらなくなる
  sequencer = MidiSystem.getSequencer();
  System.out.println("sequencer creation succeeded.");
  sequencer.close();
  System.out.println("sequencer closing succeeded.");
  */
 } catch(InvalidMidiDataException imde){
  imde.printStackTrace();
 } catch(IOException ioe){
  ioe.printStackTrace();
 }/* catch(MidiUnavailableException mue){
  mue.printStackTrace();
 }*/
 System.out.println("now end of the main method.");
}
539デフォルトの名無しさん:03/09/27 00:37
アプレットでファイル出力する方法ないですか(´・ω・`)
>>532
Swingとawtを一緒に使っちゃダメです。
541デフォルトの名無しさん:03/09/27 00:46
>>538
イベント監視用のユーザスレッドが、アナタの見えないところで
作成されるから。
542デフォルトの名無しさん:03/09/27 00:47
>>539
Signed Jarにして、セキュリティ制限解除をユーザに
認証してもらいなはれ。
>>542
なるほど、やってみます(`・ω・´)シャキーン
544デフォルトの名無しさん:03/09/27 03:46
インターフェイスってどういうときに使うのでしょうか?
参考書とかも書き方は乗ってるのですが
なぜ必要なのかとはあんま書いていませんが・・・
545_:03/09/27 03:47
546_:03/09/27 03:51
547_:03/09/27 03:56
548_:03/09/27 04:01
549_:03/09/27 04:17
550_:03/09/27 04:17
551_:03/09/27 04:27
552デフォルトの名無しさん:03/09/27 07:37
>>544
使わないように開発すれば使わないですむ。
ただ、インターフェースを利用することで、アプリケーションにプラグインポイントを作成することができる。
またあとでデザインパターンが適用しやすくなる。
上記のようにアプリケーションに拡張性と柔軟性を持たせられるようなるけども、
そうした必要性がない場合は無理に不必要な複雑性を背負い込む必要性はあんましない。
>>544
クラス階層によらない多態が行いたいとき
例えば,BigDecimalクラスとStringクラス
どう考えてもObjectクラスを継承している以外の祖先・子孫のクラス関係はないが
同一のインターフェースComparableを実装している
>>544
多重継承もどきのために使うこともある
例えばスレッドを使いたいとき、
  class Hoge extends Thread
とすれば済むのに
別のクラスを継承しなければならないとき、
  class Hoge extends Foo implements Runnable
とするとか
555MIDIなのですが:03/09/27 11:06
>>541 多謝。調べてみます
>>552-554
どうもです
557デフォルトの名無しさん:03/09/27 16:18
私は1ファイル1クラスでやっているのですが

参考書などでは
一つのクラスファイルに何個もクラスを書いているのが多いみたいですが
どういう違いがあるのでしょうか?
わかりにくくなると思うのですが・・・
>>557
ファイル一個の方が作るの簡単だから。「参考書だから」そういう作りになっているだけ。
気にせず1ファイル1クラスでヨシ
>>557
参考書でそうすることの本義は、
初心者が打ち込んで編集・コンパイルするのに 1つのファイルだけ相手にすれば済むから、
管理しやすかろうな、と執筆者が思ってるのだと思う。
もはや「一応こうすることもできる」と思った方がよかろう。

実際上は、
Test.java に定義した Test.class から「しか」使わないクラスを、
Test.java の中に書けば、管理がしやすいという意味があるぞ。
それはきちんと private な インナーclass を定義するべきだけど。
皆さんはチェック例外を使ってますか?
>>560
使うとか使わないとかいう問題じゃない。
チェック例外とランタイム例外の違いは理解してますか?
使わないとコンパイルできませんが
catch(IOException e){} は例外を使ってるとは思えない。
コンパイルエラーを回避しているだけで。そういうことじゃない?
コンパイル時にtry-catchの記述を強制する例外と思ってます。普段はjava使って
ないんですが間違ってますか?
少々問題のある機能(>>563で述べてる様にコンパイルエラーを回避するために
空の例外処理文を書きかねなく、まずい)らしいので、あった方がいい機能かどう
か聞いてみたんです。
>>564
> 少々問題のある機能(>>563で述べてる様にコンパイルエラーを回避するために
> 空の例外処理文を書きかねなく、まずい)らしいので、あった方がいい機能かどう
> か聞いてみたんです。
それは空の catch 文を書く人間が悪いのであって、
throws やら IOException が悪いのではない。

それは火事の原因になるから酸素いらないとか火を使わないとか、そーゆーレベルの話。
>>564
そんなこといったら while も “まずい機能” だぞ。

while (true) {}

こんなものを書きかねないなんて、いやーとってもまずいね。
つい最近質問したものだけどちょち質問。
無名クラスとは何なのか簡単に教えて欲しいでする。
Yahooで調べてもわけわからん文章並べたサイトしか出ないのでよろしくでする
>>564
そりゃ、ないと困ります。
そもそも意味もなくチェック例外を握りつぶすのは言語道断なので、
それを問題のある機能と捉えるのはおかしいかと。

以前、どこぞのオープンソースライブラリで、内部例外が起こると
とりあえず握りつぶしてfalseを返すようなインターフェイスだらけの
やつ使わざるを得なかったことがあり、非常に困りました。

あとビギナーにありがちなのがランタイム例外とチェック例外を区別せずに
ExceptionやThrowable型でtry〜catchしたりthrowしたりすること。
こういう癖は非常にまずいので早いうちに直した方がいいですね。

キャッチ例外をどう処理したらいいかわからない時はとりあえずネストする
などしてthrowするのが基本。例外を最終的に処理(例えばログに書くとか)
するのは可能な限り最上流で行うよう心がけるべき。
SwingでCanvasを使いたいときはどうすればいいのさ?
>>569
Canvasのソース見ればわかるけど
ほとんどなんの機能もついてないよ

JComponent使えば良し
571デフォルトの名無しさん:03/09/27 23:07
AからBを参照するとはどういうことですか?
>>567
無名クラスは定義名を持たないローカルクラスのこと。
例えば

Thread t = new Thread() {
public void run() {
try {
sleep(10000);
System.out.println("チャオ");
} catch (Exception e) {
}
}
};
t.start();

この例でtはThreadを継承したクラスのインスタンスになるが、その
クラスはクラス名を持たないので無名クラス。

どういうときに使うと便利かは自分で考えてみてくれ。
>>572
なんで t はThreadクラスそのもののインスタンスでなく
それを継承したクラスになれるのですか?
574横槍:03/09/27 23:48
>>573
コンストラクタを ; で閉じる前に {} 書いて、中に自前のメソッド実装を書いているから。
こういうとき、自動的に、Thread そのものではない新たな無名クラスになる。

Thread t = new Anonymous();

class Anonymous extends Thread {
 public void run() {
  //云々
 }
}

この "Anonymous" という名称を省略するときの形と考えるとよい。
>>571
もうちょっと具体的に書いてくれないと困るな。
多分 A が変数で B がインスタンスなんだろうが・・・
両方インスタンスでも条件次第で話は通るし。

変数 : ビデオカメラ。インスタンス : 被写体。
参照する = フレームに収め続けること。録画でも撮影でもなく。
>>575
その例えもおかしくないか?
>>576
じゃぁなんか挙げてくれよ。
感覚で分かっているものを感覚で分からせるような、
巧い例えは俺には思いつかん。
578デフォルトの名無しさん:03/09/28 00:21
MVCのMの部分にPACを適応することが王道ですか?
これから勉強する場合SWTとSwingのどっちがいいですか?
580デフォルトの名無しさん:03/09/28 00:32
eclipseでjbuilderみたいに
コンポーネントをぺたぺた貼り付けて
guiの開発をしたいんですけど、
みなさんは参考にしてるサイトとかありますか?

いろいろ探してみたけど、なかなかみつかりません。
581デフォルトの名無しさん:03/09/28 00:34
>>580
IBMからWSAD買いなさい。
583デフォルトの名無しさん:03/09/28 00:39
大学の授業でjavaを中心に学ぶものがあります。
これからのことを考えて、javaは知っておくべきでしょうか?
授業を受講するほどのものでしょうか?
584デフォルトの名無しさん:03/09/28 00:43
>>568
私の勤務先の会社には、例外をcatchして-1を返すという、甚だ時代錯誤なフ
レームワークがあります。何でもかんでも今自分で分かる範囲でしか作業し
ない馬鹿が設計者やってると、こんなものが出来上がります。

エラーが起きたときに、本当は何が起こっているのか、FWの開発者自身で
さえ直ぐには分かりません。逝ってよし!

585デフォルトの名無しさん:03/09/28 00:44
>>583
ソフトウェア開発を仕事にする、または趣味にするつもりなら。

じゃなければプログラム言語なんて知らなくても生きていけるよ。
いやどっちにしろ大学で習う程度のJavaなんかいらないよ
587デフォルトの名無しさん:03/09/28 00:50
>>577
変な例えする必要ないと思われ。ニアリイコール現実でも充分わかりやすいかと。

インスタンス:「物」。例えば、家。
参照:「物」の場所の記録。家に対して、住所の文字列。

住所さえわかっていれば、いつでも家を見に行けますよね。2人の別の人が、それ
ぞれ同じ家の住所を知っていることもあります。2人のうちの片方の人が、ナニカの
理由で家を増築した場合、もう片方の人が持ってる住所から辿った先の家も、当然
その増築された家になってますわな。
588デフォルトの名無しさん:03/09/28 00:50
すごい簡単な質問ですが、
ある文字列の半角ブランクを削除したいとき、
要するにTrimしたいのですが、Javaだとどう書くのが普通なんでしょうか。
Perl だったら、$str =~ s/\\s//g でさくっとやってしまうのですが。
589デフォルトの名無しさん:03/09/28 00:53
>>588
String#trim() →両端のハンカクブランクを削除した文字列を作成して返す。
String#replaceAll(" ","") →ハンカクブランクを「全削除」した文字列を作成して返す。

お好きなほうで。
590デフォルトの名無しさん:03/09/28 01:04
>>589

わぁ、そのままですねえ。ありがと。
調べがたりなくてすまそ。
591580:03/09/28 01:10
>>581
できるだけお金はかけずにやっていきたいっす・・。
JavaでUIデザイナなんて使うもんじゃない。
>>571
AがBへのポインタを持つということ
>>591 とりあえず、IBMからWSADかWSSDの体験版落として
つかってればぁ。
>>584
言いたいことは分かるが

> 今自分で分かる範囲でしか作業しない
これは仕方ないと思うぞ
自分で分かる範囲以上の作業ができるのは人間じゃない
>>591
eclipse以外も使っていいなら、
netbeansのGUIビルダで作ったクラスを
eclipseにインポートするという面倒な方法もあるぞ。
597デフォルトの名無しさん:03/09/28 02:00
>>595
大切なのは、「その仕事をこなせる人がやる」ようにする
ことだと思います。「出来ないなら出来ないという」勇気
が各社員にあって、ソレを認める度量が会社にあれば、
世のデスマーチの半分は消えてなくなると思うんですがねえ。
>>597
それってリーダやマネージャの仕事だと思うんだけどねえ。
599デフォルトの名無しさん:03/09/28 05:48
WindowsXPでXMLのプログラミングをやろうと思ったのですが、
どうやら文字コードの関係で
文字変換エラー
がおきてしまいます。

どういうツール使ったらいいですかね。
600I'm "600":03/09/28 05:56
>599

文字コード?
それが分かってるなら、文字コード宣言および
エディタのデフォルト保存時の設定を確認すればよいのでは?
どこでどのようなエラーが出るのか言わないとわからん
602デフォルトの名無しさん:03/09/28 16:27
このすれ見てトレビアと思ったこと

Java Preferences API

こんなんあるなんて知らんかった。
レジストリに書いちゃうのがちょっとあれだけど。
XMLの書き出しも簡単にできるみたいだし。
603デフォルトの名無しさん:03/09/28 16:33
Throwable
Runable
これのカタカナ表記おしえてくれ
スローワブル・ランナブル

いや、スロワブルか?
605デフォルトの名無しさん:03/09/28 17:27
ポリモフィズムつかうとどうしてもインターフェースやスーパークラスに
ダミーメソッドができちゃうんですけど、これって邪道?
>>605
いわゆるそれはTemplateMethodと呼ばれるデザインパターンです。
>>606,605
王道じゃん。w。
608デフォルトの名無しさん:03/09/28 19:09
static{
//処理1
}
↑のようなときに、『処理1』の中で例外が発生する可能性のある場合
キャッチせずにスローしたいのですがどうすればいいんですか?

static throw Exception{
}
と、書いてもコンパイルエラーになります
>>608
失敗したら起動しないで死んでほしいってことか?
RuntimeExceptionなら投げれると思うけど、
設計を見直したほうがよさげ。
>設計を見直したほうがよさげ。
言われると思った
611デフォルトの名無しさん:03/09/28 19:21
ファイルとかDBとかソケットは閉じる処理しないで、インスタンス破棄させた場合
勝手に閉じてくれるのでしょうか?
>>611
FileInputStream/FileOutputStreamはfinalize()で閉じてくれる。
DBとソケットは実装依存だと思われ。
>>612
ありがとござんす
>>610
プ
コレ一冊で分かりやすくって
JAVAのことがほとんどある程度分かるぜっ!(中級車程度まで)
っていう素敵な本はないですか?

>>612
嘘吐くな。
メモリに余裕がある限り永遠にクローズされない可能性もある。

勘違いしているやつが多いが
ガベコレは「ヒープメモリのみ」を管理するものであって
ソケットやファイルハンドルやDBコネクション
グラフィックコンテキスト(とそれに付随したGDIリソースなど)
その他もろもろの都合など一切『関知しない』
>>615
あまりにも既出だけどJava言語プログラミングレッスンでいいんじゃね?
>>615
一冊だけがなんとかしようと思わないほうがいい。
どうしても一冊だけでやりたいなら
ネットでな。
どれか一冊なら、これでは。
http://books.yahoo.co.jp/bin/detail?id=30771105
>>616
finalize() で閉じるのは嘘じゃない。
ただし、finalize() は呼ばれないかもしれない。
>>619
それはJava「の」プログラムを書きたい人向け。
Java「で」プログラム書きたい人には あんま意味無いかも。
622615:03/09/28 23:27
>>ありがとうございます

>>617
thx
>>618
そうっすか、、
>>619
難しそうthx
質問です。

eclipse + Tomcat ( + Struts )でアプリを作る勉強をしているんですが、
eclipse (に限らず巷のIDE)はコンパイルを勝手にやってくれるわけですけど、
あえて ant を学習&使用するメリットは何かあるんでしょうか。

雑誌やwebサイトを見ると「antはこんなに便利!」とか書かれてる割に、
「そんなのIDEが勝手にやってくれるんでは?」とも思ってしまいます。
624デフォルトの名無しさん:03/09/28 23:44
DBの検索結果をvectorクラスで拾ってから
jspで受け取り、表示させる方法がわからないので教えてください
625デフォルトの名無しさん:03/09/28 23:47
>>623
自分以外の関係者はEclipseもってない場合もあるわけで。
626625:03/09/28 23:49
>>623
あと、ビルドには複数の手順が必要な時、その複数の手順を
記述したスクリプト一個作っておいて、作業を自動化するって
のは、ミスをなくすための常識的なやり方だと思うけど。
>>624
十万できっちり教えてやる
これはめちゃくちゃ安いぞ ほれ 払え
>>624
拾うクラスってゆうのが表示させるJSPと違うファイルなら
javabeansで調べてごらんさい
JSP上でやるなら普通にやればよいよ
>>628 は社会適応能力の無いクズ
630デフォルトの名無しさん:03/09/29 00:31
>>623
たとえば

javac
webdoclet(ソースのコメントからweb.xml作成)
ejbdoclet(ソースのコメントからejb周りいろいろ作成)
jar化
war化
ear化
deploy

を、ワンクリックでやってくれるのって素敵じゃないか。
631デフォルトの名無しさん:03/09/29 00:39
>>623
どんなときでも必ずEclipseが使えるなら
覚えなくてもいいんじゃない?
antでビルドの単位とその依存関係を明確化するという役割もあるでよ。
633デフォルトの名無しさん:03/09/29 00:50
戻り値のreturnって
メソッドで計算された値を元の場所に戻すと言う意味でしょうか?

逆にreturnがなければ戻さないのでしょうか?
>>623 例えば630の内容をAntスクリプトにしてEclipseに
登録すると、ワンクリックする必要もなく、Eclipseの動作と
一体化できるわけだよ。AntとEclipseは排他的に使うものではない。
Eclipseのプラグイン開発環境なんかいい例だね。Antを上手に
使っている。
えと、質問させていただきます

frameを継承したクラスで画像表示させているのですが、
”CPUをあまり多く使わず”に
それをハードウェア的に拡大することはJAVAで制御できますでしょうか?
例えば、200*200を400*400の画像に拡大表示するといった感じです。

CPUを使って、pixels[w*h]をpixels[2*w*2*h]にコピーすると
実行時に処理が間に合わないのです

ゲームなどでAlt+Enterを押したような結果、またはモニタの解像度を下げるような結果を
を”JAVAで”得たいのですが、どなたか助言お願いします

長文恐れ入ります。
636デフォルトの名無しさん:03/09/29 01:24
>>635
Graphicsを縮小してみるとか。
>>635 最終的になにをやりたいのかわかんないけど、一応、
http://java.sun.com/docs/books/tutorial/extra/fullscreen/
>>636
すいません。。。えと、どういうことでしょうか?
>>637
英語は得意ではないのでよくわかりませんが、それっぽい感じことが書いてあるので
時間かけて読んでみます。どうもです。

何をしたいかというと、画像が小さいので拡大表示したいというのが目的です。
通常ならば、画像を大きくしてそれを表示するばいいだけのことですが、
自分のしたいことは、まず背景を描き、そこに別の画像を色識別して条件にあったものだけを
描くといった処理をしたいわけです。
画像が大きいと、それだけ処理が多くなり、画像表示が間に合わないのです。
間に合わないのは、ミリ秒単位で画像を生成し、再描画するからです
>>635
Graphicsの
> drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
> 指定した矩形の内部に収まるようにスケーリングされた、特定のイメージの利用可能な部分を描きます。

で描画すればハードウェアで拡大処理されるよ。
>639
どもです。やってみます
>>矩形
がちょっと気になりますが
641デフォルトの七資産:03/09/29 02:07
すいません。この書き方であっているでしょうか?
order =new BigDecimal(Integer.parseInt(request.getParameter("order").trim()));

やりたい事は、ブラウザからフォームの入力値をBigDecimal型のorderと言う変数に入れたいのです。
nullで宣言しているせいか、java.lang.NullPointerExceptionが返されます。。
>>639
drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
を使ったら
ハードウェアがCPUのようで、処理が激重になってしまいました。。

さきほど紹介していただいたサイトに書かれているメソッドが、
日本語サイトで解説してあったので、読んで試してみます
>>642
具体的にどういう処理やってるかわかんないけど
とりあえず気をつけるべきポイントを書いておくと
- ImageObserverの役割がわかっていないうちはnullを渡しておくのが無難
- 1コマごとにcreateImage呼ぶようなコードはまずい
- BufferedImageはシステムメモリ上に確保されるのでハードウェアの機能は効かない
ていうところかな。

あと、性能稼ぎたいならまずはきちんとプロファイルをとること。これが基本だと思う。
644デフォルトの名無しさん:03/09/29 06:40
>>641
どこでNullPointerExceptionがでてるのか、その質問じゃワカランが。
文法的には問題ないよ。request.getParameter()の戻り値がnull
なんじゃ?チェックした?
645デフォルトの名無しさん:03/09/29 06:42
>>643
>- BufferedImageはシステムメモリ上に確保されるのでハードウェアの機能は効かない
まあ、主な原因はこれなんだろうね・・・
そのときは、JDK1.4のVolatileImageをつかうか、JDK1.4が
つかえないなら諦めるかだろうね。
646642:03/09/29 07:18
レスありがとうございます

>>643

- 1コマごとにcreateImage呼ぶようなコードはまずい
1コマごとに、配列から画像を生成する際にcreateImageを使うんで
困りましたね・・・

>>645
VolatileImageとBufferStrategyについて今調べてました。
これでもっと高速になることを期待します。

>>637

おかげさまでJAVAで解像度を変えることができ、画像をフルスクリーンで表示でき、
感謝しています
>>633
>戻り値のreturnって
>メソッドで計算された値を元の場所に戻すと言う意味でしょうか?
だいたいあっている。

>逆にreturnがなければ戻さないのでしょうか?

値を戻すかどうかは関数宣言しだいで
return文を書く場所では選択の余地はない。

関数の宣言で戻り値の型がvoid(なし)となっていれば戻せないし
それ以外の型が指定されていれば
その型の値を戻すように書かなければならない。
さもないとコンパイルエラーになる。
648デフォルトの名無しさん:03/09/29 12:11
ぶっちゃけて、Javaを修行するのはどうやったらいい?

ソース写しまくって動かしてみる?
良書を読み漁る?
ワケ分からんが調べまくって自分で書いてみる?

何が初心者には良いですか?
自分は今1をやっています。
>>648
> ワケ分からんが調べまくって自分で書いてみる?
>>642
> 1コマごとに、配列から画像を生成する際にcreateImageを使うんで
MemoryImageSource使ってるんだよね?
MemoryImageSource#newPixels()使いませう

それからSwing使えば自動的に
VolatileImageを使ったダブルバッファリングをやってくれるから楽だよ
JTable のある行を、別の JTable にコピーする実装に挑戦しています。
もともと Win のエクスプローラからファイルを DnD する実装は成功していて、
それは旧来の DropTarget で実現していました。
また、Swing の setDragEnabled や TransferHandler#exportAsDrag の実装で、
自己の JTable 内での並び替えも成功しました。

同じ機構で JTable A から B に送れるかと思ったのですが、
B に持っていくと "不可" のアイコンになってしまいます。
この辺の問題で参考になるようなサイトはありますでしょうか。
652デフォルトの名無しさん:03/09/29 12:48
java-house.jpの消息、どなたかご存じありませんかー?
>>180の情報からもう10日だよ…。
>>652
生きてるってば。
>>653
つながらねー
http://java-house.jp/ml/
>>654
つながるよ。
おたくの DNS がおかしいか、
むこうの DNS の投げた情報の期限設定か何かがおかしいか、
どっちかじゃない。多分。

でも工事後の投稿はないみたいだね
656デフォルトの名無しさん:03/09/29 17:53
質問させて下さい。
まだJAVAを勉強し始めて間もないんですが、
BigIntegerなるものを使って『xのn乗』を計算するプログラムを書くことになりました。
以下のアルゴリズムが与えられています。


入力:底・x、指数・n、法・m
出力:xのn乗 (mod m)

1. p←x、y←1

2. n>0の間繰り返し
  
  (a)nが偶数のとき:
   2a-1. n←n/2
   2a-2. p←pの2乗 (mod m)

(b)nが奇数のとき:
   2b-1.  n←n−1
   2b-2.  y←p×y  (mod m)

3. 繰り返し終了

4. 戻り値としてyを返す

『modPow』とゆうメソッドを使うのではないかというのはわかるんですが、
どんな具合にプログラムを書いたらよいのかわからず悩んでいます。
どなたかわかる方がいらっしゃいましたら教えていただけませんでしょうか・・・。
よろしくお願いします。
>>656
途中までさえ書けないような奴は
むしろ「宿題は俺俺詐欺」のスレできけ
mysqlのtableを作成するメソッドがあったら教えてください。
お願いします。
>>656
y = x.modPow(n, m);

って modPow 使ったらそのアルゴリズム関係なくなると思うのだが…
modPow を自力で実装せよってことじゃないの?
660642:03/09/29 19:04
レスどうもです。。

>>650
swingについて少々調べました。JFrameを使えばいいんですよね?
初めコンパイルできなくて焦りましたが、importしてなかっただけでした。。

継承をFrameからJFrameに変えただけでコンパイルが通りましたが、
心なしか速度が変わったか気がしました。


ところで>>643さんが言っていたプロファイルについて検索したのですが、
残念ながらよくわかりませんでした
”プロファイルをとる”とは結局何をすればよいのでしょうか?
ベンチマークと関係があるのでしょうか。
661デフォルトの名無しさん:03/09/29 19:09
>>659
modPowを使うと言われたので、
modPowを実装するということと同じ意味だと思います。
あつかましいお願いなんですが、どのように書いたらよいのか教えてもらうわけにはいかないでしょうか・・・
お願いします。
>>661
アルゴリズムを理解すれば書ける

n = n_(n-1) * 2^(n-1) + n_(n-2) * 2^(n-2) + ... + n_2 * 2^2 + n_1 * 2 + n_0 (指数を2の累乗の和に分解する)
x ^ (n1+n2) = x^n1 * x^n2 (指数法則)
x^(2n) = { x^n } ^ 2 (指数法則)
x * y mod n = (x mod n) * (y mod n) mod n (modの法則)

高校生なら4つ目の法則を知らないかも
>>661
例えば, 3^18 mod 5 を求める方法を考える

3^18 mod 5
= 3 ^ (2^4 + 2) mod 5 (指数を2の累乗の和に分解)
= 3 ^ (2^4) * 3 ^ 2 mod 5 (指数法則)
= ( 3 ^ (2^4) mod 5 ) * ( 3 ^ 2 mod 5 ) mod 5 (modの法則,計算途中でmodを取ってもよい)

3 ^ (2^4) mod 5
= { 3 ^ (2^3) } ^ 2 mod 5 (指数法則)
= { 3 ^ (2^3) } * { 3 ^ (2^3) } mod 5
= { 3 ^ (2^3) mod 5 } * { 3 ^ (2^3) mod 5 } mod 5 (mod の法則)

3 ^ (2^3) mod 5
= ...

以下,同様にして次数を下げられる
>>642
> ”プロファイルをとる”とは結局何をすればよいのでしょうか?
要するにどの処理に時間を食っているかを調べることでつ。
とりあえず"java -Xprof Hoge"やってみればべろーんと出てくるよ。
GUIで見易く表示してくれるツールとかもあるし
"eclipse profiler"でgoogle引くとか。

ちなみにSwing使うなら自前でダブルバッファリングする必要は無いよ。為念
665デフォルトの名無しさん:03/09/29 22:46
>>658
executeUpdate("create table どーたらこーたら")
>>648
> 何が初心者には良いですか?
独習Javaにあるサンプルプログラムを実際に書いてコンパイルして
動かしてみる。そこにのっている問題もといてみる。

でいいんでない?
667デフォルトの名無しさん:03/09/29 23:09
逆コンパイルを防ぐ曖昧化ソフトで
良いものを教えてください。
変数をリネームするだけでないソフトを
探しています。
商用Javaソフトはどのようにしているのでしょうか?
>>667
これが参考になるよ。

JAVAの逆コンパイルさせないツール
http://pc2.2ch.net/test/read.cgi/tech/1060340560/l50
>>667
DashOがたぶん最強
フリーだとRetroGuardあたりか
プロセス間通信って一般的にどうやるもんなんでつか?
Socket?RMIはちょっと違うんかな。
>>670
SocketでTCP使うのが汎用的だと思われ
672デフォルトの名無しさん:03/09/30 00:17
CVSでバージョン管理できるようになると
ソースコードにJavaDocで@versionタグや@sinceタグを書かなくても
自分しか読まない文にはどうにかなってしまうものですか?

それから、CVSにあわせて@versionや@sinceの数字を
変更することは可能でしょうか?

Eclipseを使っています。
>>672 なんか前にも全く同じ質問の組み合わせ見たなあ。
674デフォルトの名無しさん:03/09/30 00:47
拡張子warファイルを作るにはどうしたら良いのでしょうか?
ある程度ソースができたらtomcatに置いてrestartしたいのですが。
675デフォルトの名無しさん:03/09/30 00:55
今さらだけど、オフィシャルのチュートリアルって、
易しい英語ですごく丁寧に書いてあるね。
http://java.sun.com/docs/books/tutorial/
Class c=int[].class;
なんて書き方ができるなんて初めて知ったよ。
676675:03/09/30 00:56
日本語ヘンだ(w
スマソ.
>>675
代入演算子がそんなに珍しいのか?(w
678667:03/09/30 01:36
>>668
レスありがとうございます。こんなスレあったんですね。読んでみます
>>669
具体的に教えていただき嬉しいです。原理など調べてみます。
>>672
@version $Id$
680匿名:03/09/30 07:04
パッケージ org.apache.xml.serialize は存在しません。
import org.apache.xml.serialize.*;

↑このエラーの原因と解消方法を教えてください。
お願いします

>>680
原因:
 org.apache.xml.serialize が存在しない。

解消方法:
 http://xml.apache.org/xerces2-j/index.html とかで xerces を取ってきてインストール。
 もしくは JDK1.4 以降を使う。
682デフォルトの名無しさん:03/09/30 07:43
printf(*^o^*);
>>673
以前はJavaDocで.をつけることで見出しをつくるということだけを教わり頂きました。
684670:03/09/30 14:11
>>671
どうもです。
やっぱりSocketですよね。
どうしてもSocket使っちゃダメっていう場合は他になにかありますか?
個別のポートを使うって言うのがNGってことで。
685匿名:03/09/30 16:59
>681
一応、
Xerces-J-bin.2.5.0.zip
をインストールしたんだけど、環境設定で上手くいかないの
パスの通し方を教えて
686U ◆CZtFsGiu0c :03/09/30 17:32
>>685
プラットフォームは何か
どうやってコンパイルしているのか

最低これだけの情報は必要。
687匿名:03/09/30 17:53
え〜っと
WinXP使用で
コンパイルは普通にjavacで・・・
JAR全部解凍してカレントディレクトリに突っ込む。
これが漢。
>>688
それ(・∀・)イイ!!
690U ◆CZtFsGiu0c :03/09/30 20:16
>>687
javac -classpath インストール先\xercesImpl.jar;%CLASSPATH% ソースファイル
691Homa:03/09/30 23:04
自分はこのスレッドにお世話になってるんでこのスレッドを保管&形に残す為、HP作りました。
まだ作成途中ですが、こうしたらもっとよくなるっていうのを言ってくれれば光栄です。
次スレまでには完成させて>>1さんにのっけてもらえるよう頑張りたいです。
既出だったら(´・ω・`)ショボーン。
URLは
http://kutipatti.fc2web.com/index.html
です。感想待ってます〜。
>>691
Good Job!
693Homa:03/09/30 23:17
>>692ありがとう!
でも直リンクした事に今気づいた、、、。
スマソ〜
>>691
Javaゲームサイトということになっているらしいので
2ch用のこのJava質問スレについてあれこれ関連付けるなら
ゲームについてのトップページ(または2chJava質問スレテンプレート)は
別のディレクトリに置くなりしたほうがいいと思う。

こういうときは、、他の人がテンプレート集をサイトにして
作っている人がいるかどうかを確認するために念のために上げとこう。
確認できるかどうかはわからないけども今までにそういう話を
持ち出しても作ったという人が今までいないかったみたいなので
私がみたところではあなたのサイトをテンプレートにしてもいいのでは
無いかと思います。
695Homa:03/09/30 23:25
>>694
確かにそうですね。
一応本題はjavaゲームサイトですしね。
わざわざageていただきありがとうございます!
今日はもう遅いんで明日あたり、デイレクトリ別にする作業と掲示板の登録作業をしたいと思います。
意見どうもありがとうございます〜!
>>684
Runtime.exec か Pipe
あまりお勧めはしない
697デフォルトの名無しさん:03/10/01 00:57
>>695
ところでさ、いまのうちにいったほうがいいかもしれないのでいっとくけど


wiki使わないか?
出張から帰ったら俺も作ろう
699デフォルトの名無しさん:03/10/01 01:24
JComboBoxに表示される文字列とは別に
値の持たせたいのですが、どうしたらよいのですか?

表示上の文字列    対応する値

4月               4
5月               5
6月               6

みたいな感じでindexとは別に持ちたいのです。
よろしくお願いします。
700デフォルトの名無しさん:03/10/01 01:35
よく、(クラス名).(メソッド名)
のところを
(クラス名)#(メソッド名)
って書く人いるのはなぜ?

第一、それでコンパイルできるん?
>>700
コンパイルは出来ない
クラスメソッドだと明示するための慣習
702デフォルトの名無しさん:03/10/01 01:54
勉強がてら、javaで
入力されたデータをSQLServerに登録・参照
する画面をつくってみました。
JDBCでDBにアクセスするようにしたのですが、
この場合、不特定多数のマシンで動かす場合は、
すべてのマシンにjdbcドライバをインストールしないといけないのでしょうか?

それともjarのなかにドライバを詰め込むことはできますか?
703U ◆CZtFsGiu0c :03/10/01 02:31
>>700
JavaDocでメソッドのリンクを見れば理由がわかると思います。
>>699
設定する値の型はなんでもよい。
んでフツーに使えばObject#toString()の文字列が表示される
ようになってる。

なので値(例えばint値)と表示文字列を持ち、toString()で
表示文字列を返すようなクラスを定義してやってその
インスタンスをJComboBoxに項目として追加してやればOK。

ついでにObject#equals()やObject#hashCode()等も
オーバーライドしてやると尚良いと思われる。
>>702
JDBCドライバをインストールという意味がわからない。
JDBCドライバはJavaクラスライブラリとして提供されるのだから、
あなたのアプリケーションのリリースイメージはそのJDBCドライバの
jarなりzipなりのファイルを含んだものであるべきでは?
706デフォルトの名無しさん:03/10/01 07:11
>>701
逆。
インスタンスメソッドの標記 FooClass#barMethod()
クラスメソッドの標記 FooClass.barMethod()
>>706
そうだったのか。ただ単にピリオドじゃみづらいだけだからかと思ってた
708デフォルトの名無しさん:03/10/01 09:34
問題] Write a package of Java classes to express the abstract syntax of regular expressions.
という正規表現の抽象構文を表すJavaパッケージを書けみたいな問題があるのですが、
色々調べて見ましたが全くわかりませんでした。
どういった風に書いたらいいのでしょうか?
アドバイスよろしくお願いします。
>>708
言語規定にBNF(?)があるからそれを正規表現に変換すれば良いんでないの?
710デフォルトの名無しさん:03/10/01 11:02
GregorianCalendarの日付を1日戻したいのですが
どういう方法がありますか?

2003月10月1日→2003年9月30日
2004年1月1日→2003年12月31日

よろしくお願いします。
>>710
Calendarのjavadocをよく読む。
712U ◆CZtFsGiu0c :03/10/01 12:12
>>708
これは標準ライブラリの話ですか? ならjava.util.regexかな?
713デフォルトの名無しさん:03/10/01 13:05
>711
よく読んでもわからなかったです。
教えてください。
>>713
お前の人生を一日戻す
PCの時計を一日戻す
時間の基準点を360×24もどす
>>713
cal.add(Calendar.DATE, -1)
716デフォルトの名無しさん:03/10/01 15:55
http://java-house.jp/
につながらねえよ?

以前だれかがつながらねえといってたときは難なくつながってたと思ったんだが。

717716:03/10/01 15:56
んなメッセージでてつながんねえよ?
internal error - server connection terminated
Description: internal error - server connection terminated
718デフォルトの名無しさん:03/10/01 16:19
複数のJavaソースコードをpLaTeXソースコードに
簡単に貼り付けるツールを探しています。
719708:03/10/01 16:24
709さん、712さん。ありがとうございました。
多分標準の話だと思うので、お二人の意見を参考にやってみます。
720Homa:03/10/01 17:06
ちょっと更新アンド質問。
初心者さん用に基礎講座を作りたいのですが、なにぶんこの管理人も基礎の基礎が使えるだけなので、皆さんの知恵を借りて作りたいのですがどうでしょうか?
今、Wikiというhtmlエディタで誰でも更新ができるページをリンクしようという案があったのですが、自分Wikiを使うのは初めてで何もわかりません。
説明読んでもわかりません。
そこで、
・誰かがWikiを使ってページを作りjava研究室とリンクさせる
・掲示板に基礎を書き込み、管理人が編集し、うpする
この二つの方法が有力だと思っています。
初心者掲示板はただいま開発掲示板と化しているのでそちらに案を書き込んでいただけたら光栄です。
ご協力よろしくお願いします〜。

追記:Cや、C++の似たようなページも作り(管理人以外の誰か)、リンクさせるっていう考えがあるんですが、Javaだけでいいでしょうか?
誰かCのほうの掲示板にも行ってるって人で作ってみようって人いませんか?
xrea 辺りに Pukiwiki おけばいいんじゃないかな。

Pukiwiki は PHP 使える場所なら簡単に置けます
設定もパスワードを変更するくらいかな
723デフォルトの名無しさん:03/10/01 17:38
すれ違いだったら申し訳ないんだが・・
Tomcatのserver.xmlでコンテキストの設定をreloadable=trueに
しているのだが再読み込みされないのはなんでなのでしょうか?
724Homa:03/10/01 17:41
設置方法がわからない、、、。
でも便利そうなのでクジケズもう一度挑戦してきます!
多分と3日後ぐらいになりそうだ、、、。
>>720
他の言語も一緒にしてもいいけど
CはC, JavaはJavaで(ディレクトリによる)カテゴリ分けくらいは
したほうがいいと思う。
726Homa:03/10/01 17:57
+>>725
確かにそうですが、自分はCやC++が使えないので、現代を支える言語の2chスレッド保管HP等を他の人(HP作りに長けてる人、またはCやC++が使える人)に作ってもらいそれをリンクしませんかって意味で言ったのですよ。
なんで自分がやらないのかというと、自分はHPタグは一通り使えるけど、3つの言語スレッドを管理するのはちょっと厳しいので他の方にやってもらおうと思いまして、、、。
というわけで誰でもいいので気力のある方募集中です。

Java研究室_________________
ttp://kutipatti.fc2web.com/index.html

>>723
tomcatを最新版にしる。
>>726
http://kutipatti.fc2web.com/2ch/javasi.html
を見たのだけれども
このスレの上のほうを参考にして次スレ作るときの
教えて君的質問防止用の詳細なテンプレートをそこのサイトに
追加してくれるとありがたい。
729Homa:03/10/01 21:31
>>728さんへ
それは、質問前の心得みたいな感じで、まずはYAHOOで検索しろとか、そんな感じなのを作ればいいのでしょうか?
もし、そうならOKですが、内容は自分でまずページを作るので、それから追加項目等のアドバイスをしてください。(728さんに限らず他のかたがたもご協力お願いします)
違う内容でしたら、どのような風に作ればいいのか要望をお聞かせください。

Java研究室_________________
ttp://kutipatti.fc2web.com/index.html

swingやらswtやらが登場して
どんどんクラスが多くなってきてるみたいで勘弁してほしい。
過去に作ったプログラムを書き換えると速くなったりするのは虚しい

javaで書かれた市販のソフトウェアはあるのだろうか???
swingやらswtやらが登場して
どんどんクラスが多くなってきてるみたいで勘弁してほしい。
過去に作ったプログラムを書き換えると速くなったりするのは虚しい

javaで書かれた市販のソフトウェアはあるのだろうか???
こらまたすごいドシロウトが
733デフォルトの名無しさん:03/10/01 22:09
BufferedImage img=new BufferedImage(1,1,BufferedImage.TYPE_INT_RGB);
Graphics grh=new Graphics();

でエラーが表示されてしまうのですがどうしてなんでしょうか?
importはしているしwindowsでは正常に動いたんですが
Linuxに入れたら動かないんです。
おい、お前。そう、お前だよ。
「このスレおもろいから見てみ」「2ちゃんの歴史に残る名スレだぜ」とか言われてホイホイと
このhtml化されたスレを見にきた、お前のことだ。
どうだ?このスレおもしれーだろ。
でもな、お前はこのスレを読むだけで、参加することはできねーんだよ。
可愛そうにな、プププ。
俺は今、ライブでこのスレに参加してる。
すっげー貴重な経験したよ。この先いつまでも自慢できる。
まあ、お前みたいな出遅れ君は、html化されたこのスレを指くわえて眺めてろってこった。
>>729
このスレの
>>1 >>3 >>5-6 >>7-11 >>14

がテンプレート。番号が飛び飛びになっている理由は>>15-33あたり
で少々議論されている。

テンプレートが計10レスになっているのだが
連続投稿規制は5回までらしい。それから、スレを立てると同時に
荒らし行為をする者がたまにいる。
よって、これをうまく5レス以内にまとめたほうがよさそうだ。


君のようなページにリンクを張っておけばテンプレートをかなり縮小できる。このスレのテンプレートを参考に見て欲しい。

【J-SH53】3GPPについて語るスレ【動画】 part 2
http://etc.2ch.net/test/read.cgi/phs/1059059569/l50

こちらのスレはこのように別のページで
過去スレなどをうまくまとめているためテンプレートが5以内と軽く収まっている。

J-SH5xユーザー友の会(仮)
http://members.tripod.co.jp/RinD/
736Homa:03/10/01 22:25
ちょち行き詰まったので皆さんにご報告

現在の問題点
・Java基礎講座を皆で作り上げたいので、そのための作成案
・教えて君を無くそう計画作成案

現在上記の2つの案が出ています。
まず、前者については、Wikiというhtmlを使えばいいと結論が出ました。
そのためにあと3日後ぐらいになると思いますが、皆さんのご協力が必要ですので手を貸していただけたら光栄です。
後者については、Java研開発掲示板にどのような対策を練ればいいのかを書き込んでいただけたら光栄です。
皆さんのご協力お待ちしてます〜。

Java研究室_________________
ttp://kutipatti.fc2web.com/index.html

>>730
オブジェクト指向を理解していればそんなふうには思わなくなると思う。
>>733
Graphicsは抽象クラスだよ。
> Graphics grh=new Graphics();
じゃ、そもそもコンパイル通らないはず。

Graphics grh = img.getGraphics();
かと。

それで、どういうエラーが出てるん?
739Homa:03/10/01 22:26
ミス発見、、、。
htmlを使えばいいと→htmlエディタを使えばいいと
訂正します。
>>736
あ、そうだ、
EclipseのWikiね。
http://w3.cube-web.net/eclipse/
>>739 ついでだけど736は「光栄」の使いどころがちょっと違ってる気がする。
昔はム板Wikiがあったんだけど、なくなったんだよな。
743Homa:03/10/01 22:45
>>741
マジデ!?
国語の勉強してきまつ、、、。
744Homa:03/10/01 22:58
更新情報
とりあえずWikiでページ作成してみたんで書き込んでください。
>>740
これって自動的に削除とかされませんよね?(汗

Java研究室_________________
ttp://kutipatti.fc2web.com/index.html

>>744 おいおい、よそのWikiに乱入するのはまずいだろ。
746Homa:03/10/01 23:09
>>745
登録とかするの!Σ(´□`;)
使い方わからん、、、。
>>744
ttp://w3.cube-web.net/eclipse/index.php?%5B%5BJava%B4%F0%C1%C3%B9%D6%BA%C2%5D%5D
かよ...
なんかwikiを勘違いしてそうだ。wikiってのはhtmlエディタではなく、
だれでも書き換え可能なWebページみたいなもの。大抵、なんらかの
テーマがあって、それに関する情報をみんなで書き込んでいく。
740のリンク先はEclipseについてのWikiだから、勝手にEclipse以外の
話題のページを立ち上げるのは常識として普通やらない。そこのWikiで
Javaの基礎のページが欲しいとかで盛り上がった結果とかなら別だけど。
740もたぶんWikiってのはこんな感じっていう例として紹介したんじゃ
ないかなあ。
748Homa:03/10/01 23:16
>>747
そうだったのかあ、、、。
何か難しい、、、。
誰かWiki使ってページ作ってそれをリンクさせたほうがはやそうだ、、、。
誰か助けてください、、、。
749Homa:03/10/01 23:18
やっとわかりました。
ってか誤認しまくっとった。
>>747さん
ttp://www.wikiroom.com/java/?FrontPage
これでいいんでしょうか?
>>747
>>744が作った?
monalipseのリンク張った?
>>749
なんか突然上書きで削除されそうで怖いから事前にヘルプとか見ておくれ
752Homa:03/10/01 23:20
monalipse!?
なんじゃそりゃあ(;´д`)
ちょちググってきまつ、、、。
Javaそのもののwikiならどこかにありそうなのだが
>>752
Eclipで動く2chブラウザ
755Homa:03/10/01 23:22
monalipse!?
なんじゃそりゃあ(;´д`)
ちょちググってきまつ、、、。
756747:03/10/01 23:24
>>750 俺は744が作ったページには手をつけてないよ。他のページは常連だから
よく書いているけど。

>>749 一つ確認するけど、そのページ、自分でhttp://www.wikiroom.com/
に登録したんだよね? 人様のページのっとってないよね?
なんか「差分」見ると前のコンテンツ残ってんだけど...
757Homa:03/10/01 23:25
調べれば調べる程わからなくなってきました、、、。
monalipsにリンク貼る方法と、メリットを簡単に教えてください、、、。
なんか俺が教えて房みたいだ、、、。
758Homa:03/10/01 23:28
>>756
自分で登録しますた。
______________________________
下記内容で WikiRoom への申し込みを受け付けました。
http://www.wikiroom.com/java/ からご利用ください。
一週間経ってもページが更新されない場合は、登録間違いであった
と判断し、自動的にIDを削除します。ご注意ください。

プライベートでご利用になりたい場合は、
[email protected] まで ID とパスワードをご連絡ください。
基本認証のプロテクトをかけます。

また、特定の人だけが編集できるようにしたい場合は、
許可する人(複数可)の ID と パスワードをペアにして、
[email protected] までメールしてください。

こんな内容が来たんでそっから更新したんすけど、、、

>>758
javaディレクトリ直下なら追記で更新しても問題ないってか?
760Homa:03/10/01 23:39
>>759
駄目だったのか?
いいんじゃねえの?
けど、2chJava質問スレ用に特化したような名前のほうが紛らわしく無いんじゃないかなー
と思った
763Homa:03/10/01 23:44
>>761
そりゃよかった。安心しますた。
>>751
一応見ときますた
なんかあぶなっかしいなあ。wikiroomのほうはありがたく使わせてもらうとして
Eclipseのほうは失礼のないようにしといたら。>>760
Eclipse Wikiの管理人=Wikiroomの管理人みたいだし。
765Homa:03/10/01 23:47
なんとかわかってきた。
自分が犯罪チックな事やってたらズバッと注意してくださいな。
よろしくお願いします。
では、そろそろ就寝します
766Homa:03/10/01 23:48
連続カキコスマソ。
>>762
確かにそうですなあ。
まあ、これで頑張りましょや〜
それではホントにおやすみなさいまし。
なんか「744の母ですが...」コピペしたくなるな。>>EclipseWiki
768デフォルトの名無しさん:03/10/02 00:37
エクセルで作ったCSV形式のデータベースをJAVAで
読み込むにはどういうプログラムを書けばいいか教えてください。
http://ime.nu/www.wikiroom.com/java/ 、立てたやつ
寝ちゃったみたいだから適当にページ作っといた。
テンプレ、だれかよろしく。
>>768
java.io.FileReader、java,io.BufferedReader、java.util.StringTokenizerあたりを調べてみてください。
>>768 ちょっと前にExcelが作るCSVファイルの仕様へのリンクが
あったからそれも見ておくようにね。
Jakarta POIを使えば、曖昧模糊なCSVファイルともおさらばですよ。
>>772 俺、POIはめちゃくちゃメモリ食うから、大きいシート作るときは
CSVにしている。
774733:03/10/02 13:12
>738
遅くなってすいません。
えっと書き間違いでした。
Graphics grh = img.getGraphics();
とやっています。
でエラーの内容は以下のとおりで具体的な原因がわからないのです;;

500 Internal ServerError
message Internal Server Error
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper

(以下省略)
AWTはX Window Systemの機能使ってるんよ。
Xが走ってないなら"-Djava.awt.headless=true"で
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/awt/AWTChanges.html#headless
776U ◆CZtFsGiu0c :03/10/02 18:44
>>774
これってJSPのエラーですよね?
JSPでGUIのコードを実行して、いったい何をしようとしてるんですか?
>>776
動的に JPG ファイルを吐き出して、
HTML から参照させようとしてんじゃないの。別におかしなことではない。
778Homa:03/10/02 19:07
>>all
昨日は色々と手伝っていただきありがとうございます。
Wikiでの作成は>>allに任せますのでよろしくでする。
779U ◆CZtFsGiu0c :03/10/02 19:28
>>777
なるほど、「BufferedImage Linux」で検索するといろいろ出てきますね。
780733:03/10/02 20:46
>>774
えっと、しようとしてることは>>777さんのいうとおりです。

何かわかりますでしょうか?・・・
781733:03/10/02 20:47
すいません >>776さんでした^^;
782777:03/10/02 22:15
>>781
俺も昨日始めたばっかりだからあんまりアドバイスできないんだけど、
500 ちうことはおそらく Exception が出てしまったと思うので、
ほんとに >>777 みたいなことをしたいなら、
・保存しようと思ったが該当するファイルパスが無かった
・J2SE 実行環境が古くて必要な API (ImageIOとか) が無かった
とかで、とにかく getGraphics() とは別のところじゃないの?

Tomcat のログに何か出てないかな?
Linux でどこに出るかは俺は知らないので、調べて、出てなきゃ出すように設定して。
細かいことは WebProg板とか専用のスレで聞いておくれ。
そのときは J2SE, Tomcat のバージョンもちゃんと書くように。
733への答えは775で既出なわけだが。
ちなみに俺も同じ問題にぶち当たったが、その時はJ2SE1.3.1の使用が決まっていたので、
Xvfbを使ってしのいだ。
784デフォルトの名無しさん:03/10/02 22:55
JSPからJavabeans呼ぶときのclass=の所でインターフェイスや抽象クラスって可能ですか?
785Homa:03/10/02 22:57
教えて君を減らす為のページ作ったんだけど、内容があまりにも乏しいから、追記で書き足した方がいい事がありましたら、Java研開発板に書き込んでください。

問題の内容が乏しい「教えて君撲滅計画!のページ」
http://kutipatti.fc2web.com/2ch/osiboku.html

なんかすっごい既出的なネーミングで被ってそうで恐い、、、。

Java研究室_________________
ttp://kutipatti.fc2web.com/index.

786Homa:03/10/02 22:58
マータ直リンしちゃったよ、、、。
スマソ。
>>784
そういうときにはtype属性を指定する。
ググってみたらこんなページが見つかったよ。
ttp://muimi.com/c/scwcd/sec10.html
788デフォルトの名無しさん:03/10/02 23:10
>>784
Class#newInstance()出来ないクラスは無理ちゃうけ。
789デフォルトの名無しさん:03/10/02 23:44
784じゃないけど、気になったから調べてみました


「class="クラス名"」
class で指定したクラスのインスタンスを生成する
「type="タイプ名"」
type で指定したクラスのインスタンスを生成する
「class="クラス名" type="タイプ名"」
type で指定した型としてクラスをロード
「beanName="ビーン名" type="タイプ名"」
type で指定した型として JavaBean をロード


「class="クラス名"」、「class="クラス名" type="タイプ名"」
の使い方はわかるけどあとの二つの

「type="タイプ名"」
「beanName="ビーン名" type="タイプ名"」

使い道がわからん。どういうときに使うの?
790デフォルトの名無しさん:03/10/03 02:25
>>770
助言ありがとうございます
独習JAVAやネット調べてみましたが具体的にどうかけばいいのか分かりません。
なんとなく、使うんだな〜ぐらいしか理解できません。
例えばCSVファイル名がtest.csvだった場合、呼び出すときはどのようなプログラム
になるのでしょ?
CSVファイルを読み込む際、ファイルそのものはどこにおいとけばいいのでしょうか
&CSVファイル全部じゃなく、,,で区切られた一部分だけを呼び出すにはどう書けば
いいのでしょうか
ちなみに今ジェービルダーを使ってプログラムを組んでる最中です
沢山質問して申し訳ないのですが、もしよければ教えてください
791790,768:03/10/03 02:31
ちなみに現在の所一応、CSVファイルはファイルを使いたいプログラムと同じ
フォルダにおいています。
792デフォルトの名無しさん:03/10/03 02:45
>>785のスキルはいかほどよ?
実は>>785も教えて君レベル?
だったらがんがれ。そうじゃなかったらばかにしたようでスマソン
794デフォルトの名無しさん:03/10/03 09:09
eclipseを使ってます。

外部jarをインポートしてコードを組んで
jarファイルをエクスポートしたんですが
このときにインポートしたjarも
一緒にエクスポートしたjarに組み込みたいのですが、
可能でしょうか?


あと、簡易的なアプリを作成して、
jarを開くとアプリが起動するようにしたのですが、
知り合いから「jarを開いてアプリが動くのはおかしい」といわれました。
バッチファイルとかで起動させるべきだというのですが、
そういうものなのでしょうか?
>可能でしょうか?
可能だとしても、するな。他人の jar なら配布要件があるだろうし、
自分の jar なら、そういうよーわーらんことをしないで、
きちんと「こっからここまで」の一つの jar をツールで作れ。
どーーーーしてもしたければここじゃなくて eclipse スレで聞け。

>知り合いから「jarを開いてアプリが動くのはおかしい」といわれました。
>バッチファイルとかで起動させるべきだというのですが、
>そういうものなのでしょうか?
Windows の exproler, Mac の Finder, GNOME の・・・なんていうんだ?
GUI の実装によりけりになるから、それ任せではいけない。
キャラクタベースのアプリケーションならコマンドラインから起ち上げるんだから。
bat はあった方がいい。
bat だけでなくて、マニュアルに必要な jar などはっきり書いておくと、別OS にも親切。

でもマニフェストもそのまま入れておくのがこのましい。
マニフェストファイルが作ってあって、Win で、jar が javaw あたりに関連付けてあれば、
bat 要らずで適切に起動してくれるから便利。
あるインターフェースを実装したクラスは必ずSingletonに、
とやりたいのですが、やろうとするとコンパイラに怒られてしまいます。
方法はないのでしょうか?
ファイルの作成日時 更新日時を取得する方法はないですか?
File〜クラスとかにはそんなのありません(確認した範囲では)

798デフォルトの名無しさん:03/10/03 11:44
Apache のBasic 認証から入力された情報をJSPで取りたい
のですが、ヒントだけでも教えてもらえないでしょうか?
>>797
ファイルの作成日時は Unix とかでは保存されないんで、
取りたければ JNI 使うとか、Runtime#exec() で
ファイルの作成日時を表示するコンソールアプリを実行して
標準出力から取るとかしかないと思われ。

更新日時は File#lastModified() で取れると思うが。
>>795
> >可能でしょうか?
> 可能だとしても、するな。他人の jar なら配布要件があるだろうし、
> 自分の jar なら、そういうよーわーらんことをしないで、
> きちんと「こっからここまで」の一つの jar をツールで作れ。
> どーーーーしてもしたければここじゃなくて eclipse スレで聞け。
そういうことはEclipseでやるよりもantでやったほうが楽そうなのだが
>>796
もっと具体的に。

どんなエラーメッセージがでたのかわからないことには
こちらは質問に答えにくい。
802797:03/10/03 12:20
>>799
どうもありがとうございました。
get〜()とかばっかり見てて気づきませんでした。
803Homa:03/10/03 19:02
>>793
俺のスキルも、実際教えて君LVだ。
だけど、俺の場合は
入門ソフトウェアシリーズ:Java言語
っていう本をちゃんと読んでるから、スレで聞いた回数は3回も無いぐらいだぞいさ。
って自慢にならんか。
信用ならんと思うならオイラが独断でJavaアプレットの講座でも作ってみるがどうかな?
内容は基礎の基礎ばっかだと思うが、、、。

Java研究室_________________
ttp://kutipatti.fc2web.com/index.
質問とかじゃないんだけれど、ちょい愚痴らせて。

何回やってもJ2SE v1.4.2のインストールが8%で止まる。。。
お、俺何か悪いことしたっけなぁ?
あともう少し粘ってみるか……てか、最初からこれかよ!
>>793
スキルで人を判断するなよ・・・
だからプログラマは人づきあいが悪いと言われ
この板はえらそうなやつがおおいとか言われるんだよ
プログラマをスキルで判断しなかったら何で判断するんだか。
スキル以外のものは二の次。
807デフォルトの名無しさん:03/10/04 00:22
最近、
ジャバハウスとHelloWorldのページ入れないことが多い。。。
どうしちゃったんだろう。。。
>>803
サイトが消えているぞ。
809デフォルトの名無しさん:03/10/04 01:15
上でCSV関連の質問がでてますが、
一つのセルの中で、ダブルクォーテーションやカンマが入り混じってる場合で
うまく取り出せる方法ってあるのだろうか?

例えば、セルの中にabc"de,fgっていう文字列があると、
CSVには"abc""de,fg"という感じになると思うのですが、
うまい具合にabc"de,fgという文字列で取り出せないでしょうか?
810デフォルトの名無しさん:03/10/04 01:25
>>809
真面目にパーサを書きましょう。
regexpかJakartaOROで書くのがお手軽。
JavaCCで書くのもありかモナー。
811デフォルトの名無しさん:03/10/04 01:31
FOMAで出るFF・DQはjavaで書かれているのかな?
812デフォルトの名無しさん:03/10/04 01:42
前々からこのページの信憑性が気になるんだけども、
識者の意見キボンヌ。
Microsoft の横暴と陰謀についてお知らせ[ Top ]
http://www.amy.hi-ho.ne.jp/eisoku-h/Info_MSM.html
813デフォルトの名無しさん:03/10/04 01:51
>>812
ブラクラ?
>>812
随分の昔のネタだな。
すでにそのことでSunが裁判を起こしM$から金もらって解決していることだろ
815デフォルトの名無しさん:03/10/04 02:00
『modPow』を自力で実装するプログラムを書いています。
指数が正の数と0についてはうまく機能したのですが、
負の数についてうまく機能しません。
この考え方そのものが間違ってるのでしょうか?
どなたかアドバイスいただけないでしょうか・・・お願いします。

import java.math.BigInteger;
import java.io.*;

public class LoopJijyo4{
public static void main(String[] args){

BigInteger p = new BigInteger(args[0]);
int n = Integer.parseInt(args[1]);
BigInteger m = new BigInteger(args[2]);
BigInteger y = BigInteger.ONE;

if(n > 0){
for(int i = n; i > 0; ){
if(i % 2 == 0){
i = i / 2;
p = p.multiply(p);
p = p.mod(m);
}else{
i = i - 1;
y = p.multiply(y);
y = y.mod(m);
}
}
System.out.println("");
System.out.println("結果:" + y);
816デフォルトの名無しさん:03/10/04 02:00
}else if(n == 0){

BigInteger j = BigInteger.ONE;

System.out.println("");
System.out.println("結果:" + j.mod(m));
}else{
for(int k = n; k != -1; ){
if(k % 2 == 0){
k = k / 2;
p = p.multiply(p);
p = p.mod(m);
}else{
k = k - 1;
y = p.multiply(y);
y = y.mod(m);
}
}
System.out.println("");
System.out.println("結果:" + y.modInverse(m));
}

}
}
>>815
2^(-1) mod 4
なんて存在しないYO!
818デフォルトの名無しさん:03/10/04 02:21
TorqueでMysqlのLAST_INSERT_ID()関数みたいなのが使いたいんですけど、
どーしたらいいでしょう。。
まじわかりません!
>>816
× k= k-1;
○ k= k+1;
820デフォルトの名無しさん:03/10/04 02:24
>>817
スバラシイ
>>819

× k= k+1;
○ k++;

メモリの使い方(ry


822デフォルトの名無しさん:03/10/04 04:20
>>821
略さないでちゃんと言って下さいよ。
変わるもんなんですか?
>>794たん。
おれ、ふだんeclipse使ってないから、勘違いしているかもしれないけど、

MyApplication.jar (自分の作成したいjarファイル。)
├ExUtility.jar (自分以外の外部の誰かが作成したjarファイル。)
├MyApplication.class (ExUtility.jarを利用する自分のプログラム。)
└マニフェストファイル。(クラスパスを設定したりとか起動クラスを指定したりとか。)

もし、上のような三つのファイルから構成されるMyApplication.jarを作りたいということなら、
下のリンク先にも、そういう話題があるけれど、そこでの結論としては、
取り込んだjarファイルにクラスパスを通すことは、
できないのではなかろうかということみたい。

Jar ファイル内にクラスライブラリを置く方法についてのQ
http://java-house.jp/ml/archive/j-h-b/045862.html#body
// あいかわらずjava house、つながったり、つながらなかったりだけど。

取り込むExUtility.jarファイルに対してクラスパスを設定することができなければ、
MyApplicationクラスから、ExUtility.jarのなかにあるクラスを利用できないわけで、
利用できないjarファイルなら取り込んでも仕方がない。
だからここは、いったん外部のjarファイルをばらしてから、あらためて一つのjarファイルにまとめるなど、
別の手段をとったほうがよさそう。

// もしかしたらjarファイルの中のjarファイルに対して、
// クラスパスを設定する方法があるのかもしれないけど。
// 私もちょうど先月、jxtaを一つのjarファイルにまとめようとして挫折。
// なにか方法はないのかな。あれば、誰か補足きぼんぬ。
別の手段としては、以下のように、
取り込む外部のjarファイルをいったんclassファイルにばらしてから、
ひとつのjarファイルにまとめてしまうか、

MyApplication.jar
├ExUtility1.class
├ExUtility2.class
├MyApplication.class
└マニフェストファイル。

でなければ配布するファイルは増えるけど、
MyApplication.jarとExutility.jarの二つのファイルに、わけてしまうか。

ExUtility.jar
MyApplication.jar
├MyApplication.class
└マニフェストファイル。
// もしMyApplication.jarを実行可能なJarファイルにしたいのなら、
// マニフェストファイルで、ExUtility.jarファイルへのクラスパスを設定。
あと実行可能なJarファイルというのは便利なものだとおもう。
Windowsや、Solarisや、最近ではMacOSXでも、マウスで簡単に起動できるそうだし。
コマンドラインからでも、java -jar <実行可能Jarファイル名> と入力するだけで、
やっかいなクラスパスの指定をしなくても起動できるし。
// もちろんそれはマニフェストで必要なクラスパスを記述してあるからだけど。

GnomeのNutilusなどにおいても、ちょっと設定をすれば、
つまり、拡張子jarのファイルはjava -jarのコマンドで処理するように設定すれば、
WindowsやMacOSXとおなじように、マウス一つで実効できるようになるわけだから、
きっと、SunのJava Desktop Systemとかでも、最初から設定されてそう。

実行可能 Jar ファイル
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jar/jarGuide.html
Java アプリケーションの起動
http://developer.apple.com/ja/technotes/tn2042.html#Section2_6
1.jar ファイル内のリソースは jar://〜 の形式で URL として扱える。
2.manifest ファイルの Class-Path エントリでクラスパスを設定できる。

試してみたわけではないが manifest ファイルの Class-Path エントリに
jar://ExUtility.jar と書けばうまくいったりしないだろうか?
827826:03/10/04 12:29
いろいろ試してみたがめんどくさいことしなくても
外部の ExUtility.jar を自分の jar に固めて参照するためには
単に manifest ファイルの Class-Path エントリに ExUtility.jar と書くだけでよいようだ。
828デフォルトの名無しさん:03/10/04 13:03
命名規則のことなんですけど、変数の先頭が_(アンダーバー)って
一般的になににつけるものなんでしょう?
もしかして>>824の2番目の例のように、ExUtility.jarファイルが、
クラスパスで参照できるどこかのディレクトリに残ってない?
もし残っていればExUtility.jarファイルを削除してしまうと、実効できなくなるとおもうから。

ちょっとまっててね、必要なソースファイル一式と、antのビルドファイル作ってアップする。
http://javawebstart.minidns.net/MyApplication.zip

antがインストールされていれば、
makeExLib で、仮想的な外部のライブラリをExUtility.jarファイル作成し、
compile で、MyApplication.javaをコンパイルして、
dist で、外部のライブラリと、MyApplication.classを一つの実行可能なJarファイルに固めて、
そして run で、その実行可能Jarファイルを実行。

おそらく、makeExLibでbuild/ディレクトリに作成されたExUtility.jarファイルを、
dist/lib/ディレクトリなどに配置しておかないと、

 java.lang.NoClassDefFoundError: ExUtility1

のエラーが表示されるとおもう。
>>828
インスタンス変数。
832デフォルトの名無しさん:03/10/04 16:40
>>828
さんくす^^
833デフォルトの名無しさん:03/10/04 16:50
すみません。教えてください。
jsdk2.1が動きません。jdkのバージョンと合わないからだと思うのですが(j2sdk1.4.2)…

834826:03/10/04 17:31
>>830
うむ。失敗。
やはり自分でクラスローダを書いて Jar からクラスを読み出すしかないのだろうか。
835デフォルトの名無しさん:03/10/04 17:59
Javaチャットの応用で将棋とか囲碁とかオセロとかつくることは可能ですか?
836デフォルトの名無しさん:03/10/04 18:15
>>835
こういうの?
Yahoo!ゲーム
http://games.yahoo.co.jp/
instanceof って演算子だろうになぜ !instanceof とできないのだろう。
>>837
! <
839デフォルトの名無しさん:03/10/04 20:02
あるメソッドの戻り値をインターフェースで定義しても
戻り値はちゃんと取得できないってことありますか?
例外を投げる場合は戻り値は帰ってこないわな
841デフォルトの名無しさん:03/10/04 21:20
プログラムというものを勉強しはじめて間もありません。
初歩的な質問で申し訳ありませんが、以下についてどうかご教授ください。

「オーバーロード」とは
「スーパークラス内のメソッドを、サブクラスで再定義する」ことをいう。
との認識ですが、ここまでは正しいでしょうか?

これが正しい時、上記の利点って何なんでしょうか?
サブクラス内で再定義してしまうと、スーパークラス内で定義したメソッドは、無意味ではないのですか?
(例えば、パッケージクラスを継承したが、スーパークラス内の当該メソッドを使用しない場合。など)

再定義などしないで、自分が自由に命名した新規メソッドを作成すればよいように思えて仕方ないのですが。。。

うまく文章にできているか ものすごく不安ですが。。。
842835:03/10/04 21:35
yahooのなんかはホストのサーバー立てなくても
チャットのように気軽にできるといいんですが・・・
>>841
> 「オーバーロード」とは
> 「スーパークラス内のメソッドを、サブクラスで再定義する」ことをいう。
> との認識ですが、ここまでは正しいでしょうか?

いいえ。
844デフォルトの名無しさん:03/10/04 22:03
InputStream in = new FileInputStream("a.txt");
Map map = new HashMap();
map.put("param1",in);



Object param1 = (Object) map.get("param1");

Object[] params = { param1 };

//↓だと実行時にNo such method exceptionになる
Class[] types = { param1.getClass()};

Constructor constructor = classOfFormProvicer.getConstructor(types);

//実行時にNo such method exceptionになる
Class[] types = { param1.getClass()};

Constructor constructor = classOfFormProvicer.getConstructor(types);
SomeClass someClass = (SomeClass) constructor.newInstance(params);

SomeClassのコンストラクタの引数はInputStreamです。
インスタンスからgetClassしてInputStream(クラス)を
得ることはできますか?
845841:03/10/04 22:11
オーバーライドと間違えました。
読み替えてご回答いただけませんか?
>>844
param1 の実際の型は FileInputStream であって InputStream ではない。
なのでそのままでは正しいコンストラクタを取得することができない。
>>845
多態とか動的束縛(動的結合)で調べてみ?
そのためにスーパークラスとサブクラスは並行開発することが多いよ
848843:03/10/04 22:40
ありがとうございます。
複数のスレに同じ質問を投げたがために、先ほど注意を受けました。
今後気をつけます。すみません。

多態、動的束縛、今から見てみます。
オーバーライドがなかったら、アプレット作れんやん。
850デフォルトの名無しさん:03/10/05 00:11
オーバーライドなかったら、サーブレットもEJBも作れない。

851デフォルトの名無しさん:03/10/05 00:15
オーバーライドがなかったらフレームワークなんてあり得ない
java で書かれたDBMSを探しています
なにか良いものは無いでしょうか?
hsqldb
854842:03/10/05 17:06
わざわざ自分のPCをホストにすることなく
無料サーバーでもjavaチャットのような感じで設置できる将棋や囲碁のゲームがほしいんですが、
こういうものは作ることは可能なんでしょうか?
>>854

ものすごくリアルタイム性に欠けるか、
さもなくば、ものすごくサーバに負荷をかけてしまうプログラムになるだろうな。

無料サーバ=Perlか、せいぜいPHPのCGIを置くことしか許されていないサーバ。
という意味ならね。

無料サーバで、Javaのプログラムを置かせてくれて、動かしてくれて、
しかもそのプログラムがServerSocketを使っても良い(ポート番号を貸してくれる)
ってのがあるなら、可能だけど。

クライアント/サーバ型のシステムのうち、サーバ側を何で動かすか、っていう問題でしょ。
856デフォルトの名無しさん:03/10/05 17:54
accessでつくったファイルに
jdbc:odbcでなはく
jdbcのみでアクセスすることは可能でしょうか
>>855
最初の対戦相手探しだけ、サーバに任せて
あとはP2Pでやれば問題ない

つまり相手探しの部分だけサーバに任せればいいので
Perlしか使えないほとんどのサーバでもOKとなる
しかも大げさにP2Pなんて書いたが
実際はサーバント作ればいいだけの話だ
858デフォルトの名無しさん:03/10/05 18:57
appletを使ってタイピングソフトを作ることにしました。
>>854
だれのそのゲームをやってもらうんだ?
そういうゲーム作りたいなら。
自前でLinuxサーバでお構築したほう楽なんじゃないのか?
初めてJavaのソースをダウンロードしてみた。
いやぁ、すごい!SUNに惚れなおしますた。
c:\myjava>javac myjava.java
エラー: myjava.javaを読み込めません。
エラー1個

となるのですがどうしたらいいですか?
>>862
cドライブのmyjavaフォルダの中にmyjava.javaファイルを入れてください
>>863
入ってると思うんですけど、間違ってますか?
C:\MyJava>dir


C:\MyJava のディレクトリ

2003/10/05 22:15 <DIR> .
2003/10/05 22:15 <DIR> ..
2003/10/04 23:50 151 myjava.java.txt
1 個のファイル 151 バイト
2 個のディレクトリ 59,232,198,656 バイトの空き領域

C:\MyJava>javac myjava.java
エラー: myjava.javaを読み込めません。
エラー1個
> 2003/10/04 23:50 151 myjava.java.txt
(;´Д`)ハァハァ
>>865
駄目ですか?
C:\MyJava>ren myjava.java.txt myjava.java
しる!
Javaやる時は拡張子を表示させた方がいいよ。
>>862は"I_LOVE_YOU.txt.vbs"に引っかかりそうな予感
>>867
d(゚Д゚)☆スペシャルサンクス☆( ゚Д゚)b

>>868
俺にはノートン先生が居るんだぞー
>>860
>Linuxサーバでお構築したほう楽なんじゃないのか?
なぜ、Linuxじゃないといけないのか疑問
>>867
ren myjava.java.txt myjava.java
って毎回入れないと駄目ですか?
フォルダオプションで「登録されている拡張子は表示しない」のチェックはずしたんですけど。
だから、拡張子変えればいいだけだって
プログラミングの前にファイル操作の基本も勉強すれよ
どうせ次の質問は
拡張子を変えたらメモ帳で開けなくなりましたって
言うんだろ?
便乗質問です。
拡張子とは何か、ということについての広く合意されている厳密な定義は存在しますでしょうか。

例えば、 MyProgeam.java というファイル名を持つファイルの拡張子は java である、
というのはわかるのですが、MyProgram.java.txt.exe.txt というようなファイル名を持つ
ファイルの拡張子は、 java.txt.exe.txt ではなく、txt である、という認識でいいでしょうか。

すなわち、ファイル名を構成する文字列の各文字を後ろから順に見て行ったときに、
最初に出現する 「.」(ピリオド)よりも後ろの部分が拡張子である。ということで間違いないでしょうか。

また、ファイル名を構成するいくつかの文字のなかに、「.」 (ピリオド) が含まれない場合は、
拡張子が無い、という認識でよいでしょうか。それとも拡張子は存在し、"" 長さ0の文字列である、
と言うべきでしょうか。

>>861
Eclipseでソースコード覗くとIBMにも惚れ直すことができるよ
>>873
> 例えば、 MyProgeam.java というファイル名を持つファイルの拡張子は java である、
> というのはわかるのですが、MyProgram.java.txt.exe.txt というようなファイル名を持つ
> ファイルの拡張子は、 java.txt.exe.txt ではなく、txt である、という認識でいいでしょうか。
tar.gzな拡張子はそんなにあるもんではないのでそんなもんでえ。
しかしそんな紛らわしいファイル名、普通はつけない。

:>
> すなわち、ファイル名を構成する文字列の各文字を後ろから順に見て行ったときに、
> 最初に出現する 「.」(ピリオド)よりも後ろの部分が拡張子である。ということで間違いないでしょうか。
OSによっては拡張子の概念を持たないものがあるですが。
使っているエディタやOSなどによってはその認識は変わります。
>
> また、ファイル名を構成するいくつかの文字のなかに、「.」 (ピリオド) が含まれない場合は、
> 拡張子が無い、という認識でよいでしょうか。それとも拡張子は存在し、"" 長さ0の文字列である、
> と言うべきでしょうか。
Windowsでは拡張子無しで考えとく。MacやUnix系ではもとから拡張子という概念がなく、
わかりやすさのために、ファイルの分類のしやすさのためにあり、.**という命名規則にこだわらなくてもいい。

それくらいどこか本やサイトで調べればのってる。
>>873
拡張子の解釈はあってます。
ピリオドがない場合は拡張子がない状態。
>>876
ピリオドから始まるファイル名は?
ファイル名なしで拡張子のみ?
>>877
隠しファイル
シェルの機能でカーネルには関係ないけどな
>>878
Windowsしか使ってない奴にそんなこといって理解できるのか?
>>879
とはいえWindowsのドットから始まるファイルは
UN*X系OSの文化だと思うが
>>880

>理解できるのか?
ここに答えろよ ばか
過去に作ったものを EJB 向けにしてみようと、勉強をしてみてるんですが、
EJB の (特に Bean の) 利点がさっぱりわかりません。
何かいいサンプルはありませんか?
特に findBy〜 なメソッドを実装している例が見てみたいです。
883デフォルトの名無しさん:03/10/06 21:11
Windowsすら使えてないのにプログラミングかよ
>>881
・・・・
あのJava初心者なんでよくわからないんですけど…
NullPointerException
って結構使われる事多いんですか?
>>885 j2sdkのソースを例に取ると
$ unzip -p src.zip |grep NullPointerException |wc
1159 7052 71055
こんなかんじ。あと俺自身のコードでいうと、結構使うね。
>>885
使いまくり。マ板の人間なら一日一回は使わないと気が済まない。
890885:03/10/06 21:58
>>886-889
ありがと〜
ぬるぽ
CRC16の計算方法を教えてください。
SDKには32にしかなくて困っています。
ソースを見てみたのですが、さっぱり・・・・
893デフォルトの名無しさん:03/10/06 22:52
ユニークな連番を得るためのクラスありますか?
894デフォルトの名無しさん:03/10/06 22:58
ユニークな連番を得るクラスありますか?
895デフォルトの名無しさん:03/10/06 23:01
2重書き込みすまそ
896デフォルトの名無しさん:03/10/06 23:29
>>893
なににとってユニークよ?
897デフォルトの名無しさん:03/10/07 00:16
>>892
『Javaによるアルゴリズム事典』全ソースコード
http://www.matsusaka-u.ac.jp/~okumura/java-algo/

に CRC16 もあるよ。他にも探せばあるんじゃないかなぁ…
>>892
生成多項式が違うだけだろ
1+x^5+x^12+x^16 CCITT
1+x^2+x^15+x^16 ANSI
あと生成多項式のLSB,初期値が0000とFFFFのどちらか,最後にビット反転するか
が細かく違うかもしれん

ちなみに,フリーソフトなどで一般的にCRC16と呼ばれているのは
LSBはx^15の項,初期値FFFF,最後にビット反転はしない
>>892
Java の LHAライブラリにたいていついてると思う。
>>894
データ型とオーバーフロー発生時の処理は、要求仕様に応じて修正すれ。

public class UniqueNumber{
 private static int val = 0;
 public static synchronized int nextInt(){
  val++;
  if(val == Ingeter.MAX_VALUE)
   val=Integer.MIN_VALUE;
  return val;
 }
}
>>890
オイオイ。
NullPointerExceptionを自分で生成してthrowするプログラムなんか、
普通書かないだろ。バグのせいでVMがぬるぽを作ることは多々あるが。
>>902
> NullPointerExceptionを自分で生成してthrowするプログラムなんか、
> 普通書かないだろ。
JDK 付属のソース見てみろ。
null かどーか if文でチェックして、
null だったら throw new NullPointerException(); とか
throw new IllegalArgumentException(); してるソースは結構多い。

自分にとっての「普通」が、他人にとっても「普通」だと思わんように。
>>902 呼ばれたメソッド内で引数のnull値チェックとかやらない人?
Effective Javaでも、慣例としてこういうときはIllegalArgumentException
じゃなくてNullPointerException投げろってあるよ。
905デフォルトの名無しさん:03/10/07 09:11
>>902はお馬鹿。
>>904もお馬鹿。
List クラスでclone()が使えないのはなぜですか?
>>906
Listがjava.util.Listを指しているのなら、そもそもListクラスは存在しません。
Listインタフェースならあります。Listインタフェースの宣言にはclone()は
ありませんが、Listの実装クラスであるArrayListやLinkedListは、
java.kang.Objectで定義されたclone()をオーバライドしており、clone()を実行すると
自身のシャローコピー(配列が指す中身まで複製しないコピー)を返します。

Listがjava.awt.Listを指しているのなら…どうなるんでしょう?試したことないなぁ
普通にインスタンス作ったのと同じ振る舞いになりそうな気もするんですが。
>>906
List はクラスではなくインタフェースです。
List を参照しているときの clone() メソッドは Object の clone() メソッドを前提とします。
これは protected であるため、コンパイル時既に不正であることが予期されてしまいます。

List インタフェースを実装しているクラスが、
clone() を (public に) サポートしていないといけません。

どうしても clone() したければ、
new ArrayList(list); とでもすれば似たような結果が得られるでしょう。
かぶったけど補足
>clone() を (public に) サポートしていないといけません。

clone() を (public に) サポートしつつ、
そのクラスを型とする変数で参照しなければなりません。
910899:03/10/07 18:49
>>892
肝心なこと忘れてた
フリーソフトのCRC16の生成多項式はCCITTな

>>900
ちなみにLHAのCRC16はANSIの生成多項式で
LSBはx^15の項,初期値0000,最後にビット反転はしない
リトルエンディアンで書き込む
911892:03/10/07 21:23
>>897
>>898
>>899
>>900

みなさん、ありがとうございます。
すごく参考になりました。感謝!
(´-`).。oO(>>911はCRC16で何をやりたかったんだろう・・・?)
914デフォルトの名無しさん:03/10/07 23:16
長方形の画像を90度回転させたいんだけど、
AffineTransformのrotateを使ってもうまくいかなくて困ってます。
BufferedImage使っているので、画像の大きさは簡単に合わせられるんですけど、
90度回転するように設定したAffineTransformでdrawImageすると、
画像の領域からはみ出してしまいます。

なお、大きさが変わらない180度は問題なく回転出来ています。
何かヒントか何か無いでしょうか?
おまえらチョット待て。

Bar bar = foo.getBar();
if(bar == null)throw new NullPointerException();
bar.hoge();

こんな馬鹿なコード書くのが一般的ルールなのか?
>>915
void BarMethod(Bar bar) {
if (bar = null) throw new NullPointerException();
bar.hoge();
}
917916:03/10/07 23:28
誤 if (bar = null) throw new NullPointerException();
正 if (bar == null) throw new NullPointerException();
918デフォルトの名無しさん:03/10/08 00:10
データベースの好きなとこからデータを取得するにはどうすればいいか教えてください。
例えば
データベースに
aaa,bbb,
ccc,dddとあったとして、
Text[0]=aaa
Text[1]=bbb
Text[2]=ccc
Text[3]=ddd
ととって行きたいのですがどうすればいいのでしょ
データベースって?
ISAM? DAM? PAM? VSAM? ODB? RDB? 階層型DB? ネットワークDB? UNIX DBM?
それとも別の何か??
920デフォルトの名無しさん:03/10/08 00:37
データベースっていうかCSV形式のファイルです。
>>920
StringTokenizer
>>920
それをデータベースと呼ぶか・・・
とりあえず小学校でも修了してからこいや
>>922
データベース…データ形式が応用プログラムに依存しないように
応用プログラムに合わせて自動でデータ変換を行うもの

と習った
>>923
「逆もまた真なり」は必ずしも真ではないのだ

ってかCSVもDBも自動でデータ変換なんて行わないし・・・

やっぱり小学校を修了してこいや
925デフォルトの名無しさん:03/10/08 23:47
すいません教えてください。
int型をString型に変換したいんですがどうしたらいいですか。
>>925
int i=5;
String str1,str2;
str1=String.valueOf(i);
str2=Integer.toString(i);
いつも思うんだけど、みんなString.valueOfってNumberFormatException
書いてる?前書きまくってたら先輩から
「このDBデータは数字しか入ってないから大丈夫だよ」
「(え...でもCHAR型なんすけど)そうっすか〜。」
とかいうやり取りがあったり。
928デフォルトの名無しさん:03/10/09 00:33
>>926
ありがとうございました。
>>927
> いつも思うんだけど、みんなString.valueOfってNumberFormatException
String#valueOf() って NumberFormatException 投げないだろ…

String#valueOf(char[],int,int) とか String#valueOf(char[]) は
NullPointerException とか IndexOutOfBoundsException 投げるみたいだが。
930デフォルトの名無しさん:03/10/09 00:54
>>875
>MacやUnix系ではもとから拡張子という概念がなく、

Macにも今や拡張子はあります。そしてApple自身が定義を作成しています。
931デフォルトの名無しさん:03/10/09 01:09
>>672
>@version $Id$

それは何も設定せずともJavadocで作ったHTMLファイル群をCVSにコミットしただけで
HTML内にバージョンが自動的につくようになっているのですか?
それともCVS以外に何かインストールすべきものや設定すべきもがあるのでしょうか?

ネットで調べたのですが$Revision$を入れればいいと書いてあるだけでした。

RuntimeExceptionをcatchあるいはthrowする時はそうする
理由と影響範囲をよーく考えましょう。

基本的にRuntimeExceptionはシステム(プログラム)の
バグによってのみしか起こりえない、という位の認識を
しておくべき。なのでチェック例外といっしょくたにcatchしたり、
無闇にthrowしてはいけません。

上のほうでNullPointerExceptionをnewするとかあったけど、
その検査した値がnullである事が予測されるのならば違う対処
(チェック例外を投げるとか)をするべきだし、予測されないなら
いちいち検査などしないか、アサーションを使った方がまし。
Javaの標準ライブラリレベルでの使われ方など参考にしちゃ
いけません(標準ライブラリが間違っているということじゃないよ)。

まあNumberFormatExceptionはNumericである保証がない
文字列の数値変換を試みる目的でcatchすることが多いけどね。
>>927はInteger.parseInt(String)とかの事だと思うが、
そのDBから読んできた文字列がNumericでないことが
システムのバグと解釈されてよいのならば、あえてcatchしない
というやり方も考えられるでしょう。
>>927
Integer#parseInt なんかと勘違いしてないかい
>上のほうでNullPointerExceptionをnewするとかあったけど、
>その検査した値がnullである事が予測されるのならば違う対処
>(チェック例外を投げるとか)をするべきだし、予測されないなら
>いちいち検査などしないか、アサーションを使った方がまし。

private メソッドに対しては正しいがpublic メソッドに対しては正しくない。
特に、引数が null であってはまずいときに null が与えられた場合は
NullPointerException (場合によっては IllegalArgumentException など) を
投げるのが正しい。
>>933
> 基本的にRuntimeExceptionはシステム(プログラム)の
> バグによってのみしか起こりえない、という位の認識を
> しておくべき。なのでチェック例外といっしょくたにcatchしたり、
> 無闇にthrowしてはいけません。
Error と混同してないか?

> Javaの標準ライブラリレベルでの使われ方など参考にしちゃ
> いけません(標準ライブラリが間違っているということじゃないよ)。
「俺の考えでは〜」って話であれば別に良いけど…

「一般的に〜すべき/すべきでない」って話なら
根拠を示して、標準ライブラリが間違ってると言わないとダメだと思われ。
>>1-14 に載っている、『 Java 2 プラットフォーム API 仕様 』 について、
ローカルにダウンロードできるという話をちらほら聞くのですが、
どこでダウンロードできるのかわかりません。

落とせるとしたら
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
かと思ったのですが見つからず。

もしかして、何か盛大に勘違いしてますか?
>>937
ここのページの下のほうにある。
http://java.sun.com/j2se/1.4.2/ja/download.html
>>937
http://java.sun.com/j2se/1.4.2/ja/download.html

の下の方に「日本語版 J2SE 1.4.0 ドキュメント」ってのがあるから、それをダウ(以下略)
>>935
んー、この話は何が正しくて何が正しくないかというような
ことじゃないな。
ライブラリレベルでは確かに慣例的にそういう「べき」が
あるかもしれないけど、NullPointerExceptionは原則として
null参照への操作によって起こるものとしてのみとらえたほうが
いいのでは。ランタイム例外を投げるにしても、ちゃんと代わりの
ものを定義して使う方がわかりやすいと思う。

ぬるぽ起こしてバグなんだか引数チェックなんだか、スタックトレース
凝視しないとわからんなんてのは最悪じゃないかね。
942 :03/10/09 02:08
JSPの事で質問があります。

JSPページの最初の部分で<% %>タグにプログラムを書き込んでいるんですが、
毎回アクセスするたびにこの処理は行ってほしいのですが、ブラウザであっちこっち行ってから戻ってきた場合、
ブラウザのキャッシュ機能でこの処理を抜かして、HTMLだけが送信されるようになってしまうと言うことは、ありませんか?

何も指定しなくても、必ず毎回処理をしてから、HTMLをサーバが送信してくれるものなんですか?
>>927
assert代わりに例外を使う気持ちはわからんでもない。

でもプリプロセッサのないJavaだとリリース版でもチェックコードが
残っちゃうから気にする奴は気にするだろうな。

JDK1.4なら素直にassert使っとけ。

あと数値フォーマットのチェックに限って言えば
実際に数値に変換する場所で例外が起きるだろ。
例外の起きる場所が多少ずれるだけなら
ほっといていいと思うよ。
>>936
> >>933
> Error と混同してないか?

してません…。
catch (Exception... とか平気で書く人?

> 「一般的に〜すべき/すべきでない」って話なら
> 根拠を示して、標準ライブラリが間違ってると言わないとダメだと思われ。

確かに「俺の考えでは」だね。スマソ。
標準ライブラリとそうでないものの信頼度の違い、としかいえないな。
>>941
> ランタイム例外を投げるにしても、ちゃんと代わりの
> ものを定義して使う方がわかりやすいと思う。
NullReferenceException extends Exception を導入しろとでも?
素直に NullPointerException 使った方がマシ。

> ぬるぽ起こしてバグなんだか引数チェックなんだか、スタックトレース
> 凝視しないとわからんなんてのは最悪じゃないかね。
null に対して操作を行った際に投げられる NullPointerException よりも、
引数チェックして NullPointerException 投げた方が原因の特定はしやすい。
(特にコンストラクタとかでは)
>>942
キャッシュ使ってるのにサーバーから送信されたらバグだろ。
>>944
> > Error と混同してないか?
> してません…。
> catch (Exception... とか平気で書く人?
どっからそーゆー話が出てくるんだ?

Error は APIリファレンスで

> Error は Throwable のサブクラスで、通常のアプリケーションであれば
> キャッチすべきではない重大な問題を示します。そうしたエラーの大部分は
> 異常な状態です。

と書かれているが、RuntimeException に関しては

> RuntimeException は、Java 仮想マシンの通常の処理で
> スローすることができる各種の例外のスーパークラスです。
>
> メソッドの実行中にスローされるがキャッチされない
> RuntimeException のサブクラスについては、
> メソッドの throws 節でそれらを宣言する必要はありません。

としか書かれていない。
微妙に楽しいなこういう話も。
>>945
> NullReferenceException extends Exception を導入しろとでも?
> 素直に NullPointerException 使った方がマシ。

これはRuntimeExceptionのサブクラスなら何でもいいけど
NullPointerExceptionでないもの、というつもりで書いた。

> > ぬるぽ起こしてバグなんだか引数チェックなんだか、スタックトレース
> > 凝視しないとわからんなんてのは最悪じゃないかね。
> null に対して操作を行った際に投げられる NullPointerException よりも、
> 引数チェックして NullPointerException 投げた方が原因の特定はしやすい。
> (特にコンストラクタとかでは)

それは使用側でもソースが見れることを前提にしている部分が
あるよね。まーメッセージで認識はできるだろうからこれに
ついては一応納得。

ただNullPointerExceptionの性質を考えるとやはり別例外を
定義して使うべきと俺は思う。
ランタイム例外1個定義するくらいなんでもないじゃん。
>>948
> ただNullPointerExceptionの性質を考えるとやはり別例外を
> 定義して使うべきと俺は思う。
NullPointerException はどーゆー性質だと考えてるんだ?

っつーか、APIリファレンスの NullPointerException のところに
> null オブジェクトの不正な使用を示す場合は、
> このクラスのインスタンスをアプリケーション側で
> スローするようにしてください。
って書いてあるし…
>>947
そんなわかりきったこと持ち出されても困るんだが。
RuntimeExceptionは特別な理由がない限りcatchすべきでは
ないよ。

catchする例としては
前に出てきてるNumberFormatExceptionの例とか、

例えプログラムのバグが発生しても処理を継続しなければ
ならないサービススレッドの上流ブロックとか、ループ内の
ブロックだとか。

それ以外は未補足例外ハンドラとかに任せてしまうのが
普通、と俺は思ってる。
>>948
> これはRuntimeExceptionのサブクラスなら何でもいいけど
> NullPointerExceptionでないもの、というつもりで書いた。
おいおい、言ってる事が変わってるぞ。

> > 基本的にRuntimeExceptionはシステム(プログラム)の
> > バグによってのみしか起こりえない、という位の認識を
> > しておくべき。なのでチェック例外といっしょくたにcatchしたり、
> > 無闇にthrowしてはいけません。
それとも >>933 とは別人か?
>>949
>> ただNullPointerExceptionの性質を考えるとやはり別例外を
>> 定義して使うべきと俺は思う。
>NullPointerException はどーゆー性質だと考えてるんだ?

だからnull参照に対する操作を行うとおきるもの、って…。
Javaの言語仕様として起こるのとnewで起こすのは違うでしょ。
>>951
その前には
| ランタイム例外を投げるにしても、ちゃんと代わりの
| ものを定義して使う方がわかりやすいと思う。
って書いただけだよ。いらんツッコミやめておくれ。
>>950
> RuntimeExceptionは特別な理由がない限りcatchすべきでは
> ないよ。
とは APIリファレンスには書いてないね、って話。

で、Error は特別な理由が無い限り catch すべきでない、と書かれてるので
RuntimeException と Error を混同してるのかと考えただけ。
>>952
> だからnull参照に対する操作を行うとおきるもの、って…。
NullPointerException の発生原因が null 参照に対する操作だけである、
という前提だと標準API 使うだけでも不都合起きないか?
>>953
> > > > ランタイム例外を投げるにしても、ちゃんと代わりの
> > > > ものを定義して使う方がわかりやすいと思う。
> > > NullReferenceException extends Exception を導入しろとでも?
> > > 素直に NullPointerException 使った方がマシ。
> > これはRuntimeExceptionのサブクラスなら何でもいいけど
> > NullPointerExceptionでないもの、というつもりで書いた。
> おいおい、言ってる事が変わってるぞ。
>
> > > 基本的にRuntimeExceptionはシステム(プログラム)の
> > > バグによってのみしか起こりえない、という位の認識を
> > > しておくべき。なのでチェック例外といっしょくたにcatchしたり、
> > > 無闇にthrowしてはいけません。

って事は、やっぱり
> > > NullReferenceException extends Exception を導入しろとでも?
を導入しろって事か?
それにしては、これへのレスが
> > これはRuntimeExceptionのサブクラスなら何でもいいけど
> > NullPointerExceptionでないもの、というつもりで書いた。
では意味が通じないような…
>>956
ごめん、全然わからん。
ランタイム例外を投げるならぬるぽじゃないものにしたほうが
いいんじゃないかって書いただけなんだが。

class MyRuntimeException extends RuntimeException

'Exception' は 'RuntimeException' のサブクラスだが、
'Exception' のサブクラスを定義してもそれはランタイム
例外じゃないんだが。
>>957
自己フォロー・・・
> 'Exception' は 'RuntimeException' のサブクラスだが、
逆だw

○ 'RuntimeException' は 'Exception' のサブクラスだが、
null にアクセスしたときに NullPointerException が発生するのは
0 で割り算したときに ArithmeticException が発生するのと同様に
JVM が (言ってみれば) 気を利かせて発生させてくれているに過ぎない。

プログラム上エラーにすべきことがわかっているならば null にアクセスする前に
プログラマが明示的に NullPointerException を発生させるべきである。
>>957
> > > 基本的にRuntimeExceptionはシステム(プログラム)の
> > > バグによってのみしか起こりえない、という位の認識を
> > > しておくべき。なのでチェック例外といっしょくたにcatchしたり、
> > > 無闇にthrowしてはいけません。
を前提にすると、throw new NullPointerException() の代わりに
> > > NullReferenceException extends Exception を導入しろとでも?
は導入すべきと考えるのか、考えないのか?
(もちろん俺は導入しないほうが良いと考える)

> ランタイム例外を投げるならぬるぽじゃないものにしたほうが
> いいんじゃないかって書いただけなんだが。
根拠が無いので却下。っつーか
if(obj==null) throw new NullPointerException();
がダメってんなら標準API 使えないし。

というわけで、
> > > 素直に NullPointerException 使った方がマシ。
という結論にいたるわけ。
>>959
> 0 で割り算したときに ArithmeticException が発生するのと同様に
float とか double だと 0除算で ArithmeticException 投げないので注意。
生の java.lang.NullPointerException を投げると、
そのメッセージを他の誰かが見たときに、

 ・その例外が発生することをプログラマが知らなかった == バグ なのか、
 ・あえてその例外を発生させてくれている == 親切 なのか

が、わかりにくくなる。(ソース見りゃわかるけど)

なので私は、メソッドが引数として null を受け付けないことを表明するために
そのアプリなり、ライブラリなりの名前を付けた例外を throw するようにしてます。

アプリ/ライブラリ名が foo の場合の例:

  public void func(Object hoge) {
    if (hoge == null) throw new fooNullPointerException();
    /* これ以降は確実に hoge は null ではない */
    /* hoge を使った何かの処理・・・ */
  }

毎回、例外オブジェクトを new するかどうかはまた別な話として。
>>960
> > > > NullReferenceException extends Exception を導入しろとでも?
> は導入すべきと考えるのか、考えないのか?
ランタイム例外を投げるとしても、って前提で始めた話に対するレスとして
その例を引き合いに出すのは明らかにおかしいが。
その質問に対してのみ答えるならば(nullチェックを前提に考えるとわかりにくいが)
引数がnullで渡ることが正常パターンとして予測されるならチェック例外を
投げるように定義しておくのもありでしょ。例えばお粗末だがこんなのとかさ。
public int toInt(String value) throws ConvertException {
 if (value == null) throw new ConvertException("value is null.");
 try {
  return Integer.parseInt(value);
 } catch (NumberFormatException e) {
  throw new ConvertException("value is not numeric.", e);
 }
}
nullかもしれないしNumericでないかもしれない文字列を
渡すことを許し、チェック例外で変換失敗時の処理を強制する、と。

> 根拠が無いので却下。っつーか
> if(obj==null) throw new NullPointerException();
> がダメってんなら標準API 使えないし。
んで俺の意見は標準APIと、どこぞの誰が書いたかわからんもの
(自分が書いたものも含む)とでは信頼度が違うってこと。
そもそも、あえてぬるぽにしなければならない理由も全くないわけだ。
例外は原因が明確であったほうがいい。
NullPointerExceptionだと原因が明確じゃない。
標準APIでNullPointerExceptionが出たら、普通は自分のコードを
疑うが、標準API以外だとどちらを疑えばいいか判断しにくい。
Exceptionのメッセージでわかるだろと言われればそれまでだ…。

もう寝ます。
質問です・・・。
あるデータの下位12bitだけを取り出すためにマスクをしたいのですが、
やり方がよくわかりません。
b=(b&0xFFF);
このような形でやってみてますができないので、どなたか知ってる方教
えてもらえませんでしょうか?
>>962
例外は毎回newしないと駄目ですよ…。
>>964
どんなエラーがでるの?
967964:03/10/09 04:43
>>966
エラーは出ないのですが、実際ほしい値と違うものが出てるようなのです。
データが2byteづつならんでいるファイルから1byteづつ取り出して、その
後にくっつけてそれの下位12bitだけを取り出したいのですが、

a[0]=bytearray[i+1]; a[1]=bytearray[i];
a[0]=(a[0])&(a[1]);
b=a[0] & 0xFFF;

これでbを出力という感じでやっています。
>>967
多分エンディアン
969964:03/10/09 05:35
>>968
今、エンディアンというものを調べて自分なりに解釈して
以下のように変えてみたのですが、すべて0になって出力さ
れてしまいました。

b=(byte)(((a[0]<<8)&((a[1])&0xFF)) & 0xFFF);

訂正してもらえれば幸いです。同時にもう少し試します。
>>969
ここではエンディアンは関係なかったかも

byte a[0] = bytearray[i+1], a[1] = bytearray[i];
short b = (short)a[0] << 8 & a[1] & 0xFFF;

で出ないかな?
多分a[0]をシフトしてなかったことと,シフトする前にshortにキャストしてなかったのが原因
足しあわせるのはorだよ。
((short)a[0] << 8 | a[1]) & 0xFFF;
>>971
スマソ
凡ミス
>>963
> ランタイム例外を投げるとしても、って前提で始めた話に対するレスとして
> その例を引き合いに出すのは明らかにおかしいが。
「ランタイム例外を投げるとしても〜」なら、
「チェック例外を投げろって事か?」という意味の反応は当然。

> 引数がnullで渡ることが正常パターンとして予測されるなら
普通は正常パターンには例外使うなって事になると思うが。

> そもそも、あえてぬるぽにしなければならない理由も全くないわけだ。
APIリファレンスに不正な null の使用に対しては NullPointerException 投げろと書いてある。
974964:03/10/09 08:17
>>968>>970>>971
ありがとうございました。何とかデータを取り出せた模様です。
しかし、数値があわないのでもう少し考えて見ます。
エンディアンについてももう少し調べてみます。
>>974
エンディアンの問題ならインデックスの0と1をひっくり返すだけで直るよ
>>974
((bytearray[i+1] & 0xF) << 8 ) | (bytearray[i] & 0xFF);
>>970
> シフトする前にshortにキャストしてなかったのが原因
関係ない。
byte の値でもシフト演算に際して単項数値昇格で int に格上げされる。
>>977
じゃあ逆にはみ出た部分を無視して欲しい場合にキャストが必要になるのな
979964:03/10/09 08:41
>>976-978
ありがとうございます。本当にたすかります。
>>976
>>((bytearray[i+1] & 0xF) << 8 ) | (bytearray[i] & 0xFF);

でいきました!これでようやく作業が始められます。
どうもありがとうございました。がんばります。
>>960
>  ・その例外が発生することをプログラマが知らなかった == バグ なのか、
>  ・あえてその例外を発生させてくれている == 親切 なのか
fooNullPointerException使うにしろ使わないにしろ、
前者の場合はソース見なきゃ原因(不正な null の入力があったのか、
初期化を忘れたのか)がわからんし、それほどライブラリ作成者を疑うなら、
後者の場合でも間違って例外投げてる可能性も考えなきゃいかんし。

> アプリ/ライブラリ名が foo の場合の例:
>
>   public void func(Object hoge) {
>     if (hoge == null) throw new fooNullPointerException();
ってのはなんだかなぁ…

それに、fooNullPointerException は RuntimeException か Error のサブクラスでしかありえないが、
常識的に Error ではないと考えると RuntimeException のサブクラスだよな。
> > 基本的にRuntimeExceptionはシステム(プログラム)の
> > バグによってのみしか起こりえない、という位の認識を
> > しておくべき。なのでチェック例外といっしょくたにcatchしたり、
> > 無闇にthrowしてはいけません。
に反してないのかね? ひょっとして、「RuntimeException」 はダメだが、
「RuntimeExceptionのサブクラス」は無闇に throw しても良いのか?

> 毎回、例外オブジェクトを new するかどうかはまた別な話として。
小細工してまで例外オブジェクトの生成コストを削減ですか…
そんなに例外投げまくるよーなプログラム書いてるのかな?
>>962
>生の java.lang.NullPointerException を投げると、
>そのメッセージを他の誰かが見たときに、
>
> ・その例外が発生することをプログラマが知らなかった == バグ なのか、
> ・あえてその例外を発生させてくれている == 親切 なのか
>
>が、わかりにくくなる。(ソース見りゃわかるけど)

バカだなあ。
NullPointerExceptionにはメッセージ (String) を引数にとるコンストラクタもある。
それを使えばいいだけのこと。
あえてfooNullPointerExceptionなんぞを作る必要はない。
>>973
揚げ足取りばかりしてきますね…。

>>980
> > アプリ/ライブラリ名が foo の場合の例:
> >
> >   public void func(Object hoge) {
> >     if (hoge == null) throw new fooNullPointerException();
> ってのはなんだかなぁ…
>
> それに、fooNullPointerException は RuntimeException か Error のサブクラスでしかありえないが、
> 常識的に Error ではないと考えると RuntimeException のサブクラスだよな。
> > > 基本的にRuntimeExceptionはシステム(プログラム)の
> > > バグによってのみしか起こりえない、という位の認識を
> > > しておくべき。なのでチェック例外といっしょくたにcatchしたり、
> > > 無闇にthrowしてはいけません。
> に反してないのかね? ひょっとして、「RuntimeException」 はダメだが、
> 「RuntimeExceptionのサブクラス」は無闇に throw しても良いのか?

>>960は俺じゃないけど
関数の仕様として引数nullが許されないのに、null渡すプログラム
書いたらそれはバグだろ。
ランタイム例外は誰もcatchしてる保証がないわけだしcatchして
しまったらバグをトラップしてしまっている可能性を憂慮しなければ
ならないから「無闇に」catch/throwするなって書いたの。
こういう議論は誰かが納得することはまずないから
984937:03/10/09 10:43
>>938-940
教えて頂いたページで、無事ダウンロードできそうです。
遅くなりましたが、レス有難うございます。
JBoss3.2.1+Tomcat4.1.24 で、EJB の実験しています。
クライアントアプリケーションは、Eclipse からのデバッグ、コマンドラインからの実行どちらとも巧くいっているのですが、
Servlet (JSP) から呼ぶと、getHome() したあとのリモートメソッド呼び出しで Invalid Invocation になってしまい、困っています。

デバッガでトレースしてみると、Class の(つまり Object の) equals が false になっているようで、
Method インスタンスの同定に障害がおきているようです。
(どういう文脈で行われているかよく分からないのでうまく説明できません・・・)
Class オブジェクトが、パッケージ・クラス名は同じですが、コンテナ上で違うインスタンスとして存在しているようです。

デプロイしたパッケージと、JSP が拾ってくるパッケージは別のところに置いてあるのですが、関係あるでしょうか?
(それぞれ server\all\deploy と WEB-INF/lib )
もしそうなら Webコンテナのあるサーバと EJB コンテナのあるサーバが別個のとき、
巧くいかないようにも思うのですが・・・
986デフォルトの名無しさん:03/10/09 12:53
外部からの多人数作業をするときに、変更されたくない変数をprivateで外部クラス
にすることがあるという前提で作業をしています。
Human.htmlからの各入力データ(名前・年齢・体重)をサーブレット(Human3)から
外部クラスHumanに代入し、セッションにArrayListとしてどんどん追加していきます。
そして現在セッション内にある各データをHtml上で出力したいのですが
うまくいかずに悶絶しています。

987986:03/10/09 12:54
外部クラスHumData.java

public class HumData {
 //各入力データ用変数
 private String name;
 private int age;
 private double weight;

 //name変数の代入値と戻り値
 public void setName(String name){
  this.name=name;
 }
 public String getName(int index) {
  return name;
 }
 //age変数の代入値と戻り値
 public void setAge(int age) {
  this.age=age;
 }
 public int getAge(int index) {
  return age;
 }
 //weight(名前)変数の代入値と戻り値
 public void setWeight(double weight) {
  this.weight=weight;
 }
 public double getWeight(int index) {
  return weight;
 }
}
988986:03/10/09 13:00
Htmlからの入力データをセッションへArrayList追加 Human3.java

import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Human3 extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
//セッションの開始or新規作成
HttpSession session = request.getSession();
//属性の取得(属性 data )
ArrayList al=(ArrayList)session.getAttribute("data");
if(al == null) {
al=new ArrayList();
}

989986:03/10/09 13:00
//Htmlより年齢入力テキストnaem="ag"をint型にキャスト(変換)
String str=request.getParameter("ag");
int a=Integer.parseInt(str);
//Htmlより体重入力テキストnaem="wei"をdoble型にキャスト(変換)
String str2=request.getParameter("wei");
double b=Double.parseDouble(str2);
//HumanDataのインスタンス化と各入力データの代入
HumData hd=new HumData();
hd.setName(request.getParameter("nam"));
hd.setAge(a);
hd.setWeight(b);
//ArrayListの各入力データ)をまとめて追加
al.add(hd);
 //セッションへ追加
session.setAttribute("data", al);
990986:03/10/09 13:02
 //ブラウザ表示
 response.setContentType("text/html;charset=Shift_JIS");
 PrintWriter out=response.getWriter();

 out.println("<html><head>");
 out.println("<title>皆々様のデータ</title>");
 out.println("</head><body>");
 out.println("<table border='1'>");
 out.println("<tr style='background:#00ccff'>");
 out.println("<th>No</th><th>名前</th><th>年齢</th><th>体重</th>");
 out.println("</tr>");

 //セッション内容の表示
 for(int i=0; i<al.size(); i++) {
 out.println("<tr>");
 out.println("<td>" + i + "</td>");
 out.println("<td>" + hd.getName(i) + "</td>");
 out.println("<td>" + hd.getAge(i) + "</td>");
 out.println("<td>" + hd.getWeight(i) + "</td>");
 out.println("</tr>");
 }
 out.println("</table>");
 out.println("<tr>");
 out.println("<td><a href='/soesoe3/Human.html'>入力画面へ戻る</a></td>");
 out.println("</tr>");
 out.println("</body></html>");
 }
}
991986:03/10/09 13:04
このままだと見てのとおり最後に入ったデータがそのままきてしまいます。
(来るようになってます)
現状ではArrayListの中身をどのようにして順に引き出したらいいか
わかりません。
よろしくお願いいたします。
992962:03/10/09 14:04
>>983
> こういう議論は誰かが納得することはまずないから

自分が馬鹿だったことを納得し始めています。

fooNullPointerException を自作するくらいなら、
あらかじめ用意されている、生の NullPointerException を使って
そのコンストラクタに必要なだけメッセージを渡すべきだ、と。

>>980
>> 毎回、例外オブジェクトを new するかどうかはまた別な話として。
>小細工してまで例外オブジェクトの生成コストを削減ですか…
>そんなに例外投げまくるよーなプログラム書いてるのかな?

はい。書いてました。
小細工はしてなかったけれど、激しく例外投げまくるプログラムを
書いていました。それで、例外オブジェクトって再利用すべきなの
かもしれない、とか思ってました。
それが何故正しくないのか、もっと勉強します。
過去ログ、関連スレの一覧や、
これからJavaでプログラミングを始めたいが、
なにをすればいいか、わからないひとは、下のリンクをクリック。
http://www.wikiroom.com/java/

以下のエラーが表示されて、途方にくれているあなたは、下のリンクを。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: Hello」
http://www.wikiroom.com/java/?path%2Cclasspath

前スレ。
【トリビアの泉】Java初心者質問スレ【32へぇ〜】
http://pc2.2ch.net/test/read.cgi/tech/1063774151/l50

// とりあえずテンプレはこんな感じでいかが?
// まだリンク先のwikiのページは編集しおわってないけれど。
994デフォルトの名無しさん:03/10/09 16:04
>>993
スッキリして(・∀・)イイ!!
では、とりあえず1000行くまえに、たててきます。
建ててきました。でも、ここまですっきりすると、
もうすこし、>2以降に色々追加してもいいかもしれないや。

【初心者】 Java質問・相談スレ33 【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1065684016/l50

//とりあえず、wikiのほうの過去ログ一覧、編纂してきます。
99741:03/10/09 18:18
今回のトリビアも興味深いものでした。

これからもよろしくお願いします。

埋め。
a
(д゚≡゚д)
キタ━━━━(゚∀゚)━━━━!!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。