【初心者】Java質問・相談スレ38【大歓迎】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレの一覧や、これからJavaでプログラミングを
始めたいが何をすればいいかわからない人は、下のリンクをクリック。
http://www.wikiroom.com/java/

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

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc2.2ch.net/hp/

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

すべてのクラス (Java 2 プラットフォーム SE v1.4.0)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
Java (TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
Java言語規定 第2版 目次
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
2:03/12/17 07:23
31:03/12/17 07:36
1
Download Java 2 Platform, Standard Edition, v 1.4.2 (J2SE)
http://java.sun.com/j2se/1.4.2/download.html
5
6デフォルトの名無しさん:03/12/17 11:36
import宣言文の
import javax.servlet.*;が解決できません。

CLASSPATHの環境変数でservlet.jarは通してあります。
javaファイルは\examples\WEB-INF\classesへ置いています。
ご教授お願いいたします。

(環境)
windows2000
tomcat4.0.3
j2sdk1.4.2_02


>>6
classes は class をおくとこ。
jar は lib におくもの。まずそれでやってみ。
環境変数なんか使うな
>>7
jar を classes に置いたなんて書いてないぞ
読み間違い
116:03/12/17 11:57
補足です。
servlet.jarファイルはtomcat\common\libへ格納しています。
宜しくお願い致します。
12デフォルトの名無しさん:03/12/17 14:32
コマンドラインでやってるのか?
ならためしにecho %CLASSPATH%とやってみ。
136:03/12/17 14:38
ご返信ありがとうございます。
コマンドプロンプトで[echo %CLASSPATH%]を実行したところ、

echo %CLASSPATH%
C:\Tomcat-4.0.3\common\lib\servlet.jar

上記のように表示されました。
クラスパスは環境変数に設定するよりも、
javac -classpath で設定したほうがいいよ。

昔はともかく、このやり方が今の流行。
完成したアプリを実行するときも環境変数はいじらないのが、
推奨されていたやりかただったとおもうよ。

jarファイルにまとめて、
マニフェストファイルのなかにクラスパスを記述しておくとかね。

-classpathとタイプするのがめんどくさかったら、
Eclipseとか、Antを使えばいいんだし。
前すれの↓わかるひといませんか?
ネットワークゲームのチート対策で使えると思うんですが。


> 770 名前:デフォルトの名無しさん[] 投稿日:03/12/12 17:29
>
> 署名つきjarファイルのJavaアプリがあるとして
> 実行時に今動いているアプリの自分自身の署名を取得して
> チェックする方法を知っている方いませんか?
>
> たとえばURLClassLoaderなどで動的にロードされるプラグイン側から
> ホストJavaアプリの署名をチェックしたいのですが。
16デフォルトの名無しさん:03/12/17 18:10
下のような感じで書いてあるプログラムがあったのですが、1 : 0はどういうことを
しようとしているのかが分かりません。参考書も調べたのですがありませんでした。
どなたか教えて頂けませんか?
int i = button.isSelected() ? 1 : 0 ;
if(int i == 1){・・・}
if(int i == 0){・・・}
>>16
> condition ? trueExpression : falseExpression
で、boolean 型 の condition が true のとき trueExpression が評価され
condition が false なら falseExpression が評価される。 詳しくは以下を参照の事。

http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#290293
>>16
三項演算子でぐぐれ
1918:03/12/17 18:26
ウヒョ かぶったよ。
しかし下の2行はなんなんだろう・・・。
ああいう宣言でも0で初期化されるってことでない?
21無職PG:03/12/17 18:49
>>19 紛れも無くエラー。
22デフォルトの名無しさん:03/12/17 21:21
javaでtxt内の指定の文字列を検索して
その数を抽出する方法を教えてください

BufferedReaderとかfileWriterなど
使ってもうまくいかないです
>>22
課題の丸投げは以下のスレでお願いします。

http://pc2.2ch.net/test/read.cgi/tech/1065599192/l50
学校の宿題は俺にやらせて下さいver.1.1βfor Java
24無職PG:03/12/17 21:54
>>22 readで全部読んで数えるしか方法がないかもね。
それにしても>>23は不親切だね
25デフォルトの名無しさん:03/12/17 22:03
>>24
すいません
一文字ずつreadで読んで
equalで一個一個照らし合わせるって事でしょうか?

もしそういうサイトとかあれば教えてください
26無職PG:03/12/17 22:31
1文字づつではなくて指定サイズの文字列づつです。

readを繰り返してEOFに達したらそのサイズを合計すればよいです。
skipを繰り返してEOFに達したらそのサイズを合計する手もあります。
java read skip eof などでググればいいですよ。
>>6
エラーメッセージは本当にそれだけか?
と、疑いをかけてみるテスト
28デフォルトの名無しさん:03/12/17 23:31
ゲームを作っていまして
ボタンを押したらデータを初期化するっていう風につくりたいんですけど
初期化の具体的な例を教えてもらえませんか?
29デフォルトの名無しさん:03/12/17 23:33
>>28
どんな環境でゲーム?
ブラウザ専用?
JavaApplication用?
JavaApplet用?
Servlet用?
J2EE用?
>>28
その聞き方でぴったりの具体例が出てきたら逆にすげえ
31デフォルトの名無しさん:03/12/17 23:39
void 初期化() {
 体力=初期値;
}
32デフォルトの名無しさん:03/12/17 23:41
>>29
アプレットです
33デフォルトの名無しさん:03/12/17 23:43
>>30
ぴったりは望んでないです
>>31
(・∀・)ソレダ!!
ゲームのデータって何?ランキングとかのこと?
36無職PG:03/12/17 23:45
念のためアプレットを起動したクライアントのハードディスク
のデータを初期化することはできません。JAVAの仕様です。
>>28
具体的でない質問に具体的な答えはできません。
38デフォルトの名無しさん:03/12/17 23:47
>>36
カジノゲームでプレイヤーが所持金を持って賭けをするわけですが
そのボタンを押すと所持金が最初の所持金に戻るようにしたいんです
>>36
クライアントがハードディスクの初期化を許すならできるような…
>>37
おまえもしつこいな
>>38
それができなくて、他の部分がどうしてできるのかがわからず
42デフォルトの名無しさん:03/12/17 23:50
void 初期化() {
 所持金=初期値;
}
43デフォルトの名無しさん:03/12/17 23:50
>>38
shojikin = FIRST_SHOJIKIN;
>>38
お前を初期化した方がいいね。

まず睡眠薬を用意しな
配列aには12:00から15:00まで1分刻みで時間(String型)が格納されていて、
配列bには1から9の数字(int型)が格納されているとします。
配列aの長さは12:00から15:00まで3時間の間1分刻みなので181で、
配列bの長さも同じです。
コマンドラインから入力した時間(String型)とa[i]の値が同じとき、
b[i]を返すようなプログラムを作りたいのですが、制御文をつかって
どのように作ればよいのでしょうか?
46デフォルトの名無しさん:03/12/17 23:54
>>41
まだ作成途中なんだよ
>>44
デブはだまってて
>>38
とりあえず、ここ↓を熟読して、わからなかったら適当にキーワード拾ってぐぐればいいんじゃないの
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Button.html
50デフォルトの名無しさん:03/12/17 23:59
>>49
サンクス
>>36
できたらおっかねえよ
>>38
そういうのは初期化とはいわんような。

たとえば>>31のような適当な仕様の場合、
初期値が500円だとして
ある程度金がたまった(10万円程度)ところで一旦ゲームを中断し、あとからゲームを再開するのに
たまった金がなんで金が500円に戻っているんだ? 納得いかん!(バグだ!)ってことになる。

53デフォルトの名無しさん:03/12/18 00:26
コンストラクタ以外のメソッドって
100%、voidかreturnのどっちかがあるのでしょうか?

intもvoidもStringもreturnもないメソッドってありえないのでしょうか?

もしある場合どういった場合に使うのでしょうか?
>>48
頭をバールのようなものでたたけば初期化される可能性は高い。
今すぐやってみな。
>intもvoidもStringもreturnも
イミガワカラン
56デフォルトの名無しさん:03/12/18 00:36
http://black.sakura.ne.jp/~third/programming/java/java41.html
の中にある
for (int i = 0 ;;) {
があるのですが
こんな書き方はじめて見ましたが
for(int i =0;i<10000;i++){
っての右側ってカットできるのでしょうか?

上記でやって一応コンパイルも通りましたけど
その場合forにする意味がよくわかりませんが
>右側ってカットできるのでしょうか?
>上記でやって一応コンパイルも通りましたけど

答えが出てるのに質問しないでくれる?
58デフォルトの名無しさん:03/12/18 00:42
>>57
味はコンパイルは通るけど
「初めて見たけどforの右側はカットするのは常識なの?」
「その場合、わざわざfor文にする意味」
味?
60デフォルトの名無しさん:03/12/18 00:50
>>59
「質問の意」が抜けた
>>56
できる。普通は for(/*初期化*/; /*条件*/; /*更新*/) だが、
初期化・更新が空欄だと何もされず、条件が空欄だとJavaの場合はtrueと見なされる。
どこが空欄でも構わない。C言語でも空欄にできる。

ただ>56のリンク先のソースでは、最初にiを0で初期化してもムダ。
62デフォルトの名無しさん:03/12/18 01:14
staticなメンバ変数が、一つしか存在しないというのは分かりましたが、
staticなメソッドの中の変数はどうなんでしょうか?
63デフォルトの名無しさん:03/12/18 01:14
>>61
ていうかforにする必要性が…
64デフォルトの名無しさん:03/12/18 01:30
前スレの982で
>HelloWorld.javaからHelloWorld.classを作り、HelloWorld.mfファイルを作って
>>jar cfm HelloWorld.jar HelloWorld.mf *.class
>とコマンドラインに入力するとjarファイルは出来たのですが、
>Fatal exception occurred. Program will exit.
>と出て実行出来ません。何の問題でしょうか?
という質問をしたものです。

どうやらHelloWorld$1.classというファイルが出来ており圧縮していなかった
ためだと思われます。985さん、987さん、ありがとうございました。
>>64
インナークラスとか使うといろいろできちゃうからね。
そういった意味でもeclipseとかを使うといいのかもね。

>>62
あなたどなた?
なんに対してのレス?
>>62
ローカル変数はスレッドごとに割り当てられると思っておけばよい
>>65
HelloWorld$1.class だと匿名クラスだね。
68デフォルトの名無しさん:03/12/18 02:06
ソースのコンパイルという作業は
具体的にj2dkのどのファイルが行なっているのでしょうか?
>>68が何を企んでいるのか気になる
70デフォルトの名無しさん:03/12/18 02:24
>>69
実際にコンパイルがどのファイルを通じて行なわれているか
単純な疑問です
java で書かれたコンパイラクラスが tools.jar にあって
それがコンパイルしてます。
javacを覗いてみたら「com.sun.tools.javac.Main」っていうクラス名っぽいものがでてきたから、これかもね
>>54
とりあえずやせろ
74デフォルトの名無しさん:03/12/18 06:58
複数のVMであるファイルを更新・参照します。
この時にロックファイルを使って、他のVMが
そのファイルを更新しているときは、
他のVMがファイルを触れないようにしたいです。
VMが多くなるとロック待ちが長くなってしまったり、
ロックファイルの生成中に他のVMがロックファイルを
作ってしまったりとなかなかしっくりこないです
このあたりで参考になるサイトとかありますか?
排他制御はアトミックな処理ですので、
排他ファイルでなくて、排他ディレクトリにしましょう。
ディレクトリ作成を試みて作れなかった->既に有るときには
ロックされているものとして扱いましょう。
秘密の呪文synchronizedを忘れずに。
■検索結果 java http://ruitomo.com/~gulab/s.cgi?k=java&o=r&l=t

プログラム(pc2.2ch) 012 【初心者】Java質問・相談スレ38【大歓迎】 http://pc2.2ch.net/test/read.cgi/tech/1071613279/
プログラム(pc2.2ch) 001 【Java初心者】今から始めるJava Part01 http://pc2.2ch.net/test/read.cgi/tech/1062422058/
ヒッキー(etc.2ch) 159 Javaについて一緒に勉強するスレ       http://etc.2ch.net/test/read.cgi/hikky/1070949822/
eclipseとTomcatを使ってhtmlからServletを呼び出すんですが、
パスの指定のやりかたがわかりません。
WEB-INFのclassファイルを示せばよいのでしょうか?
それともURLから呼ぶときみたいに/servlet/HelloServletってな感じでよべばよいんですか?
いろいろ試したんですがうまくいきません。教えてください。
ファイル構造は、

Prg -- Web-INF/src -- HelloServlet.java
   |
   |- Web-INF -- HelloServlet.class
   |
   --Index.html

ってな感じです。
(本当はパッケージに入れたいんですが、やっぱりやり方がよくわからないのでこうなってます)
79名梨産:03/12/18 12:32
>>22
亀レスだけど、これでやってみそ。Java1.1でも動く(と思うw)。
暇な時に java.lang.String のメソッドを眺めてるとイイ!!かも。

String str="hogeabchogeggghogeunyahoge";
int i=0,j,k=0;
while(true){
j=str.indexOf("hoge",i);
if(j<0)break;
i=j+1;
k++;
//System.out.println("i="+i+" j="+j+" k="+k);
}
System.out.println(str+" の中に hoge が "+k+" 個ありますた。");
80デフォルトの名無しさん:03/12/18 12:34
Javaで、OSをシャットダウンするプログラムってかける?
>>80
メモリリークで・・・
                               あとは・・・わかるな?
>>81
メモリーリークさせてもJava VMのバグでつつかない限りは、
その被害はJava VM内に留まり外部には影響しないのではないかな。
-メモリーリークさせてもJava VMのバグでつつかない限りは、
+メモリーリークさせてもJava VMのバグでもつつかない限りは、
84名梨産:03/12/18 12:52
>>81 ワラタ

>>80
システムコールで shutdown -h now とかじゃダメ?
以前Winでやったのは JNIでC使っちゃった。
純粋にJavaだけでってのは聞いたことがない。あったら教えて>他の人
85デフォルトの名無しさん:03/12/18 13:11
し、システムコール!?
>>85
ん、システムコールって言葉の使い方、なんか間違ってる?
システムコールって聞くと INT 21h を思い出すんだが・・・・
もっと高レベルなシステムコールがあったら教えて、頭の新しい人
>>87
お前の知識が深いのは解ったから黙っててくれ。知識自慢なぞ誰も
求めちゃいない。お前みたいな香具師が会議を長引かせる。
これごときで「知識自慢」なんて呼ばれるのかよ
俺自分で思ってるより物知りなんだな ハハ
> 自分で思ってるより物知りなんだな
その通り! 21h じゃないアーキテクチャもあるとかそーいう事は
気にしないで突っ走ってくれ ハハ
お前ら皮肉になってないよ
92名梨産:03/12/18 13:52
>>80さんに伝わればいいでし。ガキの喧嘩は好きな人が好きなだけ続けて下さればいい。

>>80
補足しとくね。次の記述でOSのコマンドラインが動きます。
java.lang.Runtime.getRuntime().exec("dir");

try-catch は必要。import java.lang.*; も必要。プロンプト画面は起動しない。
リダイレクトできたりできなかったり、パラメータの引渡しが上手く行かなかったりと、
割とクセが多い。Javaでシェルスクリプトなりバッチファイルなりを生成して、
それをコールするようにすると確実。
UNIX系のシェルの場合は実行属性を忘れないでね。先に実行属性を付けたファイルを
ダミーで作っておいて、Javaプログラムから同じファイル名で生成すれば確実。
あと、カレントディレクトリに注意。シェルのアタマで cd で目的のディレクトリに
移動するように記述しておけば確実。
> import java.lang.*; も必要。
>>93
ほうっておこう
>>92
動かねえぞ、ボケ。
public class SystemCall {
public static void main(String[] args) throws IOException {
java.lang.Runtime.getRuntime().exec("dir");
}
}
java.io.IOException: CreateProcess: dir error=2
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Win32Process.java:66)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at SystemCall.main(SystemCall.java:18)
Exception in thread "main"
>>95
> java.lang.Runtime.getRuntime().exec("dir");
java.lang.Runtime.getRuntime().exec("cmd.exe /c dir");
97デフォルトの名無しさん:03/12/18 15:18
Javaでミリ秒を正確に取得できる方法ってありますか?
Date.getTime() System.currentTimeMillis()はうちの環境(XP 1.4.2_02)だとだいたい10msの精度しかありませんでした。
無限ループで経過時間を出力すると
....
10ms
10ms
20ms
20ms
....
って感じです。より精度の高い時間の取得(日時などは必要なし)があれば教えて頂けますか?
>>97
無い。
BugParade に上がってたが、currentTimeMillis() の実装ではなく、
「currentTimeMillis() の仕様」が修正されて close になってる。

http://developer.java.sun.com/developer/bugParade/bugs/4704111.html
を見ると 1.5 では考慮されるらしい(?)

もしくは RTSJ を調べてみるとか。どっかの会社が実装作ってたと思ったが…
9980:03/12/18 16:46
いろんなお返事ありがとうございました。
もう1つ、質問があります。
逆に電源をつけることってできますか?リモートとかで。
10097:03/12/18 16:51
>>98
なんですと〜っ。
無いんですか・・。
Log4Jでログ出力は**ナノ秒しかかからないとか書いてあったのでてっきりそこまで精確な時間取得方法があるものだと・・。

ちょっとしょんぼり&レスサンクス。
25歳。
昨日は水曜日だった。
マジでお勧め。

http://calendar.yahoo.co.jp/
>>101=Yahoo社員さん?
Yahooのチャットがどうやって実現してるのかがキニナル
アプレットとサーバで通信したり、サーバから他のクライアントへ発言を
コールバックしたり、どうやってるん?
>>102
サーバ側で ServerSocket 使えりゃ簡単に実現できるような…
>>103
試しに作ってみそ。生半可ではできないことが解るから。
105デフォルトの名無しさん:03/12/18 21:03
すいません
while文で
Stringの変数 != null:

はnullになるまでってわかるんですが、
int型の変数 != -1;
の意味がわかりません
なんで-1なのでしょうか?
106デフォルトの名無しさん:03/12/18 21:20
すいません
例外でthrowsの意味がよくわかりません

メソッド単位で例外処理するってのが
どういうことなのかよくつかめないのですが…
(*^.^*)
>>105
終了条件が -1 だから。
109デフォルトの名無しさん:03/12/18 21:39
>>108
数値の終了が表示はされないけど-1ってこと?
>>109
「数値の終了」

なんて文学的な表現なんだ。
>>110
無駄レスするな
>>106
throws は、メソッドで例外を処理する、ではなく、
「このメソッドはこれこれの例外を投げる可能性があるよ」
という宣言です。
あえていうなら、
「このメソッドはこの例外を処理*せずに*投げてしまいます
 (だから使う人が受け取ってなんとかしてね。)」
という意味です。


>>109
Stringの変数 != null: に合わせるなら
Integerの変数 != null: なんだけど、それじゃ使いにくいので
便宜的に null の代わりに -1 を使ってるだけ。なんでも良い。
114デフォルトの名無しさん:03/12/18 22:52
>>112
ありがとうございます
つまり自分勝手な奴ってこと?

後一つ
try〜catchとthrowsの使い分けってありますでしょうか?

こういうときはtry〜catch(自分で処理します)、
こういう処理はthrows(処理してください)
ってどういう処理で使い分けているのでしょうか?
>>114
> try〜catchとthrowsの使い分けってありますでしょうか?
自分で処理できる時は catch する。
自分で処理できない時は throws で投げる。

一般的にコンポーネントの作成者は throws で投げる。
コンポーネントのユーザは catch で捕まえる。
>>114
そのメソッドをコールするユーザが物凄くバカな引数を与えたことが
原因でにっちもさっちも逝かなくなったのに、ちゃんと動いているふり
をしろと???
117デフォルトの名無しさん:03/12/18 23:16
FileReader fr = new FileReader(args[0]);
int i;
String s = null;

While((i = fr.read()) != -1 ){

すいませんこういう処理があって
ファイル内の文字列を読み込んだとき文字がなくなるまで読み込みたいのですが
この場合int型ならファイルの中味が全て数字で取得されてしまいます。

これを文字列として読み込みたい場合どうしたらいいのでしょうか?

FileReaderのreadメソッドはString対応はないみたいで
While((s = fr.read()) != null){
のようにStringで取得しようとしたら
コンパイルエラーが出てしまいます

またintで取得したのをInteger.PaeseInt(i)にしても意味がないし

教えてください
>>117
> FileReader fr = new FileReader(args[0]);
BufferedReader br = new BufferedReader(new FileReader(args[0]));
> While((i = fr.read()) != -1 ){
while(null != (str = br.readLine())){
ああ、そこで!=-1が出たのか?
120デフォルトの名無しさん:03/12/18 23:26
>>118
ありがとうございます
ただ、一文字ずつ読み込んで文字列判定のプログラムを作りたいのですが…

if(s.equals("k")){
counter++;
}
にように特定の文字がいくつあるかカウントしたいのですが…

ReadLineなら一行ずつで処理は早くなるけど文字列判定って出来るのでしょうか?
それとも違うやり方とかあるのでしょうか?
>>120
> 特定の文字がいくつあるかカウントしたいのですが…
FileReader fr = new FileReader(args[0]);
int c, count = 0;
while(-1 != (c = fr.read())) if(c == 'k') count++;

> ReadLineなら一行ずつで処理は早くなるけど文字列判定って出来るのでしょうか?
大文字小文字は正確に。
一行ずつで処理するからといって速いとは限らない。
「文字列」判定はできるよ。
122デフォルトの名無しさん:03/12/18 23:46
>>121
ありがとうございます
うまい事いきました

勘違いしてたのですが
intでもreadで読み込んだときって数字だけじゃなく
文字列も読み込めるんですね

というか
変わったのって
if(i.equals("k")){

if(c == 'k')
だけなんですが
>>122
> intでもreadで読み込んだときって数字だけじゃなく
> 文字列も読み込めるんですね
Reader のサブクラスでは read() で「文字」を読み込む。「文字列」は読み込めない。

> だけなんですが
まぁ質問者がアレな上にアレだったので仕方ないよね。良くあることだし。
>>122
intの下位バイトを使うちゅうだけかと。
Javaはcharとintで実行時のメモリ効率変わらない(実行時はどっちも
4バイト)から、intで受けるようにしている、つうことでは。
>>124
> Javaはcharとintで実行時のメモリ効率変わらない(実行時はどっちも4バイト)
おいおい…

> から、intで受けるようにしている、つうことでは。
Reader#read() の戻り値が char だったらどうやって ストリームの終端を返すつもりだ?
>>125
>Reader#read() の戻り値が char だったらどうやって ストリームの終端を返すつもりだ?
EOFExceptionで充分では。
>>126
> EOFExceptionで充分では。
ストリーム終端は異常状態じゃないので
理由が無いなら例外は使うべきじゃないね。
>>127
まあそのへんは、実際は曖昧ですが。
>>128
曖昧って何が?
new String(null); // ←あいまい
>>130
何の話をしとるんだ?
あいまいの具体例
133デフォルトの名無しさん:03/12/19 00:42
インターフェイスの意味がわかりません
interface GreetingInterface {
  void greet( );
}
class Japanese implements GreetingInterface {
  public void greet( ) {
   System.out.println("こんにちは");
  }
}
class English implements GreetingInterface {
  public void greet( ) {
   System.out.println("Hello");
  }
}
public class Greeting {
  public static void main (String[ ] args) {
   Japanese insJ = new Japanese( );
   English insE = new English( );
   insJ.greet( );
   insE.greet( );
  }
}
とあったときに
インターフェイスをimplementsする必要性というか
クラス名.メソッドだけで普通に実行を処理できると思うのですが…
具体的にインターフェイス部分のvoid greet();
は各クラスにどのようなかかわりを持ってるのでしょうか?
>>133
> クラス名.メソッドだけで普通に実行を処理できると思うのですが…
static メソッドじゃないので無理。
上の例だと、 GreetingInterface を implements したクラスは
必ず void 型の greet( ) というメソッドを持つので
使う側は void 型の greet( ) だけはガチ!と叫びながら安心した日々を送れる。
>>133
そんな例しかかいてない糞教科書は、さっさと捨てましょう。
記述方法が分かっても、なんの役に立つのかさっぱりわからんよね。
>>133
本当にただ「動かすだけ」なら抽象クラスもインターフェースもいらないんだ。
はっきり言って設計の問題なんだ。そこを理解してくれ。
>>133
全く同じ質問を見たことがある。これってやっぱり一度はつまづくのかな?
でもどっちもクソ教科書のせいっぽいな。

例としては Comparable を使ったほうがいいと思うんだよね。
電池クラスも分銅クラスも、「比較」できるので TreeSet に扱わせることができます、みたいな具体例。
139デフォルトの名無しさん:03/12/19 01:00
>>136
というかほとんどの教科書で
色を塗るとかわけのわからん例えばっかだし
書き方は載ってるがなぜ必要なのか?
あることによって何が可能なのかが全く書いていない

そこらへんの詳しいサイトとかないの?
>>139
まともな教科書教えたら書いてあることが分からんとか
抽象的なことしか書いてないとか言いだしそうな予感。
>>139
GOFのデザインパターンを読むと分かるかも。
ただ、早いうちにアレに関わると、単なる整理のための手段であること
を忘れて狂うバカがいるんだよな…
インターフェースの存在意義について触れてる本はあまりないよね。
せいぜい「Javaには多重継承がないがインターフェースならいくらでも実装できる」とか
ピントのズレた解説だったりして。
だから
List list = new ArrayList();
とかこういうの見ても「何の意味が?」とか思っちゃうんだよね。
インターフェースって単なる補助的なものだろ
別になくても困らない
ただ後々面倒かもしれないが
最近は Interface に対してプログラムする。
TDD する場合 Interface じゃないと MockObjectが作りにくい。
>>144
実装を簡単に交換できることによる効能の一つだよね。
ヤヴァイネタの割にマッタリ進行。
>>133
つか、その例がそれ以上発展しないんであれば、教科書が糞。喪前は悪くない
148デフォルトの名無しさん:03/12/19 01:55
インターフェースの話題なので同じく質問です

http://www.techscore.com/tech/Java/Basic/7.html

で「インターフェースで定義されているメソッドを必ず持っている」
と言うのはわかるのですが、なぜそれが
「外部のクラスからは利用の幅が広がる事」になるのかよく分かりません
>>148
典型的な「半可通の自己満足」です。それで人様から金とるつもり
というのは、犯罪的だとさえ思います。お茶濁しバレバレなので
捨ててオケ。
水泳インターフェースを埋め込まれたxxxは全て泳げるようになるのか。すげー
>>148
説明がおかしいので気にすることないです。
「外部のクラスに利用(アクセス)させるために、
 そのクラスが要求しているインタフェースを実装する必要がある」
という方が分かりやすいと私は思います。
利用の幅が広がるのではなく、単に実装の必要性があるだけです。
前者の言は「外部の、ありとあらゆる未知のクラス」という印象がありますが、
実際上は「外部のうち、利用を想定しているある特定の既知のクラス」に対する実装であることが主です。

#Button 以外のクラスから actionPerformed を呼ばれても困るんだから、
 public クラスでぽんぽん ActionListener 実装すな、とか、具体例にいずれ出会うでしょう。
>>151
泳げなかったら DrownException 投げるんだよ。多分。
>>147
教科書選んだのが >>133 だったらアレだが。
>>153
ThreadDeath直行かと。
皆のもの、Java が静的型付け言語であるから
インタフェースが必要だと認識しているか?
>>156
とか言いながら、世の中JavaBeans+リフレクションで型の動的解決
しまくりなフレームワークにミチミチているけどね。
>>157
まあ、まったく静的型付けがないよりは選択の自由があるとも言えるなw
静的型解決するコンパイル言語ってのが時代遅れなのかもと思う今日この頃。
静的型付けができる方が堅固。
実行するまで何が起こるかわからないもんで大規模エンタープライズシステムとやらを作れるか?

動的解決にすれば実行時の柔軟性・拡張性が増す。その方面に最大限進めたのがRuby

要はバランスの問題なんだが、
ベースの静的型付け+リフレクションでちょっとだけ動的解決
ってのはいい落としどころだと思うよ。

リフレクション使いまくり動的解決しまくりってのは一見自由な世界に見えるけど、
逆に言えばJavaの最大の利点である堅固性を低くしてしまっている。
つまり俺はStrutsが嫌いだと。
難しい理由をつけているが、たんにstruts-configを書くのがめんどくさいだけとみた。
そのstruts-configが正しく書けているかどうかは誰がいつ保証してくれるんだい?
163デフォルトの名無しさん:03/12/19 15:31
Hmac-MD5を使いたいのですが
ttp://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jce/JCERefGuide.html#HmacEx
のサンプルを実行するとAlgorithm HmacMD5 not availableとエラーが出て使えません
phpでmd5を使ってhmacを実装するソースがあるのでどなたか移植してもらえませんか?
ttp://jp2.php.net/manual/ja/function.mhash.php

public static String md5 (String text) {
 String crypt = "";
 try {
  MessageDigest md5 = MessageDigest.getInstance("MD5");
  crypt = toHexString(md5.digest(text.getBytes("ASCII")));
 } catch (Exception e) { }
 return crypt;
}
private static String toHexString(byte[] buf) {
 StringBuffer sb = new StringBuffer();
 int n;
 for (int i = 0; i < buf.length; i++) {
  n = buf[i] & 0xff;
  if (n < 16) sb.append("0");
  sb.append(Integer.toHexString(n).toUpperCase());
 }
 return sb.toString();
}
164デフォルトの名無しさん:03/12/19 15:44
javaゲームを外部から仕様を変えてしまうツールって

どういったツールでしょか?
裏ワザみたいにやってみたいです
165 :03/12/19 15:59
ある文字列を暗号化して、また復号するにはどうすればいいのでしょうか?
byte[]だけならうまくいくのですが、文字列で同じようにすると

javax.crypto.BadPaddingException: Given final block not properly padded

というエラーが出てしまいます。
166 :03/12/19 16:01
>>165
ソースは
ttp://www.mit.msn.to/software/CryptM/CryptM.html
にあるものを使っています。
167デフォルトの名無しさん:03/12/19 19:40
JavaでフリーのDTD、XML Shemaのパーサーってないですか?
まただ
パーサじゃないだろ。JAXB でググれ。
JSPってコンパイルする時
Javaファイルに変換されると思いますが
そのファイルへの変換をする実行ファイルはJDKのどこでやっているのでしょうか?

また変換されたJavaファイルはJDK1.4ではどのディレクトリに作られるのでしょうか?
171デフォルトの名無しさん:03/12/19 22:23
FileReaderであるファイルの指定した行だけを読み込みたい時、
具体的には3行目、7行目、12行目だけを読み込みたいのですが
教えてください
172デフォルトの名無しさん:03/12/19 23:15
自宅で作って、完成したプログラムを、学校で実行しても、java aaa.class not found (正確じゃないかも)
とIEの左下に出て、実行されないのですが、何故でしょうか。灰色の四角だけ出ます。
もちろんアプレットでです。


管理者権限じゃない
IEのバージョンが低い(でも、学校もIE6だった)
javaをインストールしてない?(ネットサイトのjavaは実行できる)

など考えましたが、理由が不明です。
173デフォルトの名無しさん:03/12/19 23:24
レイアウト構成など表示するのはJSP
実際のSQLはjavaに書きたいのですが

こうすることで表示レイアウトの設定はJSP一つで
その時のデータの条件で
見るjavaファイルさえ変化すれば比較的、楽になると思うのですが

それの接続方法はどうすればいいのでしょうか?
JSP側でjavaのSQLを引っ張ってくるのに何を設定しなければいけないのでしょうか?
教えてください
おまえら!
質問が分かりにくいぞ!!
175167:03/12/20 00:10
DTD、XML スキーマを解析してJavaのオブジェクトにマッピングしてくれるライブラリを探してます。JAXBはXMLをJavaのオブジェクトにマッピングしてくれるものだと理解してるのですが。
>>172
それはFAQの類だとおもうけど、
>>172の作ったプログラムが、バージョン1.4のJava VM向けにコンパイルされているからだろう
学校のIEのVMが1.4でなければ、当然動かない。
javac -target 1.1 とか、そんなオプションをつけてコンパイルしなおせば、学校のIEでもたぶん動くよ。
ただ、最初から、VM自体入っていなかったら、動かないだろうけれど。
>>171
readLine() で3行目、7行目、12行目の時だけ読み込む
178デフォルトの名無しさん:03/12/20 01:19
>>177
それをどうすればできるか聞いてるんですが
それもできないようじゃここで質問する以前の問題。やり直せ。
>>178
お前は死んだ方が良いカモね。
>>178
いや、まあ死ななくてもいいとはおもうが、
普通に1行目から12行目まで、1行ずつ読みとっていけばいいのではないかな。
必要な行だけ、String型の変数にいれるなり、
3行目,7行,12行目を読みとったときに、その都度必要な処理をするなり
>>171
BufferedReader br = new BufferedReader(new FileReader(filename));
int lineNumber = 1; //0オリジンでなら 0 にする。
String line;
while(null != (line = br.readLine())){
 switch(lineNumber){
 case 3: System.out.println(line); break;
 case 7: System.out.println(line); break;
 case 12: System.out.println(line); break;
 }
 lineNumber++;
}
br.close();
183java3d:03/12/20 09:03
物体をRotationInterpolatorを利用して回転させているのですが
今まではスクロールバーに変化が生じたときに
universe.getLocale().removeBranchGraph(scene);
scene = createSceneGraph();
scene.compile();
universe.addBranchGraph(scene);
このように切り離して再び繋いで、回転速度を変えていました。
スクロールバーに変化が生じたときに、再描画させずに回転速度を変えることは可能でしょうか?
Java3Dは知らないけど、スクロールバーってのはスライダーか何かのことではないかと思った
>>183
http://pc2.2ch.net/tech/kako/1067/10679/1067999989.html
ここの 641 で俺が適当に答えたのが何かしら参考になるかもしれない
JavaのプログラムでOracleのデータベースに文字を入れるときに、
全角と半角が混在した文字だとバイト数がオーバーしてしまいます。

例えば、CHAR(10)と定義してあるところに、
「あいうえお」「0123456789」は入るのですが、
「あい12えお」が入らないのです。
「あ1」とかだと入ったりするので、全角と半角が混在したときに
見た目よりバイト数が増えてるような感じなのですが、
理由分かる方いらっしゃいましたら教えて下さい。
>>186
JIS なのかもな DB板で聞いた方がいいと思うが
>>186
PostgreSQL+JDBCだと日本語は1文字3(20bit)バイトになった覚えがある。
UNICODE扱いのSJISだとか何とか。。。よくわからんかったけれど、そういう
症状だった。
ごく普通のutf-8
190デフォルトの名無しさん:03/12/20 15:11
JDBCとservletを接続して、DBに格納されている値をブラウザに表示したいのですが、処理結果としてブラウザ画面が真っ白になります。
servlet内のHTMLも記述に間違いはないと確信しています。クライアント側にてJDBCとDBの接続は確認しています。
誰か解決策を教えて頂けませんか?
動作環境OS:windowsxp
Tomcat4.1.29
MySQL4.0.17
j2sdk1.4.2_01
mysql-connector-java-3.0.9-stable
191くーまん:03/12/20 15:15
J2MEについてなですが、QVGAに対応させて開発したいのですが、
方法がわかりません。
あと、実機テストとエミュレーター画面とでは表示が違います。
この違いをどうやってカバーしていったらいいのでしょうか?
初歩的なことですがよろしくお願いします
>190
>処理結果としてブラウザ画面が真っ白になります。
>servlet内のHTMLも記述に間違いはないと確信しています。

とりあえず、真っ白になってるときの HTML のソースを、
ブラウザで参照することをお勧めする。
(IE なら [表示]->[ソース])
>>190
もっと具体的に、場合によってはソースを出さないと、解決は無理だね。
その前に >>192 みたいな確認作業はたくさんあるからね。
>>191
携帯Java のスレで聞いた方がよさげ
195デフォルトの名無しさん:03/12/20 15:42
190です。192さんのご忠告通り、 HTML のソースを、ブラウザで参照したところ、問題なく作動しました。
おそらく,mysqlデータベースの設定自体に問題があると思うのですが私には全くわかりません。

>>195
>問題なく作動
意味不明。閲覧できたのがソースなのかレイアウトなのか。
197デフォルトの名無しさん:03/12/20 15:51
190です。192さんのご指摘通り、HTML のソースを、
ブラウザで参照してみたところ、問題なく作動しました。私はmysql4.0.**シリーズには
特別な作業を施す必要があると思うのですが、誰か分かる人がいたら教えていただきませんか?
何をどうするための特別な作業なのかがわからん
>>197
だからはっきり書けよ。
ソースがブラウザまで来てるのは分かったが、
それはソースが悪くて表示できないのか、
それともコピペで *.html に保存しなおしたらレイアウトもできたのか。
200デフォルトの名無しさん:03/12/20 16:10
>>197
教えてもらおうとせずに分かる人に頼め
>HTML のソースを、ブラウザで参照したところ、問題なく作動しました。

>HTML のソースを、
>ブラウザで参照してみたところ、問題なく作動しました

同じ表現を繰り返してもわからないよなあw
責任転嫁癖のある初心者は上達が難しいぞ。
>>201
「IEでソースが参照できるかどうか」が重要だと思ってるんだよ。
import java.applet.*;
import java.awt.*;
public class FontTest extends Applet{
public void paint(Graphics g){
Font font = new Font("Serif", Font.PLAIN, 30);
g.setFont(font);
g.drawString("こんにちは世界",15,40);
}
}
というアプレットを作ったのですが、日本語の表示が□になってしまいます。
どうすれば解決できますか。環境はjdk-1.4.2、FreeBSD-5
教えて下さい。
>>204
font.properties について調べると吉。
環境変数 LANG も関係あったはず。
フォント確認は xfontsel など使うとよい。
<head>〜</head>内で<title>や<style>とかきちんと閉じてないと、
ブラウザの表示は真っ白、でもページのソースを表示させると
HTMLソースは表示されるってケースになるんだけど

>>190
>servlet内のHTMLも記述に間違いはないと確信しています。

らしいので、たぶん違うんだろうな。
>>206
よしんば servlet (ないし JSP) で書いた HTML が正しくとも、
mysql が < > を返してて、それを予測してないんじゃなかろうか?

なんにしろブラウザに渡った HTML が間違ってないか
報告できない時点では、我々はなーーんもできん。

「mysql がブラウザの動作に影響を直接及ぼす」と考えてる雰囲気が濃厚で・・・
>>206 ブラウザがIEだと文字エンコーディングの指定が
間違っていても真っ白になるときあるね。iOfficeが昔
タコなエンコーディング指定やってて使うたびにいらいら
した。カスタマイズしたうちの情報システム部が悪いのかも
しれんが。
>>205
font.properties.jaに指定されているフォントがxfontselで表示できませんでした。
そこでそのフォントをfonts.dirに登録したところ表示できるようになりました。
ありがとうございました。
210デフォルトの名無しさん:03/12/21 00:47
サーブレットでのsendRedirectの使い方でわからないことがあるんですが・・・
画面を上下にフレーム分割をしていて上のフレームの中のボタンを押したときに
セッションがタイムアウトでないなら下のフレームにページが表示され、
タイムアウトなら認証画面に戻すという処理をしているんですが、
タイムアウト時にフレームのターゲット指定を_topにする事は出来ないのでしょうか?
今の状態だと下のフレームに認証画面が出てしまうんです
どなたかわかる方がいらっしゃれば教えていただけないでしょうか?
intの数値をStringの数字に置き換えたいのですが、
桁をそろえるために0を補完してくれるような便利な
メソッドとかってないんですかね?

例えば、4桁として、
211→"0211"
と置き換えたいのですが。

やっぱ自前実装かなぁ…
212211:03/12/21 01:54
age忘れ
213デフォルトの名無しさん:03/12/21 02:05
import java.text.DecimalFormat;
public class SampleFormat {
private static DecimalFormat myFormat = new DecimalFormat("#0000");
public static void main(String[] args) {
int number = 211;
System.out.println(myFormat.format(number));
}
}
MessageFormatも便利かもね
>>213
>>214

ありがとうございます。解決しそうです。
パターンの記述法覚えればいろいろ使えそうっすね>***Formatクラス
1.5 からは printf もどきが導入されるぞ
217U ◆CZtFsGiu0c :03/12/21 10:01
>>210
どのウィンドウに表示するかはクライアントの処理、どの画面を出力するかはサーバの
処理、なのでサーバ側で制御することはできません。やるとしたら、JavascriptのOnLoad
イベントで上側のフレームにログイン画面を出力するHTMLを出力するとかかな。
>>210
_top にリダイレクトする HTML を出力する。
java2日本語APIドキュメントを、ネットが使えない出先に持って行きたいのですが
どこでダウンロードできますか。
現在sunのHPで迷子になっています。
>>219
ttp://java.sun.com/j2se/1.4.2/ja/download.html
このページの下の方に「日本語版 J2SE 1.4.0 ドキュメント」と書かれた所がある。
>>220
わ、さすがに。。33Mあるんですね。
スティックに入れて持って行きます。
大変助かりました。アリガトウございました。
222デフォルトの名無しさん:03/12/21 13:25
>>216
説明しる。
223デフォルトの名無しさん:03/12/21 13:46
win2000を使用しています。
環境変数でpathを追加しようとしていますが、
perlを使っていて、c:\perl\binが環境変数に存在するので、
c:\jdk\binが無効になってしまいます。
環境変数pathにはbinフォルダは一つしか指定できないそうなので、
jdkかperlのbinフォルダを名称変更しようと思いますが、
それによる不具合などはあるのでしょうか、
また、フォルダの名前を変更せずに解決する方法はあるのでしょうか?
>>223
>環境変数pathにはbinフォルダは一つしか指定できない
そんな制約はない。「;」で区切って任意のフォルダを複数指定できる。
そのデマの出所はどこだ?
>>223
>c:\jdk\binが無効になってしまいます。

そこがよくわからんのだが、

path=c:\perl\bin;c:\jdk\bin

ではいかんの?
226210:03/12/21 14:04
>>217>>218
どうもありがとうございます
>>218氏の方法でやってみようと思うのですが、うまく出来ませんでした
<META HTTP-EQUIV="refresh" CONTENT="5;URL=/groupware/mu13a105/project_33/index.html target=_top">
のような書式ではないのでしょうか?
>>223
おなじく、よくわからんのですが、ユーザー環境変数で、
システム環境変数が・・・ってことかも。システム環境変数
にc:\perl\binが入っているなら、ユーザー環境変数には

c:\jdk\bin;%Path%

とするとよいかも。
228223:03/12/21 15:00
http://java.sun.com/j2se/1.4.2/ja/install-windows.html
の「PATH を永続的に設定する方法」にて、
>パスの中に同時に指定できる bin ディレクトリは 1 つだけです (2 番目以降は無視される)。
という記述があるので出来ないと思っていましたが、
今試してみたところ、ユーザー環境変数でもシステム環境変数でも、pathを追加することが出来ました。
アドバイスありがとう御座いました。
229デフォルトの名無しさん:03/12/21 15:06
>>181
これつかうのはどうよ?
java.io.LineNumberReader
JSPのページを30秒おきに更新とかってできますか?
>228
誤訳。
You should only have one bin directory for a Java SDK in the path
at a time (those following the first are ignored), so if one is already
present, you can update it to j2sdk1.4.2_<version>\bin.

PATH中に指定できるJavaSDKのbinディレクトリは一個だけ
(2個目以降は無視される)。 だから、すでに存在するときは
j2sdk1.4.2_<version>\binに更新すべし。
232デフォルトの名無しさん:03/12/21 16:35
if条件文ですが、
if(number.equals("1")==true)
だとうまくいき、
if(number=="1")
だと何故うまくいかないのかを教えてください。
>>232
同じ内容をもつ別のStringオブジェクトというものがありえるから。「"" != new String("")」とか。つーか

>if(number.equals("1")==true)

>if(number.equals("1"))
でいいだろ
>>232
そのnumberのタイプは何?
質問をするのなら情報は正格に。

numberをString型だと勝手に解釈させてもらうが、

object1 == object2 というのは、
object1とobject2の二つの変数が、同じオブジェクトを指し示しているかどうかの比較。

string1.equals(string2)は、
string1とstring2の二つのString型の変数が所持する文が同じであるかどうかの比較。

もちろん、二つのString型の変数が同じオブジェクトを指し示しているときには、
この両者は、同じ文を持つわけではあるが。
二つのString型の変数が違うオブジェクトを指し示していたとしても、
同姓同名の人間がいるように、それぞれ違うオブジェクトが同じ文を所持している場合がある。
>>234
>string1とstring2の二つのString型の変数が所持する文が同じであるかどうかの比較。

より正確には、

string1とstring2の二つのString型の変数がそれぞれ指し示している、
ふたつのオブジェクトが所持する文が同じであるかどうかの比較。

ではないかな
String number = "1";
こういう場合は number == "1" が true になるけどな。
文??
>>237
禿同
>>234
> そのnumberのタイプは何?
型は関係ない。equals メソッドをオーバライドする場合の動作は
厳密に規定されている。
240216:03/12/21 20:14
>>222
auto-boxing/unboxing と可変長引数が導入されるついでに
*Format 系のクラスも C/C++ の printf 系関数みたいに使えるように
拡張されるらしい。
241つーかここ見れと:03/12/21 20:40
242JAVA初心者:03/12/21 21:06
JAVAアプレットを作っているものですが、JAVA仮想マシンがインストールされている
パソコンなら問題なくアプレットを見ることが出来るのですが、インストールされて
いないパソコンでは見ることが出来なくて困っています。例えば

http://www.digitalfilter.com/jpjva3.html

ならばJAVA仮想マシンがインストールされていないパソコン(WinXPで動作確認)でも
見ることが出来るのですが、

http://www.sigmath.es.osaka-u.ac.jp/~n-funao/java-applet/applet/k_system.html

なら見ることが出来ません。私の作ったアプレットは後者のような症状が出ています。
この様な問題の解決法をご存知の方、良ければ御教授願います。
243デフォルトの名無しさん:03/12/21 21:11
すいません以前にも質問したのですが

レイアウト構成など表示するのはJSP
実際のSQLはjavaソースに書いて

こうすることで表示レイアウトの設定はJSP一つで
条件でjavaソースを読み込めば比較的、楽になると思うのですが

それの接続方法はどうすればいいのでしょうか?
JSP側でjavaのSQLを引っ張ってくるのに何を設定しなければいけないのでしょうか?

すいません、本当に教えてください
>>243
この辺でも読んでみて。
ttp://www.atmarkit.co.jp/fjava/rensai/jsp10/jsp10.html
この手のいわゆるビジネスロジックはJSPでやらないのがベストプラクティスなんだが、
生憎@ITにはサーブレットとJSPの連携の方法を書いた記事がない。
そこは手元の本を読んで参考にして。
ヒントはjavax..servlet.ServletRequest#getRequestDispatcher(String)と
javax..servlet.RequestDispatcher#forward(ServletRequest, ServletResponse)
245デフォルトの名無しさん:03/12/21 22:02
javaでデバッグの方法について教えてください
デバッグの方法って従来だと

「System.out.print(〜);でデータが通ってるか」
「ログなどを見てそのデータがどこまで通ってるか」
が多いと思いますが
そのほかにバグを見つけるコツというか
デバッグの方法を教えてください

eclipseで内部のクラスに見に行ってるのもいまいちよく分からないし

今やってる奴でどうしても理由がわからないのがあるのですが
>>245
Eclipseのデバッガ使って納得いかないならお前には無理だと思うんだが。
247デフォルトの名無しさん:03/12/21 22:15
>>246
納得してないわけじゃなく
eclipseで内部の方まで行って何をしてるのか(見ているのか)
がいまいちわからないんですが

ブレークかけて…とかならわかるんですが
プログラムがどう動くのか、コンピュータがどう動くのかがイメージできないんだろう。

assertionについて勉強するというのはどうだろう。
249デフォルトの名無しさん:03/12/21 22:18
なんかJakartaのサイトに繋がらないんですが…
OROの正規表現パッケージが今すぐ激しく欲しいのですが…
どうしましょ?どっかのFTPサイトとかありませんでしょうか?
250249:03/12/21 22:23
URI忘れますた。JakartaというよりApache全体が落ちてるのかなぁ?
どなたか繋がる方いますか?

http://jakarta.apache.org/
>>249 ring.gr.jpなんかどう。
>>245

というか、eclipse のデバッガはもちろん使ってるんだよね?

>eclipseで内部のクラスに見に行ってるのもいまいちよく分からないし

というのが何の話をしてるのかようわからん。

>今やってる奴でどうしても理由がわからないのがあるのですが

具体的にどういった問題が起きているのか、説明してもらわないと、
アドバイスのしようがないが。

原因が複雑なものでない限り、問題が起きてる(と予想される)箇所の
直前にブレークポイントつけて、動作を追っていけば、
対外の問題はわかると思うけど。

>そのほかにバグを見つけるコツというか
>デバッグの方法を教えてください
■王道
全てのクラスの全てのメソッドについて、テストケースを書き、
JUnit 等でテストして、エラーが出なくなるまで修正する。



>>242 なにかかんちがいしてるんじゃないかな。
既にMSVMが入っているとかそういうことはない?
かたっぽが1.1向けにコンパイルしてあるからSunのJREを
インストールしてなくてもMSVM上で動くが、他方は1.1向けじゃないから
SunのVMがないと動かないとかそういう話じゃないの?
本当になにもVMが入っていないブラウザで動かしてもらうなら
JavaPluginを使ってください。
254248:03/12/21 22:29
>>251
レスありがとうございます。
私の探し方が悪いのかもしれないですが、ring.gr.jpにはJava関連のパッケージは
見当たらないんですが・・・

http://www.t.ring.gr.jp/ring/softlib/scatalog.html#lang
>>248
理科大で探してみたら。
ttp://sunsite.tus.ac.jp/pub/apache/
257248:03/12/21 22:32
>>255
ぉぉおおおおっ!!!かっこいい!!!!
すいませんですた。どうもアリガトウございました。
258デフォルトの名無しさん:03/12/22 00:45
Tomcatのwindows版に簡易apacheが入っているように見えるのですが、
(Apache+tomcat連携ではなく)
そのTomcatでphpモジュールを導入することは可能なのでしょうか?

Tomcat4.1をWindows2000に単体Tomcatをインストールして、
Java自体の動作は確認しています。
>Tomcatのwindows版に簡易apacheが入っているように見えるのですが、
('A`)?
260デフォルトの名無しさん:03/12/22 00:55
Tomcatの単独インストールでjava以外のリソースが表示されるのは
簡易Apacheなるものが入っているという認識は間違ってるんですかね?

ようするにwebサーバとして使えるってことだろ
262デフォルトの名無しさん:03/12/22 01:02
ということは、やっぱりphpモジュールを導入することは無理ですかね?
CGIのPHPならTomcatでも動かせるな。
264デフォルトの名無しさん:03/12/22 01:06
TomcatでCGIを動かせるんですね
その路線で調べてみます。
ありがとうございました。
265デフォルトの名無しさん:03/12/22 02:00
認証成功したらセッションを作成し、jspに飛ばすものを作っています
そのjspの中で、もしタイムアウトなら認証画面に戻すという処理をしたいんですが、
どうもうまくいきません
jspの具体的なコードは
<%
session = request.getSession();
if(session.isNew()){
session.invalidate();
response.sendRedirect("認証ページのアドレス");
}else{
%>
---htmlのタグ---
<% } %>
というようになっています
また、認証する時のサーブレットと上記のjspの中でgetId()をしてみたところ、
全く同じIDでしたのでセッションは同一のものだと思われます
一体どこが間違っているのでしょうか?
266デフォルトの名無しさん:03/12/22 02:05
スーパークラスとサブクラスの関係って
extendsしたら
ただサブクラスでスーパークラスが参照が可能になるだけでしょうか?

それとも他に重要な関係とかあるのでしょうか?
267265:03/12/22 02:31
isNewはブラウザにとって新規かどうかを判断するものらしいので、
それが原因かと思い以下のように修正しました
<%
session = request.getSession(false);
if(session == null){
session.invalidate();
response.sendRedirect("認証ページのアドレス");
}else{
%>
---htmlのタグ---
<% } %>
ですが、結果は同じでした
ただ、一つ気になった事があって、
タイムアウト後にrequest.getSession(false);を実行するとnullが返ってくるはずなのに
新しいセッションが作成されていました
これも何かうまく動かない原因なのでしょうか?
268デフォルトの名無しさん:03/12/22 08:10
java で自分のホスト名を知るにはどうすればよいのでしょうか?
外部関数 hostname などを呼び出すことなく、java のなんらかのクラスを
使ってできるのでしょうか?
よろしくお願いします。
java.net.InetAddress
270デフォルトの名無しさん:03/12/22 12:43
文字入力判定ソフトみたいのをSwingの練習で
つくってみようと思ってるのですが、
TextAreaとか使わずに、文字入力の履歴を取ることって
できるんでしょうか?教えてください。
Integer 型の要素がいくつか入っている ArrayList を
int[] にしたいのですが、自分で普通に配列を new して
要素を1個ずつ入れていく以外に、スマートな方法はありますか。

String 型の要素が入っているListの場合は、
(String [])list.toArray(new String[0]) って1行で書けるのに。
SDKがリンク切れでダウンロードできないんですが、
どうしたらいいんでしょう。
SUNには苦情のメールを何度も送ったのですが、改善されません。

以下のページの「J2SE v 1.4.2_03 のダウンロード」のところです。
ttp://java.sun.com/j2se/1.4.2/ja/download.html

JREも同じサーバにリンクが張られていて、同じく落とせません。
>>272
ワタクシはあきらめて88M落としました(´д`;
>>270
「とか」の範囲による。
275デフォルトの名無しさん:03/12/22 13:45
>>272-273
ttp://java.sun.com/j2se/1.4.2/download.html
ここから落とせば?
同じものだよ。
jsp内でセッションを開始していない状態でsession.getId()をやっても
IDが取得できてしまうのは何故でしょうか?
勝手にセッションが作成されるのですか?
277名無しさん@Linuxザウルス:03/12/22 14:12
JavaMailで、GnuPGを簡単に使う方法はないでしょうか?
解説サイトなど、ご存じのかたいらっしゃいましたら、ご教授ください。
よろしくお願いします。
>>276
確か、Sessionオブジェクト生成時に、デフォルトで無ければ新たに生成する、
という仕様になってたような…
コンストラクタにfalseを渡せば、無い場合には生成しないように出来たはず
279278:03/12/22 16:19
コンストラクタじゃなかったHttpServletRequest.getSession()だった罠

>コンストラクタにfalseを渡せば…

getSession(false)とすれば、の間違いでした
280276:03/12/22 16:40
>>278
試しに
session = request.getSession(false);
としてからgetId()をしてみたのですが、やはりIDが取得できてしまいました
何かやり方が間違っているのでしょうか?
RequestDispatcherのincludeの使い方がわかりません。
AServlet → JSP → BServlet で
BservletでAservletをincludeしたら、
AServletで宣言したコンテナとか使えるんですか?
またどうやって使うんですか?お願いします。
282デフォルトの名無しさん:03/12/22 17:56
すみません、質問させていただきます。
awtでJavaのGUIエディタを作ってるんですが紙からはみ出ない印刷と
コンパイルのプログラムがわかりません・・・・。
サンプルがあるので必要でしたら転載します
よろしくお願いいたします。。
ファイルに座標データを出力しているのですが、
そのデータを読み込むときの為に何行書き込んだかを知りたいです。
(配列として読み込む)

データの書き込みが終わったあとに行数をファイルの1行目に書き込む方法
がいいと思うのですが、1行目に書き込む方法がわかりません。
>>283
適当に空白など書き込んでおいてデータ全部書き込んで最初に seek してバイナリで書き込みなおす。
もしくは読み込むときに固定長の構造には取り出さず Collection をつかう。
>>282 印刷のほうは全部コードを晒すんじゃなくて、
紙からはみ出てしまう印刷のコードのサンプルを作って
さらしたほうがいいのではないかと。コンパイルのほうは
SunのSDKツールに含まれているsun.tools.javac.Mainを
使うかもしくは他のコンパイラを使うかまず方針を決めないと
先に進めないのではないかと。

>>283 やりかたはいくつかあると思うけど、そのまえに
読みこむときに配列じゃなくてコレクションに入れるか
とかは検討しましたか?
287282:03/12/22 18:34
>>285
アドバイスありがとうございます。

ではとりあえず印刷の方を…
http://www.uploda.net/anonymous/etc/upload2576.txt
288286(訂正):03/12/22 18:41
>242
何のブラウザで見たのかは知らんが,VINE LINUXのネスケで見ても,
最初のは見れて次のは見れんね.ちなみにmozillaで見たらどっちも
プラグインを入れろと出るし….問題は別のところにありそうね.
ごめそ,286のカキコは無視って.
289278:03/12/22 18:49
>>280
んー
こっちで確かめたらちゃんとnullが返ってきたけどなー

そのページに到達するまでの遷移でどっかでSession作ってたりしません?
遷移毎に明示的に作って渡して、ってしなくてもSessionって持続された気が…
290276:03/12/22 19:01
>>289
いえ、jspを直接呼んでいるので途中でセッションは作っていません
また、request.getSession(false)とsession.getId()をjspでやるとIDが取得できますが
サーブレット内でやるとちゃんとnullが返ってきました
ますますわけがわからなくなってしまいました
>>290
スマソ
どうせ一緒だろうとServletでしか試してなかった罠;
そうかーJSPとServletでは違うのかーまだまだ初心者だなー漏れも
292291=289=278:03/12/22 19:21
>>290
pageディレクティブの属性でsessionってのがあるらしく、そいつのデフォルトがtrueなので
JSPだと生成を明記せずともSessionが存在するみたい。

<%@ page session="false" %>

で無効に出来るんだと。

ぶっちゃけServlet はよく作るんだがJSPは数えるほどしか作ったこと無かったです。
知ったかブリでしたスマソ
俺は初心者なのでフォローできなかったが、最初に思いついたのはそれだった。

>jsp内でセッションを開始していない状態

でもこの表現では既にその点はクリアしてると思うんだが。
294276:03/12/22 19:57
>>292
<%@ page session="false" %>
を試してみたところ、セッションを無効にする事が出来ました
本当にどうもありがとうございました

>>293
紛らわしい表現をしてしまって申し訳ありませんでした
295242:03/12/22 19:57
>>286

ありがとうございます!問題が解決しました!!
JSPがJSPコンテナにロードされた時に暗黙オブジェクトであるsession等が自動生成される訳ですね。
297283:03/12/22 23:33
>>284-285
レスありがとうございます。
1行目に改行を入れて
RandomAccessFile raf = new RandomAccessFile(filename, "rw");
raf.seek(0);
raf.writeByte(n); //nの値は10000等の整数
としてみたのですが、1行目には文字化けしたものしか表示されません。
何がまずいのでしょうか
298デフォルトの名無しさん:03/12/22 23:42
コンパイルエラーの無くしかたのコツってあるでしょうか?
やっぱこれならこれ、あれならあれってすぐわかるぐらいの
慣れしかないのでしょうか?
>>298
Eclipse使おう。ソース保存時にコンパイルするして原因を見やすく
一覧表示してくれるから便利。
>>298
エラーメッセージ読めば大体わかる。
と、いうか、実践にはエラーメッセージでわかるくらいの知識は必要だと思うぞ。
>>297
文字コードの扱いの勉強せい。
302デフォルトの名無しさん:03/12/23 00:31
すいません
指定のディレクトリに新規ファイルを作成するメソッドってなんでしょうか?
度忘れしてしまって、教えてください
googleで探しても範囲が広すぎて、なかなか見つからないです・・・
>>302
google で探すな API リファレンスで探せ
ファイルのことは File クラス
>>302 キーワードを元にgoogleで全文検索かけるなら
site:java.sun.comを追加して検索すると絞れる。
305277:03/12/23 01:13
やっぱり情報ないですかねぇ(汗
306デフォルトの名無しさん:03/12/23 01:18
JBuilder(Personal)をダウンロードして使おうと思っているのですけど、
ユーザー登録してシリアル番号の書いてある添付のテキストファイルがど届いた
まではいいんですけど、そのファイルがなぜが開けれません。
どうしてでしょうか?ちなみにOutlookを使っています。
>>306
PC初心者板に Let's Go
308デフォルトの名無しさん:03/12/23 01:20
BEA Web logic、IBM WebSphereなどがあるけど何が違うの?NO1はIBMらしいけど、
値段、ブランド、いろいろあるけど選択するにあたって何を目安にするんだろ・・・購入するときに
309306:03/12/23 01:21
>>306
修正:なぜが開けれません→なぜが保存できません
310デフォルトの名無しさん:03/12/23 01:22
すいません
便乗して質問です

fileクラスで新規ファイルの生成は
createTempFileになると思うのですが

for(int i=1 ; i < 1000; i++){
}
で1.txtから1000.txtまでの空白ファイルを同じフォルダに作りたいのですが
なかなかうまい事いきません
教えてください
311306:03/12/23 01:23
>>307
あれ?ここ初心者質問スレじゃなかったんですか?!
>>306
PC初心者板から引用
  ・ 名称の省略(例えば"Outlook 2002"と"Outlook Express 6.0"は別ものです)
>fileクラスで新規ファイルの生成は
>createTempFileになると思うのですが

ちがう。
314306:03/12/23 01:25
>>312
失礼しました。Outlook Expressです
316デフォルトの名無しさん:03/12/23 01:27
>>313
ttp://java.sun.com/j2se/1.3/ja/docs/ja/api/
で見ると、らしきのは
createNewFile() と
createTempFile(String prefix, String suffix) しかないと思われるのですが

createNewFile() だと引数、指定できないし
>>316
よく読め よく見れ とにかく使え
思い込みは禁物
>>316
Fileのコンストラクタに引数を指定する。
319デフォルトの名無しさん:03/12/23 01:35
>>318
それも試したのですが
引数がStringなので

for文でintで1000回周すってのがうまくいきませんです
>>319
君は System.out.println でいろいろ試したり遊んだりしなかったのか
普通の初心者本とかなら応用できる書き方が一例としてあるはずだがなぁ
321306:03/12/23 01:40
>>315 winfaqで解決しました。
無だ書きしてすいませんでした。
322デフォルトの名無しさん:03/12/23 01:46
>>320
5冊ほどありますが
全然載ってないです

for文の回し方も載ってるし
createNewFile() でファイルを生成するのは載ってますが

for文で1〜1000個ファイルを別名で生成するのはどこにも載ってないです
for文のintでどうしても引っかかります
>>277 >>305 情報って言ってもなあ。JNIで呼び出す技量がなければ
Runtime#execするしかないでしょ。PGPだとJava向けのラッパークラス
あるみたいだけど。
>for文で1〜1000個ファイルを別名で生成するのはどこにも載ってないです
そりゃそんな具体的なのは載ってないよ
それはプログラマが頭からひり出さなきゃいけない

もう少しヒント(直接は教えてあげない)
とにかく File のコンストラクタには文字列を与えなきゃいけないんだから
int を String に変換できりゃいいわけだ
つまり 100 とかいう数値が "100" という文字列になればいい

こっから下は println メソッドでおそらく経験があると踏んで言うんだが
そこでやったことと同じことをすればいい

つまりメソッドって言うのはオブジェクト型(ex. String) かプリミティブ型(ex. int) しか与えられない
式を与えることなどできない
つまり int な変数などが途中で現れる式をメソッドに与えているとすれば、
実際はその式の結果のみが与えられている。結果はオブジェクトもしくはプリミティブでしかありえない。
そういうものの中で int (正確には int と他の文字列の結合)が String に変換されている、という例を見てるはずだなぁー

見てなかったら経験不足
ここの 15.7.1 でも見てくれ
http://www.y-adagio.com/public/standards/tr_javalang/
325デフォルトの名無しさん:03/12/23 02:20
>>324
ありがとうございます

しかしながら、そもそも
http://java.sun.com/j2se/1.3/ja/docs/ja/api/
でFileのコンストラクタのとこ見ても
コンストラクタでインスタンスは生成されるが
ファイルが生成されるとは一言も書いてないんですが…

その辺でどうしても止まってしまいます

for(int i=0 ; i < 100; i++){
File file = new File(Integer.toString(i));
}
にしても何もおきないし
教えてください。

ひとつのクラスにstaticなメソッド(AAA)とstaticでないメソッド(BBB)があります。
しかし、AAAメソッドからBBBメソッドを呼び出そうとすると
コンパイル時に「BBBはstaticではありません」みたいなエラーが発生してしまいます。
この場合、AAAからBBBを呼び出したい場合どのようにすればうまくいくのでしょうか?
また、その逆(BBBからAAAを呼び出す)はいかがなものでしょうか?
>コンストラクタでインスタンスは生成されるが
>ファイルが生成されるとは一言も書いてないんですが…

頭悪いな
ファイルを生成するメソッドがあるだろう
328デフォルトの名無しさん:03/12/23 02:46
for(int i=0 ; i < 1000; i++){
file = new File(Integer.toString(i));
file.createNewFile();
}

すいません、ありがとうございます
これでできましたけど
でもこれじゃtxtなどの拡張子がでないんですが・・・
>>326
>AAAからBBBを呼び出したい場合
そのクラスのインスタンスを作って使う

>その逆(BBBからAAAを呼び出す)
できる
さっきからの話を総合したら
for(int i=0 ; i < 1000; i++){
file = new File(Integer.toString(i).concat(".txt"));
file.createNewFile();
}
になった


なんだかなぁ
>>330
そんなもん使うな馬鹿
"" + i + ".txt"
prefixはいらんのか
334326:03/12/23 03:24
>>329
解決できました。ありがとうございます。
ちなみに、逆のやり方の場合はメソッド名を指定のみでOK?
>>325
応用力がまったくないところを見ると中学生だと思うからバカなのはしょうがないが
最低限自分のバカさを謙虚に受け止められるようでないと成長しないぞ。
336デフォルトの名無しさん:03/12/23 04:43
今、さらっと全部読んできたんですが

>>281にだれもレスがありません。
もしよかったら、誰かレスしてもらえませんか?
自分も知りたいなと思ったものでして
しらんけど、AServletの中で
request.getRequestDispatcher ("BServlet").include (request, response);
とかやれば、AServletの出力の中に、BServletの出力(別の文書でもいいけど)が丸っと埋め込まれるってだけでしょ?
つかったことないけど。それ以上の深いやりとりは、RequestDispatcherの仕事ではないと思われ
>>310
馬鹿は馬鹿故に馬鹿な質問を繰り返す・・・・か
339デフォルトの名無しさん:03/12/23 12:22
JETの体験版って結局JREがいるって本当ですか?
341 :03/12/23 13:26
textファイルやhtmlファイルを開くのにファイルに関連付けられているアプリケーションを起動して開きたいんだけど
どうしたらいいんですか?Windowです。
SWTなら
Program program = Program.findProgram("xls");
program.execute("./test.xls");
でできるっぽい。
Swingはシラね
Windowsならコマンドラインからc:\test.htmlとか実行しても勝手に関連づけられてるのが起動するっぽい。こっちの方が早い。
344(;´Д`):03/12/23 15:11
アプレットで質問なんですけど、
IEで表示させたときに、プログラムの変更が
反映されなくて困ってます。
インターネット一時ファイルの削除もしました。
なんででしょうか?

***** Javaソース *****
import java.awt.*;
import java.applet.*;

public class HelloWorldApplet extends Applet {
public void paint(Graphics g) {
g.drawString("Hello World",20,20);
// → g.drawString("Hello World!!",20,20); に変更しますた。
}
}

***** HTMLソース *****
<html>
<title></title>
<body>
<applet code="HelloWorldApplet.class" width=100 height=100>
</applet>
</body>
</html>
345デフォルトの名無しさん:03/12/23 15:15
>>344
プロキシのせいかも。
IEのメニューバー>ツール>インターネットオプション>「接続」タブ
「ローカルアドレスに対してはプロキシサーバーを使用しない」の
チェックを入れてIEを再起動してみよう。
346(;´Д`):03/12/23 15:18
>>345
すんません。
ローカルでHTML開いてるんで
プロキシじゃないと思われます。
347(;´Д`):03/12/23 15:21
あと、今プロキシ使ってないんす。
キャッシュが残ってるんだろ
349デフォルトの名無しさん:03/12/23 15:25
>>344
その様子だと「ページを表示するごとに確認する」にもチェック入れてるんだろうな……。
なら、
コンパイルしたclass/固めたjarファイルがちゃんと書き換わってるか、日付を確認してみれ。
「上書き」されていないというのは、ありがちな状況だ。
350(;´Д`):03/12/23 15:30
>>348
キャッシュって
ツール→インターネットオプション→全般タブ
→ファイルの削除ボタンで消せますよね?

>>349
「ページを表示するごとに確認する」にチェック入ってます。
コンパイルしたclassを削除して、やってみますたが
ダメでした(´Д⊂グスン
351デフォルトの名無しさん:03/12/23 15:33
質問いいですか?
Eclipseってタダで手に入りますか?
ダウンロードページに行って見たが、いまいち確信が持てない。
散々タダだって話は聞いてるんですが。
352344(;´Д`):03/12/23 15:34
>>351
無料です。
353 :03/12/23 15:35
>>342
GUIはSwingだけど
import org.eclipse.swt.program.Programしたらできました。ありがとう。

>>343
確かにコマンドプロンプトからなら起動するけど
Runtime r = Runtime.getRuntime();
try {
 r.exec("G:\\index.html");
}
とかや
r.exec("cmd.exe G:\\index.html");
じゃできませんでした。
どこがおかしいのかな?まあswtつかってできたからいいけど。
>>351
うんこ
>>353
cmd /c
356デフォルトの名無しさん:03/12/23 15:37
>>352
ありがとうございます。
早速ページに行ってダウンロードしてきます。
Jbuilderは使いにくいんで。
>>351
何故だかは知りませんが、無料です。
素直にダウンロードして、IBMの政治的戦略の恩恵に与ってください。
358344(;´Д`):03/12/23 15:41
IEを起動しなおしたら
更新されました。
アプレットってそういうもんなんですか?
359353:03/12/23 15:43
>>355
できました。どうもありがとう!
>>358
いいや
>>358
Ctrl+更新
>>358
やっぱメモリ上にキャッシュが残ってたんじゃん
363344(;´Д`):03/12/23 15:55
>>361
Ctrl+更新 で更新されたんですけど、
Ctrl+更新 だとなんで更新されて、
ブラウザの更新だけだと更新されないんですか?
>>356
Language Pack は 2.1.2.1 落とせよ。
あとで、ちゃんと金は払えよ。捕まるぞ。
365デフォルトの名無しさん:03/12/23 17:33
こんどSJC−P受けるんですけど、
たくさん例題ほしいです。
>>365
で?
367デフォルトの名無しさん:03/12/23 17:49
>>363
聞きたいか?本当に聞きたいか?なら教えてやる。

















仕様です。
368デフォルトの名無しさん:03/12/23 19:04
OC4Jってどんなものですか?
利点とかってあるでしょうか?
369デフォルトの名無しさん:03/12/23 20:46
SQLの埋め込みで
StringBUfferで分けて書く人と
Stringで一気に書く人いますけど

どっちがいいのでしょうか?
見やすい、修正しやすいではStringBufferだと思うけど
マシンにかかる負担とかなどを含めてそれぞれのメリットを教えてください
>>369
SQLをStringBufferで組むやついるの?
Stringで書けばいいじゃん。
基本的に固定の文字列だろ。
StringBufferで見やすい・修正しやすいっていのもよくわからない。
それに、そんなところの負荷より、比べモンにならんくらいDBアクセスの負荷があるから、そんなこと気にしない。
371 :03/12/23 21:01
>>370
StringBuffer sb 〜
sb.append("select ")
・・・

なんていくらでも存在するぞ
>>369
入力条件によりwhere句にやたら変数をくっつけて使う場合だとStringBufferかね。例えば

String a = "select kuso from unko where geri = '1' ";
if (条件1) a += "and benbi = 0 ";
if (条件2) a += "and paper is not null";

こんなんだったらStringBufferだろう。
>>372
1000行もそんな行が続いたり、ループの中に入っていたりするなら
StringBuffer を使うだろうが、高々数個の条件を結合するなら String で十分。
使い捨てのオブジェクトをそんなに気にすることはない。
>>372
それをStringBufferにすると、見やすくなったり修正しやすくなったりするのかなぁ。
>>374
見やすくなったり修正しやすくなったりは全然しないが、無駄な中間オブジェクトはなくなるだろう、
っていうか>>372程度なら特にそのままでもいいと思うけど、こういった条件が10も20も
指定されたり、インラインビュー使ってそこでもいろいろな条件の指定があったりするケースも多いから
そういう場合はStringBufferを使うべきだろう。
ステップ数を稼ぐためにStringbufferを使ってる人多いんじゃないの?
一個一個のSQLは大した数ではないが合計したら結構いくし
Javaでステップ数もねー気がするけど
>>377
総計が5000→6000になって
それで貰えるお金が変わる契約なら
ちょっとでも稼ぐ

引数とかも一個一個改行する
そうじゃなくて、Javaの仕事でステップ数換算の契約なんかあるのか?
>>379
少ないかもしれないけど、あることはある
もちろん露骨なステップ伸ばしはクレーム来るけど
お金も言うほど違うわけではないし
381デフォルトの名無しさん:03/12/23 22:23
IEで2ちゃん見てるんだけど、同じコピペAAの連投荒らしの書き込みをJAVAで見た目上消せないものか?と
オモタんやけどどないでしょう?

↓で置換するのは長すぎてむりやった。
JavaScript:document.body.innerHTML=document.body.innerHTML.split('').join('');focus();
>>381
素直に2chビューア使え
>>382
んーやっぱそれしかないんだろうなと思うけど、それじゃマ板住人の回答として不適切かも。
絶対にJAVAじゃ無理なんだったらそう答えて。
>>383
ここはム板なんですが。
初心者スレにおいて、質問に対してもっとも手間のかからない解決策を示すのに何か問題でも?
385デフォルトの名無しさん:03/12/23 23:22
javaで「API」ってよく聞きますがこれって何を指しているのでしょうか?
APIリファレンスのことでしょうか?
386デフォルトの名無しさん:03/12/23 23:28
>>384
失礼。ム板ですた。しかし初心者スレじゃなくて初心者歓迎なだけよ。
JAVAでの解決策を問うてるのだが。JAVAスレですから。
387デフォルトの名無しさん:03/12/23 23:28
PrintWriterとBufferedWriterの使い方の違いについて教えてください。

Platformには、下みたいな使い方とか出てたのですが,
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

PrintWriterだけでもfileに書き込めるみたいですし、、
BufferedWriterを使うのと何が変わるのでしょうか?

また、
BufferedWriter out
= new BufferedWriter(new PrintWriter(new FileWriter("foo.out")));
なんてこともできるのでしょうか?

よろしくお願いします。
>>387
API仕様をもう一度読んでみよう。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/BufferedWriter.html
>文字をバッファリングすることによって、文字、配列、または文字列を効率良く
>文字型出力ストリームに書き込みます。

>バッファリングしない場合は、print() メソッドを呼び出すたびに文字をバイトに
>変換してただちにファイルに書き込むので、効率が非常に悪くなります。
>>381
Javaでプロキシでも作っては?
>JavaScript:document.body.innerHTML=document.body.innerHTML.split('').join('');focus();
おまいはアホか
そりゃJavaじゃないだろ
板違いだ
>>1を見ろ
だめぽはぬるぽ、ぬるぽはだめぽなのじゃぁぁ!!
>>369
もしかしてSQLパラメータをStringの+やStringBufferで結合してるならPreparedStatement使ってください。

もしかするともしかするので

そうじゃなけりゃどっちでもかわらん。Stringの方が見やすいかな。
お邪魔します。偉い人どうかおしえてください。
javamailを使ってメールを送る簡単なプログラムを作っています。
一応、ちゃんと動いてはいるんですが、送信中であることをラベルに
表示している部分がうまく動きません。
(送信が終わってしまってから表示が更新されます)
コードはこんな感じです。

jLabel1.setText("おくってます");
jLabel1.repaint() ;
SendMailThread thread = new SendMailThread(namae,from,to,smtpHost,subject,mesgTxt);
thread.run() ;

「SendMailThread」は 中でjavamailを呼び出しているだけです。
最初はスレッドにせずに直接コードを書いていたのですがラベルが更新されないので
試しに書き換えてみたのですが・・・

どうせしょうもない事を間違えてるんだとは思うのですが・・・

あと、表示はともかくとして、JARファイルにして実行するとなぜかメールの送信ができません。
たぶん、JARファイルに追加してるクラスが足りないのだと思うのですが・・

あ、環境はJBuilder9(Personal版)+JDK1.4.2+javamail1.3.1です。
どうでもいいけどJBuilder9(Personal版)を使う理由は?
Eclipseを使う気はなかった?


JARファイルにsmtp.jarとか追加してる?
395デフォルトの名無しさん:03/12/24 22:53
以下の内容の、linuxのバッチファイル(hoge.bat)が有り、
java -classpath (絶対パスでのクラスパス)・・・ hoge.hogemain

. hoge.bat
で入力しても、
・・・NoClassDefFoundError:hoge.hogemain
となって実行できない
クラスパスが通っていないようだ

しかし、バッチファイルの内容を直に入力すると実行できる

わかる人いませんか

>>393
> どうせしょうもない事を間違えてるんだとは思うのですが・・・

重要な事を理解していない。
シングルスレッド と invokeLater で検索しれ。
その無理矢理付けた repaint もいらない。
Javaでフォルダを作りたいのですができません。

Googleで Java フォルダを作成 とかで検索すると、Javaを使用するための設定方法ばかり出てきてしまいました。
また、JDKのドキュメントをダウンロードして検索しましたが、文字コードがUTF-8だったので検索できませんでした(´д`;)

簡単でいいので教えてください。
>>395
それってクラスパスっつーか、hoge.hogemainが見つかんないって言われてるんじゃない?
クラスパスにカレントディレクトリ入れてます?
400397:03/12/24 23:06
>>398

Linuxと同じコマンドでしたか。
さっそくやってみます。ありがとうございます。
>>395
質問と関係ないが Linux って .bat とか普通つけるのか?

>>397
File#mkdir
JDK のドキュメントは ISO-2022-JP だが?
どっから落としたの?
402デフォルトの名無しさん:03/12/24 23:11
FileReader fr = new FileReader(args[0]);
FileWriter fw = new FileWriter(kakikomi);
String line;
int j;
for(int i = 0; i<100 ;i++){
int counter = 0;
while(( j = fr.read()) != -1){
if(i == j){
counter++;
}}

でファイル内の文字がそれぞれ1〜の場合、
カウントアップして読み込む
それを1〜100まで繰り返す処理をしたいのですが
うまくいきません
全て0になってしまいます

java初心者なので上級者からしたらソース記述も下手と思いますが、
もっと違ううまい書き方があれば教えてください
>>395
質問と関係ないが . コマンドはカレントシェルで実行するコマンドだから、
ちょっと違うぞ。
環境変数が書き換えられるのは普通は望ましくないので
./hoge.bat で実行しろよ。
もちろん xビットは立てとけよ。
404デフォルトの名無しさん:03/12/24 23:23
>>402
文が変だった・・・
ファイル内ある文字をそれぞれ読み込み
それをforで1〜100まで繰り返し
forのintとファイル内の文字を照らし合わせて
もし一致したらカウントアップしたいのです
ありがとサン
明日試してみます
406395:03/12/25 00:27
395=405でした
家でコンパイルしたアプレットが、家のPCでは動くんですけど、
他のPCでは動かないんです(つд`)
アプレットの画面が灰色のままなんです。
バージョンは1.4.1でOSはwindowsXPです。
何か助言をください。。
1.1で動くようにするか、他のパソコンに最新のJRE入れるかしなさい。
409407:03/12/25 00:40
>>408
と、いうことは他のPCに最新のJREが入っていないと
最新のバージョンで作られたアプレットは見れないということですか?
410デフォルトの名無しさん :03/12/25 02:30
Javaって標準入出力ストリームのバッファサイズって変更できる?
>>395
hoge.shの間違いとかでねえよな?
>>402
1行1行追って見れ。
>int counter = 0;
位置がおかしい
413393:03/12/25 14:38
>>394様、ご回答ありがとうございます。

すみません、書き方がおかしかったです。
自分の作ったアプリだけをjarファイルにして、マニフェストに
Class-Path: mail.jar activation.jar
の1行を追加して、自分の作ったjarファイルと、mail.jar activation.jar
を同じディレクトリに置いて実行するとうまく動くのです。

しかしjarファイルにmail.jarとactivation.jarも追加すると、ClassPathが通らないみたいなんです。
クラスが足りない、というのはマニフェストにこの場合どうやってクラスパスを指定
したらいいんでしょうか?ってことです。すみません。

>>396様 ご回答ありがとうございます

仰せのとおり検索したところ解決策をハケーンいたしました。
うまいこと動きました、ありがとうございます。神様仏様!!
414デフォルトの名無しさん:03/12/25 15:39
1秒たつまでカウントをインクリメントして
FPSを表示させるプログラムを作りたいんですけど

時間をはかるAPIってありますか?
>>414
>時間をはかるAPI
java.util.Timer とか java.lang.Thread とかその辺
>>413
Jarファイルのクラスパスについてなら、いくつか前のスレに書き込みがあった。
その時の結論では、Jarファイルの内部に、別のJarファイルを入れても、
内部のJarファイルには、クラスパスを通すことができないというものだったとおもう。
内部にいれたいJarファイルは、いったんばclassファイルに分解するのがいいかと。
417393:03/12/25 18:12
>>416
了解いたしますた。
素直にあきらめまする。

すみません、ついでに質問です。、
JBuilderってカスなんでしょうか?たしかに動作おそいなーとか思ったんですが・・・
Eclipse使ってみたんですが、GUIビルダーがないのがちょっと不便かなって・・
プラグインかなにかでなんとかなるもんでしょうか?
>>417
classpathとjarについては、JavaWebStartなどで、
必要なjarファイルをネットワークからダウンロードするという解決法も、
場合によってはあるとおもう。

JBuilderについては、自分の手慣れた物を使えばよろしいかと。
>>417
ここのVisual Editorを入れるとEclipseでもGUIビルダが使えるようになる。
ttp://www.eclipse.org/vep/
Visual Editor自身が重いので結局JBuilderとかわらんかも。
コマンドラインで下記みたいにすると
署名つきjarファイルの検証ができるけど

jarsigner -keystore myKeystore -verify test.jar

これをプログラムからやるAPIを誰か知りませんか?

JREだけで動かしたいのでコマンドラインを起動ってのはナシの方向で。

> ttp://www.naney.org/encyclopedia/jarsigner.html
JAVA(アプレット)で文字を描画したいんですけど
drawString(文字列,開始X座標,開始Y座標)
を使うと、アプレットの領域を越えて描画するんです(折り返してくれない)
色々と調べて、LineBreakとか調べたんですけど、GUI用みたいだし…

判る方がいらっしゃいましたら教えて頂けませんか?
>>421
やり方はいろいろあるけど・・・
StringTokenizer で各行分解して描画すれば?
でなきゃ 2D でこの辺があるみたいだけど
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/font/LineBreakMeasurer.html

LineBreak ってこのこと?
>>420 オライリージャパンのJavaプログラムクイックリファレンス
にそのものずばりなサンプルがのっている。
424デフォルトの名無しさん:03/12/25 21:07
javaをマスターするコツって何でしょうか?
小さいプログラムをひたすら組んでいくことでしょうか?
大規模になものになると一人じゃ無理だし

本だけの知識だけでは業務では全然ついていけないですよね?
>>424
まずは、マスターというのがどういうことか。

たとえば、日本語をマスターするのはどういうことか?
日常生活で日本語に不自由してなくても、小説のような作品や、科学論文は書けないだろう。

Javaを知ってても、モノを作るには、そのモノに対する知識が必要なのだよ。
426デフォルトの名無しさん:03/12/25 21:36
>>425
モノの知識があっても
javaをある程度知らなければ話にならないだろ
本だけの知識じゃなくね

ある程度体で覚えなきゃいけないだろ
427デフォルトの名無しさん:03/12/25 21:46
textファイルの文字列をBufferedReaderで読み込んで
Excelのシート1に上から書き出していくにはどうすればいいのでしょうか?
beansコンポーネントが入ったA.jarファイル(全クラスmybeansパッケージに含まれている)とA.jarを使っているB.class(mainあり)があるとき、プログラムを実行するにはどうすればよいでしょうか?
java B
では実行できませんでした。
431デフォルトの名無しさん:03/12/25 22:34
引数で
method(1 + "String");
とあれば引数はint型でしょうか?String型でしょうか?
Nullpo型
>>431
仮に int だったとしてどんな値になるんだろ?
434貧乏紙:03/12/25 22:51
>>431
エラーだと思ったけど。違った???
確か基本データ型とオブジェクト型が合いませんとかなんとかコンパイラー
がいってくるような気がしたけど。
435デフォルトの名無しさん:03/12/25 22:55
インスタンスの作り方って
クラス 変数 = new クラス;
以外にもあるのでしょうか?

たとえば
クラス 変数 = クラス.メソッドみたいな処理は
すでにインスタンス化されたのを省略して書いているのでしょうか?
>>431
>>433も書いてるが、intにはなりようがないだろ

>>434
うんこの海へいってらっしゃい
>>435
staticメソッドの戻り値がインスタンス化されたクラスの参照値
438421:03/12/25 23:02
こういうソース書いてます(貰ったそのまま)
for ( int i=0; i<15 && Load_Text[i]!=null ; i++ ) {
g.setColor( Color.black );
g.drawString( Load_Text[i], 5, (i*22)+22);
}

Load_Text[]にはBufferedReaderで読み込んだ文字列が入ってます
でも、このソースだと(当たり前ですが)右端で改行されません
422さんの言うようにトークンで区切って、そこで改行するのが現実的ですかね
最初は一文字ずつ書いていって、文字数*フォントサイズがアプレットのwidthを
超えたら改行するとかも考えたんですけど…訳がわかりませんでした
439貧乏紙:03/12/25 23:20
>>436
海に行ってきまつ・・・
String型で定義されている多数のオーバーロードメソッドによりString型と
して扱われます。
method(1 + "String");

うおぉぉぉっ
コンパイルエラーにならねぇ!

いつから?
ばか >440
>>440
Java Language Specification first edition の頃から
443デフォルトの名無しさん:03/12/26 01:04
親クラスと子クラスの継承関係がいまいちわかりません
子クラス extends 親クラス
とあった場合
「子クラスは親クラスのメソッドやフィールドを参照できるようになる」
の他に何が出来るのでしょうか?
444デフォルトの名無しさん:03/12/26 01:20
rmicのエラーに対処できません。ご教授お願いします。

ttp://www.hellohiro.com/rmi.htm
↑このページにあるRMIのサンプルをやってみたんですけど、
rmicのコンパイルがうまくいきません。
このページの
HelloWorld.java(インタフェース)
HelloWorldObj.java(オブジェクト)
をまずコンパイルして、classファイルを生成させました。
次に rmic HelloWorldObj と入力したら
error: クラス HelloWorldObj が見つかりません。
エラー 1 個
だそうです。他のページのサンプルをやっても、こうなります。
>>444
やってみたが特に問題なく***_Skel.classも***_Stub.classも出来たぞ?
環境に問題があるのでは?

J2SEのバージョンとかクラスパスとかもっかいチェックしてみては?
>>445
やはり、私の環境に問題があるみたいですね。
J2SEは1.4.2_01です。環境変数の登録は問題ないです。
とりあえずバージョンを変えて、もう一度トライしてみます。
>>446
>他のページのサンプルをやっても、こうなります。
フーン
すみません。Java のプログラムを作る場合、Applet と Swing どちらが
いいのでしょうか?個人的には Swing が好みなのですが、
ネットで配布して Win や Mac などの各機種で使ってもらう場合を考えると
Swing は簡単には実行できないのかな、と考えています。
>>448
Swing と Applet は互いに排他的な技術じゃないと思われ…
まあ言いたいことはわかる。アプレットとアプリケーションてことだろな
いやSwingなアプレットとAWTなアプレットのことかも知れないし。
それはそうと1.5のアルファ版が公開されたようで。

隼(1.4)から虎(1.5)へ〜JDK1.5について!
http://pc2.2ch.net/test/read.cgi/tech/1056807119/l50
452U ◆CZtFsGiu0c :03/12/26 12:27
>>443
親クラスの型で子クラスのインスタンスを参照できる。
ポリモーフィズムとか多態性とか聞いたことないですか?
>>424
実際なんか作れ

モチベーションが続くように
難しすぎず自分が興味のある物がいい

大抵簡単なゲームってことになるが。
>>438
>訳がわかりませんでした
そのわけのわからんのでも、実際やってのけてる人は現実にたくさんいる
それに自分も挑戦して「プログラミング能力」として糧にするのか、
それとも Java2D なんかを活用して「Java通の知識」として糧にするのかってことだな

時間のある限りはどっちもやるのをお勧めする
失礼します。
現在独学でJavaを勉強し始めて1ヶ月の者で、try・catchでエラー処理をする必要性が理解できた所です。
オブジェクトを参照している限りオブジェクトの領域が解放されないとの事なのですが、オブジェクトを参照している状態でエラーが発生した場合、
catch文中で明示的にインスタンス変数にnullを入れるというのは一般的に使われているのでしょうか?
また、使われていないのならば、一般的にどのような処理を行うのでしょうか?
>>455
場合に依りけりだが、
不要なものをそれ以上参照してても意味がないなら、
さっさと null にしてしまっていいし、まだどっかで使うなら当然そのままにしておけばいい。

「不要になったけど、破棄する前に別のクラスが後始末をしたいかもしれない」とかなら、
破棄用のメソッドを用意して、利用者に破棄する旨を通知してから null 代入・・・
なんて設計も考えられるが、似たようなことをする API にそのうちお目にかかるだろうから、
それから勉強してみてもいい。
すみません。Swingでプログラムを作ったのですが
どのように配布すれば皆さんに使っていただけるでしょうか
インストーラ付きのパッケージングとかはできないでしょうか
>>457
jar 化して jar だけで起動できれば使う側は楽
Win 向けに bat など用意してもよい
Java Web Start も勉強してみると吉
ただ何にせよ JRE はインストールしてもらわなきゃいけない
JET を使ってもいいけど高いからねぇ

アプレット版(必要に応じて機能限定)も作って、
体験版的に使ってみてもらうと後押しになるかも
<body>
<a href="http://www.hoge.com/hoge/" onClick="func()">foo</a>
<a href="hoge/hoge.html">bar</a>
<img src="img/hoge.gif" alt="hoge">baz</a>
</body>

こういうHTML文書がありましたら、リンクしているところの文字列だけを取得したいのですがどうすればいいでしょうか。
上記のホームページの場合 func() を取得したくないのです。

javaのライブラリにそういうのを取得してくれるライブラリはありますか?
無ければ正規表現で自力でやるしかないのですが...
460457:03/12/26 18:11
>>458
ありがとうございました。
おっしゃる通り文献にもありました。
ただ Java環境が整っていないなどのマシンにも対応すべくランタイム付き
にしたほうがよいのでしょうかね
http://ccs.cla.kobe-u.ac.jp/98/sae/WWW/no6.html
>>459
使ったこと無いけど HTML を扱うクラスがある。その名も HTML。
眺めてみてはどうか。

XML を扱うやつもあるけど、
こいつは XHTML (<br> を <br /> にするとか) でないとダメだろうから使えないかな?
462U ◆CZtFsGiu0c :03/12/26 18:49
>>459
javax.swing.text.html.HTMLEditorKit.ParserCallbackを使えばある程度の
ことはできると思う。本格的なパースに使うとはまると思うけど。
463貧乏紙:03/12/26 19:19
最近、Javaのスレ乱立してない?
いつからなのか___
464デフォルトの名無しさん:03/12/26 19:55
SwingのJOptionPanelのshowxxxDialogで表示されるダイアログのフォントを設定する方法を教えてください。

引数で渡す親パネルのフォントが引き継がれるかと思ったら、結局デフォルトのフォントが使われてしまい、困っています。
465459:03/12/26 19:56
>>461,462
ありがとうございます!
さっそくやってみます!
466デフォルトの名無しさん:03/12/26 20:37
java.awtとjava.utilをimportしてコレクションのListを使用すると
Listへの参照が曖昧とでるんですがどうしたらいいですか?
使いたいのはutilのほうです。
java.awt.List awtList = new java.awt.List();
java.util.List collectionList = new java.util.List();
>>467
試してみます。ありがとうございます。
>>456
遅くなりましたが、ありがとうございました。
470デフォルトの名無しさん:03/12/26 21:56
java1.4の予約語がわかりません。
もしよかったらすべて教えてください。お願いします!!
>>470 >>1にある言語規定読めば書いてあるよ。
472デフォルトの名無しさん:03/12/26 22:10
>>471
ホントダ〜〜〜〜!どうもです(汗
473444:03/12/26 22:40
rmicでのコンパイルができました。
以下のコマンドで成功しました。
rmic -classpath .;%CLASSPATH% HelloWorldObj
カレントディレクトリはHelloWorldObj.classファイルがある場所です。

クラスパスはちゃんと通っていたのになぁ。一応ご報告ということで。
>>473
・・・
Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。


これを見てやってみましたが、できません。。
コマンドプロンプトで set CLASSPATH=%CLASSPATH%;.
と、やりましたけど、それだけじゃだめなんですか?
ソースコードを見せてもらわないと何とも言えない
>>475
俺のCLASSPATHはこうなってる。
.;C:\j2sdk1.4.2_03\lib\tools.jar
478デフォルトの名無しさん:03/12/26 23:32
今日、コンパイルをしたところ、”コードが大きすぎます。”
というエラーがでたのですが、このエラーはどのような条件で起こるのでしょうか?
ちなみにコードは変数が一つのみ、これといった処理は行っていません。
その変数が4次元配列で、かなりの量の要素数です。
環境はjdk1,4.2です
479475:03/12/26 23:33
>476
ソースコードとは、コンパイルしたJAVAのソースですか?

>477
tools.jarって何ですか?(つд`)

何も知らなくてすいません○| ̄|_
生まれてきてすいません○| ̄|_
>>478 そのとき、
(Code of a method longer than 65535 bytes)
とか出てなかった? それならそういうこと。
482デフォルトの名無しさん:03/12/26 23:56
>>481
そういうメッセージはでませんでした。
でもやっぱりそういう内容のエラーなんでしょうね。
ちなみに変数1つで500kバイトあります。

この方法はあきらめます。
483デフォルトの名無しさん:03/12/27 00:27
アプレットについて教えてください。
Microsoft VMでは、System.out.println()でJavaコンソールに
文字列を表示出来るんですが、JRE(?)では、何も表示してくれません。
コンソールに文字を吐くにはどうしたらいいでしょう?
>>483
表示されるよ
485デフォルトの名無しさん:03/12/27 01:05
tomcatをインストールした時にデフォルトである
binってフォルダがあると思いますが
binって何の事でしょうか?
486デフォルトの名無しさん:03/12/27 01:17
>>484 表示されてました。すみません(汗
import java.applet.Applet;
import java.awt.*;
public class MyApplet extends Applet{
  public void paint(Graphics g){
    System.out.println("Hello from Java!");
    g.drawString("Hello from Java!", 60, 100);
  }
}
ちなみに上のコードで、次のメッセージが出ます。
「java.lang.NullPointerExceptionHello from Java!」
本をそのまま写しただけのつもりなんですが、どこか
まずい部分があるんでしょうか?
>>486
ちゃんと表示されるよ
488デフォルトの名無しさん:03/12/27 01:46
>>487 あれ?表示されますか?
Microsoft VMならうまくいくんですけど、JRE(?)だと
なぜかexceptionが表示されちゃいまして。。。(泣
今JREのバージョンが1.3.06なので、新しいのを落として
試してみます。有難うございました。
>>485
バイナラ
490デフォルトの名無しさん:03/12/27 02:03
>>487 解決しました!
今JRE1.4.1_06を入れたところ、きれいに表示できました。
有難うございました。
>>464

UIManager.put("Label.font", new FontUIResource(new Font("Sans-serif", Font.TRUETYPE_FONT, 32)));
JOptionPane.showMessageDialog(・・・

とかすれば一応ダイアログのラベルのフォントは変わる。
>>485
binはbinaryの略・・・実行ファイルを格納するディレクトリです。
UNIX系OSで、FHSっていうディレクトリ構造を統一する規格があります。
・・・説明がめんどうだ。後は自分で調べろや。
493デフォルトの名無しさん:03/12/27 03:44
javaでスレッドやガーベッジコレクションって
必ず参考書にあるけど
実際よく使うのでしょうか?
494デフォルトの名無しさん:03/12/27 03:52
J2EEって
あくまでもEJB、Servlet、JSPなどが入ってるミドルウェアで
あくまでもJ2EEそのものには実体はなくあくまでも範囲としての総称なんでしょうか?
それともJ2EEという何か「モノ」があるのでしょうか?

http://www.sw.nec.co.jp/word/az/az147.html
など見てもJ2EEそのものはいまいち書かれてないし
ttp://age.tubo.80.kg/upl2/img/576.txt
↑のプログラムを書いたのですが、
コンパイルは成功するのですが
問題に間違えると例外が発生します
i_orを1にすると
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Or.orshori(Quizbox5.java:96)
at Sub_q.submain(Quizbox5.java:31)
at Quizbox5.main(Quizbox5.java:7)
がでて、
i_orを2にすると
Exception in thread "main" java.lang.NullPointerException
at Or.orshori(Quizbox5.java:96)
at Sub_q.submain(Quizbox5.java:31)
at Quizbox5.main(Quizbox5.java:7)
がでます
どうすればいいのでしょうか
>>495
全体読んでねぇから間違ってるかもしれねぇけど、
s_ans=new String[i_or];
ってのでi_orを1にしたなら要素数は1個でs_ans[0]のみ。
s_ans[1]はない。

i_orを2にした場合は>>500に任した。
497495:03/12/27 04:47
すみません、解決しました。i_orの数値は1でよかったです。
それ以前に、
for(int i=0;i<s_defoans.length();i++)
のところを
for(int i=0;i<i_or;i++)
になおせばうまくいきました
//s_defoansの長さを測ってどうするつもりだったんだろ、漏れ…
×for(int i=0;i<s_defoans.length();i++){
○for(int i=0;i<s_ans.length;i++){
じゃねーの?
i_orの初期値は1のままで。

あと、変数を全部クラスのメンバにするのはすぐにやめるべき。
ローカル変数というものを覚えなさい。
499498:03/12/27 04:51
_| ̄|○
MessageBoxを使おうとコンパイルしたら
シンボルを解決できません、のエラーが出るのですが
インポートの指定が足りないのでしょうか、それともクラスパスが
設定できていないからなのでしょうか

IDE には NetBeans3.5.1 を使っています
インポートの指定は java.awt.* としています。
MessageBoxってどのパッケージにあるわけ?
>>500
import先がjava.awt.*って・・・。

MessageBoxは標準でサポートされていなから、自作するか誰かのを持ってくるしかないんだがね。
503500:03/12/27 07:24
うを、そうすか。2日ほど悩んでいました。

それらしいものがいろいろ出てきたのでてっきり MessageBox使えるのかと....
http://cutie.dip.jp/pc/java/swt/6.php
http://y-yutaka.cool.ne.jp/tec/java/swt/MessageBox.html

>>503 それはAWTじゃなくてSWT。
www.eclipse.orgからライブラリ持ってきて
import org.eclipse.swt.widgets.MessageBox;
する。
505500:03/12/27 08:04
ですね、よく読み進めるとそう書いていました。Swingの省略かとてっきり。
http://y-yutaka.cool.ne.jp/tec/java/swt/

ところでこの便利そうな SWT ですが、ランタイムは簡単にインストールできる
ものでしょうか?ネットで作ったプログラムを配布するときに利用者がわで
インストールが難しいと困るなと思う次第です。

あと、結構使われているものなのでしょうか、商用・非商用、 Java の世界で。
>>505 SWT、Windowsだと配布はさほど面倒じゃないね。
zipファイルにswt.jarとdllと他のjarをまとめて
配布。展開後にjarをクリックすればカレントディレクトリの
dllは共有ライブラリの検索パスに含まれるから。
ただ他の環境のことも考えたらJava Web Startの
利用も考えたほうがいいかも。
よく使われているかというとIBMの製品でしか
みたことないなあ。WSADみたいなEclipse系以外だと組み込み系.
Palmにライセンスが付属しているJava環境で使われている
みたい。
507464:03/12/27 11:10
>>491

ありがとうございます。やってみます。
508500:03/12/27 12:00
>>506
貴重な情報ありがとうございました。
各機種での利用が面倒かもしれない、また使用をそんなに見かけないという
ことなら SWT の使用は先送りにして自分でなんでも作ることにしたいと思います
Java も 1.5βはかなり評判が良いようなのでこちらを期待したいと思います
正式リリース時には見違えるように重くならなければいいな〜。そういうの多いから。

どうもありがとうございました。
509500:03/12/27 13:12
たびたびすみません。
複数のファイル(クラス)から構成されるプロジェクトを作り
プログラミングしているのですが分からないことがあります

インターフェース(Frame)を主クラス側に作り、主クラスから
従属するファイル(クラス)を処理を実行させ、その経過を
主クラス側のインターフェース(Frame)のテキストエリアに
出力させたいのですが、従属側でどのような命令を書けばよいのでしょうか

従属側からインターフェース(Frame)へ直接アクセスできれば良いのですが
どうも出来ないようです。getFrames()でオブジェクトを取得できないかと
調べていますがイマイチいい例が見つからず困り果てています。

これぐらいしかサンプルを見つけきらない
http://www2s.biglobe.ne.jp/~yumi-ii/orange/contents/htmls/[email protected]
>>509
それは多くの初心者が陥る最初の関門
「従属するクラス」にインスタンス変数作って、
コンストラクタにでも自作フレームを渡せ

それができるようになったら、
クラス・インスタンス同士の係わり合いは自分でいちいちメソッドを書いて、
API の各メソッドは極力無いつもりでいたほうがいいかもいれん
javaで作ったアプリを配布するにはどうすればいいの?
512500:03/12/27 15:10
>>510
出来ました。主クラスから従属クラスの呼び出しに
テキストエリアをパラメータ渡して、従属クラス側で TextArea.append ...
処理の都度、経過を表示するようになり少しづつソフトらしくなってきました。

ありがとうございました。助かりました。
513500:03/12/27 15:14
>>511

>>457-460
をみてごらん。漏れも似たようなこと聞いている。多分、参考になると思う。
>>513
見たよ。ありがとう
Javaを普通の人がやるのには抵抗がありそうだね。
515あにうえ:03/12/27 15:48
JDBC + ORACLE + TOMCATでの環境構築に関する質問です。
コネクションを作る前にInitialContextの設定を行っておりますが、
lookUpというメソッドをCallしたところで例外となってしまいます。
(javax.servlet.ServletException: ?? java: ?????????????????????)

どこらへんの設定を確認したらよいのでしょうか。
ご存知の方がいらっしゃいましたら教えてください。

Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");

516nokai:03/12/27 16:26
http://www.nokai.ne.jp/
君たちのような頭の悪すぎる人たちはここへ来なさい
517デフォルトの名無しさん:03/12/27 16:46
何回も出てる質問で申し訳ありませんが
pathの設定がよくわからないのですが
set classpath=.;%classpath% と打ち込んで
javaを実行しても

Exception in thread "main" java.lang.NoClassDefFoundError: test (wro
t)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLo
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:2
at java.net.URLClassLoader.access$100(URLClassLoader.java:55
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method
at java.net.URLClassLoader.findClass(URLClassLoader.java:187
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:

とでます。これもやはりpathが通ってないってことですか?
518517:03/12/27 16:53
すんません出来ました。無駄書きすみませんでした。
519java厨:03/12/27 16:54
eclipseのプラグインから、JDBCを触りたいんですが、Class.forNameで
Class not foundになります。
java.class.pathを表示させると、「Startup.jar」しかなく、ここにpathが通るようにする方法がわからず
困ってます。

っていうか、classpathなんて動いてる最中に追加や削除って出来ないですよね?

やりたいことは特定のドライバをロードし、それでアクセス可能なデータベースに
コネクションを張りたいだけなんですが…。

どなたかご教授ください
1.package名を全部列挙することに成功しました。
  Package.getPackages()
2.package名から中のクラス名を列挙する方法がわかりません。

3.class名から中のフィールド、コンストラクタ、メソッドを列挙することに成功しました。
  Class c = Class.forName("java.lang.String");
  c.c.getFields() etc.

2.の部分ができればJavaの全てのフィールド、コンストラクタ、メソッドが列挙できるようになりますが,
どうすればできますでしょうか。よろしくおねがいします。
>>519
プラグインクラスローダがクラスを検索する範囲の設定は
plugin.xmlのrequire要素で。
あと、URLClassLoaderについて調べておいても損はないよ。
522デフォルトの名無しさん:03/12/27 17:32
自分でクラスを作るとき、そのメソッドをstaticにするかしないか、というのはどういう基準で判断するのでしょう?

staticにするとインスタンス作らなくても使えて素人にはやりやすいのでついメソッドをstaticにしてしまうのですが、何か弊害はあるのでしょうか。
523java厨:03/12/27 17:35
>>521
早速のレスありがとうございます。

しかし、pugin.xmlにあらかじめ列挙しておかないといけないということは
自作のpreferenceのGUIで取得したクラスパスで
動的に検索範囲を設定しなおすようなプラグインは作れないんですね…ショボン
WebLogicのコネクションの設定みたいな・・・

524デフォルトの名無しさん:03/12/27 17:48
妙な質問させてください。どういう文で質問すればいいかよくわからないので。

メインのJFrameで色々処理を行うプログラムを組んでいるのですが、
例えば『プロパティ』を押して、新しくJFrameが画面に出て、
そこで色々入力したり変更したりしたあと、『OK』か『キャンセル』か
クローズイベントが起こった瞬間にメインのフレームに処理を
返したいのですが、困ってます。

メインウィンドウの方でプロパティ用のJFrameとかボタンとか
テキストフィールドとかオブジェクトを作ってしまうと、
メインウィンドウに配置するボタンオブジェクトとかと
一緒に宣言するので煩雑になってしまいます。
しかし、新しくプロパティ用にJFrame継承したクラスを作ってしまった場合、
OKなどが押されたイベントをメインウィンドウに気づかせるのはどうやるのか
わからないで困ってます。

一般には、プロパティみたいなウィンドウはどのように組むのでしょうか?
525521:03/12/27 17:51
>>523
URLClassLoader...
>>524
フレーム間通信はとりあえず考えないで、その程度のことなら
JDialog使ったら?
527デフォルトの名無しさん:03/12/27 17:57
>>526
ありがとうございます。
JDialogって言葉すら知らない初心者でした。
今から調べてみます。
528デフォルトの名無しさん:03/12/27 18:04
>524

もしJDialogでは機能不足で、もう一つJFrameを使いたいなら、子フレームと親フレームは同じクラス内で宣言しとけば互いに参照できると思う。
でもそのクラス凄いでかくなると思うけど。
529528:03/12/27 18:10
あ、・・でもそれをやりたくない、ってことで質問してたのね。ごめん。わすれて。
530デフォルトの名無しさん:03/12/27 19:32
質問です。
JAVAアプリケーションでJPanel上にGIFイメージを表示して、それをJFrameに
組み込みたいのですが、それは可能でしょうか。(一応組んでみたのですが、表示できませんでした)
それと、画像ファイルの表示についてですが、
Toolkitや、イメージオブザーバーは具体的にどのような役割を果たしているのでしょうか。

>>393=413=417
>jar ファイル内部の別のjarファイル

jar ファイルの中身をクラスファイルとして読み込む自作クラスローダを作れば可能。
532520:03/12/27 23:26
>>520 ですができませんか
Packageを見回してもClassを見回しても・・・
533デフォルトの名無しさん:03/12/27 23:31
前にも質問したのですが
忘れ去られたのでもう一度質問します

J2EEって
あくまでもEJB、Servlet、JSPなどが入ってるミドルウェアで
あくまでもJ2EEそのものには実体はなくあくまでも範囲としての総称なんでしょうか?
それともJ2EEという何か「モノ」があるのでしょうか?

http://www.sw.nec.co.jp/word/az/az147.html
など見てもJ2EEそのものはいまいち書かれてないし
IT用語辞典 e-Words : J2EE http://e-words.jp/w/J2EE.html
>>530
>JPanel上にGIFイメージを表示
JComponent の方がよいだろう。paintComponent メソッドなどをオーバーライドして、
Graphics#drawImage する。

Toolkit は仮想的に存在するコンポーネントや画像のデータと、
画面上に実在として表示されるコンポーネントや画像の姿を結びつける役割などを持つ。
表現として使える色数などの問題があるので、Toolkit は Image に密接に関係を持つ。

画像の実像を作るためのヒントや具体的なデータを提供するのが Producer で、
そこからサイズなどのデータを受け取りたがるのが Observer 。
Observer は描画に先立ち Producer が準備OKかどうかを調べるなどのためのもので、
実際のピクセルを受け取るのは Consumer。
>>533
Java 2 Platform, Enterprise Edition http://java.sun.com/j2ee/ja/
537デフォルトの名無しさん:03/12/27 23:43
javaプログラマーって
やはり本でのjavaの知識やコーディング能力はあっても
デバッグ能力がなければやはり致命的なんでしょうか?
yes
>>537
デバッグ能力ってナンデスカ?
>>539
どこが不具合か「すばやく」特定する力だろ
必ずしもeclispeとか便利なもんがあるとは限らないし
541java厨:03/12/28 00:49
>>525

URLClassLoder使ったらロードできました。
どうもありがとうございました。
htmlを解析&変換したいのですが、フリーのパーサーというのは
存在するのでしょうか?
JTidy(ttp://lempinen.net/sami/jtidy/
HTMLテキストを整形してDOMツリーを吐いてくれる。
DOMツリーを貰えたら解析も変換もし放題。
javaでDBにデータを追加する方法はいくらでもあると思うのですが
テキストに書かれている文字列をボタンを押したら
指定のExcelに書き込むのはどうすればいいのでしょうか?
>>544
VBでやれ。
つまりJavaでは絶対に不可能?
547デフォルトの名無しさん:03/12/28 03:51
親クラスと子の子クラス(つまり孫クラス)の関係ってどうなんでしょうか?
子の子クラスから親クラスへ参照とかできるのでしょうか?
それともあくまでも参照は親と子だけしか無理なのでしょうか?
学生です。

JAVAを勉強して早9ヶ月になります。
テキストエディタなんか作ったり
ネットに乗っけるのは、ネットゲームのHP計算なんかを作ったりやってたのですが

実際にこれを仕事に使ってる方は、どんなものを作ってるのですかね?

9ヶ月やってるうちにJAVAの新しい機能もどんどん出てる感じがして
自分には基本だけで手一杯なのに、全部追ってる人なんているのかな?
と疑問に持ったので質問させてもらいます。

実社会では、、、いったいどんなことにJAVAは使われてるのですかね?
>>506でIBMの製品と具体的に出てきているのですが
IBMがどんなことに使ってるのでしょうか?
また、そういうのは、いくらぐらいでやり取り?されてるのでしょうか?
変な質問すいませんです。
>>548
>自分には基本だけで手一杯なのに、全部追ってる人なんているのかな?
>と疑問に持ったので質問させてもらいます。

「全部追ってる」のは、研究者、教育者、出版関係者あと、企業でも、
技術調査を任されてる人ぐらいでしょうね。
現場のプログラマは、
どんな機能があるかのか(出たのか)概要だけ掌握しておいて、
必要になったときに調べる、というのが普通だと思います。

>実社会では、、、いったいどんなことにJAVAは使われてるのですかね?
Javaの専門誌が何誌が出ています。
本屋へ行くか、各誌の HP を見て、最近の号の目次をみるなりすれば、
おおざっぱなことはわかるのではないでしょうか。
業務用の用途としては、やはり、EJBでサーバを構築するという分野が、
今大きいと思います。

550542:03/12/28 09:11
>>543
ありがとう!
>>544
Jakarta POIで簡単なことなら出来るが、
機能実装が足りなさ過ぎるのでやめたほうがよい。
おれ的にも545さん案に賛成だな
>>547
親子とはどういう関係のことよ?
継承のことだったら子も孫も変わらんよ。
553デフォルトの名無しさん:03/12/28 09:57
JDialogで色々ユーザから入力受け付けて、そのデータで処理を行なった後、JDialogを閉じたタイミングで親フレームにその結果を反映させるにはどうすればよいのでしょう。
下のソースのように、ダイアログにWindowListenerをつけようとしたら、「内部クラスで他のクラスは参照できません」というエラーが出てしまいました。

dialog.addWindowListener(new WindowAdapter() {
  public void windowClosing(WindowEvent e) {
   //親フレームに結果を反映させる処理
  }
});
>>553
他のクラスの参照に final をつける。
>>544
JCom
>>553
>>554 の方法でなきゃ、観念して、
WindowAdapter の無名クラスでなくきちんと名前を付けてクラスを作り、
コンストラクタでローカル変数の参照先(だろ?たぶん) を教えてやる
557デフォルトの名無しさん:03/12/28 17:12
今Webサーバからデータを受け取ってきて、
それに対して処理をするJava Appletを書こうとしています。
問題はそのデータをWebサーバからダウンロードされたAppletだけが読むことが
できるようにしたいと思っています。
Appletのコードのパスワード仕込めば一番簡単なのでしょうが逆コンパイルされると。。。
何か良い仕組みはないでしょうか?
>Appletのコードのパスワード仕込めば一番簡単なのでしょうが逆コンパイルされると。。。
???
559デフォルトの名無しさん:03/12/28 17:57
Windows用の(Java2対応の)Java VMってSunのを
入れるのが普通なんですか?
普通
>>560
ありがとう。
562貧乏紙:03/12/28 20:53
>>557
Cookie使うかencodeURL使ってURLにセッションを追加すればいい。
>>Appletのコードのパスワード仕込めば一番簡単なのでしょうが逆コンパイルされると。。。
変数やコードを一語一句完全に逆コンパイルできるコンパイラーあるなら教えてくれ。
>>557
言いたいことは分かる。根本的に無理。
その気になれば、Applet が今何をしてるか全部分かる VM を設計できるんだから。

サーブレットと絡めるという前提があるなら >>562 のセッション云々でやればいい。
でもその場合はデータを処理するのは Applet だけじゃないわな。
564デフォルトの名無しさん:03/12/28 22:22
Assertって何でしょうか?
http://www.ipa.go.jp/security/awareness/vendor/programming/a03_05.html
これなど見ても
どうも使うメリットがいまいち見えないのですが
そのデータにアクセス制限かけて
データを読み込めるCGIをJavaAppletでたたく.

CGIコードはJavaAppletからの参照時のみ
データの中身を返すようにしておく必要があるが,
俺はやり方を知ら(ry
566553:03/12/28 22:36
>554

ありがとうございます。finalを付けることで動きました。
>>564
Exception : 実行時に起こる可能性をどうしても回避しきれないもの
Assertion : 実行時には絶対起こらないはずのもの

デバッグが終われば Assert は必要なくなる・・・・はず
.javaファイルと.classファイルとバイトコードの違いを教えて下さい。
au形式のファイルって、auコンバータ以外では作れないんでしょうか?
auコンバータはエラー出すぎて、何も変換できません(´・ω・`)
>>568
.javaファイル→ソースコード
.classファイル→.javaファイルをコンパイルするとできる実行形式
バイトコード→.classファイルを構成するアセンブラレベルの言語
これからお仕事でJava使うんで勉強しなきゃならんのですが、今までVB.NET
とC#ばっかり使ってきたので、.NET開発者用のJava解説本みたいなのってあ
ります?
逆はよく見るんだけど・・・
まともな開発者なら特に要らない
575デフォルトの名無しさん:03/12/29 10:19
トランザクションマネージャなどを使わず、スタンドアロン
アプリケーションからXAを使って2フェーズコミットを行う
ことって可能なんでしょうか?
また、参考になる資料ありませんか?
576569:03/12/29 10:51
>>571
ありがとうございます!
ありがとうございます(つд`)
変換できました〜
577500:03/12/29 12:58
いつもお世話になります。
みすません。Javaでドライブレターを取得するにはどのようなクラスを
使えばよいのでしょうか
ダイアログ画面でドライブレターを指定してコピー処理等を行いたいと考えています
>>577
File#listRoots() を使うとか。
579500:03/12/29 14:23
>>578
教えていただいた方法であっさりできました。
ありがとうございました。
調べ方が足りないな〜。未熟だ。
580デフォルトの名無しさん:03/12/29 15:24
最近javaをやりはじめた初心者ですが、静的変数とインスタンス変数ってどう
違うんですか?静的がクラスと結びついていて、インスタンスがオブジェクト
と結びついてるとかなんとか入門書には書いてあって、初期化や使い方が書い
てあるんですが、違いがいまいちわからないです。どういうときに静的変数や
インスタンス変数を使うのでしょうか?
>>580
"ヒト"クラスがあるとして
このときクラスは人類を表しインスタンスは個人を表す
人の身長体重はインスタンスに属する数値情報
世界人口はクラスに属する数値情報
>>580
例えば
class Human {
 //生物分類とかは人類全体に帰属するのでクラス変数とする。
 static biological_classification bio_class, order, family, genus, species;

 //性別、年齢、名前などは個人に帰属するのでインスタンス変数とする。
Sex sex; int age; String name;
}
583580:03/12/29 15:43
Class Person {
static long wp = 9000000000; //世界人口
String name = "田中";     //個人
}

こんな感じですか?

584580:03/12/29 15:45
*class
>>583
田中以外の名前の人間は居ない、と。

世界人口って60億ぐらいじゃなかったっけ?
>>583
いつから 90億になったのやら・・・
60億に決め付けたければ static final にする
プログラム上変動しうるなら final にはしない

でもまぁ、シミュレータなんかでは、全人口を long に取るのではなく、
地域インスタンスから getPopulation() したものの総和を取る・・・なんてことをするだろうから、
人口データを static にする機会は考えにくいかもしれない
587sage:03/12/29 15:57
誰か正解かいてやれよ
正解っつーか単純かつわかりやすい例が思いつかないんだろ。
>>580
静的変数(static変数)は、「クラスが持つ変数」、
インスタンス変数は、「インスタンスが持つ変数」。

「クラスが持つ変数」を何に使うかというと、
全てのインスタンスにまたがった値を保持したい場合。
「プログラミング言語Java」には、
インスタンスに生成順にシリアル番号を振る場合などが
例として挙げられている。

つうか、私の主観だけど、
「静的変数」という呼び方はあんまりよくないと思う。
「クラス変数」と呼んだほうが、
意味をよくあらわしていると思う。
590デフォルトの名無しさん:03/12/29 16:45
JOnASってなんていうの?
>>590
オブジョイトイ
staticフィールドと呼んでやれよ
論点がずれてますよ
>>580
クラス変数な。まあいろいろ使い出はあるぞ。
・実行環境ひとつに対してひとつしかいらない値 (例:定数、System.out、、)
・あるクラスのオブジェクト全体に関する値 (例:オブジェクトの総数、最後にオブジェクトを作った時刻、、)
・クラスが表す「現実のクラス」に関する値 (例:「人間」に対する総人口、、)
とか。

定数をstaticにしないと、オブジェクトを作った分だけ定数をもつ領域ができて無駄。だからstaticで1個にまとめる。
595デフォルトの名無しさん:03/12/29 19:18
HDDがとんだのでいろいろ再インストールしているのですが、
Sun,IBM,Blackdownと選択枝に迷ってます。
違いなどを教えてください。
クラスごとに存在するのがクラス変数、クラスメソッド
インスタンスごとに存在するのがインスタンス変数、インスタンスメソッド
>>574
優秀な開発者は本代をケチらない。
ただし自分が優秀だと勘違いしている開発者は
嘘書いてあるのも鵜呑みにする
NullPointerExceptionが起きたとき、どのインスタンスがnullであるために起きたのか、そのインスタンス名を厳密に捕まえることはできるでしょうか。

こんなことを聞くのも、この例外が起きる行は特定したのですが、そこで使っているどのインスタンスもnullではないからです。

listbox.setListData(items[]);

とやっている行で、どうもJListBoxのインスタンスがnullであるということで例外が発生しているようなのですが、
直前で
if (listbox == null){
System.out.println("nullだぞ");
}

とやっても別に引っかかりません。
>>599
デバッガが使えない環境なのか?
>>599
普通に考えれば見間違いか思い込み。でなきゃ他スレッドの所為。
まずは stacktrace 晒せ。
>>599
listbox.setListData(items[]);
これコンパイル通るのか?
コンパイルに失敗して、
修正前の class で実行していると思われるがどうか
603599:03/12/29 21:05
デバッガも使っています。
デバッグで追うと、

listbox.setListData(items[]);

の行で例外が発生します。
しかし、この行を

listbox.setListData

のように同じリストボックスを使って適当なメソッドで書き換えても例外はおきません。
また、items配列をfor文で回して一つづつ表示させても、例外は起きません。
604599:03/12/29 21:08
あ、正確には、

listbox.setListData(items);

と書いています。


あと、直前のレスで、

>しかし、この行を
>
>listbox.setListData
>
>のように同じリストボックスを使って適当なメソッドで書き換えても例外はおきません。

と書いてしまいましたが、

listbox.removeAll();
のような適当なメソッドで、と読み替えてください。





デバッガで追ってるんだったら
各変数の値もでるだろうに そこは見てるのか?
606599:03/12/29 21:20
>605

うお。気付きませんでした。見てみます。
気づかなかったんじゃなかろう。
使い方知らないだけ。
似たようなもんじゃねーか。ケツの穴の小せー追い込みかけてんじゃねえ
見たまえ!うんこがモンブランのようだ!
610599:03/12/29 23:58
ふー、だめや。あかんかった。
setListDataを使った場合だけlistboxの評価に失敗するようです。
しかしここは一発自分で解決してみます。>607さんありがとう。
>>610
で、itemsがnullかどうかは調べたんだろうな。
612デフォルトの名無しさん:03/12/30 01:08
ちょっと質問。
sdk1.4.1をインストして使ってたんだけど、統合開発環境のNetBeansに変えようと思い
sdk1.4.2の入ってるNetBeansをインスト。
パスを通そうと思って環境変数を変えたんだけど、javacコマンドが通らないんだな。

ちなみにsdk1.4.1の時は、PATH = D:\java2\bin でちゃんと使えてた。
sdk1.4.2の時は、PATH = D:\java2\j2sdk1.4.2\bin でエクスプローラーでコピペもしたんだけどダメ。
長い名前がダメだと思って、D:\java2\j2sdk1~1\bin ってしたけどダメ。

なんで?
NetBeansインストするときJREをアンインストしなかったのがまずかったのかな?
>>612
= の前後に空白が入っているのに深い意味は無いんだろうな。
>>612
D:\java2\j2sdk1.4.2\bin このフォルダ本当にある?
615デフォルトの名無しさん:03/12/30 01:55
>>613
ここで書くために"PATH ="としただけで、実際は環境変数のpathのところに
;D:\java2\j2sdk1.4.2\bin
と追加しただけ。

>>614
コマンドプロンプトでちゃんと確認したよ。

ちなみに本機は、Win2000 SP4なんだけど。
616デフォルトの名無しさん:03/12/30 04:01
ひょっとしたらスレ違いかもしれませんが・・・
TEXTAREAタグの内容を送信し、サーブレットでAccessに書き込みさせたいんですが、
Accessを直接開いて見てみると改行されているんですが、
jspで読み込んだときに改行がされていなくて困っています
そこで、正規表現を使って改行コードを<BR>に変換しようとしているのですが、
\r\n、\r、\n全てに対応させる方法がわかりません
pattern = Pattern.compile("\r\n|\[rn]");
上記のようにやっているのですが、エスケープ文字が不正だと言われます
そもそも正規表現の仕方が間違っているような気もしますし・・・
わかる方がいらっしゃればどうか教えていただけないでしょうか?
また、もし正規表現以外で出来るのでしたらそちらも教えていただけないでしょうか?
617デフォルトの名無しさん:03/12/30 04:26
インターフェースについて質問です
implementsをつけることでそのインターフェースの中のメソッドを
必ずつけなければならないのはわかるのですが
何のためにつける意味があるのでしょうか?

あってもなくてもメソッドは使えるのに
わざわざ必ずつけなければならないという制約をつける必要性とかあるのでしょうか?

もちろん何かメリットがあるからつけると思うのですが
教えてください
618デフォルトの名無しさん:03/12/30 05:36
>>617
PS1とPS2のコントローラーが別々だったら困るだろう?
だから同じ仕様じゃないと駄目なの
>>617
>あってもなくてもメソッドは使えるのに

いや、なければもちろん使えませんよ。
620デフォルトの名無しさん:03/12/30 06:24
>>619
そんなことないだろ
たとえば
interface a{
method1;
}

とあった場合
implementsしてもしなくても
method1は使えるだろ
>>620
interface a 型として使えませんね。

っつか、
> method1;
コンパイルエラーになるね。
>>616
パターンの中に「改行文字」を含めることは出来ないかも。

文字列「\r\n|\r|\n」を表すには、"\\r\\n|\\r|\\n" と書けばいい
・・・という解釈でいいのかな?
623616:03/12/30 08:39
>>622
今試してみたところ、うまく置換する事が出来ました
どうもありがとうございました
また、\r\n|\r|\nでも試してみましたが、こちらでもうまくいきました
しかし、\\r\\n|\\r|\\nの方が間違い無いと思うのでこちらを使わせていただきます
>>617
例えば何かの理由で複数の TableModel を Collection にためておいて、
TableModel al = (TableModel)iterator.next();
こうする。
next() メソッドで得られた Object が ActionListener として適合しない場合、ClassCastException が発生するが、
TableModel として必要な 9つのメソッド全部を持つかどうかを、このとき調べるよりかは、
コンパイル時点で「これはTableModelだよ」とマークしておいた方が、手っ取りばやい。

第一、用途に沿ってクラスを設計するならば、
それがどんな用途なのか明記した方がいいに決まっている。
履歴書に運転免許やら資格やらがあるかどうか明記しておけば、
人事異動のときいちいち本人に訊かなくて済むのと同じ。
> Object が ActionListener として適合しない場合
TableModel の間違い。書き換えのこし。
626デフォルトの名無しさん:03/12/30 12:10
すいません。
SunのJava VMがインストールされているかをコマンドプロントで確認する方法を
教えてください。 Microsoft VMは jview と入力すれば確認できますが、Sunは
違う表示が出るのでしょうか?
627デフォルトの名無しさん:03/12/30 12:24
すいません、アプリケーションについての質問です。
Java自体が経験不足の素人ですが、現在SWTを利用してGUIを作成しています。

既にImage(サイズ大)を貼り付けた上にさらにImage(サイズ小)を貼り付ける方法を探しています。
現在、setBoundsという座標指定メソッドで描写済み画像上への上書きを試みたのですが、上手くいきませんでした。
画像自体は参照しているようで、画像以外の空白領域ならば問題なく貼り付ける事が可能です。

そこで、SWTではなくSWING、AWTでも構わないので、この辺りの問題について書かれている日本語サイトをご存知の方がいましたら、紹介願えないでしょうか。
628デフォルトの名無しさん:03/12/30 12:30
>>626 これじゃ駄目?
$ java -version
java version "1.4.2_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_01-b06)
Java HotSpot(TM) Client VM (build 1.4.2_01-b06, mixed mode)
629デフォルトの名無しさん:03/12/30 12:58
>>628
確認できました。ありがとうございます
630627:03/12/30 12:58
>>627
どうやらImage表示の実行順序が早いもの程前面にくるようで、
書き込み時毎に大きい画像を解放し、小さい画像表示、大きい画像表示とすることで、解決できました。
お騒がせしました。
631520:03/12/30 13:03
>>520 ですが
あるパッケージの中のクラス名を取得したいのですがどうすればいいのでしょうか。
レスが付かないのは、単純に見えて実は難しいからなんでしょうかね。
IDEなら import java.lang. とした時に,クラス名を全部列挙するという使い道があるから単純な方がいいのに・・・
うーん おねがいします。
>>631
java.lang.Class とか java.lang.Package とか java.lang.reflect.* とかでは
そんなメソッドは提供されてないので自力で検索するしかないと思われ。
633デフォルトの名無しさん:03/12/30 13:19
>>627
Canvasでならできるがw
GraphicsクラスにdrawImageってメソッドがあるから、
それ使ってImageオブジェクトを指定座標に描画だ。
634デフォルトの名無しさん:03/12/30 13:35
配列を使わずに処理したいんですが、
for文などで変数名に連番をつけることはできるのでしょうか。
例えば
String str1=new String();
String str2=new String();
String str3=new String();

などをつくりたいんですが。
> for文などで変数名に連番をつけることはできるのでしょうか。
無理。
636デフォルトの名無しさん:03/12/30 13:41
>配列を使わずに処理したいんですが

大丈夫ですか? しっかりしてください! 気を確かに持って!!!
>>520
1.は間違い。Package#getPackages() ではロードされたクラスが属するパッケージの列挙しかできない。
 試しに API リファレンスに記述されてるパッケージが全部列挙できてるか確認してみろ。
3. だけだと隠蔽、上書き、その他もろもろを全然考慮できてない。
JavaスレとVBスレの伸びは異常に早いねぇ
639520:03/12/30 14:03
>>637
ホントだ、使い物にならない。
ありがとうございます。
640デフォルトの名無しさん:03/12/30 14:19
>>621
確かにその書き方じゃコンパイルエラーになるが
別にコンパイルエラーの話じゃないし
何が言いたいことはわかるだろ
620も適当に書いたぽいし

インターフェースのメソッドをつける話をしてるのに
話の流れからして空気の読めないって奴って嫌い
揚げ足取りとか
641デフォルトの名無しさん:03/12/30 14:39
a extends b
b extends c
c extends d
・・・
とあった場合
aクラスがd以降のクラスを参照することは可能でしょうか?

たとえば
a aa = new d();
z zz = new a();
などあくまでも親クラスと子クラスの関係なので
aとbの関係と同じくそれぞれキャストしながらでも参照は可能でしょうか?
>>641
>aクラスがd以降のクラスを参照することは可能でしょうか?
型が a である変数 hoge が、d のインスタンスを参照する、
の意でしょうか?
a hoge = new d();
それなら可能です。お分かりのとおり、d は a でもありますから。

クラス、変数、インスタンスなどの語を丁寧に選んで使ってくださいね。
それとクラス名は例え仮想のものであっても大文字ではじめて下さい。
その方がずっと読みやすいので。
643デフォルトの名無しさん:03/12/30 14:57
ありがとうございます

ということは、たとえば
A hoge = new D();
とあった場合
AとDの関係は
A→B→C→Dのような関係になるのでしょうか?
それともBCは飛ばしてAが直接Dを参照してるのでしょうか?

>>641の場合、あくまでもAはBしか拡張してないわけなので・・・
>>640
>>621 は interface の話してるのにメインじゃない方の話で揚げ足取りかよ。

っつか、 >>640 は自分が嫌いだって宣言してるだけだな。
> aクラスがd以降のクラスを参照することは可能でしょうか?
「参照」をどーゆー意味で使ってるかわからん。
646デフォルトの名無しさん:03/12/30 15:20
A型の変数がD型のインスタンスを参照しています。
BCはメソッド呼び出し等で意味を持ちます。(DがBCのメソッドをオーバーライドしていない時など)
しかし、A型の変数とBCは直接には関係ありません。
>>643
C, D も、れっきとした「A を拡張したもの」です。
A→B→C→Dのような関係にも当然なっています。
C でメソッドを増やせば、D のインスタンスに対してもそのメソッドを使用できます。

A のメソッドを B がオーバーライドして、C と D がそれ以上オーバーライドしなかった場合、
hoge に代入された D のインスタンスは、
そのメソッドを実行されれば B で実装したように振舞います。
D のインスタンスを参照している変数が何であれ、A → D のように飛び越すようなイメージではありません。
これをポリモーフィズムと言います。C++ は少し複雑なのですが、
Java の場合は徹頭徹尾、振る舞いは「そのインスタンスが何のクラスであるか」に規定されます。
648通りすがりのオバQ:03/12/30 15:26
>>642

なんでやねん!

>お分かりのとおり、d は a でもありますから。
a は d やけど、 d は a とちゃうわ!
a が子で d が親(ひいじいちゃんくらい?)やさかいに、 d hoge = new a();
なら大丈夫。

>643
騙されるなよ! 
ちなみに D foo = new A ();
とあった場合、
A と D の関係は、
A→B→C→Dのような関係になる。 ( 考えると当然だよね )
642の馬鹿やろうが a hoge = new d (); が大丈夫だと
ほざくから643さんの頭が混乱したんだろうけど・・・。


>>648
>>641 を読んだらうんこの国へいってらっしゃい
650649:03/12/30 15:32
>>648>>642 の間違い
651642:03/12/30 15:34
アルファベットと記述の順に惑わされてしまいました
平素 B が A を継承する例を出してくる方が多いので・・・
首を吊って死にます
652通りすがりのオバQ:03/12/30 15:35
>>649

>a aa = new d();
>z zz = new a();
>などあくまでも親クラスと子クラスの関係なので
>aとbの関係と同じくそれぞれキャストしながらでも参照は可能でしょうか?
読んだけど↑の意味が理解できない・・・。

653通りすがりのオバQ:03/12/30 15:37
>>649
>>650

俺が馬鹿かと思って641を100回読みなおしたのに・・・。
間違いかよ〜。 泣
654デフォルトの名無しさん:03/12/30 15:48
ネストクラスとか
インナークラスとか実際に多用されているのでしょうか?

今まで書かれているソースを実際見たことないのですが
655通りすがりのオバQ :03/12/30 15:52
>654

多用されているかどうかは別として、
TOMCATのソースとかインナークラス使ってたような。
656619:03/12/30 16:02
>> 640
>>621 は私ではないですが、

仮に、

public interface a{
void method1();
}

と書かれていても、 method1() が実装しない限り使えないことには
かわりがないですよ。
私が >>219 でいいたかったのそのことです。

657デフォルトの名無しさん:03/12/30 17:02
String s = new String;
のようにStringをインスタンス化するのを見ますが
インスタンス化するのはどうしてでしょうか?

objectなのでStringはインスタンス化しなくても使えると思いますが
> objectなのでStringはインスタンス化しなくても使えると思いますが
何言ってるのかわからん。
>>657
全般的に、言わんとしていることが分かりません。

>objectなのでStringはインスタンス化しなくても使えると思いますが
せっかくのオブジェクト指向言語なんですから、
インスタンスを作らないとプログラミングしにくいですよ。

確認しますが、
"Hello, World!" ←これも String クラスのインスタンスだというのは知ってますか?
660デフォルトの名無しさん:03/12/30 17:36
>>659
String s;
s.concat("__")

String s = new String();
s.concat("__")

でも同じじゃん
インスタンス化しなくてもString使えるのに
じゃインスタンス化するのはなぜ?
って事です
>>660
String s;
s.concat("__")

  ( ・∀・)
 と    ) | | ガッ
   Y /ノ  | |
    / ) .人
  _/し' <  >_Λ∩
 (_フ彡 V`Д´)/
            / ←>>660
662デフォルトの名無しさん:03/12/30 17:45
>>660
cancatは適当に書いたので
そこはなんでもいいわけで

String s = new String();
言いたいのはこれをする意味です
これがある処理とない処理ではどう違うのでしょうか?

参考書とか見てもStringの説明の部分で普通ないですよね
だいたい
String s;
663通りすがりのオバQ:03/12/30 17:49
>>662
そういや
String s = new String();
って意味ないよな
>>662-663
String intern とかコンスタントプールでグgる。
>>662
> String s = new String();
初期化されてる。

> String s;
初期化されてない。
>>665
その説明だと
String s = null;など初期化したら
String s = new String();
と「同じ内容である」という事になってしまうぞ

参照型のデフォルトはnullなんだし
667デフォルトの名無しさん:03/12/30 18:16
TomcatやpostgreSQLなどのwebアプリケーションで
DB登録型の買い物サイトとかを作っているのですが

今までStrutsしかやったことないのですが
たとえば同じ内容の物を作るのにStruts以外では他にはどういう方法がありますでしょうか?

リクエストの受信
起動時生成
アクションマッピング、メッセージリソース
アクションフォームBeanの決定
リクエストデータセット
アクションクラスの決定
・・・
みたいにどんどんい行くと思うのですが

なんか多くのサイトとか参考書でちょっとした買い物サイトなどを作るには
ほとんどがStrutsしかないみたいな書きかたなのですが
668デフォルトの名無しさん:03/12/30 18:42
tomcat3.xと
tomcat4.xって
何が違うのでしょうか?

3→4だから大きく変わったのだと思いますが
Tomcat 3: Servlet API 2.2 / JSP 1.1
Tomcat 4: Servlet API 2.3 / JSP 1.2
Tomcat 5: Servlet API 2.4 / JSP 2.0
>>661
ローカル変数に見えるのでコンパイルエラーだと思われ。
>>666
> 参照型のデフォルトはnullなんだし
ローカル変数ならデフォルトは関係ないね。
>>671
何で?
673672:03/12/30 19:06
ああ、初期化しないとコンパイルエラーになるからか。
674672:03/12/30 19:10
『初期化しないと』じゃなくて、
値を使用(参照)する前に、『値が確定していない』とコンパイルエラーになると
言ったほうが正確かな。
s.concat("__") ;
このコードはナンセンス。初心者用の落とし穴です。
>>675
sがStringだから
s + "__";

でいいって事か?
論点がずれてますよ。
> s.concat("__") ;
しても s 自体は変化しないって事。

s = s.concat("__");
とかしないと無意味なだけ。
そもそもその行に意味は無い。
ここは・・・(・∀・)イ〜イスレだなぁ・・・
String s = new String();
Stringクラスの引き数なしコンストラクタは
空文字列シーケンスを指すオブジェクトを生成する、
ことになってるから String = s; と違ってオブジェクトが生成されている。
だからまるきり同じじゃないけど、わざわざそう書くべきケースは思いつかない。
じゃなかった String s;
あれじゃん、その場合
s == "" がfalseになるじゃん、String s = ""; とやった時と違ってさ。
だから・・・

えっと、何だっけ?
>objectなのでStringはインスタンス化しなくても使えると思いますが

こんな早合点の馬鹿に付き合わなくてもよし
>>681
つまり
String s = new String();
などしてもあまり意味はないと?
全く意味が無い
というか、もともとObjectのStringをプリミティブとして使うために
簡単に宣言できるように、
String s=new String();をString sでOKにしたんじゃないの?
じゃ多くのソースで
String s=new String();
みたいにわざわざ使ってるのは何なのだろう

わざわざ =new String();
をつけてるのは
意味があるからやってるのだろうと思うけど
689貧乏紙:03/12/30 23:03
>>688
>>じゃ多くのソースで
>>String s=new String();
>>みたいにわざわざ使ってるのは何なのだろう
うそだろ・・・
パッケージlang の意味知ってる???
690デフォルトの名無しさん:03/12/30 23:29
すいません、最近、アプリケーションサーバ(SunONEApplicationServer 7)に手を
出した者ですが、リスナーのHTTPデフォルトポートが81なのはなぜでしょうか。無
線LANを介してネットワークに繋げているのですが、やはりこのポートが80番を占有
しているからですか?だとすれば、ネットワークに繋がっていない状態だと80番を取
る事ができると思いますが、今度はHTTPトランザクションに繋げない状態ですよね。

Webで検索すると、どこも普通はポート80(リスナー)なんですが、私の状態というのは特殊な
のでしょうか。普通にルータを通して無線カードに繋げているだけなのですが。。とり
あえずポート80を確保しないと、「Webアプリケーションのプロセスを起動できません。」

とか言われます。ポート80と関係があるのかは微妙ですが、他のプロセスは何度見
ても間違っていないので、おそらく問題はここかと思いますが、いかがでしょうか?

なにぶん、Javaを始めたばかりのネットワーク初心者ですが、よろしくお願いします。
IDEはSun ONE Studio 5 SE です。Sunのチュートリアルで引っかかりました。
>>687
馬鹿。その2つは全く意味が違うだろう。

>>688
そのソース書いた奴が馬鹿なだけ。
692デフォルトの名無しさん:03/12/30 23:58
>>689,691

お前ら全然逆の事言ってるが…
ドキュメント読めよ…
String s = new String();

String s = "";

String s;

String s = null;

全然意味違う。
694 :03/12/31 00:04
>>693
String s = "";
>>683
文字列比較はequals()メソッドで。trueになるよ。
空文字列と null の区別もつかない馬鹿が巣食うスレはここですか?
>>695
そういうレベルの話はしてないよ。
>>696
空文字列とnullの違いが分かるなら
String s;

String s = new String();
の違いも分かるだろ
>>660 付近から馬鹿のスパイラルが始まってるな
論点ずれたり意味不明だったりのスレの応酬
700 :03/12/31 02:39
ダイヤグラム(進行グラフ)をJavaで
作りたいのですが、何について学べば
よいのでしょうか?
Stringの件、誰かずばっとまとめてくれ
702ずばっ:03/12/31 03:43
1.
「""(長さ0の文字列)」と「null」は別物。

2.
「String s = new String();」は「String s = "";」と同じ。 変数sには""(長さ0の文字列)が入る。

「s = ""」では、sにあらかじめ用意された「長さ0のStringインスタンス」への参照が代入される。
「s = new String()」では、その瞬間に新たなStringインスタンスが生成されるので、速度的にも容量的にも単なる無駄。
だから通常「new String()」が必要になることは無い。

3.
(ローカル)変数sを
String s;
と宣言した場合、sは「まだ初期化されていない状態」になる。これは「null」とは明確に違う。
後にsの値を参照する前に何らかの値を代入する必要がある。
(初期化されない可能性のある変数を使おうとした場合、コンパイルエラーになる。(・∀・)イイ!)

4.
フィールドとなる参照型変数は宣言時に初期値が与えられない場合、nullで初期化される。
class Hoge { String s; }
というクラスがあれば、
class Hoge { String s = null; }
として扱われる。
703追記1:03/12/31 03:56
だから
String s;

String s = null;
が同じなんていってる奴は馬鹿。馬鹿。大馬鹿。氏んだ方がいい
暗黙的にsがnullで初期化されるのはsがフィールド変数である場合のみ


s = new String();が必要になる場面は、全くといっていいほど無い。
唯一、『「new String()」そのものに興味がある』ときのみ

String s1 = "", s2 = new String();
「s1 == s2」がtrueになるかfalseになるか調べたい、とか、

for (int i = 0; i < 1000000; i++) { s = ""; }
for (int i = 0; i < 1000000; i++) { s = new String(); }
どちらがどのぐらい速いか調べたい、とか、

こういう変態的な場面で使われる。
704追記2:03/12/31 04:06
「文字列」ってのは「Stringクラスのインスタンス」な。混在してるけど読み替えてくれ

String#concat()メソッドにはなんの意味も無い。+でつなげばよし。

String s, s1 = "foo", s2 = "bar", s3 = "baz";

s = s1 + s2 + s3; ←これで十分
s = s1.concat(s2).concat(s3); ←無駄、馬鹿、アホ
J2SDK内にあるMathクラスやStringクラスの.javaファイルそのものが読みたいです。
APIみたいな箇条書きじゃない、コードそのもの。
ファイナル変数や色んなメソッドがたくさん記述されてて、
java初心者はオーバーライドなんかについて
すごく理解が深まると思うんだけどな。

(もし読めたら、の話だけど)
src.zip
>>699
馬鹿と初心者の区別は?
上級者から見て
初心者=馬鹿ならここはお前の来るとこではない
偉そうに答えてる奴が豪快に間違えてたり論点ずれたりしてるということだろう。
660の前あたり見当違いのレス続きじゃないか。わからないのか?
>660の前あたり
訂正
>>699の前あたり見当違いなレス続きじゃないか
710デフォルトの名無しさん:03/12/31 05:28
JSPってjavaソースに変換して生成するのだと思いますが
そのJSPをもとに生成されたファイルってJDKのどこに作られるのでしょうか?
>>710
コンパイルを指示するのはServletコンテナ。JSP→Javaソース変換を
行い、そのあとjavacでコンパイルする。ソースやコンパイル後のクラス
ファイルをどこに置くのかは、実装依存だっけ?Servletコンテナから
見える場所に置くだろうね。君がサーバーアプリとしてデプロイしてい
るコンテクストルートの下のWEB-INFのあたりとか。


>JDKのどこに
意味わがわからんが、JDKって場所があるの?
2.
「String s = new String();」は「String s = "";」と同じ。 変数sには""(長さ0の文字列)が入る。

"同じ"じゃないな。"同値"だけどさ。
って、こういうこと言うと混乱するのかな?

>s = new String();が必要になる場面は、全くといっていいほど無い。
>唯一、『「new String()」そのものに興味がある』ときのみ

new String()で生成されたインスタンスの存在意義ねえ…

Object o = new Object()をMUTEX LOCKのモニタに使うことがあるけど、
そのかわりにnew String()しているソースを見たことがある。
意味があるのか?Objectでいいじゃん、と思うけどさ。
713ぼるじょあ ◆yBEncckFOU :03/12/31 11:43
new String()に意味があるのは、
既存のインスタンスと全く関係の無いStringクラスのインスタンスが
欲しい時だけだYO!
この場合常に
if ("" != new String()) {System.out.println("Not equal.");}
なんだYO!
アプレットを動作させたら止まっては動いて止まっては動いてで不具合があるんですが、何か原因あるんでしょうか?
OS:XPpro
Java:J2SDK.1.4.1_02(最新の日本語のものがダウンしてる為これ使ってます
プラグインはアップデートやってインストールしたんですがそれでも駄目でした。
>>712
>>713
ガイスツだyp
716デフォルトの名無しさん:03/12/31 13:40
String tempに格納した文字列と指定した文字列と比較して
値を返すメソッド名教えて下さい
↓こんな感じの
temp.メソッド名("文字列");
718ぼるじょあ ◆yBEncckFOU :03/12/31 15:30
>>716
(・3・) エェー equalsとcompareToがあるYO!
前者は一致比較に、後者は辞書式比較に使えるYO!
ちなみにボクは、
"文字列".equals(temp);
って書くYO!
tempがnullでも落ちないほうが都合がいいCー。
特定のフォルダにあるファイルを順に読み込む方法って
どうやったらいいんでしょうか?
Serializeしたオブジェクトを1ファイルずつ読み込んでいきたいんですが。
>>719
File#listFiles() でファイル列挙して順に処理すれば?
>>719
もし処理順序が重要なら、java.util.Comparatorを継承したクラスを定義して
java.util.Arrays.sort(files, comparator);
すると良いぞ。
722530:03/12/31 20:07
535氏の通りJComponentをextendsして実行してみたのですが、paintComponent()が
呼び出されません。
このような感じで組んでみたのですが…。
class A extends JFrame{
A(){
B b=new B();
Container c=getContentPane();
c.add(b);
}
}
class B extends JComponent{
Image img;
public void b(){
Toolkit tool=Toolkit.getDefaultToolkit();
img=tool.getImage("test.gif");
}
public void paintComponent(Graphics g){
super.paintComponent();
g.drawImage(img,0,0,this);
}
}
public class test{
public static void main(String[] args){
A a=new A();
a.setVisible(true);
}
}
イメージオブザーバーにはとりあえずthisを入れていますが、これはコンポーネントを
指定しているのでしょうか。その場合、特定のJPanelなどを指定することも出来るのでしょうか。
>>722
Bのコンストラクタどこいった?
public void b()じゃコンストラクタのシグネチャじゃないぞ。
あけましておめでジャバ
今年こそJ2SDK1.5がリリースされますように。
726500:04/01/01 13:47
あけましておめでとうございます。
本年もよろしくお願いいたします。

早速ですが、文字列をバイト単位で数えたいのですが
length以外、どのような命令で出来るでしょうか
すみませんがお願いいたします

727500:04/01/01 13:52
なんでこのようなことをお尋ねするかというと
日本語の全角文字も含んだ文字列をカウントしたいのですが
length() ですと正確なバイト数が分からないためです

やはり Unicodeをデコードするところからしないといけないのかなぁ〜
728500:04/01/01 13:54
getByte() つかえ間抜け!!


はい、すみません。
ありがとうございました(自己完結)。
729722:04/01/01 14:03
>723氏
すみません、
B(){
b();
}
です。
public static void main(String args[]){
  ClassA obj_a = new ClassA(obj_b);
  ClassB obj_b = new ClassB(obj_a)
}

あたりまえですがこのコードは通りません。

 ◇──>
B      A
 <──◇

このような関係にしたいのですが、一番スマートな方法はなんでしょうか。
同じクラスにしちゃいけない理由を書かないと
JDBCについて質問なんですが
SQLの例外のなかにEJBで言う所のDuplicateKeyExceptionみたいなものはないでしょうか
現在はe.getMessage()で取得した文字列から「duplicate」の文字を探して(今使ってるDB以外でも通用するかわかりませんが)
見つかったら「キー重複」のメッセージ出してるんですが、これが妥当なやり方なのか迷っていまして・・・
733730:04/01/01 14:23
>>731
この本に「ドメインとプレゼンテーションは切り離せ」って書いてあるんだよおおおおお
734デフォルトの名無しさん:04/01/01 14:44
>>730
Domain d = new Domain();
Presentation p = new Presentation();
d.initPresentation(p);
p.initDomain(d);
735722:04/01/01 14:52
723氏、すみません、自己解決しました。
736デフォルトの名無しさん:04/01/01 14:56
すんません。初歩の初歩聞かせて・・・・_| ̄|○
低レベルAPIとかの、『低レベル』『高レベル』って何でしょうか・・・
多分

低レベル・・・ハードウェア寄り、ハードに依存することが多い
高レベル・・・ハードに対して抽象的、ハードごとの依存が少ないが代わりに細かい操作や速度が劣ることが多い

という風に考えればいいのでは・・・
738730:04/01/01 15:14
>>734
やっぱり、コンストラクタじゃ無理ですよね。
ありがとうございます。
739デフォルトの名無しさん:04/01/01 15:16
>>737
ありがとうございました!!!
740デフォルトの名無しさん:04/01/01 16:03
WSAD上でstrutsのwebアプリ開発してるんだが、DB2との接続がうまくいかぬ・・・!
struts-config.xmlでの記述方法について知っておられる方、心温まるアドバイスきぼんぬ。。
>>732
エラーコードで判別するのが普通でっしゃろ。RDBMSに依存するので、
そっちの仕様書読みなはれ。
>>740
「接続がうまくいかぬ・・・! 」だけじゃなんとも。
何をどうしたらどううまくいかないのかを書かないと。
実行時にどんなエラーメッセージが出るのか、とか。
おおかた、struts-legacy.jarが実行時クラスパスに入ってないとか
じゃないかと思うが。
ちなみに、Struts1.1では struts-config.xmlの記述による
DataSourceの使用は非推奨で、コンテナのDataSourceを使用
することが推奨されている。JNDI使え。
743デフォルトの名無しさん:04/01/01 17:45
なんかJAVAにバグがあるらしく
年明けにそのバグが発動するという噂を聞いたんですが
本当なんですかね?
>>743
証明書の有効期限が切れる。
745デフォルトの名無しさん:04/01/01 18:05
スレ違いだったら無視してください。

他の言語と比べて、javaへの不満というか、
機能が足りない部分というものを教えてください。
例えば、
『C++と比べて、演算子のオーバーロードが無い』
等です。お願いします。
746デフォルトの名無しさん:04/01/01 18:27
重い
>>746
「重い」っていうのは「起動が遅い」っていう意味ですか。
クラスの多重継承ができない
>>745
そーゆー話題は死滅スレいってやれ。
750貧乏紙:04/01/01 19:34
win32API使えない・・・
と思ったr
MicrosoftがVMでJ/Directを出してた。
でもさすがにMFCは使えないだろ。
751デフォルトの名無しさん:04/01/01 23:35
javaでXMLファイルを読み込んでから、データを追加して書き込んでいます。
書き込んでいる処理は以下のコードで行っているんですが、その際にXML内に
含めてあるDTD定義が消えてしまうんです。
どのようにすれば消えないようにできるのでしょうか?
いくら調べてもわからなかったのでどなたか知っていたら教えてください。

保存処理のソースコード
//ソースツリーの設定
javax.xml.transform.dom.DOMSource src = new javax.xml.transform.dom.DOMSource();
src.setNode(document);
//出力ストリーム(出力結果)の設定
javax.xml.transform.stream.StreamResult target = new javax.xml.transform.stream.StreamResult();
target.setOutputStream(new java.io.FileOutputStream(xmlfile)); // 書き出したいストリームを設定
javax.xml.transform.TransformerFactory tff = javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer tf = tff.newTransformer();
//ソースツリーを出力結果
tf.transform(src,target);

ターゲットのXMLファイル
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE item [
<!ATTLIST item id ID #IMPLIED >
]>
<list>
<item id="1">
・・・
</item>
</list>
752デフォルトの名無しさん:04/01/02 02:12
私は、まだプログラミングの初心者なんですけど、
この年末に1週間くらいで、Javaの結城本の上を、一通り読み終えました。
理解度としては、練習問題を、時折、前のほうを読み返しながら解く程度で、
まだ、あやふやな箇所が多いですが、なんとなく全体像は捉えたと思います。
この場合、再度、読み返すのか、それとも、すぐにJava結城本の下のほうへ進むか、
どちらが良いと思われますか?
Java結城本の下を学習すれば、同時に上のほうの復習に成るでしょうか?
753デフォルトの名無しさん:04/01/02 02:16
お勧めのJAVA開発環境はどれですか?
Windowsで開発します。eclipse の普及率ってどのくらいなんでしょうか?
>>752
そんなの人による

>>753
eclipse
755デフォルトの名無しさん:04/01/02 02:25
>>752
本読むのもいいけどひたすら書べしだよ。
少しわかるようになったんなら、本はリファレンス的なモノとして使うように。

>>753
作るアプリの種類によってかわってくるんでないかと。
eclipseの使用率はすごく大雑把だけど、感覚的には10人中2人って感じ。
756デフォルトの名無しさん:04/01/02 17:05
JNDI使ってDatasource取得しようと思うんだけどpropertyファイルの
記述がなぜか無視されてcontext初期化用のクラスでNoClassDefFoundError
が出るんだけどなんで?

tomcat3.3.1
JDK1.2
DB2
ゲームとかで実行速度を一定に保ったまま描画だけ
処理落ちさせる方法について勉強したいんですけど
適当なサイトか書籍ありませんか?
とりあえず「フレーム数」とか「処理落ち」とかで
ぐぐったけどイマイチよいページがひっかかりませぬ。
758デフォルトの名無しさん:04/01/02 19:14
わたしも描画関連で質問。
Javaって実はかなり環境依存ありますよね。
アプレットでアニメーションさせるとき、勝手にアンチエイリアスかけるブラウザだと
めちゃくちゃ描画が遅くなってしまい困っております。
解決方法はないものでしょうか?(遅い方にあわせる以外で・・・)
759デフォルトの名無しさん:04/01/02 19:57
>>757
処理落ちさせる、ってのは描画が中途半端になる、ってことじゃなくて
コマ数を減らす、ってことだよな?

repaintって描画完了までブロッキングするわけじゃなくて
再描画のキューを入れるだけで、再描画が終わらないうちに
もう一度repaint呼んでも一度しか再描画はされないんじゃなかったっけ?
ちょっと記憶があいまいだから詳しい人いたら補足キボンヌ。

仮にそうだとしたらpaintに内部処理を書かず、純粋に描画の処理を書いて
別のスレッドで内部処理をすればいいんじゃないの?
760デフォルトの名無しさん:04/01/02 20:09
コンストラクタの修飾子について質問です。
public修飾子はほかのクラスからアクセスできるコンストラクタ
と入門書にかかれていたのですが、publicをつけないでも
他のクラスから呼び出せます。いまいちpublicの意味がわからない
です。どなたかお助けを。。。
761デフォルトの名無しさん:04/01/02 20:19
>>760
修飾子無しだとデフォルトのアクセス権を持ったコンストラクタになる。
別のパッケージから呼んでみな。呼べないはずだよ。
<frameset cols="200, *">
  <frame src="foo.html" />
  <frameset rows="50%, 50%">
    <frame src="bar.html" />
    <frame src="baz.html" />
  </frameset>
</frameset>

JFrameでウィンドウを上記のように区切りたいと思っています。
GridBagLayoutだと思うのですが、GridBagConstraintsには幅の絶対値を指定するものがありません。
どうすべきでしょうか。GridBagじゃないのでしょうか。
どうでもいいけどJavaってヌルポが出ても強制終了しないから好き。
764760:04/01/02 20:26
別のパッケージとはなんでしょうか?別のクラスの集まりって意味ですか?
すみません初心者で...
765デフォルトの名無しさん:04/01/02 20:30
>>764
パッケージってのは名前空間のようなもの。
java.lang.Stringとかの「java.lang」の部分。これをjava.langパッケージと言う。

public - 無条件にアクセス可能
デフォルト(何も書かない)- パッケージ内でアクセス可能
だから、あらゆる場所から利用するコンストラクタはpublicに
しないとダメなのですよん。
766760:04/01/02 20:39
>>765 ありがとうございます。
あともう一つわからないことがあります。
Objectクラスのメソッドについて質問です。
getClass()メソッドというのがありますがこれは入門書に
現在のオブジェクトのClassオブジェクトを返しますとありますが
どういう意味なのでしょうか?
>>766
getClass()メソッドの戻り値はjava.lang.Classクラスのインスタンスです。
これはインスタンスが所属するクラスのクラス定義を表すクラスです。
よく使われるのは、object.getClass().getName() です。
あらゆるインスタンスに対し、クラス名を取得することができます。
Object o = "String"; でも、 o.getClass().getName() によって
"java.lang.String"を得ることができます。便利ですね。
海外掲示板用オフラインリーダーを作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1072883528/

海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
>>768
作り方は簡単だ。

>必要な条件はID、PASSを管理できること、
htaccessのやつかCGI独自のものか知らんが単純にユーザに入力させてファイルに保存すればよし。

>OpenJaneみたいな三面型の見た目。
JSplitPaneでも使え。

>簡単にローカライズできるように言語ファイルを採用
設定ファイルを外部で持たせろ。

作成依頼ならスレ違い。
ttp://age.tubo.80.kg/upl2/img/725.txt

こんな風に、ボタンが二つ表示されて、
押したボタンによって反応を変えたいのですが、
これをコンパイルして実行すると、button2しか表示されません。
c.add(l,BorderLayout.CENTER);
b1=new JButton("no.1");
b1.addActionListener(this);
b2=new JButton("no.2");
b2.addActionListener(this);
c.add(b2,BorderLayout.SOUTH);
ここら辺を入れ替えると、button1のみになるので、
順番が関係してると思うのですが
どうすればいいのでしょう。
>>770
c.add(b1,BorderLayout.SOUTH);
・・・
c.add(b2,BorderLayout.SOUTH);

b1をSOUTHに配置して、その後b2もSOUTHに配置しとるぞ。
772 :04/01/03 01:00
Yahoo!ファイナンスにみられるような株の売買の様子をかいた
2Dのチャートをつくりたいのですが、どのように実装すればよいのでしょうか?
774770:04/01/03 01:14
>>771
とりあえずb2をEASTに配置したらうまくいきました。
でも、同じところにボタンを配置できないということは、
ボタンは最大で5こまでしか置けないということですか?
>774
そう。だから、それ以上やる時は Panel を作ってそれを貼る。
というか、今回はグリッドレイアウトでいいんじゃないかな?
ttp://msugai.fc2web.com/java/applet/awt/GridLayout.html


とか偉そうに言っておきながら俺も困ってるんですが、
class A{
public static void main(){
A hoge = new [サブクラス](); }
するコードって書けますか?
つまり、
class B extend A{}
とかやって
コマンドライン> java B
するとBのインスタンスをつくるような。
776 :04/01/03 01:45
>773
せっかく教えていただいたのですが、
英語で書かれているのでよくわからないです。
とりあえず落としてみて実行してみたんですが、エラーだらけでした。
ソースを読んでみたのですが、jfree.org内のクラスを使用
しないと実行できないようでして、jfree.org内のクラスを
使用しない形で2Dのチャートを作りたいです。
>>775

% cat A.java
public class A {
  public static void main(String[] args) {
    A hoge = new B();
  }
}
class B extends A {
}
% javac A.java
% java A

コード自体は別に問題ないが main メソッドは A クラスに属するんだから
実行は java A だ。
778デフォルトの名無しさん:04/01/03 02:50
質問あげ。
ものすごく初歩的な質問で申し訳ありません。
int型の値を型に変換するにはどうしたらいいのでしょうか。
double a、int bとしてa=(double)bとやっても駄目で、
ラッパ(?)を試みましたがことごとく失敗しています。
APIで確認して、ぐぐってもみましたが解決できません。
きっと探し方が悪いんでしょうけど…
よろしくお願いします。
779778:04/01/03 02:52
すいません、
×int型の値を型に変換するにはどうしたらいいのでしょうか
○int型の値をdouble型に変換するにはどうしたらいいのでしょうか
です。
これならできました。
Javaでは初期化してない変数の参照は
認められてません(エラーメッセージの通りです)
public class test {
public static void main(String[] args) {
double a;
int b;
b=0;
a = (double)b;
}
}
781778:04/01/03 03:06
>>780
ありがとございます。
ですが、bにはすでに値が入っています。
ついでにaも初期化しているのですが…
> 実行は java A だ。

えーと、mainを流用したまま各サブクラスのインスタンスを作りたいんです。
>>782
args の値で場合わけするなりリフレクションを使うなりしろ
>>781
普通はできないはずがない。とりあえずエラーメッセージを書け。
doubleじゃなくてDoubleの悪寒
doubleの小数点以下2桁までを出力するには、どうすればいいんでしょうか。
2桁以下を切り捨てたいんですが。
100倍してintに入れて、再度doubleに代入してから100分の1にする。
・・もっとスマートな方法がありそうだね。
切り捨てる理由が表示だけならこんなのも。
double dValue = 1234.56789;
System.out.println(new java.text.DecimalFormat("##########.##").format(dValue));
789786:04/01/03 16:58
ありがとうございます。
>>788さんのはよくわからないので、
>>787さんの方法でやろうと思います。
790778:04/01/03 17:52
すいません、できました。
doubleの値を文字列にしてラベルに表示する、という方法をとっていたのですが、
int->doubleではなくdouble->Stringのとこがまちがってました。
死のう…
791デフォルトの名無しさん:04/01/03 19:45
Javaの勉強しようと本を買ってきたばかりなんですけど、
現在sunのホームページからSDKダウンロード出来ないようです。
英語のページからだとダウンロードできるんですけど、
日本語のページからダウンロード出来るものと同じ物ですか?
>>791
たぶん同じ。日本語のダイアログが出ると思う。
793791:04/01/03 19:57
>>792
たぶん同じですか。
これからインストールしてみます。
ありがとうございます。
794デフォルトの名無しさん:04/01/03 20:53
テキストファイルの行(例えば100行目とか)を指定して、その1行を削除する方法を探しています。
Writerのメソッドを調べていたのですが、ぴったりなものがなくて困ってます。
>>794
いったん全部読み込んで100行以外を除いてファイル作り直せばいいんじゃない?
796794:04/01/03 21:08
なるほど。そんな方法もありますね!
ファイルサイズが大きくなければいけそうです。やってみます。
>>796
というか、そういう方法しかないと思うが。
798770:04/01/03 22:08
>>775
ご回答ありがとうございます。
しかし、リンク先のグリットレイアウトというのはアプレット
見たいなので、パネル使います。
配列について質問です。
配列はどのクラスに属するんでしょうか?

public class ArrayTest {
  public static void main(String[] args){
    byte[] obj = new byte[256];
    System.out.println("The class of " + obj + " is " + obj.getClass().getName());
  }
}
// #java ArrayTest => The class of [B@194df86 is [B

とりあえず、byteの配列をgetClass.getNameしてみたら [B が返ってきました。
???.length とかあるので一応クラスなのではないかと思っているのですが。
ユーザーインターフェイスでButtonを押したらウィンドウがクローズするようにするにはどうすればいいですか
>グリットレイアウトというのはアプレット
802770:04/01/03 22:31
>>801
あのリンク先がアプレットについて書いたページだったんで、そうだと思っていましたが実はそうではなかったんですね。すみません。やっぱりグリットレイアウトでやってみます。
javaの実行時に java app aaa.txt bbb.txt みたいに
パラメータとして2つのファイル(aaa.txt、bbb.txt)を渡すようにしているのですが
そのパラメータが入力されたかどうかのチェックを行いたい場合、
どのようにすればいいでしょう?
いちいちBufferedReaderとか使って取り込んでException発生させないとできないでしょうか?
aaa.txtはすぐに使うので良いのですがbbb.txtはプログラム後半で必要になるので
bbb.txtを使うときに「パラメータ指定してねぇぞ」ってエラーを発生させてしまうのは
なんか嫌なので・・・。
>803
先に args.length を調べとけ。
(public static void main(String[] args) の場合ね。)
805770:04/01/03 22:43
すみません。
java.awt.GritLayoutを調べたところ、やっぱりアプレットでつかうようなのです。
普通のときに使うにはどうすればいいのですか?
>>799
配列は配列型。byteの配列ならbyte[]型。byte[]の配列ならbyte[][]型。
それぞれbyteとは違う。
java.lang.Class#getName()の戻り値については、以下のURLを参照。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Class.html#getName()
807デフォルトの名無しさん:04/01/03 22:53
char a='あ';
char b='い';
System.out.println(a+b);

をやると実行結果は、24710です。
文字列同士の+は有効でも、文字同士は駄目だということでしょうか?
>807
いかにも。
>>805
どこをどう調べたのかは知らないが、
Appletで使用できるがそれ以外では使用できないレイアウトマネージャは標準APIに存在しない。
810803:04/01/03 23:05
>>804
こんな簡単にできたんだ・・・。
ありがとうございます。
>>806
そんなところに詳細が書いてあるとは・・・。
確かに配列は配列型みたいですね。
すんまそん。ありがとうございました。
>>791
遅レスだが、Windows Offline Installation, Multi-languageと
書いてあるから多国語対応、つまり日本語もOKだね。

オフラインインストーラを選ぶかオンラインインストーラを選ぶ
かは好みで。漏れはいつもオフラインインストーラだけど。
770の欲しいソースはこんな感じか?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GridLayoutSample extends JFrame {
 public static void main(String[] args) {
  GridLayoutSample app = new GridLayoutSample();
  app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  app.setSize(200, 200);
  app.setVisible(true);
 }
// 続く
//813の続き
 public GridLayoutSample(){
  Container pane = getContentPane();
  pane.setLayout(new BorderLayout());
  JPanel panel = new JPanel();
  pane.add(panel, BorderLayout.CENTER);
  panel.setLayout(new GridLayout(4, 4));
  for(int i = 1; i <= 16; i++){
   JButton button = new JButton(String.valueOf(i));
   button.setActionCommand(String.valueOf(i));
   panel.add(button);
   button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
     JOptionPane.showMessageDialog(GridLayoutSample.this, e.getActionCommand());
    }
   });
  }
  JButton button = new JButton("終了");
  pane.add(button, BorderLayout.SOUTH);
  button.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e) {
    System.exit(0);
   }
  });
 }
}
>>808
駄目じゃないだろ。+は有効。
文字を連結するという効果は無いけど。
816770:04/01/03 23:33
new GridLayout(4, 4)見たくやればいいのですね。
ありがとうございました。
817デフォルトの名無しさん:04/01/03 23:40
_| ̄|_| ̄|○ どこで質問したらいいかわからず、体の構造が変になってます。

『”』←これって、『ダブルクォート』と『ダブルクォーテーション』、どっちの呼び名が正式ですか?
>>807
+の片方か両方のオペランドがString型のときだけ連結をすることになっている。
char型の場合はその文字コードをint型の数値と読み替えて加算してしまいます。
819807:04/01/03 23:44
回答ありがとうございました
さっぱりわかりました
>>817
正式は『ダブルクォーテーション』。
『ダブルクォート』は略称だと思われ。

そして、質問すべきところはおそらくここだと思われ。
http://pc2.2ch.net/test/read.cgi/tech/1069530956/

閑古鳥がないてるが…。
821初心者です:04/01/03 23:49
質問させて下さい。
JAVA使用のゲーム(yahoo将棋など)をしてる最中によく駒が動かなくなることがあります。
マウスポインタは動くのですが、、
いろんなところをクリックしてると治ります。(なぜそうなるのかは分かりません)
解決方法があればご教授お願いいたします。
Javaのプログラムで,デフォルトの音楽のプレイヤー(WindowsMediaPlayerやWinampなど)を立ち上げ演奏したいと思っています。
やり方が全く分からないので何かヒントをください(クラス名とか)。よろしくお願いします。
Runtime.getRuntime().exec("start hoge.mpg");
824822:04/01/04 00:06
>>823
ヒントって言ったのに答えやんけ!!!
って嘘です、ごめんなさい、どうもありがとうございます。助かりました。
>>821
ガベージコレクションでもしてんじゃね?
ぜんぜん知らんけど
826デフォルトの七資産:04/01/04 02:30
hffp://age.tubo.80.kg/upl2/img/756.txt
上のように組むと、左のボタンを押すと、一回表示が代わりますが、
その後反応しません。
右のボタンにいたっては、まったく反応しません。
(らべるがかわるようにしくんでおいても)
どこが悪いのでしょうか
>>821
それはゲームプログラムの実装の問題だから、ユーザ側で
対処できる問題ではないと思われ。そもそもこのスレで聞く
ことではない。Yahooに要望でも出しとけ。

強いてユーザ側で対処できるとしたら、メモリ増設とかCPUを
高速なものにするぐらい。
>>826
(誤)
b2 = new JButton("パターンを変えよう");
b1.addActionListener(this);

(正)
b2 = new JButton("パターンを変えよう");
b2.addActionListener(this);

このせいで、b1にアクションリスナーを2回登録していて1クリックで2回の処理が行われる。
こんなのデバッガで追っかければすぐ分かるだろ。
ここまでできるレベルならEclipseのようなIDEを使うべき。効率が全然違う。
ついでにクラスとイベントリスナーの使い方がよく行われる方法と異なるので、
>>813-814のコードを見て参考にするといい。
829 :04/01/04 03:53
こんなエラーがでました。意味がわからず困っています。
どういう意味なのか教えてください。

C:\home>javac CanvasDemo.java

C:\home>appletviewer CanvasDemo.html
java.lang.ArrayIndexOutOfBoundsException: 150
at MyCanvas.paint(CanvasDemo.java:13)
at sun.awt.RepaintArea.paint(RepaintArea.java:177)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
at java.awt.Component.dispatchEventImpl(Component.java:3678)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
ArrayIndexOutOfBoundsExceptionだよ
ちったー自分で調べろよ能無し
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/ArrayIndexOutOfBoundsException.html
831 :04/01/04 04:22
>831
たくさん表示されたのでびびって思考が停止してました(*_ _)人ゴメンナサイ
すみません、ありがとうございました。
>>831
たくさんあるように見えても、
>>829の場合は例外の投げられた一番大元の場所がまず示され、
つぎにその例外が起きたメソッドが、どのメソッドから呼び出されたのかが、
順々に表示されているだけにすぎません。

親亀の上に子亀をのせて、子亀の上に孫亀をのせて、
孫亀のうえに曾孫亀を乗せて、親亀こけたら、みなこけた。
833デフォルトの名無しさん:04/01/04 09:11
java.awt.Labelの画面上での大きさについて。

Frameなどにaddして実際に画面に表示された後なら
getSize()で、その大きさを得ることができますが、
addする前に、今貼ったらどのくらいの大きさか
あらかじめ知る方法はないでしょうか?
getPreferredSize
getMinimumSize
835833:04/01/04 11:30
>>834
以下のような使い方だと(0,0)になりますが、
これは使い方を間違っているのでしょうか?
コメント//を外した時にLabel.getSize()で得られるサイズを取得したいのですが…

import java.awt.*;
public class Test extends Frame{
Label l;

public static void main(String[] args) {
Test f = new Test();
f.setSize(320,240);
f.setVisible(true);
}

Test() {
l = new Label("Test");
//add(l);
}

public void paint(Graphics g) {
System.out.println(l.getSize().toString());
System.out.println(l.getPreferredSize().toString());
System.out.println(l.getMinimumSize().toString());
}
}
836833:04/01/04 11:47
失礼、上のソースのコンストラクタの最初の行に追加です
setLayout(new FlowLayout());

なんか「作られていないからそういう値はない」という
結果に至るような気が…
一旦Labelをこっそり貼って、サイズ取得してすぐ消すとか
Label().getFont()とかで得られる情報から推測するとか
そういうヘタレな方法なら思い浮かんだのですが
837デフォルトの名無しさん:04/01/04 20:10
超初心者です。よろしくお願いします。

ある特定のフォルダ内にあるファイル名、フォルダ名を
すべて取得したいのですが、その場合もどうしたらいいのでしょうか?
(注目しているフォルダ内にフォルダがあっても、その中身は
チェックする必要はありません)
839デフォルトの名無しさん:04/01/04 20:44
GUIで、警告メッセージを出すにはどうすればいいのでしょう?
840837:04/01/04 21:07
>>838 ありがとうございました
841デフォルトの名無しさん:04/01/04 21:09
JButtonを可視状態のまま押せないようにすることはできますか?
>>841 「可視」ってenableじゃなくてvisibleのこと?
なんか逆の質問している気がする。
843デフォルトの名無しさん:04/01/04 21:43
>>842
ありがとうございます!
enableをキーワードにAPIを検索したら解決しました!
844デフォルトの名無しさん:04/01/04 21:47
すいません、JTextAreaにKeyListenerをつけたのですが、
KeyTypedメソッドがバックスペースに気づくときと気づかないときがあるような気がします。
1.そのようなことはありうるのか?
2.もしあるなら、明示的にバックスペースキーにも気づく方法はどうするのでしょうか?

無茶苦茶初心者ですんません。どうかお教えください。
>>839
javax.swing.JOptionPane.showMessageDialog(null,
"警告メッセージ", "ダイアログのウィンドウタイトル",
javax.swing.JOptionPane.WARNING_MESSAGE);
詳しくはここを。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/JOptionPane.html
846839:04/01/04 22:01
>>845
どうもありがとうございます。早速見させていただきます。
847デフォルトの名無しさん:04/01/04 22:23
JavaAppletについて質問なのですが。
自分で作ったApplet付きのホームページを訪れた人のパソコンに何らかの情報を
残して、次に訪れたときにその情報をAppletで取り出したいのですが、どうすれ
ばいいですか?
たとえば、Applet上でユーザー名を入力させて、次に訪れたときは、自動的に
その名前が出てくるような機能です。
CGIやJavaScriptならcookieを使うのが一般的ですけど、JavaAppletの場合も
やはりcookieですか?
848デフォルトの名無しさん:04/01/04 22:29
板・スレ違いかもしれないのですがどこで質問していいのか
分からないのでこちらで質問させていただきたいのですが、
ブラウザのツールバーのツール→sunのjavaコンソールという
ものがあるのですが、これはどういうものなのでしょうか?
まったくプログラムを知らない私が触れるところではないのでしょうか?
どなたかお詳しい方よろしくお願いします。
849デフォルトの名無しさん:04/01/04 22:38
>>848
プログラマーがプログラムの動作をチェックするために文字なんかを表示させるものなんだが。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_guide/console.html
ここ読んでくれ。

850デフォルトの名無しさん:04/01/04 22:56
質問させてください。

Fileクラスを使って、file.exists()を検査してfalseになったのを確認してから
file.makedir()を呼び出しているのですが、どんな名前であれ
常にフォルダ生成に失敗してしまいます。

この情報だけでバグ特定してくださいというのも無茶かもしれませんが、
一般によくやるミスを教えていただけないでしょうか
851848:04/01/04 22:57
>>849さん
レスありがとうございます。
リンク先を読んだのですが、まったくの初心者の私には理解するのに
時間がかかりそうです。
849さんがおっしゃっているように、一応プログラマーの方のみが使用する
ところと考えてよろしいのでしょうか?
852850:04/01/04 23:00
アホな質問してすみません。質問の続きです。

fileに対して、
String str=jt.getText();
file.renameTo(new File(str));
としているのですが、file.toStringをしても何もでてきません。
毎回file=null;file=new File(str);としなおさねばならないのでしょうか?
>>850
>file.makedir()
目が腐ってるんだと思うよ。
854850:04/01/04 23:06
>>853
すんません。間違えました。
しかしながら、ソース上ではfile.mkdir()になっておりました。
もうちょっとオブラートに包んだ表現をお願いいたします。
眼球が腐敗しているものと思われます
856850:04/01/04 23:08
_| ̄|○
(目が腐ってるんだと思うよ。)
↑                ↑
オブラート          オブラート
まぁフォルダってわかってるならisDirectory()使ったら?てことで
859850:04/01/04 23:11
|無職|  λ......   やっぱ俺みたいなアホはプログラマ無理だわ
860デフォルトの名無しさん:04/01/04 23:17
861850:04/01/04 23:28
∀`)
そうとう初心者なんですが、ボタン貼って表示したウィンドウのボタンを
クリックするとウィンドウはそのままで、飾り(ボタンとか)をなくして
他のものを貼りたい(ラベルなど)場合はどのようにすればいいのでしょうか。
Swingでやってます。

>>862
楽にやるなら最初から複数のウィンドウを用意しておいて
ボタンのクリックでそれぞれのvisibilityを切り替えるのがいい。
864862:04/01/05 00:00
やってみます。ありがとうございました。
javaでファイル選択を促すjfilechooserというのがあるようですが、
フォルダ選択のクラスはあるのでしょうか?
あったらクラス名を教えてください。お願いします。
>>865 JFileChooser
Swingの使い方について詳しく解説してくれる良書があれば教えてください。
>>867
 JFCプログラミング キム トプレイ
 Java GUIプログラミング 大村 忠史
大村タンのは読み応えがあんまなかったな。SWT編もアレだし。
AWTまで網羅するなら
 グラフィックJava2 デビッド・M. ギアリー
869867:04/01/05 00:52
>>868様ありがとうございます
スレッドの扱いとかについても詳しくのってますでしょうか?
表示更新がうまくいかないので過去ログみたりググってみたりしたんですが
「イベントディスパッチスレッド」とか「invokelater」とかが理解できなくて・・・
870デフォルトの名無しさん:04/01/05 01:17
JMFを用いてWindowsMediaPlayerのようにリストを作って、
順に動画や音楽を再生するプレーヤーを作成したいのですが、
ヒントになるようなプログラムやサイトはありますでしょうか?

書籍(日本語でかかれているもの)が一冊しななく困っております
ご存知でしたらご教授お願いします
JMenuにフォーカスがあたった時、
その「前」にどのコンポーネントにフォーカスがあたっていたのかを得たいのですが、どうすれば良いのでしょうか?
ESCキーで元のコンポーネントにフォーカスが戻るので元のフォーカスコンポーネントを得る方法がありそうだと思うのですが・・・
>>871
どの部分がわからないのかはっきり書け

リストを作るならSwing、再生ならJMF
どっちもやりたいことを実現するためのサンプルコードはあるはず
JMFの方で英語しかドキュメントがないならそれを読め
いつかは英語しかドキュメントが無いという状況になるのでその練習ということで
873872:04/01/05 03:26
ぎゃ〜、ごめん上の>>871>>870ですた
>>871
やったこと無いけどFocusListenerとかでできない?
んで1個前を覚えとく
>>874
それは多分できるんだけど
JMenuが一個前を覚えてるはずだから、それを参照できないのかなぁ・・とおもってみたりして・・
876デフォルトの名無しさん:04/01/05 06:35
PrintWriterの使い方もわかり、ファイルの出力はできるようになったのですが、
既存のファイルの末尾に新しく何かを書き込む場合はどうすればよいのでしょうか?
>>876
RandomAccesFileで書くようにして、書く前に
末尾までポインタ移動しる。
>>876
new FileOutputStream(filename,true) とか new FileWriter(filename,true) とかするとか
>>753
Eclipseのダウンロード件数は1000万件を突破
880デフォルトの名無しさん:04/01/05 15:15
ところでFile#mkdir()とFile#mkdirs()どっちつかえばいいか迷うなあ。
Javadocの説明見ても曖昧なことかてあって双方の違いの意味わからげ
JTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)を使用することによって、横のJScrollBarが使えるようになりました。
しかし、カラムの幅が狭すぎるのです.
カラムの横幅を指定するにはどうすればいいのでしょうか。
882882:04/01/05 15:22
該当の日付になったら『今日は****の日』と表示させる方法を教えてください。
『****まであと****日』というのはJavaScript系のサイトで出まわっていますが
該当日だけ表示させる方法が見つかりません。
>>882
あなたはjavascriptについて探しているのですか
だとしたら板違い。
884  :04/01/05 16:55
InputStreamにStringを入れたり、OutputStreamから文字列を取り出すにはどうしたらいいのでしょう?
Fileからならうまくいくのですが・・・
>>884
Input、Output が逆だろ。
strValはStringオブジェクトで、nullか空文字列かの判断をするときに、
if (strVal != null && !strVal.equals("")) {
}
と書くのはよく見るんですが、
if (!strVal.equals("") && strVal != null) {
}
は見ません。
なにか理由があるのでしょうか?
          _
      ミ ∠_)
         /
         /   \\
 ウイーン  Γ/了    | |
  ウイーン  |.@|    | | ガッガッガッ
       | / |    人
       |/ |    <  >_Λ∩
      _/  | //.V`Д´)/ ←>>886
     (_フ彡        /
888デフォルトの名無しさん:04/01/05 21:19
>>886
論理演算子は左から評価されるので、後者の書き方ではぬるぽが発生します。
まずnullチェックするのがJavaの定石です。
889886:04/01/05 21:46
ぬるぽってNullPointerExceptionでしょうか?
Javaの定石だということなのでそのまま覚えようと思うのですが、
なぜ前者の書き方だとstrVal != nullの段階で例外が発生しないのですか?
あれこれとすみません。
890デフォルトの名無しさん:04/01/05 21:59
&&は論理積ショートカットなので左辺がfalseだった時点で右辺が評価されなくなるからです。
886の上の例の&&を&に変更すると文字列がnullの時にNullPointerExceptionで落ちます。
&は単なる論理積なので左辺右辺ともに必ず評価されます。
891デフォルトの名無しさん:04/01/05 22:05
FileReader fr = new FileReader("yomikomi.txt");
int c;
for(int i = 0; i < 10;i++){
int count = 0;
while( (c = fr.read()) != -1){
if(c == i){
count++;
}}
System.out.println("i = " + count);

こういう処理があって
ファイル内にある0〜9の数をカウントして出力したいのですが
うまく拾えません

デバッグすると
fr.readで一文字ずつ取ってcに代入される各文字が
19とか24とか47とか二桁の数字ばかりをとって来てcにうまく代入されません
どこが悪いのでしょうか?
if ("".equals(strVal)) {
}
としろ。
BufferedReaderでキーボードから入力されたものを
Integer.parseIntでint型(数値)に変換する前の処理で
入力されたものがint型に変換できるか(数値であるか)、それとも何かしらの文字が入力されていて
int型には変換できない(数値以外のものが何かしら入力されている)かを判断させる処理を
したいのですが、APIをざっと見た限りではそんなメソッド等は見つからなかったと思うのですが
この場合、自分でその判断をさせる処理は作らなければならないのでしょうか?
それとも何かメソッドがあるんでしょうか?
894886:04/01/05 22:14
>>891
そういうことですか、わかりました。
ありがとうございます。
と納得したのもつかの間、>>892は?
それだけしておけば、結局のところ参照比較っていうのでしょうか?
!= はいらないということ?
895デフォルトの名無しさん:04/01/05 22:19
すいません、漠然とした質問で申し訳ないのですが
collection型とはどういうものなのでしょうか?

つい最近Javaを勉強したばかりで
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Collection.html
を読んでもイマイチ理解できません。
一応知識レベルとしてはクラス、オブジェクトの基本を大まかに学んだ程度です。
インターフェイスに関しては若干アヤシイです。
主に使ってる参考書は「やさしいJava」です。
>>895
いろいろと高機能な配列。
>>893
実際にパースしてみて、
例外が投げられるか投げられないかで判断させる。

>>891
それで正しく動いているんじゃないかな。
そのyomikomi.txtに書かれているデータは、アスキーコードによる「数字」だから。
よってcのなかには、yomikomi.txtに書かれていた数字のアスキーコードが格納されているわけ。
charに代入して、文字として比較し、処理をしていけばいいとおもうよ。

>>888
Java以外にも、CやPerlでもそうだよね。

>>889
>なぜ前者の書き方だとstrVal != nullの段階で例外が発生しないのですか?
strVal != nullは、strValインスタンスのメソッドを呼び出しているわけではないから。
たんに、strValが空っぽかどうかをチェックしているだけだから。

ヌルポの例外は、この場合、strValが空っぽなのにメソッドを呼び出そうとした場合に発生するから。
898 :04/01/05 22:44
やっぱりいきなりJavaだと参照とかポインタ(あからさまには出てこないけど)の理解があいまいのままになりがちかな。
899デフォルトの名無しさん:04/01/05 22:46
>>896
もうすこし詳しくお願いします
900893:04/01/05 22:50
>>897
いま、やってみてるコードだと文字が入力されていてもそのままparseIntして
Exceptionを発生させ、finallyで
if(exception != null) {
   もう一度このメソッドを処理しなおす。
}
ってな具合なんですが、これでもOKでしょうか?
当然、Buffered〜などで使った変数はクローズしたりnullにしたりしています。
901893:04/01/05 22:51
いや、そもそも自分自身のメソッドから自分自身のメソッドを呼び出すことって可能なんでしょうか?
>>899
どのへんを詳しく聞きたいのか、あなたが言ってくれないと、
なにを説明してあげたらいいのか、わからないよ。

コレクションクラスなどにおける、
インターフェイスや抽象的なクラスを駆使して、
実体的なクラスをあつかう方法について聞きたいの?
それとも、コレクションについて聞きたいの?

もう少し詳しくと言われても、その質問内容では
>>895が言うように、ちょっと漠然としすぎだよ。
int foo;
while(true){
 try{
  foo = Integer.parseInt(reader.readLine());
  break;
 }catch(NumberFormatException e){
  continue;
 }
}

とかだろ
>>901
もちろん自分自身のメソッドから、自分自身の別のメソッドを呼び出すことも可能だし、
自分自身のメソッドから、自分自身のおなじメソッドを呼び出すことも可能だ。

後者は「再帰」と呼ばれる。あまり再帰させすぎると、メモリ不足などを引き起こすが。
905デフォルトの名無しさん:04/01/05 23:11
>>902
>それとも、コレクションについて聞きたいの?
そうです。一応>>895にも書きましたが。

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Collection.html
ではよくわからないのでもう少しかみ砕いて説明して頂けると幸いです。
906893:04/01/05 23:26
>>903
>>904
ありがとうございます。
903方式を参考に組んでみたらできました。
>>905
とりあえず、そのページの内容、どこまでわかった?
コレクションについてどこまでわかっていて、
どのあたりが.わからないのか書いてみたらどうかな。

コレクションについては、俺がいい加減なことをここに書くよりも、
英語が読めればSunのJavaチュートリアルを見た方がいいのだが。
日本語のテキストでなにかいいものはあるだろうか。
http://java.sun.com/docs/books/tutorial/collections/
Collections
 質問です。
 あるVM上で走っているJavaプログラムののメソッドトレースができるような
ツールってご存じないですか。
Eclipseのデバッガようにステップ実行するのではなくて、
標準出力などにテキストで出力されるようなツールを探しております。

是非ともご教授下さい。
よろしくおねがいします。
>>908
Java2 SDK。
jpda、リモートデバッグあたりをキーにぐぐれ。
>>909
 言葉足らずですみません。JDK 1.4.03です。
一応JDI等で希望するような出力をするテストコードも書いたのですが、
「こういうのって誰か書いてるよなぁ」と思い質問した次第であります。

 一応↓のようなモノも見つけたのですが、残念ながらWindows上でのみの動作
のようでして・・・。どうさ環境はSolaris9です。
http://www.fuka.info.waseda.ac.jp/~washi/other/mgraph.html

>910
AspectJでトレースするってのはどう?
なんか自分で聞いてても馬鹿みたいなんだが

String str;
str = "なんか文字列";

ってしたとき、エディタで編集したときには「なんか文字列」はShift JISだったとして
strはShift JISなんでしょうか?UTF-8なんでしょうか?
>>912
おおざっぱにいうと、UNICODE(UCS-2)。
>>912
> ってしたとき、エディタで編集したときには「なんか文字列」はShift JISだったとして
ソースファイルが SJIS だろうが何だろうが、
コンパイル時に "なんか文字列" と書かれた部分はユニコードに変換される。

ちなみに、コンパイル時に -encode で正しいエンコーディングを選ばなければ文字化けする可能性もある。