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

このエントリーをはてなブックマークに追加
過去ログ、関連スレの一覧や、これから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質問・相談スレ36【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1068926949/

すべてのクラス (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
4
3デフォルトの名無しさん:03/11/30 11:35
>>1
糞スレ立て乙!
1
2
6973:03/11/30 11:48
おつかれさまでございます
質問です。
アプレットを使ってe-typingみたいなものを作ろうとおもって作っているのですが。
アプレットを起動して文字を入力するとき、一回画面をクリックしないと文字が入力できません
どうしたらよいでしょうか?
e-typingだと最初からキーが反応してくれるんですが。
>>7
微妙にスレ違い
>>7
そういうものです。
スタート画面に「Click to start!」と書いておいて、必ず最初にクリックさせて
フォーカスを与えるのが常套手段かと。JavaやAppletの問題とは違うね。
ttp://age.tubo.80.kg/upl2/img/180.txt
↑は|があったら分けて表示しようとしたのですが、
コンパイルは成功するのですが、
実行すると、
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.<init>(String.java:165)
at Subdasu.submain(Dasu.java:35)
at Dasu.main(Dasu.java:4)
と表示されてしまいます。どうすればいいのでしょう。

//ついでに10げとずさー(AA略
このエラー見て原因がわかんないようじゃ芯だ方がいいよ。
>>11
1. i_or2++; と i_orkazu++; の位置がまずい。
2. 最後の '|' の後ろを出力してない。
  "さしすせそ|たちつてと|なにぬねの" だと
  「なにぬねの」 を出力してない。
3. 直前の '|' の位置を記憶して無いので
  "さしすせそ|たちつてと|なにぬねの" を処理すると
  > "さしすれそ"
  > "さしすれそ|たちつてと"
  とかいう出力になる。

あと、インデントできてないとか重複してる変数が多いとか
java.util.StringTokenizer 使えば楽なのにとかイロイロ。
String(char[]) の引数がnullだとStringクラスの中でぬるぽる。
そこで落ちてるんだがat Subdasu.submain(Dasu.java:35)って書いてあるのに
なぜそこをチェックしないのか。
HashSet のすべての要素をまとめて ArrayList に変換するにはどうすればいいのですか?
>>15
new ArrayList(hashSet);
>>16
そんなに簡単にできるんですね。
いちいち add していた。

もうちょっと勉強しないと、、、
18デフォルトの名無しさん:03/11/30 18:44
public class hogehoge {
 // いろいろ
}

とかいうクラスの定義は、*必ず*「hogehoge.java」というファイルに書かなけれ
ばならないそうですね(どこにそう書かれているのか分からないが、そうしな
いとjavacがエラーを出す)。このように決められている理由って何でしょう?

 そこで、以下のように考えてみました:
   1. コンパイル時に、javacは対象の.javaファイルの中身を解析し、その中
    で定義されているクラスの依存関係を調べる。別のクラス(foo)を
    継承しているならば、foo.classを探す。
   2. 見つからなければ、そのクラスfooを定義している.javaファイルをコン
    パイルする。
   3. 2.において、所定のパス(CLASSPATHで指定された場所)のすべてのファ
    イルから探すのは極めて効率が悪いので、ファイル名をfoo.javaに固定
    してしまおう。
以上のプロセスを経て、
   publicなクラスhogehoge、fooは、それぞれ「hogehoge.java」「foo.java」で定義
   されなければならない!
と決められた。javacさえあれば、MAKEがなくても依存関係を解釈し、正しくコ
ンパイルできるようにするためである。いわゆる「MAKEいらず」を実現するた
めだ。


…この解釈は正しいでしょうか?また、もし、このことに関して書かれている
Webページがあれば、教えて下さい。

# Googleで調べるなら、どんなキーワードがいいんだろう…?「Java」は当然と
# して、他には…「依存関係」?でも、「Java」「依存関係」でググっても分か
# らなかった…
publicじゃないクラスは同じファイルにいくらでも書けるわけだが、それはどう説明するんだよ。
2018:03/11/30 18:50
あ、「Java言語仕様 第2版」(ISBN:4-89471-306-3)見てもどこに書かれているの
か全く見当がつかなかったです…
21デフォルトの名無しさん:03/11/30 18:52
>>15
addAll
2211:03/11/30 18:56
うまくいきました
ありがとうございました
23デフォルトの名無しさん:03/11/30 19:01
次のバージョンのJDK 1.5から
ついてくるらしいgenericっていう
機能について誰か説明してください。
型理論とかんけいあるのかな。
お前がどこで「generic」なんて言葉を知ったのかわからんが
ココにいる奴に説明できるわけないだろ?Sunの開発者じゃねーんだからよ。推測の範疇を超えることは出来ない。
Sunのページで情報探すのがスジなんじゃないの?
つうか、今回の一連の 交通違反者追跡中の事故についてどう思う?
マスコミも「カーチェイス」などという言葉を使い、わざと煽っているとしか思えないよ。
さっきなんてテレビで被害者の家族が怒りの態度を表していた。
遺族のやりきれない気持ちはわかるが、怒りをぶつけるところがないから
そんな事言ってるだけじゃないか。
なにが「このままでは次の犠牲者がでるから、私達は立ち上がらないといけない」だ!
そういうこというのなら、どういう方法で追跡すればいいのか具体的なやり方など資料集めて欲しい。
警察が悪いのなら、何がどういう風に悪かったのか言って欲しい。
遺族の集めてる資料は警察叩く揚足取りみたいな資料だけだろ?
裁判を有利にするための資料だろ?
そういうことやって「次の犠牲者」がホントに減ると思ってんの?
犠牲者減らしたいなら、あなた達が追跡マニュアル作れよ。
ホントは何だかんだ言って、金で解決して欲しいだけじゃないのか?
マスコミに載せられてでかいこといってんじゃないよ。と俺はいいいたい
おい,C言語のunsigned charに相当する「符号なしバイト」っていうのはJavaにはないのか?
てっきりあるものだと思って作っちゃったよ・・・
そのプログラムではビットシフトも使ってるので
右シフトしてもマイナスの場合1が左端に追加されるので(-値になる)
おかしいなと思ってたわけよ
最初に仕様書読むべきだった・・・

で、教えて欲しいんですが
こういう場合、Javaならcharかint使うんですか?
ていうか別にそんなの聞いても大体答え決まってるし。
聞いてもしょうがない。ぱにくってる俺。
>>24
同意だがまずもちつけ
>>25
> おい,C言語のunsigned charに相当する「符号なしバイト」っていうのはJavaにはないのか?
無い。

> 右シフトしてもマイナスの場合1が左端に追加されるので(-値になる)
val >>> shiftcount; すれば?
>>24
参考リンク張るので自分で調べてください。

http://www5.airnet.ne.jp/sakuraba/java/laboratory/J2SE1.5/LangSpec/Generics/Generics.html
比較的最近書かれた generics の解説。
他のページで 1.5 で追加予定の他の新機能の解説もしてる。

http://developer.java.sun.com/developer/earlyAccess/adding_generics/
無料登録すれば、1.4.2 で generics 使えるようにする拡張ライブラリがダウンロードできる。
3029:03/11/30 20:38
s/24/23/
31デフォルトの名無しさん:03/11/30 20:40
String strName = new String(request.getParameter("Name").getBytes("iso-2022-jp"));
みたいなオブジェクトの後にメソッドが続けての書き方って

String(request.getParameter("Name"));
String(request.getBytes("iso-2022-jp"));
と同じ意味でしょうか?
>>31
> String(request.getBytes("iso-2022-jp"));
とりあえず、コンパイルエラーじゃないか?
>>31
> String strName = new String(request.getParameter("Name").getBytes("iso-2022-jp"));
iso-2022-jp でやったら文字化けするか、無駄な処理してるか、しかないような気が…
34デフォルトの名無しさん:03/11/30 21:01
キャストで
double a = (double)suuji;
long a = (long)suuji;
などはわかるのですが

Vector vct;
vct =(Vector)session.getAttribute("suuji");
などVectorに変換するの意味がわかりません

Vector型に限らず、他のオブジェクトにに変換ってどういうことでしょうか?
35デフォルトの名無しさん:03/11/30 21:03
>>32
String strName = new String(request.getParameter("Name").getBytes("iso-2022-jp"),"JISAutoDetect");
36デフォルトの名無しさん:03/11/30 21:06
Javaって、Windows上で実行するときは必ずDOS窓が必要になるんでしょうか?
たとえば、パワーポイントでプレゼンをするときなど、exe形式のファイルだと、
クリック一発で立ち上がるようにできるんですが、Javaのアプリでそういった
ことをするのはできないんですかね?
37デフォルトの名無しさん:03/11/30 21:10
jar をダブルクリックで起動できる
38デフォルトの名無しさん:03/11/30 21:14
>>27、28

「>>>」これは質問する前に使ったんですが上手くいきません。
 
Javaではビット演算子使うと戻り値はint型になるようなので、
例えば
byte b=0x01;
//b=b>>>1;intからbyteには変換できないとエラー出ます
int i=b>>>1;//これはOK

ただし、これでも何でかわかりませんが問題が出ます
僕の考えていることは
b=-128のとき「>>>1」演算子によって期待する結果は64なのですが
上のようにした場合「i」の値は2147483584になってしまいます

わかりやすく言うと
byte b=-128;
System.out.println(b>>>1);//これは2147483584が表示される
System.out.println((byte)(b>>>1));//これは-64が表示される
System.out.println(b>>1);//これは-64が表示される
なんでなんでしょうか?
Eclipseでビットの動きを見ようと思ってるんですが
ビット単位で値を見れないので中がどうなってるかわかりません

ほかにもSystem.out.println(Byte.toString((byte)(b>>>1)));//(表示-64)
やInteger.toHexStringなども試したんですが64と表示される方法は見出せませんでした
なんか上のコードで僕が勘違いしている部分があれば教えてください

そういう理由もあって最初からintでやればいいのかな?と思いまして・・・

39デフォルトの名無しさん:03/11/30 21:15
jarファイルって、たまに聞くときがあるんですが、実行ファイル形式なんでしょうか?

hogehoge.java→hogehoge.jarに変換が必要ってことでしょうか?
>>39
既出。すべて過去ログに書いてある。
一応、書いておくと
"実行可能Jarファイル""マニフェスト"で検索。
>>34
変換しないとObject型として取り出しちゃうから

>>39
うんこ喰え
もしくは糞を食しなさい
4225,38:03/11/30 21:25
参考のために同じようなコードどこかでないかと思って探してみたところ
Javaのソースファイルの中にjava.util.prefs.Base64というユーザが触れないクラスがあって(パッケージプライベート)
そのなかでは
int byte0 = a[inCursor++] & 0xff;//aはバイト配列
と、やってから
[>>]演算子を使っています やはりそうするしかないようです
43貧乏紙:03/11/30 21:26
>>25,27
まったく、どいつもこいつも俺様が説明しよう!
CやC++で必要のなかった符号なし右シフトがJavaでは必要です。>>>と言う演算子です。
なぜ必要かというと、CやC++で定義されている符号なし数値型がJavaにはないからです。
Javaの数値型はすべて符号がついているため(char除く)。
つまり
左シフト演算<<
右シフト演算符号なし>>>
右シフト演算符号付>>
となり38の結果はJavaの仕様通りでなんらおかしくありませんよ。
44デフォルトの名無しさん:03/11/30 21:31
>>36
javawにショートカット作れば良い。
>>38
> Javaではビット演算子使うと戻り値はint型になるようなので、
代入以外の演算すれば byte は int に昇格する。
byte b1,b2 があるとき、 b1 + b2 の式の型は int になる。

> b=-128のとき「>>>1」演算子によって期待する結果は64なのですが
(-128 & 0xFF) >> 1 とか。

> ビット単位で値を見れないので中がどうなってるかわかりません
for(int i = 31; 0 <= i; i--)
 System.out.print(((val >> i) & 1) == 0 ? "0" : "1" );
とかすりゃ自力で表示できるでしょ。
>>43 つっこみどころはそこじゃなくて、38が
ttp://www.y-adagio.com/public/standards/tr_javalang/5.doc.htm#26917
を理解していないことではないかと...
4725,38:03/11/30 21:33
>>43
でも、28のリンク先のあるぺージのように
b=-128
b>>>1
は64(0100 0000)にならず
-64(1100 0000)になってしまうんです

b>>>1とb>>1の結果が同じっておかしくないですか?
説明ではマイナスの値の時>>>は0が補足されると書いてあるんですが(つまり負の値にはならない)
「右シフト演算符号なし」っていう意味はそういうことですよね?
>>47
((byte)-128) >>> 1 は、両辺が単項数値昇格するので
((int)((byte)-128)) >>> ((int)1) と同等になる。
4925,38:03/11/30 21:39
>>48
ああ、なるほど

じゃあ、>>42で僕の言ったやり方(&0xff)でやるか(>>45も) 最初からintでやるしかないのか・・
5036,39:03/11/30 22:00
>>37
>>40
ありがとうございます。探してみます〜。
51デフォルトの名無しさん:03/11/30 22:18
Eclipseを試しているのですが、起動してタイトルのようなものがでてそれ以降動きません。
環境はWindows2000 sp4.0
です。
Eclipseのバージョンは2.0.2
JAVAは1.4.2です。
なにかわかりませんか?
>>51 たまに2.0.2とSDKの1.4.2の組み合わせで起動できない人が
いるんだよね。とりあえず1.4.2はそのままにして、1.4.0のJREを
インストールしてごらん。起動したらEclipseの設定でコンパイル時に
1.4.2のライブラリを参照するようにすればいいから。
5351:03/11/30 22:28
>>52
すばやいご回答ありがとうございます。
無事動きました。

違うだろ
2.1を使えばいいだろ
5518:03/11/30 23:20
誰か、>>18の質問に答えて下さいー。お願いします
>>18
makeいらずかどうかはしらんけど、実装してあるjavaファイルを一意に
決めたいからというのはその通り。Javaの言語規定に書いてある。
ttp://java.sun.com/docs/books/jls/second_edition/html/packages.doc.html#26783
ただこれはファイルシステムを持つホストシステムだけに限った話
であってファイルシステムから切り離された開発環境では従う必要はない(つーかできない)
からその旨明記してある。VisualAge for Javaなんかが当てはまる。
57デフォルトの名無しさん:03/12/01 00:17
ビジネスロジックって何でしょうか?
たとえば、どういったソースを指しているのでしょうか?
>>57
http://www.sw.nec.co.jp/word/ha/ha039.html
もっと広い意味で使っているとこもありそうだけどね。
>>57
アプリ全部-(画面のロジック+低レベルのデータベース操作のロジック+ミドルウェア以下のレイヤ)

業務アプリ個々の機能そのものを実装しているところ、とでもいいますか。
60デフォルトの名無しさん:03/12/01 00:25
>>58
つまりビジネスロジック自体の意味は曖昧ってことですか?
業務処理の方法とありますがたとえばその使いかたによって
意味が違ってくるのでしょうか?

よくこの処理はビジネスロジックを呼び出すとか言われますが
いまいち分かりません
>>18 >>55
言語仕様(規定?)で決まってる。
Javaを最初に作った奴がそう決めた。ってのが答えだけど、

どうしてそういう仕様にしたのか、といったら単純にわかりやすさのためだと思う。
publicなクラスに限れば、特別なツールを使わなくても
そのクラスを定義してあるソースファイル/クラスファイルの場所がすぐにわかる。
曖昧です。

「システム」とか「アプリケーション」の意味も曖昧だろ。
JBuilder9を利用しているのですがネットでみつけたJUnitのソースが動きません
別途なにかインストールする必要があるのでしょうか
importの自動補完でJUnitがでてきていません
>>63
クラスパス通してる?
質問です。

JBuilder8で、実行時のクラスパスはどうやって指定すれば良いのでしょうか?
コンパイルは通るのに、実行時に「クラスが見つからない」と言われてしまうのです。

よろしくお願いします。
66 :03/12/01 17:39
Javaの日付計算で質問です。

現在の日付から先週、先々週、先々々週と過去の月曜日の日付を連続して取得するには
どうすればいいのでしょうか?

GregorianCalendar gc = new GregorianCalendar(2003, 12, 01);
for(int i; i< 365; i++){
 gc.roll(Calendar.DATE,true);
 if (Calendar.MONDAY == gc.get(Calendar.DAY_OF_WEEK)) {
 //週の始まりを取得
 wd.setStart(gc.get(Calendar.DAY_OF_WEEK));
 wd.setYear(gc.get(Calendar.YEAR));
 wd.setMonth(gc.get(Calendar.MONTH) + 1);
 wd.setDay(gc.get(Calendar.DAY_OF_MONTH));
 }
}

とやっているのですが、同じMONTHの値しか取得できないようです。
何かうまい方法はないでしょうか?
7日ずつ引けば?
>>66
> gc.roll(Calendar.DATE,true);
roll だと月以上のフィールドは変化しないよ。
gc.add(Calendar.DATE,-7);
>>68
> roll だと月以上のフィールドは変化しないよ。
gc.roll(Calendar.DATE,true) だと月以上のフィールドは変化しないよ。
>>66
Calendar today = Calendar.getInstance();
Calendar tmp = (Calendar)today.clone();
tmp.set(Calendar.DAY_OF_WEEK, Calenrdar.MONTH);

while (condition) {
 tmp.add(Calendar.DAY_OF_MONTH, -7);
 Calendar date = (Calendar)tmp.clone();
 //こいつを保存しても clone とらずに int とってもいい
 //適当に condition 更新
}

こんな感じかな? 仕様も動作も確認してないけど
「今日」が日曜だとまずいかもしれない
7166:03/12/01 18:10
>>67-70
速攻でのお答え、ありがとうございます。
>>70さんのソースでバッチリ!でした。
今日が日曜でもうまくうごきました。
72デフォルトの名無しさん:03/12/01 18:32
すまそ。
なんか、javaでスタンドアロンなソフトを書いてみたくなったのですが、
GUIなAPIはやっぱりswingになるんでしょうか。
エクリプスなんかは独自のAPIだったかそうじゃなかったか。

なんか参考になるソース付きのアプリってありませんか?
winでもよくあるMDIなものがいいです。でなければbekkyみたいな
3ペイン構成ができるならうれしいですが。
三木ゴルフ
オートリトラクト未対応
75デフォルトの名無しさん:03/12/01 23:08
String型変数strに対して、+=でchar型の変数加算できます?
つまりこういうこと?
String str = "a";
char c = 'b';
a += c;
assert str.equals("ab");
やればわかる。
>>75
そういう風に文字列を扱いたいならStringBuffer使え
>>72
>なんか参考になるソース付きのアプリってありませんか?
探せばいくらでもある
SWTも本家いけばドキュメント、サンプル充実してる
まずは検索しろ
>>72
SDK インストールしたときにサンプルがついてきたろ。
80デフォルトの名無しさん:03/12/02 05:22
質問なんですがJAVAで画像表示付きの掲示板って作れますか?
CGIが載せられないHPスペースで、困ってます。
8180:03/12/02 05:23
あとサンプルがあったら欲しいです。
>>80
> 質問なんですがJAVAで画像表示付きの掲示板って作れますか?
CGI 経由でなくて、html を転送するのと同じ方法(例えばFTPとか)で
HPスペースにファイル書き込めばできるかもしれん(書き換え放題だけど)

素直に CGI 使える HPスペース借りれ
>>75
例えば
 str += 'c';
だと暗黙のうちに 'c' は文字列変換されるので、
 str += String.valueOf( 'c' );
と同等の結果になる。
それをいうなら
 str = new StringBuffer().append(str).append('c').toString();
>>83
>  str += String.valueOf( 'c' );
正確には
str += new Character('c').toString();

> str = new StringBuffer().append(str).append('c').toString();
言語仕様には文字列連結の際に StringBuffer を使わなくてはいけない、とは書いてない。
84じゃないが、String+=みたいな文字連結は内部でStringBuffer使って
連結してから出来たのをString変換して返すんじゃなかったっけ?
いちいちnewするからクソ重くなると聞いたことがある
実際Stringのまま連結しまくるとやヴぁい重さになる。
>>86
> 84じゃないが、String+=みたいな文字連結は内部でStringBuffer使って
処理系依存。
StringBuffer より速かったり中間オブジェクトの少ない方法で代用しても構わない。
もっとも、StringBuffer より遅かったり中間オブジェクトが多かったりしても言語仕様的には全く問題ない。
>>86
> 実際Stringのまま連結しまくるとやヴぁい重さになる。
って具体的にどーやるんだ?
>>88
String temp = "a" + "b" + "c" + "d" .......
まぁコンパイル時にStringBuffer使うように勝手に変えられることもあるけどね
>>89
> String temp = "a" + "b" + "c" + "d" .......
少なくとも "a" + "b" + "c" + "d" は定数式なので
コンパイル時に "abcd" に置き換えられるんだけど…
だんだん、ただのあげあしとりになっていくな。
>>89
> > 実際Stringのまま連結しまくるとやヴぁい重さになる。
> って具体的にどーやるんだ?
for(int i = 0; i < 10; i++) str += i;
が、
for(int i = 0; i < 10; i++) strbuf.append(i);
より中間オブジェクト多くて遅いって話だと思われ。
9392:03/12/02 10:24
s/>>89/>>88/
9492:03/12/02 10:29
>>91
> だんだん、ただのあげあしとりになっていくな。
>>89 からあげあしとり出来る部分を削ったら何も残りませんがな…
もちっと勉強せい。
9589:03/12/02 11:08
ありゃ。スマソ簡単に書こうと思ったら簡単すぎたみたいね
String a ="a";
for(int i = 0;i<10;i++){
    a += a;
}
これなら遅いべ
>>95
>>92 で既出。>>89 の勘違いからみて、単に理解して無かっただけと思われ。
>実は、StringBufferを使わないで文字列の連結をしようとしたら、
>String.concat()というメソッドを使うこともできます。
>
>str = "123".concat("456").concat("789");
>
>でも、このとき"123456789"という目的の文字列を得るために、"123456"という中間のオブジェクトを作ることになります。
>StringBufferが高速という意味は、このような中間の不要なオブジェクトを作る必要がないということです。
>この辺の話は「プログラミング言語Java、第3版」に説明があります。この本は大変良い本なのでお勧めします。
>>97
> >str = "123".concat("456").concat("789");
これだと、
str = new StringBuffer().append("123").append("456").append("789").toString();
と比べて、どっちが高速か、どっちが中間オブジェクトが少ないか、は微妙だと思われ。

str = "123" + "456" + "789"; だったら定数式だから str = "123456789"; になるけど。
うちの環境だと3文字の文字列を3回連結ならString.concatの方が早く
4回ならStringBuffer.appendの方が早かったです
>>98
>>97で言ってるのはStringBufferを使う意味であって例文でどっちが早いとかそういう意味ではないだろ
あげあし取りはもうイイよ
>>100
> >>97で言ってるのはStringBufferを使う意味であって例文でどっちが早いとかそういう意味ではないだろ
>>97 で言ってるStringBuffer を使う意味ってのは
> > >でも、このとき"123456789"という目的の文字列を得るために、"123456"という中間のオブジェクトを作ることになります。
> > >StringBufferが高速という意味は、このような中間の不要なオブジェクトを作る必要がないということです。

すなわち、「StringBuffer を使った方が中間オブジェクトが少ない、よって StringBuffer の方が高速」ってのが >>97 の言うStringBuffer を使う意味。

>>98 はその両方に疑いがあると言っているのであげあし取りではない。
>>100
揚げ足取りとか言う前に、もちっと勉強せい。
>>101
> >>98 はその両方に疑いがあると言っているのであげあし取りではない
つまりString.concat()の方が早い場合もあるし中間オブジェクトが少ない場合もある
というのが「その両方に疑いがある」の意?
104デフォルトの名無しさん:03/12/02 12:26
Stringついでに
>String cat = "cat";
>System.out.println("con" + cat + "enation");
>知ってのとおり Strings は不変オブジェクトであるので、これは少しだまされやすい。
>それらは変更されることができない。 しかし、内部でコンパイラは連結を実装するために StringBuffer を使用する。
>上記の例を翻訳すると次のようになる。
>String cat = "cat";
>System.out.println(new StringBuffer.append("con").append(cat).append("enation"));

1.4.2_01で上をコンパイルしてjadで戻しても"con" + cat + "enation"のままだった。
「内部でコンパイラは」の部分はバイトコードを実行するVMの話だとしてそれを確認するにはどのようにすればいいんだ?
イミュータブルなオブジェクトについての、基礎的なことを理解していないと、
この辺の話は、意地悪な人たちがあげあし取りをしているようにしかみえないかもね。
ところで、色々と引用してくれている人がいるようだけど、
それはどこからの引用?

何かの本か、それともWebサイトから?
WebサイトならURLきぼん
>>104
StringBufferを使ったソースと、使わないソースを書いて、それぞれコンパイルして、
二つのclassファイルを見比べてみるとか。
>>107
コンパイルしたときにはStringBufferを使わないらしい
>http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=671&forum=12

VMで実行したときにStringBufferを使ったかどうかはStringBufferクラスを上書きして何らかのデバッグ文を出力させるしかないのか?
110デフォルトの名無しさん:03/12/02 12:40
>>104
> 1.4.2_01で上をコンパイルしてjadで戻しても"con" + cat + "enation"のままだった。
単に jad が StringBuffer 使った文字列連結を
文字列連結演算子使った文字列連結に直しただけだろ。

> 「内部でコンパイラは」の部分はバイトコードを実行するVMの話だとしてそれを確認するにはどのようにすればいいんだ?
VM の話じゃなくてバイトコードの話。
javap -c classname してみろ。
14: invokespecial #7; //Method java/lang/StringBuffer."<init>":()V
なるほど、StringBuffer使ってるようだ

>>109
の「 コンパイラがStringBufferを使っているわけではありません。
 VMが行っています。 」と言うのが間違いなのか。
>>109
> コンパイルしたときにはStringBufferを使わないらしい
言語仕様みれ。

http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#40226
> 15.18.1.2 文字列連結の最適化
> 処理系は,中間的な String オブジェクトの作成及び廃棄を避けるために,
> 変換及び連結を一段階で実行してもよく,Javaコンパイラは,繰り返される文字列連結の
> 性能向上を目的として,式の評価によって作成される中間的な String オブジェクトの数を減らすために,
> StringBuffer クラス又は同様の技術を使用してもよい。
11480:03/12/02 13:14
>>82
やっぱJAVAじゃ難しいですか・・・。
サンクスです。
>>114
つーかそれはクライアントサイドなプログラムでは、
どの言語を使っても不可能なことだから。

もちろん>>80が書いた通りのことはJavaで可能だが、
>>80の言う 「CGIが載せられないHPスペースで、困ってます。」というところから判断して
>>80の書いた「JAVAで画像表示付きの掲示板って作れますか?」の「Java」とはJavaAppletのことだろう。
JavaApplet、すなわちクライアントサイドなプログラムでは、それは無理だよ。

// まあクライアントサイドなプログラムでも方法がないわけではないが。
>>114
サーバに書き込む方法はあるのか? ってことだよ。Java がどうとか関係ない。
CGI はだめ、或いは、「当社提供のカウンタ CGI のみ」しかだめ、
なら、おそらく何をどうしようが不可能。

「おそらく」というのは、
CGI すら使えないのに他の方法はある、というのは、
一般的な鯖のサービスとしては考えにくいから。

>>82 の方法もないではないが、危なすぎる。


などと書いても >>82 はもう帰ってこないんだろうなぁ・・・
>>115
> つーかそれはクライアントサイドなプログラムでは、
> どの言語を使っても不可能なことだから。

> // まあクライアントサイドなプログラムでも方法がないわけではないが。
矛盾しとるぞ。
>>116
> >>82 の方法もないではないが、危なすぎる。
しっかり
> > HPスペースにファイル書き込めばできるかもしれん(書き換え放題だけど)
って書いてあるけど…

危なすぎるとかゆー以前に >>80 にはスキル的に無理っぽいが。
119116:03/12/02 13:39
82 は 80 の間違い。

>>118
そう書いてあるのを「危ない」と表現した方が、
スキル不足疑いの >>80 にも分かりやすいと思ったんだよ。
>>117
P2Pなプログラムにすれば、まあ可能。

画像をセーブするためのプログラムをサーバで動かさずに、
画像表示機能付きの掲示板を作りたいのなら、
記事は、各クライアントが保存すればいい。
そして、他のオンラインのクライアントに、その記事を複写して保存させていけば、
まあクライアントサイドなプログラムでも可能といえなくもない。

JavaAppletで実装しようとおもえば、セキュリティの制限ゆえに、色々と面倒ではあるが。
まあこれは厳密な意味でのクライアントサイドなプログラムとは言えないかもしれないが。
>>120
>まあこれは厳密な意味でのクライアントサイドなプログラムとは言えないかもしれないが。

言えるわけない。
サーバがあるゆえクライアントがあるんだから、
WWWサーバをソフトウェア配布だけに使ってよそで通信を始めたら、
もう「クライアントサイド」とはいえないだろう。

しかも、「他のオンラインのクライアント」は、どこに問い合わせたら分かるんだよ。
むしろクライアントサイドのプログラムでhttpサーバを実装して画像掲示板になれと言ってみるテスト
>>122
それなら自分で普通にWebサーバーたてれとツッコンでみるテスト
>>121
Jxtaのランデブーピアは使えないかな?
JavaWebStartでクライアントアプリをダウンロードしてきて、
そのクライアントアプリは、あらかじめそのクライアントアプリが初期情報として持っている
Jxtaランデブーピアに接続という感じで。

これならば、Webサーバからダウンロードしてきたアプリだから、
ダウンロード先のWebサーバに対してはクライアントアプリとも言えるし、
同時にまたP2Pアプリとも言える。ちょっと詭弁にすぎる気もするけど。
すでに質問者である>>80は置いてけぼりの予感・・・・・・。
>>124
とうとうJXTA にまで話が飛んだか。
もはや、WWWサーバ関係ないじゃん。それは単なる P2P 。
>>80 からの文脈でそこにいくのは飛躍に過ぎるだろ。
127120:03/12/02 14:04
JXTAやWinnyなどの既存のP2Pネットワークを利用すると良いかもしれない。
一部のウイルスがやっているような、片っ端からパケットを打ちまくるという方法も
理論上は可能だろうが、まあ倫理上と法律上とネットワーク全体の負荷において、問題があるだろう。
まあ、いずれにしても、これらは厳密な意味でのクライアントサイドなプログラムとは言い難いだろう。
>>126
Java質問・雑談スレってことにして、飛躍しまくりでいいんじゃない?
要するに今展開されてるのは >>80 とは関係ない話ってことで



展開するほど目新しい話題じゃないってのも不問の方向で
んじゃ次スレのタイトルは、
【初心者】Java質問・雑談スレ38【大歓迎】
で。

ところで、前スレで話が上っていた質問用のテンプレートの話はどうなったの?
>>130
ただの雑談だったってことで。
//外部より設定ファイルのデータが入ったオブジェクトと空のオブジェクト配列が渡される
void in_data(ConfigData cd,DataBox[] db,long read_line){
 long l = 0;
 int line = cd.get_log_line();
 String data_work;
 int indent;
 try{
  FileReader fr3 = new FileReader(cd.get_log_path());
  BufferedReader br3 = new BufferedReader(fr3);

  for(int in_num = line - 1;in_num >= 0;l++){
    data_work = br3.readLine();
    if(l >= (read_line - line)){
      db[in_num] = new DataBox();
      indent = data_work.indexOf('>');//区切り位置
      db[in_num].set_name(data_work.substring(0,indent - 1));
      db[in_num].set_pause('>');
      db[in_num].set_log_data(data_work.substring(indent + 1));
      in_num--;
    }
    System.out.println(in_num);
    System.out.println(db[29].get_name() + db[29].get_pause() + db[29].get_log_data());//毎回同じ値が表示されるつもり
  }
  fr3.close();
  }catch(Exception e){
    errors("ファイルオープンに関するエラー","GetString.in_data()");
  }
}
133131:03/12/02 19:20
in_dataメソッドは外部クラスDataBoxのオブジェクト配列に対し、読み込んだテキストファイルを配列の降順に入力するメソッドです。
上記中ほどのfor文とif文により代入されたテキストを確認のため、for文の外にあるprintlnにて表示させたのですが、
db[29].get_name()により表示される戻り値がループ毎に異なります。
if文内で読み出したときは問題はないのですが、どうしてこのような現象が起きるのでしょうか?
初歩的な凡ミスが多い素人ですが、助言お願いします。
>133
すごいソースだな・・・
とりあえず入力データの最後数行とデバッグプリント数行、if文の中に入れたときと入れなかったときを書いてくれ
135デフォルトの名無しさん:03/12/02 22:46
質問いいですか?
キーボードの上と右を押せば斜めに行くようにプログラムできますか?
KeyListenerを使ったら、一つのボタンしか認識しないみたいなので。
続けて押していても、少しウエイトがあるし。
136デフォルトの名無しさん:03/12/02 22:47
>>135
斜めに移動するのは図形ということでお願いします。
>>135
「押されたら移動」ではなく、「n秒待って押されていたらxピクセル移動を繰り返す」としてみたら?
図形の移動を担当するスレッドを用意して、そこでは無限ループの中で
n秒待って所定のフラグがtrueだったら図形の座標を変えるようにしておく。
KeyListener#keyPressed()で上キーが押されていたら所定のフラグをtrueに、
KeyListener#keyReleased()で上キーが話されていたら所定のフラグをfalseにする、
というのでどうだろう?
138デフォルトの名無しさん:03/12/02 23:09
JDKなどで作ったjavaで書いたソースを
exeファイルとしてファイル化したいのですが
どうすればいいのでしょうか?
139デフォルトの名無しさん:03/12/02 23:14
PrintWriterなどで
txtやiniやlogなどへは書き込めるのですが

ExcelファイルやDocファイルなどに書き込むにはどうすればいいのでしょうか?
かぶった(>_<)
しかもURL切れてるし
144140:03/12/02 23:23
でも141の方がある意味親切

>>138
exeファイルでラップするならこういう方法もある。
ttp://jsmooth.sourceforge.net/
スクリーンショット見ると、ブラウザ開いてJREのインストールを促す機能があるみたいだね。
なかなかいいかも。
145135:03/12/03 00:55
>>137
なるほど・・・うーん。
実は、円状の図形を、右ボタン押しっぱなしにしたら、加速度的に移動するものを作りたいんです。
スピードがどんどん上がっていって、ボタンを離したら慣性で進んでいくという。
ボタンは、両方押してたら片方しか認識しなかったから、焦ってます。
もうちょっと勉強したほうがいいな・・・。
>>145
じゃ、イベントリスナーのスレッドと図形の座標を変更するスレッドは
なおさら分けた方がいいね。
座標を変更するスレッドは無限ループで、
所定のフラグがtrueなら座標の速度をn倍にし、falseならそのまま。
速度を変更したら座標を速度分だけ増やしてrepaint()を実行。
KeyListener.keyPressed()とkeyReleased()でフラグの上げ下げを制御。
フラグは、上下左右それぞれ別のフラグを用意する。
あと、keyPressedとkeyReleasedはその瞬間に押された/離されたキーを
教えてくれる。だから、上と右がほぼ同時(実際には上がちょっとだけ早い)に
押されたら、上が押されたことを示すkeyPressedイベントが起き、そのすぐ後に
右が押されたことを示すkeyPressedイベントが起きる。

ここまでわかれば、後はJavaどうのこうのよりもアルゴリズムの問題だ。
148135:03/12/03 01:24
>>147
おお!
超詳しく教えてくれてありがとうございまっす。
大体どういう風にすればいいのかわかりました。
完成したら報告しますね。
1ヶ月先になるだろうけど。
1時間もあればできるだろ
JavaでXML扱うとしたら、最近の流行はなんでしょうか?
最低限必要な機能はXML文書の解析・生成くらいでいいんですが。
151デフォルトの名無しさん:03/12/03 03:06
質問なんですが、以下のソースを実行すると

> 01
> 012

と表示される予定でしたが、012 と表示されずに
変な文字列が表示されます。どうも参照型のアドレスっぽいのが
表示されているみたいなのですが、こういった仕様なのでしょうか?
ちゃんと012と表示される方はいますでしょうか?
ちなみに試した環境は j2sdk1.4.2_01 です

---------------------------------------------
class Test {
      public static void main(String[] args) {
          char[] c = new char[2];

              c[0] = '0';
              c[1] = '1';

              System.out.println(c);
              System.out.println(c + "2");
      }
}
>>151
仕様
えっと、ばかですか。
>>151
配列の使い方を知らぬ馬鹿
ヒントはこれだけだ
>>150
流行とか考えずに、標準のDOM使えば?
>どうも参照型のアドレスっぽいのが
>表示されているみたいなのですが、こういった仕様なのでしょうか?

char[]はオブジェクトなんだから正しいじゃねーか。
JAXPかJAXBかあとほか二つを使うか迷うよな。
おれも迷う。JAXPよりもJAXBのほうが使いやすいんだって?
>>151が突然逆切れしてJavaの仕様って糞だね。
やっぱJavaやめた! とか言いそうな予感。

そしてJava叩きスレをたてまくったり(w
159151:03/12/03 03:32
>>152-154
何故
System.out.println(c);
だと 01 と表示され
System.out.println(c + "");
と+で別の文字列を結合させると変な文字列が
表示されるのかが謎だったんです。
012と表示させることが目的ではなくて
どうしてこういう現象になるのかが知りたくて。

println内では参照型の場合
参照アドレスを文字列として返すのでしょうか?
参照先のデータを文字列として返すのでしょうか?
よく、わかっていません。
>System.out.println(c);
>だと 01 と表示され
…るのか?
161151:03/12/03 03:36
>> 160
表示されちゃうんです・゚・(ノД`)・゚・
>>159
>参照アドレスを文字列として返すのでしょうか?
>参照先のデータを文字列として返すのでしょうか?
クラスによる。
というかクラスのtoString()の実装による。
>>159
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/PrintStream.html

println(c); は引数がchar[]
println(c + ""); は引数がchar[]じゃない
>>159
どの値やオブジェクトも + "" と連結すると暗黙のうちにその値はStringに変換され、
オブジェクトは toString()メソッドが呼び出される。
165151:03/12/03 03:49
>>162-164

なるほど理解しました。
連結するとStringに変換され、そのクラスのtoString()が呼び出されるのですね
謎が解けました。
配列初心者みたいな書き方してすいませんでした。
ありがとうございます。

ますます java 好きになりました。w
>>151
151は馬鹿と思ってたが意外に奥の深い質問で
(つーか俺もわからんかった)勉強になった
char型にはtoString()メソッドは無い。値型なので当然だが
あれは暗黙的のうちにCharacter.toString(c)または
new Character(c).toString()が呼び出されている。
  
>>166
藻前も>>151の仲間
仲間ゆきえ
LineNumberReaderで行番号追跡、PushbackReaderでプッシュバックができますが、
プッシュバックと行番号追跡をReaderで両方やるにはどうすればよいのでしょうか?
LineNumberReaderにPushbackReaderを噛ませても、それぞれが独自のバッファを
持っているせいで上手く動いてくれません。
>>170
> プッシュバックと行番号追跡をReaderで両方やるにはどうすればよいのでしょうか?
・新しいクラスを自作する。
・LineNumberReader を使って、呼び出し側で pushback を実現する。
・PushbackReader を使って、呼び出し側で行番号をカウントする。
17266:03/12/03 11:40
>>70
ちょっとデバッグ。
>tmp.set(Calendar.DAY_OF_WEEK, Calenrdar.MONTH);
tmp.set(Calendar.DAY_OF_WEEK, today.get(Calenrdar.MONTH));
こうしないと、今週と先週の分が取れないみたいです。
>>172
> tmp.set(Calendar.DAY_OF_WEEK, today.get(Calenrdar.MONTH));
>>70 のときも疑問だったんだけど、
なんで曜日のフィールドに Calendar.MONTH とか
月フィールドの値とか突っ込んでるの?
>>173
> なんで曜日のフィールドに Calendar.MONTH とか
これは >>66 が月曜日って話だったので
Calendar.MONDAY と Calendar.MONTH を間違ったとしても…
17566:03/12/03 14:28
>>173
>>174
MONDAYの間違いですね。
定数値では、Calendar.MONTHもCalendar.MONDAYも2なので、うまく動いてみえたようです。
17666:03/12/03 14:54
>>172がバグっていました。
tmp.set(Calendar.DAY_OF_WEEK, Calenrdar.MONDAY);
のままで正しかったです。

ソースは以下のようになりますた。
Locale JaLocale = new Locale("ja","JP");
Calendar today = new GregorianCalendar(JaLocale);
Calendar start = (Calendar)today.clone();

//曜日を月曜日にセットすると日付もそれに合せて自動的に変わる。
start.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

//現在の週の分も取り出すために+7
start.add(Calendar.DAY_OF_MONTH, 7);

//月曜日の日付を取得
for (int i = 0; i < 7; i++) {
start.add(Calendar.DAY_OF_MONTH, -7);
System.out.println(
start.get(Calendar.YEAR) + "/" + (start.get(Calendar.MONTH) + 1) + "/" + start.get(Calendar.DATE));
}

execを使ってコマンドを実行してるんですが、
カレントディレクトリの移動ってできるんですか?
execで指定してもあまりうまくいかないので、、、

それと、exec(String command, String[] envp, File dir) の
envpって何ですか?
今はよくわからないのでnullにしています
178デフォルトの名無しさん:03/12/03 16:01
GPSで緯度と経度の情報を受信します。
緯度と経度を、ファイルに保存します。
それで、そのファイルから緯度と経度を読み込んで、
表示するプログラムを、Javaでつくることは可能ですか?
179178:03/12/03 16:04
>>178に付けたしです。
地図上に表示するプログラムです。
>>178
gpsの送信する情報のフォーマットが分かれば可能だと・・・。
いや、待てよ・・・
地図っていうと日本全部!!??
都内とか?
>>178
可能かどうかを調べる前に、やってみようとは思わないのか?
それともやってみて出来なかったのか?
どこか特定の処理が出来ないのか?
答えれ
182178:03/12/03 16:20
できれば全国がいいです。
無理なら、地域限定でもいいですが。
gpsの送信する情報のフォーマットは、ちょっとわからないです。
でも、緯度と経度は数値でわかると思います。
183178:03/12/03 16:24
>>181
まず、緯度と経度のデータを取得しても、
それをどのように表示していいのかわからない。
そもそも、地図のデータがないですが。
表示というのも、何か特殊な関数に数値を与えるだろうし。

まったくどうしていいのかわからないのが現状です。
すいません。
>>167
俺もそう思ってたんだが、
System.out.println( 'c' + "c"); では
Character.toString('c') は呼び出されないみたい。
かわりに StringBuffer の append(char c) が呼ばれてる。

public synchronized StringBuffer append(char c) {
int newcount = count + 1;
if (newcount > value.length)
expandCapacity(newcount);
value[count++] = c;
return this;
}

フィールドvalueに代入されるだけ。cは文字型だから
考えてみりゃ当然か。intやlongならそれぞれの
append(int)、appen(long)の中でラッパークラスの
Integer.appendTo( )や、Long.appendTo( )が呼ばれてる。

185177:03/12/03 16:33
すいません、漏れもさっきからぜんぜん進まないです。
だれか教えていただければ幸いですが・・・。゜o(つД`)
>>177
envpは環境変数の配列。sdkに説明があるし、環境変数がわからなきゃググレ。
あと、カレントディレクトリの変更だが、必要か?
なんでカレントディレクトリにする?
たぶん変更できないぞ
187178:03/12/03 16:37
>>183に付けたし
日本全土を適当なサイズで一括に書き出した画像があるならば、
緯度経度をうまくマッピングさせるだけだとおもいますが、
普通、電子地図は適当に分割されていると思います。
そうなっている場合に、プログラムをどうすればいいのかわからないです。
>>177
> カレントディレクトリの移動ってできるんですか?
不可能。
理由はカレントディレクトリという概念が無い OS (旧MacOSとか)も存在するので。
189177:03/12/03 16:41
>>186>>188
呼び出すコマンドが多分カレントディレクトリにファイルを出力する仕様なんですよ。
なので177のようにdir指定してexecを使ってたんですが、
どうもファイルが出力されているように見えなくて・・・
今デバッグ中です。とりあえず何とかexecでできるようにしてみます。
ありがとうございます。
>>187
> 普通、電子地図は適当に分割されていると思います。
適当に結合すればよいのでは?
191178:03/12/03 16:43
>>190
適当に結合するにしても、地図データがありません、
どっかで入手できますか?
>>191
激しく板違い
>>184
> Character.toString('c') は呼び出されないみたい。
Character.toString('c') でなくて new Character('c').toString() ね。

http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#39990

> もし一つのオペランドの式だけが型 String であるならば,実行時に文字列を生成するために,
> 他方のオペランドに対して文字列変換を実行する。その結果は,二つのオペランドの文字列を
> 連結して新たに作成した String オブジェクトへの参照とする。新たに作成した文字列の中では,
> 左辺オぺランドの文字が右辺オぺランドの文字に先行する。

http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#40220

> 文字列変換 (string conversion) によって,いかなる型も String に変換できる。
> 最初に,プリミティブ型 T の値 x を,適切なクラスインスタンス生成式への実引数に
> その値を与えたかのように参照値に変換される。
〜中略〜
> ・もし T が char であるならば,new Character(x) を使用する。
〜中略〜
> この後は,参照値だけを考慮する必要がある。もしその参照が null であるならば,
> それは文字列 "null" (四つのASCII文字 n,u,l,l)に変換される。そうでなければ,
> その変換は,その参照されているオブジェクトのメソッド toString を実引数なしで
> 呼び出したかのように実行される。しかし,もしメソッド toString の呼出し結果が
> null であるならば,文字列 "null" が代わりに使用される。
>>184
> System.out.println( 'c' + "c"); では
> Character.toString('c') は呼び出されないみたい。
> かわりに StringBuffer の append(char c) が呼ばれてる。
'c' + "c" は new Character('c').toString() + "c" と同じ結果であれば
どのように生成しても構わないので、中間的な Character と String の
生成及び廃棄をさけるために文字列変換と連結を一段階で実行しただけ。

http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#40226
> 処理系は,中間的な String オブジェクトの作成及び廃棄を避けるために,
> 変換及び連結を一段階で実行してもよく,Javaコンパイラは,繰り返される
> 文字列連結の性能向上を目的として,式の評価によって作成される中間的な
> String オブジェクトの数を減らすために,StringBuffer クラス又は同様の
> 技術を使用してもよい。
195184:03/12/03 17:05
>>193,194
さんくす。なるほどね。言語定義上は呼び出すことになってるのか。
>>184
> append(int)、appen(long)の中でラッパークラスの
> Integer.appendTo( )や、Long.appendTo( )が呼ばれてる。
呼ばれるのは
StringBuffer#append(int i)
 String#valueOf(int i)
  Integer.toString(int i, int radix)

StringBuffer#append(long l)
 String#valueOf(long l)
  Long.toString(long l, int radix)
じゃないか?
197177:03/12/03 17:11
すいません、立て続けに質問です。
実行ファイルの仕様が、
コマンドプロンプトから呼び出して、そのあと入力ファイル指定なんですが、
(こんな感じ)
C:\CurrentDir> test.exe

 input file => input.txt

 finished.
C:\CurrentDir>

こういうときに入力ファイル指定するのは、execを使うとしたら
どうやればいいんですか?
今String[]で実行ファイル呼び出しの次にリダイレクトで入力ファイルいれてるんですが
うまくいきません。
198184:03/12/03 17:22
>>196
俺がいったのは単にappned(int i)やappend(long)では
Integer.appendTo( )や、Long.appendTo( )が呼ばれてるってことだが..

public synchronized StringBuffer append(int i) {
Integer.appendTo(i, this);
return this;
}

こんな風に。
もちろん文脈によっては、たとえば、System.out.println( 1 ); とか
やればString#valueOf(int i)が呼ばれるね。
>>197
オレには分からない。スマン。
>>197
exec( )で返却されたProcessオブジェクトからgetOutputStream( )で
OutputStreamを取得してそれにwriteする。このOutPutStreamは
サブプロセスの標準入力につながってる。ヘルプをよむとバッファリング
したほうがよいらしい。
201177=197:03/12/03 18:04
>>200
なるほど、OutputStreamですか。ありがとうございます。
で、今やってるんですが、OutputStreamのwriteの引数のbyte[]の使い方が
いまいちよくわかりません。
もしよろしければ、教えてください。
>>198
> Integer.appendTo( )や、Long.appendTo( )が呼ばれてるってことだが..
J2SE では、StringBuffer#append(int i) は
return append(String.valueOf(i));
みたいなかんじになってる。GNU の classpath も同じ。
ちなみに、Integer.appendTo(int,StringBuffer)ってのは
どの環境での話?

どっちにせよ、文字列連結の結果が同じなら方法に関しては
言語仕様は関知しないので文字列連結で ** が呼ばれるって
決め付けるのは良くないって事で。
>>201
> で、今やってるんですが、OutputStreamのwriteの引数のbyte[]の使い方が
out.write(filename.getBytes(encoding));
もしくは、
Writer writer = new OutputStreamWriter(out,encoding);
writer.write(filename);
>>177
OutputStream os = Runtime.getRuntime().exec( "test.exe" ).getOutputStream();
PrintStream ps = new PrintStream( os );
ps.print( "input.txt" );
ps.flush();
でいいと思う。てか折れも使ったこと無いんで。


>>201
相手のプログラムによるけど改行付けた方がよさげ。
206204:03/12/03 18:30
ps.print( "input.txt" );
でなくて、
ps.println( "input.txt" );
の方か。
207198:03/12/03 18:46
>>202
J2SE v 1.4.2 および NetBeans IDE v 3.5.1 CobundleのWin版で確認してたんだけど..

>どっちにせよ〜
同意。
>>207
> J2SE v 1.4.2 および NetBeans IDE v 3.5.1 CobundleのWin版で確認してたんだけど..
あら本当だ。1.2.2、1.3.1、1.4.1 は何れも >>202 のやり方だから、
1.4.2 で書き換えたんだねぇ。
209 :03/12/03 20:01
Javaのグラフアルゴリズム用のライブラリでフリーで一番一般的なのはありますか?
あったら教えてください。
>>209
「Jグラフ」

ま、俺が作った奴だがw
EXCELのグラフにも変換可能
EXCELのグラフからも変換可能
グラフアルゴリズムって有向グラフとか無向グラフとかそっち系?
それとも図表のこと?
>>210
てか、それって・・・
あなたは、Jakartaに寄贈してるやつじゃないのそれ
>>211
俺は前者だと思う。
俺が個人的に作ったのがあるが。何処いったかなあれ。どっかいった。
public class Chartest{
public static void main(String args[]){
Subchartest a=new Subchartest();
a.submain();
}
}
//------------------------------
class Subchartest{
private char c_a;
void submain(){
c_a=1;
System.out.println(c_a);
}
}

こんなプログラムを書いたのですが、実行すると

と表示されます。
char型って、System.out.printlnするともじになるのですか?
>>214
> こんなプログラムを書いたのですが、実行すると
char は文字一つを表す基本型なので '\u0001' が表示されただけ。
>>214
↑のほうでちょっと同じような質問見た気がするが・・・

C言語なら
char c=1;
printf("%c",c);
print("%d",c);
という具合にすれば違った表示になるが
Javaの場合
System.out.println(c);
はC言語でいうとprintf("%c",c);の結果になるように実装されている
どうしても数値で表示したければ
intでキャストかければいい
217214:03/12/03 22:48
>>216の方法でやったらうまくいきました
THXです
218デフォルトの名無しさん:03/12/03 23:07
staticってのは
VM上で一意になるんですよね?

スレッドごとに一意にしたい場合は
どのような方法をとればよろしいのでしょうか?

>>218
java.lang.ThreadLocal ただし J2SE 1.2 以降。
>>218
> staticってのは
> VM上で一意になるんですよね?
ClassLoader 毎に別々の静的フィールドが生成される。

VM 上で一意とは限らない。
>>220
初心者が自作カスタムクラスローダでロードするような仕組みは作らない
と思うけれどねえ。

>>218
>>219も有りだけど、簡単に済ますならThreadのサブクラスのprivate
フィールドという手もあると思われ。
最近知ったこと。

世代別ガーベージコレクションを実装している最近のJVMでは、
インスタンスプーリングは性能劣化の原因だということ。
223218:03/12/03 23:49
>>219さん 221さん
どんもありがとうございました。
APIドキュメントみて勉強してみます。


>>220さん
僕の認識に誤りがあったようで。
勉強しなおしてきます。
ありがとうございました。
224218:03/12/03 23:55
クラスローダという言葉が出てきてますが
java.lang.ClassLoaderを勉強していけばよろしいのでしょうか?

このクラスを実装してるクラスのインスタンスごとに
staticが存在するということなのでしょうか?。

>>224
ClassLoaderを使おうと思ったら、リフレクションの仕組みを覚えましょう。
java.lang.Class
java.lang.reflect.*
あたりですな。
質問です。
フリーのIDEでお勧めのやつはありますか?
よろしくお願いします。
>>224
> このクラスを実装してるクラスのインスタンスごとに
> staticが存在するということなのでしょうか?。
loadClass したり defineClass しなければ存在しない。
>>226
Eclipseじゃないかね。
>>225
ClassLoader で使う reflection って
Class#newInstance() と Constructor 以外にある?

あとは上位クラスなりインターフェイスなりにキャストして使わん?
>>228
ありがとうございます。
>>229
リフレクションの仕組みと使い道がわからんと、ClassLoaderを
何につかうんだかわからんと思われ。
>>231
まぁ、そーゆー考え方もあるかもね。

俺は reflection とは別に ClassLoader の使い道はあると思うけど。
暗号化されたクラスファイルと暗号化解除 ClassLoader とか。
>>226
NetBeansじゃないかね。
File ExistDir = new File("C:/test",".");
String[] list = ExistDir.list();
File[] Dir = null;
for(int i = 0;i < list.length; i++){
Dir[i] = new File(ExistDir,list[i]);
}
このような記述をしてやると,
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:40)
というエラーを実行時に吐きます。(コンパイルは通ります)
ちなみに,40行目はDir[i] = new File(ExistDir,list[i]);です。
配列を用いないで書くと,エラーは起こりませんでした。

配列を用いつつも,NullPointerExceptionを回避するにはどうしたらいいですか?
>>234

File[] Dir
としただけではDirの要素数がわからないべ?
だから、最初に要素数を指定して配列自体をnewしとかなくてはいけない
もし、234のやり方がOKだとしたら配列要素数を動的に変えられることになる。
だから最初に
File[] Dir=new File[list.length];
とやるべき

>>235
朝早くからどうもありがとう!
助かりました!
JDK のバージョンを自由に変えられて、かつフリーの開発環境を知りませんか?
>>237
言わんとしてる事が不明瞭だが Eclipse で君は満足すると思う
239237:03/12/04 11:59
言葉が足りませんでした。
JDK1.3 が動かせるフリーの開発環境はないですか、という質問です。
240237:03/12/04 12:05
>>238
Eclipse は JDK1.3 で動作しますか?
>>239-240
だから不明瞭だというのに。
 1. ある程度自由な JDK バージョンの上で動作する、Java で作った IDE
 2. ある程度自由な JDK バージョンで run もしくは デバッグできる、Java で作ったとは限らない IDE
のどっちなんだよ。>>239 の「が」は後者の表現だが >>240 の「で」は前者の表現だろ?

あと、キーワードはやったんだから、いちいち聞かんでググッて情報探しなさい。
この板にも Eclipse スレは幾つかあるし。
242237:03/12/04 12:28
>>241
すいません。
ちなみに私の想定していたのは 2 です。
243243:03/12/04 13:55
for(int i=100; i>0; i--)

for文のiは、i--のほうがjavaの場合処理が早くなるって説明してたページがあったんだけど知ってる人います?
それと個人的にif文の処理分岐より、switch case文のほうが早いような気がする。

この辺のウンチクっぽいのを紹介してるページきぼん
244デフォルトの名無しさん:03/12/04 13:59
ボタンの配列Button[]とbutton[]を作り、全ての組み合せの中からその条件に
あったときの処理をするとき、下のようなプログラムの書き方は可能なのでしょうか?
またこの場合、不可能なことなのですが、Buttonとbuttonが2つ同時に押されたときの
処理になるのですか?
for(int c = 0 ; c < 5; c++){
for(int i1 = 0 ; i1 < 10 ; i1++){
if(source==Button[c] && source==button[i1]){
処理
}
}
}
>>244
1. Button というクラスが標準 API にあるのに、
 Button[] という書き方をしているのはどういう理由からかちと悩む。ゆえに答えにくい。
 Button型の配列(=「Button[] 型」)なのか、 "Button" という名をもった、例えば JButton 型の配列(=JButton[]型)なのか。
 多分後者だと思うんだが、何にせよ、大文字から始まる変数名はやめておくれ。
2. 「〜な書き方は可能なのですか?」
 よくある質問形式だが、はっきりいって、コンパイルさえ通ればそりゃ可能なんだろうな。
 プログラムというのは、君の好きなように書けるもんだ。文法に沿ってさえいれば。
 ここに聞きにこずに、まずコンパイラに通しなさい。

 質問の真意が「私の思った通りに動くようにするにはこの書き方でいいのですか」なら、
 その質問では100%は答えられないな。もう少し背景を説明してくれないと。
 「またこの場合、不可能なことなのですが」がどの場合でなぜ不可能なのか分からないし。

3. 「Buttonとbuttonが2つ同時に押されたときの処理になるのですか? 」
 == で判定してる条件を && で結合しているので、
 この条件文全体が true になるのは、
 変数 "source"、変数 "Button" の添え字 c "Button[c]"、同じく "button[i1]" が、
 まったく同じボタン(多分 JButton )を指し示しているときのみ。
 言い方を変えると、ある一個のボタンインスタンス(君がどっかで多分 new JButton(ほげほげ) したもの)が、
 何らかの紆余曲折をもって、この条件判定時点で source, Button[c], button[i1] に代入されていた場合。
>「またこの場合、不可能なことなのですが」
は後ろにかかるんだろ? 2つボタンを押すのは本来不可能だが、の意?

そんなわきゃない。
source は多分 ActionEvent#getSource() から取ったもんだろうが、
これは当然のことながら、最大一個のボタンしか示せない。
一つの変数で二つのオブジェクトを示すのは不可能。

Collection という手もあるが、君の思ってるのとはまるで違う話。
247デフォルトの名無しさん:03/12/04 14:43
>>245
コンパイルは通るのですが、確認のためにSystem.out.println("確認")で
一応確かめてみたのですが、どうやらfalseになってるみたいなので質問させて
頂きました。
>>247
for のネスト(多重化)の書き方はあってる。
ついでにいえば、条件を i1 < button.length とするとなおいいかもしれない(分かりにくければ今はいい)。

だから if 文が悪いんだと思うが、
これこれこういうように配列を用意して、こういう風にコンテナに配置して、
こういうときに true になって欲しい、というのを詳しく書かなきゃだめだよ。
249デフォルトの名無しさん:03/12/04 15:08
>>248
Frameで拡張したクラスに
まず、配列 String[] v = new String[4];
Button[] Button = new Button[5];
Button[] button = new Button[5];を用意して、
for文でボタンの位置決めなどをしました。
for (int bl = 0; bl < 21; bl++) {
Button[bl] = new Button(Integer.toString(bl+1));
Button[bl].setBounds(30+35*bl,100,35,25);
Button[bl].addActionListener(this);
add(BL[bl]);
}
250デフォルトの名無しさん:03/12/04 15:08
続き
public void actionPerformed (ActionEvent e){
Object source = e.getSource();
for(int c = 0 ; c < 5; c++){
for(int i1 = 0 ; i1 < 10 ; i1++){
if(source==Button[c] && source==button[i1]){ //Buttonとbuttonをそれぞれ必ず一回
//押すことを前提にその条件にあった
//ときに配列v[]にそれぞれ値を格納する
v[0] = Integer.toString(i1+1);
v[1] = "2";
v[2] = Integer.toString(c+1);
v[3] = "1";
}
}
}
そしてフレーム表示という流れです
251249-250:03/12/04 15:13
button = new Button(10)とfor文でbl<5の間違いです。あとfor文で
buttonの配置ももちろん作っています。すみません
>>249
再度書くが、変数名を大文字から始めるのはやめなさい。
buttonsA, buttonsB にするとか。agroup, bgroup なんてのでもいい。

>>250
actionPerformed は、ある一個のボタンが押されたとき
(正確にいうと、押しこんで、その後その場所で離したとき)に、ActionEvent にそのボタンの情報を伴った状態で呼ばれる。
呼ばれたときの source は、当然、一個のボタンしか示さない。だって押されたことだけを通知するんだから。
これまでどれかが押されてきたことなど、JavaVM 側は知ったこっちゃない。
言わば「現在」とか「つい今しがた」のみを示すのであって、過去まで関知してくれない。

「これが押されたよ」「次にこれが押されたよ」という通知があるとして、
君は最後の「判定したら値の更新と表示をしよう」という処理ばかり書こうとあせって、
間にくる「押されたのはまだ一個目なのでとりあえず憶えておこう」「押されたのは二個目なのでさぁ判定しよう」
という処理も、プログラマ自身が記述しなければならないことに思い至ってない。
(続く)
で、答えだが、
actionPerformed を擁するクラスに、クラス変数 lastbutton を追加する。型は Button 。
で、Button を用意するときにでも、これを null で初期化しておく。
あるボタンが押されて actionPerformed に来たとき、
a. lastbutton が null なら過去まだボタンは押されていない。だから lastbutton = source; で一個目を記憶して、終える。
b. lastbutton が null でないなら、ボタンが既に一つ押された、だから今回は二つ目。
 Button[] の中から lastbutton に該当するもの、button[] の中から source に該当するものを探す。
これで判定が可能になる。これを状態遷移という。

ところがどっこい、button[] 側が先に押されるとややこしくなる。
3度目に押したときにどう動作すべきかも問題になる。
だから例えば、button[] 達は最初 setEnabled(false) しておき、
Button[] のどれかが押されたら(lastbutton がまだ null だったとき)、
button[] を全て setEnabled(true) し、逆に Button[] を setEnabled(false) する。
すると、ユーザの操作の順番をコントロールできる。
254デフォルトの名無しさん:03/12/04 15:40
>>252-253
いろいろありがとうございます。アドバイス頂いたやり方でやってみたいと思います。
htmlファイルからプレーンなテキストを取り出すクラスってありますか?
256デフォルトの名無しさん:03/12/04 16:21
JAVAの勉強をしようと思い、簡単なエディタを作っています。
メニューから「開く」を選んでファイルを選択すると、
1
Error
と表示され、エディタ画面に選択したファイルの内容は表示されません。
【1】の部分でこけているのだと考えましたが、どういう理由が考えられますか?
ちなみに【2】の部分でセットしたタイトルは正常に表示されています。

class TestActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
JFileChooser fc = new JFileChooser();
try{
if(e.getSource() == mi[1]){
int res=fc.showOpenDialog(cnt);
if(res == JFileChooser.APPROVE_OPTION){
File f1 = fc.getSelectedFile();
setTitle(title + " " + f1.getName());//←【2】
try{
System.out.println("1");
BufferedReader br = new BufferedReader(new FileReader(fl));///←【1】
System.out.println("2");
ta.read(br,fl);//ファイルからテキストエリアに読み込む
System.out.println("3");
br.close();
}
続きます
257256:03/12/04 16:22
catch(Exception ee){
System.out.println("Error");
}
}
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
どなたかご教授ください。よろしくお願いします。
スタックトレースを表示して読みなさい。

 ee.printStackTrace();

せっかく VM がヒントを出してくれるのに、放置してはいけない。
fl は null だと見たが。f1 はローカル変数で fl はインスタンス変数だろ?
>>253 は間違いでした。
>クラス変数 lastbutton を追加する
これはインスタンス変数。どっちでも動くだろうけど。
>258
すみませんありがとうございます…
lと1か…ああああぁぁぁぁぁああぁぁぁぁぁ〜
ありがとうございました!!精進いたします!ごめんなさい!
もうこんな馬鹿なことやらないぞ。・゚・(ノД`)・゚・。
261デフォルトの名無しさん:03/12/04 18:18
教えてください。
Eclipseで開発するjavaでアイコンイメージを使う時、
アイコンイメージデータはどこに格納しておけばいいのですか?
>>261
何につかうアイコンイメージ?
>>261
好きな名前のフォルダつくっていれとけばいいんじゃない?
特に決まりはないよ。
264デフォルトの名無しさん:03/12/04 18:35
>>262
Jbuttonに貼り付けるものです。
Jbuttonのコンストラクタでアイコンイメージを指定できるのがあったので
それを使おうとしてます。
>>263
コンストラクタの引数にアイコンイメージの名前を
書くだけだとなにも表示されないんですよ(^^;
パス指定しなきゃいけないのかとおもって>>261の質問に至ったわけです。
EclipseっJavaファイルとかClassファイルの物理的なディレクトリ階層が
よくわかんないんで・・・。すんません。
パッケージを自作しているという前提で。

○jp.mydomain.myproject.MyClass から指定することにする。
 このクラスのファイルのパスは
 /jp/mydomain/myproject/MyClass.class

○プロジェクトの /jp/mydomain/myproject/ 下に img フォルダを作成して foricon.jpg か何かを保存する。
 だからパスは /jp/mydomain/myproject/img/foricon.jpg

○MyClass で以下のように Image を読み込む。
 URL url = getClass().getResource("img/foricon.jpg"); ←クラスファイルから見た、リソース(jpgファイル) の相対パス。絶対パスでもいい
 Image image = Toolkit.getDefaultToolkit().getImage(url);

○あとはアイコンを作ればよい。
 ImageIcon icon = new ImageIcon(image);
 JButton button = new JButton(icon);

このまま jar でアーカイブしても、問題なく読み込める。
動作確認してないのでそれも含めて適当にアレンジしてけれ。
266デフォルトの名無しさん:03/12/04 19:04
>>265
なんとかできますた!
ありがとうございました!
267デフォルトの名無しさん:03/12/04 19:21
国土地理院さんとかが販売している、数値地図というものを購入したときに、
そのデータをJavaで扱うことはできるのでしょうか?
また、緯度経度をメソッドの引数にしたときに、
その位置を、数値地図上に表示するといったことは可能でしょうか?
>>267
はぁ・・・・・できるよ。できまくるよ。
「扱いたきゃ、テメェで扱え。表示したきゃ、テメェで表示しろ」
それがプログラミングっつーもんだ。
前者はファイルが扱える言語なら全ての言語で可能、
後者はウィンドウ上に自由な斜め線が引ける言語なら全ての言語で可能。
269デフォルトの名無しさん:03/12/04 19:33
例えばアプレット上に丸が左にあってドラッグ&ドロップで
右に動かしたとして動かした丸の情報なり数値、座標をデータとして
出力出来るのでしょうか?
>>268
後者は、バイナリ出力さえ可能なら、CGI として使うなどすれば可能。
271デフォルトの名無しさん:03/12/04 19:34
>>268
そんないやいや答えるんだったら、答えないほうが人間としては魅力的だぞ。
よい答え方の例(添削)ちょっと適当だが。
うんできるよ。
「それなので、扱ってみてください。」
それがプログラミングというものです。
前者はファイルが扱える言語なら全ての言語で可能ですし、
後者はウィンドウ上に自由な斜め線が引ける言語なら全ての言語で可能となっております。
>>269
出力って、どこに?
ウェブ閲覧者のローカルディスクってんなら制限あり。
画面上ならちょーできまくり。
>>267 みたいな質問はどのスレでもたまに見かけるが、
多分 JavaScript と Perl しかやったことないんじゃなかろうか。
あれら(+HTTP)で何でもやろうとしたらかなり無理があるからね。
プログラミング言語ってのがそういうのばっかりだと思ってるんじゃないか。

・どんなソフトでも大抵 C (C++, C# 含む) で作っている
・Java は C とよく比較される

これだけ知ってりゃできそうだと思えそうなものだが。
274269:03/12/04 19:58
何がしたいかというと、アプレット上で並べ替えた物を
サーバからVRMLコードを呼び出し同じ座標で
表示させたいのです・・・。
275デフォルトの名無しさん:03/12/04 20:03
276267:03/12/04 20:26
267ですが、国土地理院の地図はなんかしょぼい感じがします。
もっとカラフルで、街中の見栄えのする地図ってあります?
>>276
あるよ

その質問ではこれで十分だよな
>>178 >>267は一体なにを作りたいんのだろうか。
どちらにしても>>276はスレ違い・板違いな訳だが。
>>267
カシミール3DやVRMLでやりゃあいいじゃん
280デフォルトの名無しさん:03/12/04 22:34
すいません。教えてください。

1.
TextFieldを多数作成して、TABキーを押して入力領域を移動させた場合、
TextFieldの文字列を選択した状態にしたいのです。
通常のHTMLだとできますよね?
できますでしょうか?

2.
TextField text = new TextField(2)
と宣言しても、TextFieldには2文字以上、いくらでも入力できます。
本当に2文字しか入力できないようにはできないでしょうか?
1. FocusListener と TextField#selectAll() で何とかできると思う。
2. TextListener と TextField#getText() , setText(String) で何とかできると思う。
>>280
>通常のHTMLだとできますよね?
何を勘違いしてるか知りませんが、HTML ではできません。
つーか。280はJavaScriptとJavaを勘違いしているので(ry
>>281
補足させてもらうなら、TextComponent#setCaretPosition(int)でキャレットを
末尾にもっていかないとsetText()で戻されちゃうと思う。
285デフォルトの名無しさん:03/12/05 00:00
>>281
ありがとうございます。
とりあえず、簡単にはできないってことですね。
ところで、1.についてですが、その方法だとマウスクリックでも選択されちゃいませんか?


>>283
いや、別にJavaScriptとは勘違いしていませんが・・・
初心者なんでよく分かってないことは確かです。
例えばこの投稿ページでも、名前の欄からTABキーを押すと、E-mail欄が選択されますよね?
そういうことがしたいんです。
286 :03/12/05 00:07
mySQLやoracleのDBを読み込んでJDBC経由でJSPに表示させることは出来ると思いますが
AccessのDBをODBC経由でJSPに表示させることは可能でしょうか?
googleなどをみてもなかなか該当するURLがないので教えてください
XPでjavacするときに、「microsoft社にエラーを送信しますか?」
ってエラーが出てコンパイルできないのですが、これって何か分かりますか?

パスは通っています。
>>287
「2chにエラーを送信しますか?」
で来たワケね。
>>286
検索したら山のように出てきんたんだが・・・、
気のせいかな。
290 :03/12/05 00:21
>>289
JSP Access 表示とやっても関係ないサイトばっかですが
教えてください
j2sdk-1_4_2_02-windows-i586-p.exeってXPに対応しているんすかね?
ホームページではしているって書いてあったのだがなぁ。
>>290
JSP は基本的に「表示」するためのもんで、
しかも Access だろうが MySQL だろうが表示する部分は一緒なんですから
JSP Access だけでいいんです
さらに Java 一般で Access を使う方法を JSP に流用すりゃそれで済むわけですから
しかも別に Access に特化する必要もないでしょうから
Java ODBC でいいんです
ざくざく出てきます
初心者がここで質問するのはまあ目をつむるとしても
検索方法くらい自分でさっさと身に付けてくれよ
>>285
>その方法だとマウスクリックでも選択されちゃいませんか?

そりゃそうだ。こういう場合においては、マウスってのはキーボードの代わりだからな。

以下想像:
 TextField は OS のコンポーネントを流用してるから、
 フォーカスが与えられた契機がマウスによるかキーボードによるかを OS レベルの API で取得できないと、
 Java では区別のしようがないのではないか。
 mousePressed と組み合わせれば(JTextField なら特に)可能かもしれないが、
 あまりまともな対応とは思えない。
 Win の Explorer (ファイル用)のアドレス欄も Netscape のアドレス欄も同じように動作するし。

>前の欄からTABキーを押すと、E-mail欄が選択されますよね?
それは HTML の為せる業ではない。あなたの使ってるブラウザの仕事。
初めまして
Swingでブラウザ作ってるのですが
履歴機能を製作するのに
IEなどど同じく一時ファイルに保存して呼び出すちいう形を考えているのですが
これに利用できるメソッドや他の方法等あれば教えて下さい
296デフォルトの名無しさん:03/12/05 11:35
ファイルIOで複数のファイル内の文書をひとつのファイルにまとめる方法を試しているのですが
なぜかひとつのファイルだけコピーするだけでうまくいかないようです。
書き込み・読み込みファイルを一旦クローズせずいっぺんにまとめて開いていから処理するからいけないのでしょうか?

コンストラクタでPrintWriterオブジェクトをつくり、
他のメソッドで引数に読み込みファイル or ディレクトリを指定し
再帰関数を使って単一のファイルを読み込み、その内容を追記書き込みし
ループさせています。
ループが終了して再起を抜け出したとき初めてPrintWriterオブジェクトをclose()しています。
>>295
File#createTempFile
Win なら C:\WINDOWS\TEMP とかそれなりのところに一時ファイルができる
使い終わったら消す、とマナーがよいかもね

>>296
君のプログラムが間違ってるから、としかいいようがないなぁ。
ソース晒しておくれ。
少なくとも
>複数のファイル内の文書をひとつのファイルにまとめる
を、単純に「順に書き込む」処理と考えた場合、どうして再帰が必要になるか分からない。
for か何かでええやん。
>>296
>書き込み・読み込みファイルを一旦クローズせずいっぺんにまとめて開いていから処理するからいけないのでしょうか?

OSによっては、同時に開けるファイル数には制限があったとおもう。
Javaで、そのあたりがどうなっているのかは判らないが、
その辺で、ひっかかっているのかも知れない。
299デフォルトの名無しさん:03/12/05 12:24
iアプリを自作しようと試みているJAVA初心者ですが、
違うキャンバスクラス同士で変数を共有する方法が
色んなハウツーサイトを見てもよく分かりません。
具体的には、スケジューラみたいなものを作っているんですが、
日付の設定はキャンバスクラスで行って、
用事の内容の入力をパネルに移動して行う時に
キャンバスでどこの用事にカーソルが合っていたか、を表す変数yを
パネルクラスで保持するにはどうすればいいのか、ということです。
今のコードだとどうやっても一番最初の用事しか書き換えられません。
300299:03/12/05 12:26
「違うキャンバスクラス同士」と書きながら
「キャンバスクラスの変数をパネルクラスで保持」とか言ってますね。
前者は「違うクラス同士」に読み替えて下さいm(_ _)m
>>299
インスタンス変数、getter 、setter を使う。
例として、
 TextField がどのように文字列を保持し、
 setText と getText がどのような処理を行っているか(根本部分は一行で済むが)
を考えること。
それを踏まえて、キャンバスのクラスに getter を用意するか、用事入力のクラスに setter を用意するか。
はたまた仲介するクラスを用意するか、キャンバスと用事をインナークラスとして包むクラスに変数を用意するか、etc.

これ以上はソースあげてくれないと無理。
長いとうざいので、よそのうpろだにでもうpしてくれれば見てあげよう。
302デフォルトの名無しさん:03/12/05 12:57
Javaってどこで落とすの?
>>299
携帯のJavaには、携帯のJavaのやり方があるかも知れないが、
オブザーバパターンや、メディエータパターンなどについて調べると、
なにか参考になるかもしれない。
>>302
まあここでも読みなはれ。

Javaでプログラムを始めるためには、まず何をすればいいの?
http://www.wikiroom.com/java/?Java%A4%C7%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0%A4%F2%BB%CF%A4%E1%A4%EB%A4%BF%A4%E1%A4%CB%A4%CF%A1%A2%A4%DE%A4%BA%B2%BF%A4%F2%A4%B9%A4%EC%A4%D0%A4%A4%A4%A4%A4%CE%3F

リンク先に判りにくいところがあれば、
それを言ってくれれば、まあ俺を含めた誰かが、
リンク先のページも、書き直すなり、書き加えるなりしてみるだろうから。
306296:03/12/05 14:21
>>297-298
> >>296
すみません。ありがとうござます。
解決しました。テストコードでディレクトリ名の末尾に / をつけているのを忘れていました。
/をつけないとファイルとして扱われてしまうんですね(Unixの常識?)。


> 少なくとも
> >複数のファイル内の文書をひとつのファイルにまとめる
> を、単純に「順に書き込む」処理と考えた場合、どうして再帰が必要になるか分からない。
> for か何かでええやん。
サブディレクトリにあるファイルもまとめて自動化して取り扱いたかったからです


ああ、こんなところでつまずいていたなんて我ながら情けない。


あと、close()でも使われている
Writer#flush()の意味をイマイチ理解していないのですが。

write()で行った書き込み命令を有効にし、SQLでいえばcommitみたいなことを
するということなんでしょうか?
StringBuffer buff = new StringBuffer();
で作った buff を append していって、もう一度 buff を初期化したいときは、
buff = new StringBuffer();
とやらないといけないのですか?
buff.clear() のような別の方法もありますか?
>>307
buff.delete(0,buff.length());
309299:03/12/05 15:26
>>301
ハウツーサイトを参考にキャンバスクラスの最後に
int getY() {
return y;
}
って感じでgetterを作ってみたんですが、
コンパイルはちゃんと通るのに
変数yが0に戻ってるんです。
で、前の画面に戻るとカーソルが同じ位置にある、
ってことはyはちゃんと記憶されてる。
getterを作ったってことは、宣言はstaticでもplivateでもpublicでも関係ないですよね?
キャンバスのクラスでint y = 0;をして、
そのあとキー判定でカーソルを動かしてyを上下して、
ソフトキーが押されたらパネルに移動するんですが、
パネルの最初に
CanvasSet obj = new CanvasSet();
int y = obj.getY();
とすればいいんですよね?何か根本的な勘違いしてるでしょうか?
>>308
その手法と new するものとではどちらのほうが Java の好まれるスタイルですか?
> getterを作ったってことは、宣言はstaticでもplivateでもpublicでも関係ないですよね?
何の宣言だ? 文脈から推測するに、キャンバスクラスのメンバ変数である "y" のことか?

もちろんpublicなgetY()メソッドを作れば、
メンバ変数y自体は、privateでもかまわない。

> キャンバスのクラスでint y = 0;をして、
> そのあとキー判定でカーソルを動かしてyを上下して、
そのint yは、ローカル変数ではないよね?

>CanvasSet obj = new CanvasSet();
>int y = obj.getY();
>とすればいいんですよね?何か根本的な勘違いしてるでしょうか?
そもそも変数名にyと名付ける所が根本的に間違っているとはおもう。
また意図した通りに動かないということは、どこかが根本的に間違っているのだろう。
だが、少なくとも、上の2行のコードは間違ってはいないと思う。

>>299
>用事の内容の入力をパネルに移動して行う時に
>キャンバスでどこの用事にカーソルが合っていたか、を表す変数yを
>パネルクラスで保持するにはどうすればいいのか
しかし、根本的にこの方法自体があまりスマートに思えない。
>>306
>/をつけないとファイルとして扱われてしまうんですね(Unixの常識?)。
えーそうだったかな・・・同名のファイルとディレクトリを共存できないから、
そういうことはないと思うんだが。

>サブディレクトリにあるファイルもまとめて自動化して取り扱いたかったからです
なるほどね。ディレクトリツリー上の複数ファイルってことだったか。

>Writer#flush()の意味をイマイチ理解していないのですが。
メモリ上のバッファに残ってる書き込み予定データを、ストリームに書きこむ。
このデータは通常は、バッファが満杯になってからストリームに書き出される。
だから flush はときどき勝手に行われてるようなものだ。

>>309
>宣言はstaticでもplivateでもpublicでも関係ないですよね?
そういう考え方はいかん。ちゃんとそれぞれの意味を理解して、適切に指定しなきゃだめ。
今回の例では、多分どうやっても動くとは思うがね。将来困るぞ。

>CanvasSet obj = new CanvasSet();
あのさ。コンストラクタの直後だから、
y がこの obj のインスタンス変数だとしても、 CanvasSet のクラス変数だとしても、
0 になっちゃってると思うぞ。

>>310
好まれるも何も、君のやりたい事による。
buff という変数を初期化するのか、buff が示すオブジェクトを初期化するのかの違いだ。
意味分かるかい?
追記
ユーザが操作を行うことで y が変化したCanvasSetインスタンスそのものへの参照を、
用事パネルは知らなきゃいけない。
 ユーザ→(操作)→【CanvasSet →(変更)→ y 】→(取得)→【用事のパネル】

ところが君はこうしてしまった。
 ユーザ→(操作)→【CanvasSet →(変更)→ y 】
 別の【CanvasSet →(コンストラクト時に 0 に設定したきり)→ y 】→(取得)→【用事のパネル】

>>311 がいうことをもう少し咀嚼すると、
まず「用事クラス」を新たに作るべきだ。
で、用事パネルは y なる数値を頼りにするのではなく、どっかから「用事インスタンス」を指定されるべきだ。
さらに、CanvasSet に getter を付けるより、よそに setCurrentTarget(用事インスタンス) するメソッドを用意すべきでもある。
でもいきなりそう言っても設計できないだろうから、まず目下の y に関する問題を解決してくれ。
314U ◆CZtFsGiu0c :03/12/05 16:27
>>307
buff.setLength(0);
>>310
インスタンスの再利用なんてのは、Javaにとってはかえってよろしくないのです。
世代別GCは、GC起動のたびにそれぞれのインスタンスについてヒープ内でのコピー
を繰り返すことになるので、寿命の長いインスタンスの存在はGCの負荷になってし
まいます。

ディスク上のデータなど、メモリ操作よりオーバーヘッドの大きいデータをキャッシュ
したり、生成オーバーヘッドの大きいスレッドインスタンスをプールするのは意義があ
りますが、StringBufferなんてのはいらなくなったら直ぐ捨てて、必要になったたびに
作り直すほうがマシでしょう。
JSPとBeansを使って、Webからプロセスを実行しています。
で、このプロセスが終了したらそれをWebページに表示したいんですが、
いまいちやり方がわかりません。
プロセスが終了し次第ページを移動するとか更新するとかできますか?
ページの構成を、
実行の指示

「実行中」表示

「終了」表示

ってな感じでいきたいのですが

ListModel が変更を通知すると、
Listener を登録した者(JList など)は再描画しますよね。

リスト構造(ListModel)でもなく表構造(TableModel)でもなく文書構造(Document)とも
ちょっと違うモデルをよく自作するんですが、要するに変わった事だけを通知するために、
何かを継承して fire 何ちゃらを書くという実装だけで済ませたいんです。

結局は用が足せれば何でもいいんですが、よくあるスタイルなんてのはありますか?
AbstractDocument を選んでおけば OK でしょうか? それとも PropertyChangeSupport とか?
>>316
5秒ごとに reflesh して、また自身に行くような JSP ページを設計する。
毎度毎度そのページを reflesh していくわけだが、
プロセスが終わった時点では、次の reflesh 時には別のページに飛んでいくように、出力内容を変える。
これでどうだろう。
アドレスが同じだと当然利用者が違うのに(ry ちゅう問題があるから、
終わってるかどうか調べる対象のプロセスをセッション管理か何かで同定する必要もある。
>>318
ありがとうございます。
ついでに申し訳ないんですが、Processが終了してるかどうかって
どれを使えばよいんでしょうか?
>>317
自作のモデルに下のオブジェクトを所有させて、
さらにObservableインターフェイスを自作して、デリゲートで下のオブジェクトを呼び出すとか。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Observable.html
Observable (Java 2 プラットフォーム SE v1.4.0)
>>321
おお、*Listener ばかり探していました。
大変便利だと思います。ありがとうございました。
323デフォルトの名無しさん:03/12/05 20:00
お世話になります。
JTextAreaにてカーソル位置(列・行)を取得したいんですが、何か関数があるのでしょうか?
DocumentListenerでgetSelectionStartを使用してみましたが、テキストに変更が
加わらないと動かず、取得できるのも文字数でした。
文字数が分かればカーソル位置は計算できますが、カーソルが動いたときに発生
するイベントが分からないのです。
どうかご教授お願いします。
>>323
CaretListener
323です。
カーソルという単語でばかり検索していたので途方に暮れていました。
簡単にできそうです。ありがとうございました。
326280:03/12/05 20:29
>>前の欄からTABキーを押すと、E-mail欄が選択されますよね?
>それは HTML の為せる業ではない。あなたの使ってるブラウザの仕事。

そうなんですか。
知らなかったです。
ありがとうございました。
327デフォルトの名無しさん:03/12/05 21:04
javaってお金はかかりますか?
アプレットを作ってWebサイトで公開したいと思ってます。
参考書代とかは抜きで、ライセンス料とかの仕組みは
どうなっているのでしょう。
328デフォルトの名無しさん:03/12/05 21:19
>>327
無料です。完全に。
329デフォルトの名無しさん:03/12/05 21:21
>>328
http://www.borland.co.jp/jbuilder/jbx/description.html
30万円以上するじゃないですか!!
330デフォルトの名無しさん:03/12/05 21:27
やっぱjavaはやめとこ。
なんか知らんけどキタ━━━━━━(゚∀゚)━━━━━━ !!
XercesとXalanてなんて読みますか?
333デフォルトの名無しさん:03/12/05 21:44
質問したいのですが、iーアプリでスケジュール表の様なものを
作っているんですが、スクラッチパッドに書き込んだ用事のデータを
例えば「8日後に消す。」と言うようなやり方は可能ですか?
スクラッチパッドに書き込んだ日付は取得出来ますか?
334デフォルトの名無しさん:03/12/05 21:46
>>331
なんや知らんけどJavaWorkShopもあったでぇ━━━━━━(゚∀゚)━━━━━━ !!
http://homepage3.nifty.com/Aransk/
335デフォルトの名無しさん:03/12/05 21:48
>>334
管理人による宣伝キタ━━━━━━(゚∀゚)━━━━━━ !!
336デフォルトの名無しさん:03/12/05 22:06
JAVAで人のコードみて、これ、修正しといてとかいわれて修正できなかったら
プログラマとして失格ですか?今、練習でプログラムしてるんですが。日本語になっていないのは
勘弁。
337デフォルトの名無しさん:03/12/05 22:20
お世話になります。
JTextAreaにて入力された文字をすべてクリアしたいんですが、何か関数があるのでしょうか?
>>337
setText("");
>>336
いやそもそもJavaは日本語じゃないだろう。
それともドキュメントやソース中の注釈文が日本語になっていない
他人のソースを修正しろって、言われた場合か?

と、この文を書いていて気がついたが、「日本語になっていないのは勘弁」とは、
>>336の書き込み自体のことか?

どういう処理を行うかの意図が明確で、小さなメソッドとかなら、修正できて当然。
大きなシステム全体を修正したり、どこに潜んでいるかわからないバグを探し出して
つぶすのは難しくても。

すでにだいたいの処理が書かれているから、
むしろ初心者には、一から書くよりも、他人のコードを修正するほうが楽かもしれない。
>>1の『すべてのクラス (Java 2 プラットフォーム SE v1.4.0)』で確認しつつ
有能な誰か他人の書いた短い綺麗なソースを読むのは、初心者にとって最高の上達法。
340デフォルトの名無しさん:03/12/06 00:42
>>336
もちろん失格。むかつくコードはあるが。他人が書いたコードを
修正するときは妙な気おこしてリファクタリングすると壷にはまる
ことが多いので、いらんところはほっとけ。
341299:03/12/06 01:02
>>313
すみません、ギブアップです。
サンプルソース見たりハウツーページの変数のところを漁ったりしたんですが、
313のレスで言われているように
>ユーザ→(操作)→【CanvasSet →(変更)→ y 】→(取得)→【用事のパネル】
とする方法が見付かりません。
どうしたらいいか、具体的に教えて下さい。
public void processEvent(int type, int param){
でキー操作を受け付けて、
上が押されたらy--;
下が押されたらy++;
とやっています。
>>299
あー、失礼途中で送信してしまった。
あなたがどういうコードを書いているのかわからないから、
こっちもギブアップだよ。とりあえずソースをここにさらしたほうが早い。
>>311-313を読んで、どうすればいいのか、わからないのなら。

たぶん、我々の斜め上を行くような間違いをしているのだろうとはおもう。
>>313の言うように、別のインスタンスを生成して、その別のインスタンスのyをゲットしているとかな。
>>341
あとソースをさらすときは、ソースをそのまま全部コピペするのではなく、
コンパイルは通るが、その問題を再現できる程度には、できる限り短くしたものをね
>>341
>サンプルソース見たりハウツーページの変数のところを漁ったりしたんですが、
(´-`).。oO(なんでその参考にしたページのURLをここに書き込まないんだろう) ......
参考にしてないから。
347299:03/12/06 02:32
ttp://www.geocities.co.jp/Playtown/2980/CD.java
問題が再現できる(というかその機能のみにした)コードです。
まさにご指摘の通り、別のインスタンスを生成してそのyをゲットしてました。
それは>>311-313を読んで理解したんですが、
そうじゃなくユーザが動かしたあとのyをゲットする方法が探しても見付けられなかったんです。
参考にしたページは色々ありますが(というかどれを見ても「これ」というのがなくて)
http://msugai.fc2web.com/java/
ここの「変数のスコープ」(ゲッタとセッタ)のところが主です。
でもこれだと問題が単純すぎて逆によく分からなくて・・・。
もうヒントとか考え方じゃなく、具体的にどう書いたらいいのかを教えて頂けたら嬉しいです。
もう丸二日何も進まずに困っています・・・。
>>347
>>303も書いてるがmediaterパターンじゃだめなのか?
例えば、全てのキャンバスの挙動を受け持つコントローラクラスを一つ作って、
メソッドの引数に常に受け渡す・・とかだ。

漏れは携帯のプログラミング手法は知らんし、申し訳ないことにソースも全く見てないが。
>>347
まず「y を static にする意味はない」ということを先に言っておく。
ユーザを相手にしているのは CanvasSet クラスというよりも、CanvasSet インスタンスだから。
この例では CanvasSet は一つしかないからたまたま問題点が見えてこないが、
仮に CanvasSet を 2つ用意することになったら?
それぞれが選択位置を保持しなきゃならないが、static にしちゃうとそれはできない。
何でかは簡単なサンプルでも組んで試してみたらいい。

で、解決法だが・・・いやー一筋縄ではいかないっすねこれ。
1. CanvasSet はプログラム上に 1つしか存在しえないのだから、コンストラクタを二箇所に書いたらおかしい。
2. 配置箇所に書くべきだろうから、 InputTitle 内の方ではコンストラクトしない
3. でも InputTitle は CanvasSet の値を得たい、それなら CanvasSet が CD.t として InputTitle を参照しているように、
 InputTitle も CD.set として参照すればいいのだ。
 だから y を得るには int y = CD.set.getY(); とすればいい。
4. ところが、InputTitle が y を得るのは、現時点ではコンストラクタ(ないしその前の初期化時点)である。
 これはおかしい。InputTitle は CD において 1度のみコンストラクトされるが、
 画面には何度も何度も出たり隠れたりする。その都度 getY() しなきゃいけない。
5. Display.KEY_SOFT2 が押されたとき、画面を切り替えるだけでなく、
 InputTitle が y の値を調べなければならない。
 とりあえず、
  CD.t.update();
  Display.setCurrent(CD.t);
 として、InputTitle は全面的に以下のように変更する。
(続く)
 //obj はいらない。
 int y = -1; //不定であることを -1 で示しておく。あまり意味は無いけど・・・

 InputTitle() {
  box1 = new TextBox("", 20, 1, TextBox.DISPLAY_ANY); //空でとりあえず用意だけしておく
  add(box1);
  setComponentListener(this);
 }

 //画面切り替え時に呼び出してもらう。
 public void updateTarget() {
  y = CD.set.getY(); // 最後に選択されていた y を拾う。
  box1.setText(titles[y]); //文字列を更新し、編集準備OKにしておく。
 }

全面的でもないか。

要注意:これは泥縄式の解決法であって、
他のクラスやインスタンスの変数をこんな風に縦横無尽に参照するのは好もしくない。
だがとりあえず、どんな風に情報が行き来して、何をコンストラクタで処理して、何を書いたらいかんかよく考えてみてくれ。
も少し一般的な手法に近づけるとすれば、
1. static を全部やめる。
2. titles は CD インスタンスに管理させる。
3. CD クラスに setTitle(int target, String), getTitle(int target) メソッドを作る。titles にはこれらのみでアクセスする。
4. CanvasSet, InputTitle のコンストラクタで、CD インスタンスへの参照 ("this" を使う) を渡す。
 それぞれのコンストラクタは、自身のインスタンス変数 (CD型) に、CD への参照を保持する。
5. CD に setEditMode(), setCalendarMode() か何かのメソッドを作って、Display.setCurrent する。
 t とか set は外に参照させない。
これでだいぶスマートになる。CD の子、もしくは部下として CanvasSet, InputTitle が位置付けられて、
子は何をするにも親である CD にお伺いを立てるようになり、兄弟間ではコミュニケーションを取らない。
まだまだできることはあるが、とりあえずここまでは頑張って移行してみてくれ。
あ、もいっこわすれてた。
6. InputTitle#update() を setTarget(int y) に書き変えて、
 setEditMode 内では、int y = set.getY() したあげくに、t.setTarget(y); してやる。
ここで y を渡すってのもあまりスマートじゃないんだが・・・まぁいいか。

あと、"y" は、CanvasSet での表現上 "y" なのであって、
他のクラスとのインタフェースや他のクラスでの扱いの上では "index" とした方がよいだろう。
混乱するからそれは一番最後でいい。
354デフォルトの名無しさん:03/12/06 08:34
JDBCでDBにアクセスしたときに
任意のテーブルのプライマリキー情報を
取得するにはどうしたらいいのでしょうか?
355299:03/12/06 08:44
>>349-353
ありがとうございます!
出先から携帯で見てるのですぐには試せませんが、
帰ったら速攻でクラスとメソッドの関係を書き換えてみます。
希望が見えてきました。とても勉強になりました。
CGIの癖が早く抜けないと、この先何も出来ませんね。
精進します。
>>332
ざーしず ざらん
357302:03/12/06 09:36
>>304
>>305
ありがとうございました。
無事に落とす事ができました。

次は何をすればいいんですか?
そのままノートパッドにプログラムを書いちゃっていいんですか?
358デフォルトの名無しさん:03/12/06 10:27
DataBaseMetaData#getPrimaryKey()で取れると思います。
JDBCが対応していない場合は直接システムカタログをあさるしかないですねー。
>>357
NetBeans使ってみれば?
360デフォルトの名無しさん:03/12/06 12:50
Javaで
void swap(int *p, int *q){
int tmp; tmp=*p; *p=*q *q=tmp;
}
のような関数を作るにはどうしたらいいんですか?
void swap(int[] p, int[] q) {
int tmp; tmp = p[0], q[0] = tmp;
}
362354:03/12/06 14:18
>>358
どうもありがとうございました。
363360:03/12/06 15:50
>>361
ありがとうございました。
なるほど。配列を利用すればよいのか。
引数が配列だと呼び出しが面倒かも
>>363
納得するなよ。ヽ(`Д´)ノ
そもそも>>361のコード、微妙におかしくない?

それはともかくとして、CにはCの、JavaにはJavaのやり方があるのではなかろうか。
>>360が何をしたいかは知らないが。
p[0]=q[0] が抜けてるが、そもそもそれやるならせめてint[2]を使えと
system.out.println()文とBufferedReaderクラスのreadLine()を
使って下記のラインメニュープログラムを作成するには
どうしたらいいでしょうか?

Commad List
1 Guess
2 Janken
3 Other
4 Help
5 Quit
Command>

メニューはひとつのsystem.out.println()文で表さないといけない
らしくて、素人の自分にはまったくもってちんぷんかんぷんです(;´Д`)
どなたかご教授願えないものでしょうか〜?
>>367
学校の宿題は俺にやらせて下さいver.1.1βfor Java
http://pc2.2ch.net/test/read.cgi/tech/1065599192/
>system.out.println()
これはエラー
370367:03/12/06 17:35
>>368
なんとそんなスレがありましたか。
さっそく移動いたします( ´∀`)
371デフォルトの名無しさん:03/12/06 18:16
すいません教えてください
ttp://www.fk.urban.ne.jp/home/kishida/kouza/shop/shop.html
みたいにJSPに直接SQLを指定してDBを呼び込んで表示するのはわかるのですが

javaのソースにsql処理とかとかドライバーの呼び出しとか処理して
jspで処理のある任意のクラスを呼び込んで表示する場合
そのクラスを読み込むにはjsp側でどういった処理が必要なのでしょうか?

おそらくこっちの方が一般的だと思うのですが
教えてください
インポート汁
373デフォルトの名無しさん:03/12/06 18:37
>>372
たとえばHTMLのフォームの選択肢によって読み込むクラスを変えたいのですが
100件以上ある場合は
全部importするのでしょうか?
374デフォルトの名無しさん:03/12/06 18:44
javaのスースをHTMLに変換するツールとかないですか?
スースって何だか知らないが、 java2htmlってのはどうだ?
ttp://www.google.com/search?q=java2html&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8
376デフォルトの名無しさん:03/12/06 18:50
>>375
ありがとう。
スースではないくてソースでした。ごめんなさい。
でも英語なんですね。
難しい。
377デフォルトの名無しさん:03/12/06 19:05
そういや前スレかどっかでjava2html約したとか言ってた香具師がいたような。
それかどうか知らんけど。
>333
日付の概念は無いはずだよ。
>>360
void swap(int[] container, int pIndex, int qIndex)
>>380
void swap(Integer a,Integer b)
なんでこれが出ないんだ?
382デフォルトの名無しさん:03/12/07 00:46
>>348
携帯電話Javaにデザインパターンを使うほどのメモリ領域の
余裕はあるのか? 今は。
例外処理を使うのもタブー、オブジェクト指向にこだわることもタブー継承一回で重量オーバーといわれていた世界だったのに
今は余裕綽々ですか? 
>>381
あなたはうんこでも喰ってればいいと思いますよ。
>381
それ、実装はどうなっているんだ?
immutableって言葉知ってるか?
カンセイダ!!ヽ(゚∀゚)ノ ←381

void setMessage(String str) {
  str = "Message";
}
javaのパラメータ私は値渡し。
>>386
問題はそこじゃない。
あなたもうんこでも喰ってればいいと思いますよ。
javaのパラメータ私は値渡し。
うぉっ、Immutableだったのか。

知識無いのに書き込んですまん。マジで知らんかった、勉強になった
390デフォルトの名無しさん:03/12/07 01:23
SQLでDB取得の際
while( rs.next() ) {
getInt("ID");
getInt("Title");
getString("DATE");
}
とあったときにIDとタイトルはDBから取得できるのですが
Dateだけはデータ自体はあるのですが
java.sql.SQLException: No data found
がでて取得できません
教えてください

環境はWindowsXP、ODBC、です
データが無いんとちゃう?
392デフォルトの名無しさん:03/12/07 01:33
>>391
直接Accessを見ればデータはありました
仮にデータがなくてもnullが表示されるのではないのでしょうか?
>>392
391で、俺はDBにまったく詳しく無い人間なんだが、これだけは聞いておきたい。
アンタ、「java.sql.SQLException: No data found」でぐぐってみたか?
いや…念のためだ
ぐぐる時はダブルクォーテーションで囲めよ。
"java.sql.SQLException: No data found"
395デフォルトの名無しさん:03/12/07 01:41
>>394
それの日本語でぐぐれば
javahouseのQ&Aしかなかった
それ見てもよく分からなかったので…
SQLの問題だと思うよ。
DATEじゃなくてDATAと間違えてましたとか
getStringではなく
getIntにすれば直りました
ありがとうございました
Oracleでの話だけど、NUMBER型でもgetStringで持ってこれたけど。
特にNUMBER(3,2)なんかの場合はdouble型で取るんじゃなくて
new BigDecimal(rs.getString("hoge")) なんかで取ってたけど
DBに詳しく無いのに横槍を入れると、そのデータベースにDateが2つ以上あって、
一意に決まらないのではないか、と。
>>399
そういうテーブルは作れないが
select a.date, b.date from hoge a, hige b where〜・・・
とかいうSQL投げるとそういう結果にはなる。
401デフォルトの名無しさん:03/12/07 03:03
<jsp:useBean id="cart" scope="session" class="session.Carts" />
すいません
JSPのbeanを飛び出す上の処理で
id
scope
class
はそれぞれ何を指しているのでしょうか?
ここには呼ばれる側の何を入れればいいのでしょうか?
idはBeanの名前、scopeはBeanのスコープ、classはBeanのクラス名だ。
これ以上わかりやすくはならないだろうというuseBeanですら理解できない人がいるのか
質問です。
擬似的にキー入力を作り出すことは出来るのでしょうか?

具体的には、JPanelとJTextFieldがあり、
基本はJPanelにフォーカスがあり、
キーボードの入力があるとJTextFieldにフォーカスを移し、
入力を開始する(1文字目の入力は捨てない)
と言うのをやりたいのですが、
日本語入力に対応させることが出来なくて困ってます。

KeyReleased()とrequastFocus()を使いフォーカスを移すところまで出来ました。
日本語入力を考えないなら、KeyEventから押されたキーを割り出し、
JTextFieldにsetTextすれば良いのですが、
日本語入力を考えると、変換待ちの文字をセットしなければならないので、
それよりも同じキー入力を作り出した方が良いのではないかと思った次第です。

新しくKeyEventを作ればいいのかな?と思ったんですが
ドキュメントを読んでもどうもよく分かりません。

似たような処理をしてくれれば何でも良いので、何か方法があれば教えてください。
405デフォルトの名無しさん:03/12/07 06:31
ActionBeanとFormBeanの違いがわかりません
FormBeanはみたところ所謂セッターゲッターの処理だと思うのですが
ActionBeanって何でしょうか?
どういったことに利用するのでしょうか?
なんのはなしだ?
407デフォルトの名無しさん:03/12/07 06:45
>>436
よくサーブレットなどで使われる

アクションクラス(通称アクションビーン)
フォームクラス(通称フォームビーン)
ってありますよね

中味を見たらFormの方はset〜,get〜なのでわかるのですが
Actionの方が何をしているのかよくわかりません
>>407
サーブレット一般の話なら、作った人によるんじゃないか?
Strutsなら別だが。
初歩的な事だとおもうのですが、どうしてもできないので教えて下さい。
MySQLとJAVAを連動させるのにJDBCというのが必要で
プログラムの中でドライバの登録をしないといけない事まではわかったのですが、
どうしても登録に失敗してしまいます。
クラスパスは通しました。
その部分のソースは以下のようになってます。

try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("JDBCドライバの登録に成功しました");
}
catch(ClassNotFoundException e){
System.out.println("JDBCドライバの登録に失敗しました");
e.printStackTrace();
}

使用OSはWindows2000です。
MySQLも起動して常駐のアイコンが青信号の状態です。
>>409
クラスパスにMYSQLのJDBCドライバを通しましたかl
>>404
java.awt.Robot
>>404 過去スレにIMEまわりの話がでてるからどのクラスが関係するかとか 参考にしてみたら?
413デフォルトの名無しさん:03/12/07 13:50
引数なし処理なしデフォルトコンストラクタの意味がわかりません
あれってあることで何が可能でしょうか?

デフォルトコンストラクタをわざわざ明示しなくても
自動的に作成されるのだから
わざわざ明示する必要があるのか疑問です
>自動的に作成されるのだから
自動的にの意味を間違ってると思うが。
defaultコンストラクタはあらゆるクラスで定義されてる。
その中には実装があればないものもある。
自動的にっていうのは多分コンストラクタを定義しなくてもって意味だろうが
そういう場合は引数・処理なしのコンストラクタが暗黙のうちに呼び出される。
もちろんコンストラクタをオーバーロードしていれば別。
415デフォルトの名無しさん:03/12/07 14:05
>>414
>自動的にっていうのは多分コンストラクタを定義しなくてもって意味だろうが
>そういう場合は引数・処理なしのコンストラクタが暗黙のうちに呼び出される。
すいません、それだとわざわざ明示する意味って何でしょうか?
明示しているクラスソースと何も書いていないソースが混在しているのですが
>415
明示的に書いておけば、デバッガでブレークポイントを置くことができる。
>>415
>その中には実装があればないものもある。

このへんが鍵になりそう。
418デフォルトの名無しさん:03/12/07 14:11
>>416-417
基本的に明示していないソースはデバッグの必要やエラーが起こりえないソースで
明示するソースは問題を起こしそうなソースなので監視が必要と言うことでいいのでしょうか?
>418
いや、作った奴はきっと何も考えていないと思うよ。
そのときの気分でコンストラクタを書いてみただけとか。
>>414
> もちろんコンストラクタをオーバーロードしていれば別。

とは書いてあるけど

> defaultコンストラクタはあらゆるクラスで定義されてる

と書いたら誤解するやつが発生する。
よ。
>>415 >>418
そのソースは何?
Sunあたりの作ったソース等なら何か意味があるかもしれないが、
そこらへんに転がっているようなソースなら、私は>>419に同意。

またもし引数を取らないコンストラクタがプライベートとして
定義されているのなら、それにはちゃんと意味がある。
その意味とは、デフォルトコンストラクタの存在を消してしまい、
インスタンスを特定のやり方以外では、生成できなくすることだが。
422デフォルトの名無しさん:03/12/07 14:37
Cryptix JCEをダウンロードしてインストールして開発した場合、
出来上がったソースを配布してコンパイルするには当然Cryptixの
環境が必要でしょうか?
また、配布側がJarファイルにして、その中にCryptixのClassファイル
を含めて配布可能でしょうか?
また、その場合開発環境と実行環境のJVMバージョンが違っても動くものでしょうか?

423デフォルトの名無しさん:03/12/07 14:38
>>421
ネットに落ちているソースとかはともかく
何かのプロジェクトで使ってるJavaのクラスなどを試しに見ると
デフォルトコンストラクタがあるクラスとないクラスが
存在して混乱してしまうのですが

特に何か必要だから書いているとは思うんですが…
書くことに意味はないんでしょうか?
引数ありコンストラクタを作った後で必要なくて消すと
引数なしコンストラクタ(中身空)が残ることがあるよ。
あっても邪魔じゃないのでわざわざ消さない。
>>423
Jakartaのようなオープンソースのプロジェクトならソースコードも
しっかりしている場合が多いが、普通のSI案件のプロジェクトなんかだと、
コーディングしているのは凡庸なプログラマがほとんどだから、
コードの品質なんてろくなもんじゃないよ。
あー、ある種のIDEなどを使えば、
勝手にpublicで引数なしのコンストラクタを作ってしまうかも知れない
427デフォルトの名無しさん:03/12/07 14:47
>>424
つまり仕変対策ってわけか?
>>422
Cryptix JCE のライセンス見るか、作ったところに問い合わせろ。
429デフォルトの名無しさん:03/12/07 16:10
おい、お前ら、引数有りのコンストラクタ作ったら、ちゃんと引数無しの
コンストラクタ作ってください。継承して空の引数無しコンストラクタ書かれへんやんけ。

意図的に継承させたくないんやったらクラスを final にしてくれ。
あと、引数無しで生成されたくないんだったら protected 引数無しコンストラクタにして。
特に意図がないんだったら省略せんでくれよ。 >フレームワーク担当者
>>429
> あと、引数無しで生成されたくないんだったら protected 引数無しコンストラクタにして。
継承先にも引数無しで生成されたくないってケースを考えないのか?
>>429
> 特に意図がないんだったら省略せんでくれよ。 >フレームワーク担当者
フレームワーク担当者に直接言え。
なんらかの意図があるかもしれんし、そっちの方が効率的だ。
失礼します。
JScrollPaneにaddしたJTableに新たに列を追加した後、新しい列(一番下の列)を表示したく、
jTable1.scrollRectToVisible(jTable.getCellRect(jTable1.getRowCount()-1,0,true));
といった感じにしたのですがこれだと直前に追加した列が表示されてしまいます。
これを回避するためにEventQueue#invokeLater(Runnable)を使えと、言う所まで調べたのですが上手く動作しません。
具体的には、最初の1〜2回はちゃんと最後の列が表示されるのですがその後うんとも寸とも言わなくなります。
追加された列のアップデートすらされません。
invokeLaterの正しい使い方をご教授願えませんでしょうか?
433404:03/12/07 18:04
反応してくれた方ありがとうございました。
Robotはちょっと違うような感じがしたので避けました。
色々API探してたらどうもKeyEventDispatcherなどで出来るようなのでそれでやってみます。
434デフォルトの名無しさん:03/12/07 20:00
スレ違いの可能性もあるのですが、
mac osx10.3.1 apache2.0.47 tomcat4.1.24の環境下で、
MovableTypeというblogツールを自サバに導入後、
今まで問題なく利用していたjsp/servletからMySQLへの接続で
java.sql.SQLException : Server configuration denies access to data sourceが
発生するようになってしまいました。今までこのエラーは出た事がありません。
user,passwordはMySQL導入以降userはrootのみでの利用で変更していなく、
コマンドラインおよびMovableTypeからのMySQL接続は問題ないのですが、
唯一JSP/Servletからの接続だけが弾かれてしまいます。
ググってみても目に留まるものもなく、MySQLとMovableTypeのスレ覗いたのですが、
困りは果てこのスレに来ました。
どうすれば接続できるようになるか教えて下さい。
435434:03/12/07 20:33
解決しました。
jdbc:mysql://localhost/dabase名?....

jdbc:mysql://127.0.0.1/database名?....
にしたらうまく行きました。
長々とすみませんでした。

でもなんでだろ?
>>430
意図がないんだったらって書いたやん。そういうのもあるね。
>>431
すぐに言うたけどフレームワーク作ったのが別会社で理由を説明しろとか、
うんたらかんたらでメンドくさかったから言うてんねん。結局、先方に意図はなかった。

ってか自分ら、分かってんやったら上で引数無しコンストラクタが
どうのこうの言うてんのレスしたりぃな。
>>436
> 意図がないんだったらって書いたやん。
もし、そのような意図で書いたのなら語順が著しく不適当。
普通は そのようには読まない。

> うんたらかんたらでメンドくさかったから言うてんねん。結局、先方に意図はなかった。
ご愁傷様。でも 2ch にカキコむより先方と話しつける方が建設的だね。
いちいち関西弁で書き込むのって気持ち悪いんだけど。
俺は神戸に住んでるけどそれでも気持ち悪く感じる。
なんだかわざとらしいしな。
439デフォルトの名無しさん:03/12/07 22:30
例外処理で
trycatchとthrowって処理によっての使い分けされているのですが
どう違うのですが
>>439
> trycatchとthrowって処理によっての使い分けされているのですが
根本的に違うので使い分けとかいうレベルじゃないね。

> どう違うのですが
throw は例外をなげる。
try{}catch(Type e){} は tryブロックを試しに実行して
Type 型の例外が投げられたら catch のブロックに移行する。
441デフォルトの名無しさん:03/12/07 22:39
staticメソッドというのがよく分からないのですが
今いるメソッドがstaticじゃないならば
同じクラス内のメソッドを参照するにしても
インスタンス化しなければ参照できないのでしょうか?
442デフォルトの名無しさん:03/12/07 22:45
>>441
×今いるメソッドがstaticじゃないならば
○今いるメソッドがあるクラスがstaticじゃないのらば
>>441
> インスタンス化しなければ参照できないのでしょうか?
static メソッドならインスタンス化しなくても参照できるよ。
インスタンスメソッドはインスタンス無しでは参照できない。
やっぱ、関西弁は気持ち悪いのか。。。いつもは標準語(2ch語か?)なんだけど
嫁が書き込み見て 「なんで標準語なん? キショ。」、「アホ、2chは関西弁あかんねん」
とかいうのがあって関西弁にしてみた。どっちにしろ俺はキモイってことか。

>>439
使い分けじゃなくて、用途が異なる。try catch ブロックは例外を捕らえて処理するもの、
throw 節は例外を伝えるために例外を生成して投げるもの。
445デフォルトの名無しさん:03/12/07 23:20
JREをインストールする必要なのでしょうか?
たとえばなくてもeclipseなどでも問題なく開発出来て動くと思うのですが…
>>445
SDKがあればJREいらないね。
>>445
ごめん。どこの方言?
おれには意味が通じないんだ。
448いまぢん ◆aIiv0vVIvc :03/12/07 23:34
初心者の質問でごめんなさい。
今、マインスイーパーを作成しようとしてGUI部分を担当するMineSweeperクラスと
ゲームの実際の制御をするMineFieldというクラスを作りました。
ところが、MineSweeperクラスのメインメソッドの中で

//メインメソッド
public static void main(String args[]){
String title = "地雷撤去人";
MineField m = new MineField(100,100,10);
new MineSweeper(title,m);
}

と、よぼうとしたところ、MineFieldのインスタンス化の部分で
オブジェクトを解釈できないというエラーが起きました。
MineFieldクラスのコンストラクタは

//コンストラクタ
public void MineField(int w, int h,int n){
//オブジェクトのインスタンス化
field = new boolean[w][h];
flag = new boolean[w][h];
opened = new boolean[w][h];

//幅と高さ、地雷数を記憶
width = w;
height = h;
minenum = n;

reset();//盤上すべてをリセット
}

としているので、渡す値としては問題ないと思うのですが、親切な方、誰か教えてください。
>>445
どのレスに対するレスか、番号つけてくれ。
450デフォルトの名無しさん:03/12/07 23:36
デバッグの方法ですが
stacktraceやブレークポイントやsystem.out.pritnl()などは
わかるのですが
他の方法ってありますでしょうか?

eclipseでブレークポイントをかけてデバッグを実行した時
内部処理を見に行ってるのもよく分からないのですが
よろしければ教えてください
>>448
> オブジェクトを解釈できないというエラー

数年Javaでプログラムを組んでるが、そんなエラーはみたことない。
>>448
ホントにそれコンストラクタのコードか?(→void)
>>450
前半と後半がどうつながるのか教えてくれ
454デフォルトの名無しさん:03/12/07 23:39
>>453
前半と後半は違う質問です
「また〜」と言うのを書き忘れました
>>450
お前はデバッグの意味を勘違いしている。
456いまぢん ◆aIiv0vVIvc :03/12/07 23:43
>>451
シンボルを解釈できないの間違いでした。すみません、初心者なもので・・・。

>>452
うわっ!本当だ。こんな簡単なミスだったなんて、すみません。助かりました。

皆さん、しょうもないことでスレ汚してしみませんでした。
ありがとうございました。
なるほど。クラス名と同じ名前をもつメソッドを作成できるんだ。
知らなかった。
>>457
通常はコンパイラにはねられるがバイトコード直書きすれば
int とか for とかいうメソッドも作れるよ
432ですが、事故解決したので一応報告。
dataModel.fireTableDataChanged();
jTable1.scrollRectToVisible(jTable1.getCellRect(jTable1.getRowCount()-1,0,true));
とすることによりちゃんと列の追加後に最後の列を表示する事が出来ました。
(結局invokeLaterは使わず)
>>439の言っていることは、俺にはよく理解できないが
もしかして、この二つはどう使い分けるかについての質問か?

method() throws Exception {
 //何か例外 Exception が発生するかもしれない処理。
}

method() {
 try {
  //何か例外が発生するかもしれない処理。
 } catch (Exception e) {
 }
}
>>458
直書きすればできるかもしれんが、言語仕様には則ってないね。
462デフォルトの名無しさん:03/12/08 12:31
web.xmlの設定なんだが
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
となっている場合に、
<servlet>
<servlet-name>hoge.do</servlet-name>
<jsp-file>/jsp/hoge.jsp</jsp-file>
</servlet>
とすることは出来ない?
以前は、actionに飛ばしてたんだが、変更かかって処理不要になったので
URLは変えずにJSPに直接飛ばしたいんだけど。
教えてプリーズ
>>461
そういう揚げ足取りが一番嫌い。
>>463
あげあしをとる:人の言葉じりやちょっとした失敗を取り上げて、相手を責める。

言語仕様に則ってないのは重要だと思うけど。
むしろバイトコード弄れば int とか for がメソッド名に使えるって方が些細な話だね。
obfuscator とか作ってるなら両方とも重要だし。
465デフォルトの名無しさん:03/12/08 15:14
まぁ誰だって機嫌が悪いときは有るよ(^^)<ぬるぽ
>>460
この二つを使い分ける基準みたいなものはあるのでしょうか?
あと、ぬるぽをcatchしたりする節や、throwsしたりする宣言を
自分のメソッド中に書く必要がないのはなぜでしょうか。
ほかにもぬるぽのようなメソッドはあるのでしょうか?

>>465ともども、こんな私にガッとやるついでに、
上の質問についても、誰か教えていただけたら、ありがたいです。
>>466
>ほかにもぬるぽのようなメソッド
ぬるぽのような例外です。すみません・・・
Java で、オーバーロードを禁止させる方法ってないでしょうか?
>>468
オーバーライドではなくて?
オーバーライドの禁止なら、
メソッドをfinalに宣言すればいいだけだと思うけど、
オーバーロードの禁止方法は知らない。すまそ
オーバーロードは、
俺も知らない。
親クラス自身や親クラスを相手にした諸々の処理には一切支障をきたさない。
(リフレクションで何か妙なことやってれば別だけど)
ゆえに、禁止する意義がない。
よってできない。たぶんね。

ちなみに一切の継承の禁止も final (final class) だよ。
471468:03/12/08 17:03
>>469
>>470
ありがとうございます。
やっぱりありませんか。

>オーバーライドではなくて?
はい。

>親クラス自身や親クラスを相手にした諸々の処理には一切支障をきたさない。

今開発しているパッケージが、
メソッドのセットはほとんど変更が無いのですが、
パラメータに使うインターフェースが流動的なので、
親クラスで、パラメータのクラスを変更したときに、
子クラスのパラメータも追随して変更しなければなりません。

ここで変更漏れがあると、エラーとならずに、
子クラスのオーバーライドが外れ、
親クラスのメソッドが使われてしまうために、
実行段階で異常な動作となり、初めて分かるという問題に突き当たって困っているのです。
メソッド名ごと変えたらいいやん。
それもめんどいんじゃしょうがないな。
473デフォルトの名無しさん:03/12/08 17:14
モードレスダイアログ(JDialog)を削除してから表示させない方法を教え
て下さい
getContentPane().remove(connDlg);
Frame.remove(connDlg);
getContentPane().repaint();
Frame.repaint();
などなどやっても消えねぇ〜
>>471
古い奴を final にしたら?

>>473
何やってんだお前・・・・・? 激しく謎
dispose は試したのか
475デフォルトの名無しさん:03/12/08 17:33
ふぅぅーー   消えた


JAVAプログラマでないのがバレテシマッタ

>>474
ありがとう
476デフォルトの名無しさん:03/12/08 17:37
>>471
ちょっとききたいんだが、
オーバーロードを禁止できる言語って何よ?
477デフォルトの名無しさん:03/12/08 17:45
JavaかDelphiで迷っています。作りたいソフトはタイピングソフト
です(ローカルで動くアプリ + サーバ上もあるかも)。Javaは遅い
って聞いているので不安です。DelphiはWebアプリの情報が少ない
ので不安です。そこで質問ですが、Javaはローカルで動くものでも
遅いのでしょうか。よろしくお願いします。
>>477
そりゃネイティブなアプリケーションよりは遅くて当然だが、
多分君が聞いてるのは相当古い話だ。

遅いかどうかはユーザの判断なんだから、
探してみてユーザの立場で判断せい。
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&q=%E3%82%A2%E3%83%97%E3%83%AC%E3%83%83%E3%83%88+%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0+Java&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
479デフォルトの名無しさん:03/12/08 18:04
Javaでネットワークの勉強をしようと思って「JavaWebプログラミング徹底入門」
という本を買ったのですが、説明が分かりにくく挙動不審な動作が多く嫌になります。
こういう方面でお勧めの本はありますでしょうか?
できればEclipseでTomcatとか使いながらやりたいと思っています。
480デフォルトの名無しさん:03/12/08 18:06
>>478
ありがとうございます。アプレットを2つほどやってみました。
フォームが表示されるのがやや遅いような感じでした。
これからローカルアプリも探してやってみようと思います。
>>479
その本は俺も買って後悔した。
でも分からないところとかネットで調べまくって全部やり終えたけど。
482468:03/12/08 18:37
>>472
>>437
ありがとうございます。

>>472
すいません、よくわかりません。
メソッド名を変更した場合、
パラメータの型を変更するのと何か違いがありますか?

>>437
>古い奴を final にしたら?
ええと、

1.パラメータを変更した新しいメソッドをスーパクラスに作る。
2.古いメソッドを final にする。
3.子クラスの古いメソッドをオーバライドしたメソッドがエラーになる。
4.3.でエラーになったメソッドを、エラーをてがかりに、
 新しいメソッドをオーバライドするように書き換える作業を、
 エラーがでなくなるまで繰り返す。
5.古いメソッドを(必要であれば)削除する。

ということですよね。
とりあえず、これでなんとかなりそうですね。

>>476
すいません、知らないです。
最初の質問は「他ではできるけれどもJavaでは・・・」という意味にもとれますね、
そういう意図はありません、誤解を招く表現ですいませんでした。
>>482
親クラスのインターフェースが流動的ってのがどうも
設計的にまずそうながする。

もう遅いかもしれないけど
親クラスを継承関係のないクラスとして分離して
委譲にできないか検討してみたら?
484貧乏紙:03/12/08 19:59
SJC-WC Sun Certified Web Component Developer for J2EE Platform
本日受けて合格しましたぽ。。。
認定書届くの楽しみだな。・。・
技評の本てどこのほにゃにもあるんだけど、役に立たないこと多い。
ほにゃほにゃ。
487デフォルトの名無しさん:03/12/08 21:14
また来ました。モードレスダイアログ(JDialog)にラベルが張り付きません。
JDialog connDlg = new JDialog(jf, false);
connDlg.getContentPane().add(new JLabel("ひみつ" , SwingConstants.CENTER));
connDlg.setSize(300, 200);
connDlg.setLocation(iFramePosX + 200, iFramePosY + 170);
connDlg.setVisible(true);
モードレスダイアログだとラベルが張り付くのですが・・・
途中でconnDlg.setModal(false);とやってもラベルが表示しません
ヨロスクオネガイシマス
488468:03/12/08 21:31
>>483
>親クラスのインターフェースが流動的ってのがどうも
すいません、ちょっと間違えて書いてました。
流動的なのは、パラメータに使われる インターフェースの型で、
基本的なパラメータ構成は変わりません。(インスタンスのクラスは同じ)
パラメータに使うクラスについては、
継承関係にある複数のインターフェース(の最末端のインターフェース)を、
実装させることで、使うインターフェースを変えれば、
アクセスできるメソッドが変わるようにしようとしているのです。

>もう遅いかもしれないけど
>親クラスを継承関係のないクラスとして分離して
>委譲にできないか検討してみたら?

TemplateMethod パターンを適用して(だからメソッド構成自体は基本的に変わらない)
子クラスに処理を委譲した結果が今の構成なんですが・・・。

>>487
WindowsXP + 1.4.2-b28 だけど表示される。

最小のコードでもダメかとか、
"ひみつ" のような日本語を使わないでやってもダメかとか試してみてみるとか…
>>484
どのような問題が多かった?カスタムタグの問題が多いって聞いた事有るけど。
分からなかった問題とか晒してほしいんですが。
491デフォルトの名無しさん:03/12/08 21:54
えっ 表示される?
win2000sp4 + j2sdk1.4.1_05
そのまんまのコードだょ
connDlg.getContentPane().add(new JLabel("相手先コンピュータに接続中・・・" , SwingConstants.CENTER));
ためしに
connDlg.getContentPane().add(new JLabel("aaaaaaa"));
と変えても表示しない
ダイアログがモーダルだと表示する
何故なんだろう?
他のコンポーネントはどうよ?
493デフォルトの名無しさん:03/12/08 22:05
うそだぁ
モードレスでボタンは表示されます
何故なんでしょう ?
>>491
WindowsXP + 1.4.1_03-b02 で表示される。

何故なんだろう?
>>479
この本をお買いなさい。
eclipseが載っていたかどうかは

http://www.amazon.co.jp/exec/obidos/ASIN/4797314419/ref=sr_aps_b_1/250-7113262-5962601
「サーブレット/JSP プログラミングテクニック」
496デフォルトの名無しさん:03/12/08 22:19
>>494
1.4.1_03-b02
~
何故なんだろう?
497貧乏紙:03/12/08 22:20
>>490
確かにカスタムタグは多かった。
あと、デザインパターンがわけわからなかったyo
おいら、デザインパターンだけ25%しかいかなかった。
デザインパターンは4つでました。
あとは普通かな。SJC-P見たいに引っかけとかはあっても1,2問しかなかったし。
対策本きっちり読めばOKだとおもうよ。
498デフォルトの名無しさん:03/12/08 22:23
間違えた
>>494
1.4.1_03-b02
b:何故なんだろう?
>>491
BugParade で JDialog modeless JLabel で検索しようとしたら
サイトの再構築中につき云々っつー注意書きが…
500デフォルトの名無しさん:03/12/08 22:32
えっ バクの可能性が ?
1.4.1_05で05なのにぃー
>>498
ひょっとして b** がビルドナンバーだって事がわかってない?

java -version すりゃ出てくる奴。
>>500
> えっ バクの可能性が ?
可能性はある。

もっとも、アンタが何か見落としてる可能性の方が極めて高いが。
503491:03/12/08 22:44
JLabelの替わりにLabelを使ったら表示された
とりあえず一安心
やっぱり、バグみたい
皆さんありがとう
>>503
Swing のコンポーネントに AWT のコンポーネント突っ込むのは止めた方が…

JPanel とかは使ってみた?
505デフォルトの名無しさん:03/12/08 23:12
今しがた仕事から帰って来てやったぞ、おまえら。
1回しかボタン押してないのに2回リクエストが飛ぶ現象で考えられる要因を晒せ。
>>468
激しくお勧めしないが、どうしてもオーバロードを禁止したかったら
パラメータを全部 Object にして中で instanceof で場合分けしたら?
>>505
おしゃべりなニンフがいたずらしてるんだよ。
>>505
ActionListenerに2回登録されてるとか。
>>506
オーバーロードってのは、そういうアホなことをしないですむための
機能なのにねえ。規模の大きい開発なんかだと、実行時まで型解決を
遅らせるほうがよっぽどアブネーですわ。
>>503
コンテントペインに追加したあと、validate()とか、pack()とかコールしてみ
たらどうなりますか?画面描画用のデータが準備されてない可能性があるかなと。
ダイアログのsetVisible()コールでvalidateTree()がいくはずなんだけどね。
test/test/test.jpg
のようなStringからtest.jpgだけを抜き出すにはどうしたらよいでしょうか
>>511
String#lastIndexOf()、String#substring()
またはregexpパッケージ。

パス文字列なら、Fileクラスのメソッドで切り出す手もあり。
「name TanakaAkira」と「NAME IS A.TANAKA」の文字列があって、
どちらが確保されるか分からない状態でも田中さんの名前の部分を
「Tanaka」に統一して表示するにはどうすればいいんでしょうか。

つまりこういう風に
「nama TanakaAkira」→「nama Tanaka」
「NAME IS A.TANAKA」→「NAME IS Tanaka」
これ↑のどちらが来ても田中さんのところだけ表記を変換するには?

分かりそうなんだけどよく考えると分かりません。お願いします。
514U ◆CZtFsGiu0c :03/12/09 01:39
>>511
StringTokenizerを使う。

>>513
こんな感じでどうですか?
1. StringTokenizerで文字要素を取り出す
2. toUppercaseした文字要素にTANAKAが含まれるかどうかindexOfで調べる
3. なければそのまま出力、あればTanakaを出力
515511:03/12/09 02:04
>>512,514
StringTokenizerとSubStringを使ってなんとか出来ました、ありがとうございました。
516468:03/12/09 02:32
>>506
なるほど。
でも、そこまでするなら、
リフレクタでオーバーロードをチェックするプログラムを作って、
JUnit かなんかでどっかにかませたほうが、
実行コードが変にならないし、まだましなような・・・。
int型の一次元配列で、
その配列の合計が欲しいんですよ。

ループ文書かないと駄目ですか?
そういったAPIはjavaには無いんですかね?
>>517
そのくらい自分でかけ
519517:03/12/09 08:03
>>518
分かりました。
書くことにします。
>>495
それ買ってみます。ありがとうございます。
521デフォルトの名無しさん:03/12/09 13:02
次期P2Pの仕様 part7
http://tmp2.2ch.net/test/read.cgi/download/1070647427/

まとめサイト(Wikiへの直リンク禁止)
 http://s2net.s41.xrea.com/

ダウソの馬鹿どもがなんかやってるぞ、からかってやろうぜ!
522302:03/12/09 13:11
いまさらなのですが Java2 SDK が落とせません
ダウンロードをクリックしても ページが見つかりません に飛ばされてしまいます。
今はこっちみたい。もっとも、他のリンクも探してみれば10秒で見つかるんだが。
ttp://java.sun.com/j2se/1.4.2/ja/download.html
ついでに、いつのまにか1.4.2_03が出てる。
524302:03/12/09 13:21
>>523
1.4.2_03がでてるんですか
そっちを落としたほうがいいですか?
525302:03/12/09 13:24
J2SE v 1.4.2_03 のダウンロードのSDKを落とそうとしたら ページが見つかりません だって_| ̄|○
526302:03/12/09 13:28
落とすのはこれでいいんですよね?英語苦手で・・・

http://java.sun.com/webapps/download/DisplayLinks
>>525
普通にダウンロード出来てるけど…
528302:03/12/09 13:34
>>527
・・・
何回やってもページを見つけてくれないんですけど・・・
529302:03/12/09 13:35
>>526
俺はドメインが解決できない
どうにかなっちゃってるんだろう 気長に待ちなさい
531302:03/12/09 13:40
>>530
わかりました
初心者用Java本でも読みながら気長に待ちます
またわかんないことがあったら教えてください
>>526
>>530
英語のサイトから落とせば普通に落ちるよ。
533530:03/12/09 13:55
>>532
あ、それで気がついたけど、
SDK も JRE も、今は各国語対応のしかないんだ?
534302:03/12/09 13:59
Windows Offline Installation (j2sdk-1_4_2_03-windows-i586-p.exe, 48.30 MB)
Windows Installation, English (j2sdk-1_4_2_03-windows-i586-p-iftw.exe, 356.00 KB)

どっち落とせばいいですか?
英語できないと使えないですか?
>>534
Offline
536302:03/12/09 14:18
無事に落とし終わりました

が!

Java Web Startのアイコンをクリックして
アプリケーション:リモートアプリケーションを起動させようとしたのですが
全部起動できません・・・
どうしてでしょう
>>534
使えない。Java が、じゃなくて >>534 が。

>>536
ちゃんとインストールしてないとか。
538302:03/12/09 14:30
>>537
落としたら日本語で書いてありました
どうやら英語わからなくても使えそうです


インストール事態はちゃんと終わってるようです
Java Web Startをクリック→Java Web Startアプリケーションマネージャーが立ち上がる→
DRAW 4 APPをクリック→最新のヴァージョンを検査してます と表示→ダウンロードエラー DRAW 4 APPを起動できません

こんな感じです_| ̄|○
>>538
java.sun.com のディレクトリ構成が変わってアクセスできないだけだと思われ。

その程度、聞かなくても想像できそうなもんだが…
540302:03/12/09 14:59
>>539
・・・すいません

それじゃあなおるまで放置しとけばいいんですよね?
http://developer.java.sun.com/developer/bugParade/bugs/4879522.html
Release Fixed 1.4.2_04, tiger-beta ってどういうことだよ、おい。
542デフォルトの名無しさん:03/12/09 15:23
サーバサイドの勉強もだいぶ進んできたので、ここらでWEBアプリを作ってみようかと思ってるんですが、
どういうのを作ろうか悩んでます。
どなたか提案してください
>>542
アプレットと絡むのか HTML だけでやるのかさぁどっち
でもまぁどっちにしろ対戦オセロでも作ればいいんでないの
無理矢理RDBMS使ってユーザ管理するとかさ
>>541
Sun と(NDAとかの(?))契約すれば early access でも手に入らない開発版が手に入るみたい。

BugParade に tiger-beta の bug は結構報告されてる。
>>541
あと、「Release Fixed 1.4.2_04, tiger-beta」ってのは
1.4.2_04 もしくは tiger-beta では直る(はず)って話。
MRJ SDKでJAVA始めようと思っています。いまごろ。
こんな私に、何か助言はありますか?
547541:03/12/09 15:40
>>545 いやそれは当然理解してるんだけどね。
これなおらんとうちでは1.4.2系には移行できない。
デバッグしてて結局1.4.1に落とさないと駄目って
わかったときには脱力したよ。
>>546
MRJ って Java2 相当のは出てないんじゃなかったっけ?
ちょっと遊ぶぐらいはいいけど・・・
1.1 の知識だけでは、真剣にやるには全然役に立たないから、
素直に Win とか OSX マシンを買った方がよござんしょう
>>548
JAVAとJAVA2って、簡単に言って、
どれくらい違うんですか?
ファミコンとスーファミくらい?
プレステとプレステ2くらい
>>549
Java と、じゃなくて Java1.1.8 (1.1の最終バージョン) と Java2 。どっちも Java だ。

FC と SFCねぇ(w 言いえて妙だが違う。それらは互換性無いじゃん。
>>550 の方がずっと近い。
552デフォルトの名無しさん:03/12/09 16:46
メニューバーにアクセスする方法を教えて下さい
今JFrameにJPanelを継承したmyPaneをフレームのコンテンツペインに貼り付け
ています。そのmyPaneのイベントリスナからフレームのメニューバーにアクセス
したいのですが、どのようにすればよいでしょうか。
myPaneのイベントリスナ内ででgetParent()を使えばフレームのコンテンツペイン
が取得できると思うのですが、そのコンテンツペインからフレームや直接メニュー
バーを取得できないみたいです。
よろしくお願いします。
>>552
SwingUtilities#getRoot(Component c)
あたりでとれないか?
>>552
一般解:
 自分で作った JMenuBar インスタンスが相手なら、
 それへの参照をどこかにとっておく。
 誰か別のプログラマが作った JMenuBar が相手なら、そいつに相談する

特殊解:
 JFrame のリファレンスを読むとか、自前で調査する癖をつける。
 もっかい getParent するとか、類推する知恵をつける。
555デフォルトの名無しさん:03/12/09 17:00
perlで書くと
$hash{'AA'}{'BB'}[0]
などの多重配列はどのように実装したら良いのでしょうか?
556デフォルトの名無しさん:03/12/09 17:03
>>554
わかりました。やってみます。
ちなみに、もっかい getParent は駄目でした。
>>554
連想配列代わりには Map を使う。HashMap あたりが単純か。
それは連想が多重なのかな? 俺は Perl でそこまでやったことは無いが、
多分 Map の value に Map を入れれば(さらにその value に int[] なり String[] なりを入れれば)君の思った通りになる。
何か分かりにくかったら、ラップクラスを作ればいい。

class MyArray {
 Map map;
 Object getValue(String key1, String key2, int index) {
  return ((Object[])((Map)map.get(key1)).get(key2))[index];
 }
}

とか・・・
558デフォルトの名無しさん:03/12/09 17:12
質問させてください。
かなり基本的なことだと思うのですが、

public Student( int id , String name ){
this.id = id;
this.name = name;
}
こう定義されているものを、LinkedListに
list.add( new Student( int x , String name ) );
入れた後に、list.get(int index)で取り出したものを、
再びidとnameに分けたいのですが、どうすればいいのでしょうか?
まずキャストして参照する。
Student student = (Student)list.get(int index);
ここまではできてんのかな?

そのあとは Student に getter メソッドも定義して
int id = student.getID();
String name = student.getName();
する。それぞれを得る処理を書くメソッドから見てアクセス権があるなら
int id = student.id;
とやってもいいけど錯綜してくるのであんまりよろしくない。
>>558
((Student)list.get(index)).id;
((Student)list.get(index)).name;

getter があるなら

((Student)list.get(index)).getID();
((Student)list.get(index)).getName();

とか。
>>547
バグを直した ISO-2022-jp の Charset を自前で用意するんじゃダメなん?
562558:03/12/09 17:28
>>559-560
なるほど。わかりました。叩かれるかと思って正直びびってたのですが
丁寧な説明ありがとうございました。
英政府、SunのJava Systemを採用
ttp://www.zdnet.co.jp/news/0312/09/nebt_25.html

おもいきったな、英政府
564デフォルトの名無しさん:03/12/09 17:44
import java.applet.Applet;
import java.awt.*;
public class test2 extends Applet implements Runnable{
int x=0;
int y=0;
thread thd = null;
public void init() {
thd = new thread(this);//スレッド作成
thd.start();//スレッド始動
}
public void run() {
try{
while(true){
thd.sleep(500);
x=x+1;
repaint();
}
} catch(Exception exp) {}
}
public void paint(Graphics g){
g.fillOval(x,x,30,30);
}
}
いきなりで失礼かもしれないですが、このプログラムでエラーが出てしまいます。
スレッド作成のあたりがエラーと言う表示が出ているのですが、30分試してもさっぱりわかりません。
どなたか教えてください。
>>564
エラーメッセージは全部コピペしろ。
566564:03/12/09 17:56
test2.java:7: シンボルを解決できません。
シンボル: クラス thread
場所 : test2 の クラス
thread thd = null;
^
test2.java:11: シンボルを解決できません。
シンボル: クラス thread
場所 : test2 の クラス
thd = new thread(this);//スレッド作成
^
エラー 2

>>565
すいません。そうですよね。
JCpadを使ってます。
1. コンパイル時のエラーと実行時のエラー(ないし例外)では全然話が違ってくる。
 明記すること。今回はコンパイル時のようだが。
2. エラーのコピペは必須。しばしば、ソースがなくとも指摘できることさえある。
 (それはそういうこともある、というだけでソースも是非貼っては欲しいが)
 コンパイル時の場合は特に。今回は 7 行目のシンボル解決不能、と思われるが。
あ、かぶった。

標準API のクラス名は必ず大文字から始まる。そこがおかしい>thread
自分で作るときも大文字から始めること。>test2
JavaでのDOMの扱い方を勉強できるWEBってないですか?
初心者向けじゃなくて、もう少し踏み込んだのをある程度の量やってくれてるような
そんな感じのがあるといいんですが。
570デフォルトの名無しさん:03/12/09 18:04
>>567-568
解決しました。
大文字も区別するって、忘れてました。
やっぱり、久しぶりにやるとダメですね。
ありがとうございます。
指摘の点は今後改める所存です。
>>569
踏み込んだ、って言っても、基本的には XML の構造のことに終始するから、
むしろ XML についてきちんと勉強してれば類推は効くんじゃないの?
Java1.1ではGUIの部品を決めた場所に置く事はできないんですか?
Java2なら可能?
573552:03/12/09 18:45
ためだぁーわからねぇ
そもそもフレームを表示させているメインとなるクラスのメンバにアクセスする
方法が解りません
>>572
1.1 でもできるはずだよ。LayoutManager を自作するのが一番正しいアプローチ。

>>573
"そのクラスのインスタンス.メンバ名" でアクセス。
初心者本とか、きちんと読んでる?
>>572
レイアウトマネージャをnullにすれば可能だったと思った。
どのコンテナもデフォルトでは何らかのレイアウトマネージャが設定されてるはずなので
明示的にnullを設定しなければならなかったと思う。
うろ覚えですまん。
Java1.1(AWT)は環境によって部品の大きさがまちまちだから気をつけれ。
576552:03/12/09 19:25
>>574
本はあまり読んでません(^^;
ちょっと違うみたいなのでもう一度質問しなおします。
今JFrameにJPanelを継承したmyPaneをフレームのコンテンツペインに貼り付け
ています。そのmyPaneのイベントリスナからフレームを表示させているメインと
なるクラスのメンバにアクセス したいのですが、どのようにすればよいでしょうか。
577デフォルトの名無しさん:03/12/09 19:38
KeyListenterと、スレッドを混在させる方法がわかりません。
たとえば、下記URL先の、一番下のソースに、新しくスレッドを作るにはどうすればよいでしょうか。
Runnableをどうすればいいのか、と言うところから行き詰まってます。

ttp://www.geocities.co.jp/SiliconValley-SanJose/8084/soft/javamakerb_help/applet_key.html
>>574,575
ありがと!!
まず初歩の本を読み終わったら、やってみるよ。
プログラム起動する時の引数で、あるクラス名を指定して
内部でそのクラスのインスタンスを作ることってできましたっけ?
インタフェースを定義してあって、それを実装してるクラスですが。

インタフェース hoge=(インタフェース)Class.forName(className).newInstance();
hoge.do();
デタラメにこうやってみたらコンパイルは通ったけど、当然できませんでした・・
>>579
> インタフェース hoge=(インタフェース)Class.forName(className).newInstance();
・className が間違っている。
・そのクラスに引数なしで public なコンストラクタが無い。
の何れかだと思われ。

後者の方だったら Class#getDeclaringConstructor とか
java.lang.reflect.Constructor とかを使うしかない。
>>577
どういうスレッドを起こしたいのか解らないんだけれど。。。
それと、そのサイトで説明している怪しげなソース生成ツールの使い方を
訊いているのか、純粋にJavaでの記述を訊いてるのかあなたの文面からは
サパーリ解らんです。
まずは「スレッド」をどういう意味で捕らえてるかを自分なりにまとめてごらん。
>>576に書いてあるのは、
"myPaneのイベントリスナから、メインクラスにアクセスしたい"という事?

myPanelクラスに、メインクラスとやらを保存するメンバフィールドを書きたせばいいんじゃない。
583デフォルトの名無しさん:03/12/09 21:30
引数で渡されたObject型を、可能であればAという型にキャストして、
だめな場合はBという型にキャストするという処理をしたいのですが、
そういう処理って、できますか?
動的エラーが出ちゃって困ってるのですが。。
>>583
try catchを使えば可能。
try節で、Aにキャストができなければ例外がでるので、これをキャッチして、
catch節で、Bにキャストする処理を書けば良いと思う。
585576:03/12/09 21:44
>>582
おぉぉーーそれだ、その方法だ \(^o^)/
ありがとうございます。

でも、そういう方法しかないのかな
順繰り遡るように辿っていけないのかなぁー
>>583
instanceof使えや。
if(value instanceof A){
 // Aクラスにキャスト
else{
 // Bクラスにキャスト
}
587583:03/12/09 21:56
>>584
>>586
レスありがとうございました。
とりあえず、try-catchでやってみようとおもいます。
>>585
>順繰り遡るように
その方が面倒だろうに。
GUI だからたまたま遡るようなメソッドが用意されてるだけで、
こういうことを自分でスパスパできなきゃプログラミングなんてやってられないぞ。
589577:03/12/09 22:02
>>581
あやしげな生成ツールは関係ないです。
スレッドって言うのは、並行的に、独立して実行していく区域と言うか、
ウエイトを置いたりするようなものという認識です。
>>564
みたいなスレッドを作りたいと思ってます。

どうにかできないでしょうか?
>>587
断然 instanceof の方がいいと思う。
そうでもなければ instanceof の使いどころが無い。
591デフォルトの名無しさん:03/12/09 22:05
>>584
例外機構を処理フローの代替として利用するのは望ましくない。
これはJavaの思想の問題である。使いたければ使えばいい。
ただ、「なんだこいつ。馬鹿か。糞コードだな。頭悪いぜこいつ」ってなるけどね。
まあ、それ以外にも何かと弊害があるんだけど。気になるなら自分で調べれ。
>>589
>ウエイトを置いたりするようなもの
それは副次的な要素だな。別に、単スレッドでもできるもの。言いたいことは分かるけどね。

KeyListener とどう絡めるのか分からんのよ。
例えばキーが押されてから 5秒後に反応する、とか、
キーを押すたびにアニメしたり止まったり、とか。具体的に書いてくれ。
593デフォルトの名無しさん:03/12/09 22:17
スレッドの説明としては不足だな。
スレッドってのは、直訳すると「糸」であり、マルチスレッドってことは
その糸が複数あるってイメージ。しかし、単一のCPUだと、一度に処理を割り当てられるのは
1スレッドのみ。各スレッドはOSによって優先順位が算出される。
(通常の単一スレッドプログラムでもOSから見たらスレッドをCPU割り当て単位として見てることに注意)
だからマルチスレッドなプログラムはSMPシステムでパフォーマンスを発揮する。
594576:03/12/09 22:34
>>588
(;_;) ショボーン
>>594
API をふんだんに利用するのは知恵だが、
頼り切らずにえいやっと解決するのも知恵。
596577:03/12/09 22:43
>>592
えっとですね。
キーボードを押した時に、押している間は図形が動いて、スピードが増していき、
離したら、そのままのスピードで進んでいくというものが作りたいんです。
KeyListenterの中にスレッドを作る訳じゃなくて、
キーボードの反応を受けつつ、処理を続けるだけのスレッドを作りたいのです。
ただ、現在は二つを同時に作れなくて。
論理エラーじゃなくて、プログラム的におかしいらしいです。

今、必死で考えて作ったら、
Test は abstract として宣言する必要があります。keyTyped(java.awt.event.KeyEvent) を Test で定義しません。
public class Test extends Applet implements KeyListener, Runnable{

というエラーがでました。
597デフォルトの名無しさん:03/12/09 22:46
>>596
インターフェースのメソッドを全て実装してないだけだろ。
作り込む前にJavaの勉強やりなおしたら?アダプタークラスとか理解してる?
>>593
single CPU でも I/O 待ちで CPU がする事無いときに他のスレッドが…
っつー説明は時代遅れ?
599577:03/12/09 22:50
>>596
すいません、エラーのほうは事故解決しました。
無視してください。
>>596
>プログラム的におかしいらしいです
ソース的に、じゃないか。論理エラーはプログラム的におかしいことを言う。
interface は 100%用意しなきゃならんから、keyTyped を、中が空でも宣言しなきゃならん。

で、作り方だが。
Runnable を implements したクラスを Test とは別途作った方が分かりやすい。
で、そのクラスにはボタンを離したことを通知するためのメソッドもしくは public メンバを用意する。
ボタン押したときは keyPressed 内でインスタンス化して Thread#start かます。
離したときは keyReleased で Runnable 実装したインスタンスにそれを告げる。

run では while かけて、座標値を加算していく。
適度に Thread#sleep して、描画コンポーネントには repaint かける。
過去に、離されたことが通知されてなければ、加速していく(1度に加算する量をふやす)処理も行う。
601デフォルトの名無しさん:03/12/09 22:58
フリーウェアを作って配布するには
JAR形式が良いのでしょうか?
JREのインストールを強いるのが
ユーザに優しくないんだよなあ。
602デフォルトの名無しさん:03/12/09 22:58
>>598
いや、実際のところwaitに入ると、他のスレッドが処理されるよ。
割り当て時間だとか優先順位の再算出とか、OSによって異なるし、
その辺意識し始めると話が難しくなるんだよね。
例えば、ネット繋いでるだけでもI/O発生してるわけだし。
全ての要因を網羅した上でアプリケーション作るのは相当な知識と経験が必要。
マルチスレッドやり出して次のステップに進むあたりから、パフォーマンス面の自分の限界っていうか、
1人で出来ることの限界を感じ始める。
603デフォルトの名無しさん:03/12/09 23:01
>>600
java.lang.Threadを継承したクラスでやった方が判りやすくね?
>>599
事故ってか。コンパイラ吹き飛んだか?
>>601
ローカルファイルにアクセスしないなど、アプレット環境で十分動くなら、
html と一緒にアプレットで配布する手もある。
606デフォルトの名無しさん:03/12/09 23:35
直列化について教えていただけないでしょうか?

「オブジェクトをファイルに書き込んだり
書き込んだものを読み込んだりできる」
のようなことが本にかかれてたんですが
いまいちつかめません。

どういった時に利用するのですか?
>>606
オブジェクトの実態はは単なるメモリ上のデータなので
プログラムが終了してJVMが破棄されると消えてしまう。
それをずっととっておきたい&とっておいたものをいつでも使いたいときに
オブジェクトを直列化してファイルにとっておく&ファイルから取り出す。
>>606
『ザ・フライ』でやってた物体転送のように、
情報伝達のため、かつシリアルな伝送をするための変換。
わかりる?
609デフォルトの名無しさん:03/12/10 00:10
リフレクションって何ですか?
どういうときに使うのでしょうか?
610606:03/12/10 00:11
>>607&608
なるほど。そのように言っていただくと
本に書いてあることも納得できます。
たしかに便利な機能ですね。

どうもありがとうございました。
>>609
"クラス"や"メソッド" というプログラミング上の概念を、クラスで表現し、
個別の宣言をインスタンスで表現する
利用の具体例:
テキストファイルに「籠の中身は、りんご×2、みかん×3」と書いたとする。
これを解釈してオブジェクト生成をするなんてなときに、
プログラミング的には
 if (token.startsWith("りんご")) {
  int count = ほぎゃほぎゃ
  for (int i=0; i<count; i++) kago.add(new Ringo());
 }
なんてな感じで、文字列とクラス名をプログラム上で対応付けることとなるが、
「Kago の中身は、Ringo×2、Mikan×3」
なんて風にクラス名を直に書いて、文字列からクラス宣言を解決してインスタンスを作成するなんてことができる。
>>579 がやってるような感じに。

他にも、ある特定の Class に宣言されたメソッド名を列挙するとか。
Object obj = list.get(0); //なにやら予測できないインスタンス
Method[] ms = obj.getClass().getMethods(); //Methodが全部分かる
int mod = ms[0].getModifiers(); //そのメソッドが public なのか、とか static なのかとかが分かる
Javaの初歩の本を読んでいるのですが・・・
気付いたら印刷に関する章がない。
印刷ってどうするの?ひょっとして、
Postscriptを直接書け、ってこと?
でもそれだとMacで印刷できないし。
>>612
Graphics に描画することで紙に印刷できるような API があるよ。
チュートリアルを探してごらん。ちなみに、PostScript 出力もあったはずだ。

ただし、Java の印刷は弱い。俺の私見だが。だから載せてないのかもしれない。
1.4 で結構増強されたが、些細なことで VM ごと落ちたりする。
どんな言語でも初歩の本には印刷に関する章なんかないもんだが。
では、印刷に関する本でお勧めは?
(できればMRJで。無理なら仕方ないけど)
>>615
APIリファレンス熟読しろ。MRJ にもあるだろ。
>>614
> どんな言語でも初歩の本には印刷に関する章なんかないもんだが。
PostScript...
618デフォルトの名無しさん:03/12/10 01:35
なーんだ。マルチスレッドの話題は初心者スレでお呼びでない?
619581:03/12/10 01:57
>>577
遅レスすまそ。要はキーを押して加速したい訳だね?
try{Thread.sleep(1500);}catch(Exception e){}
という1行を書けば1.5秒一時停止します。これを描画切替えのウェイトとして、
キーダウンイベントからキーリリースイベントまでの間の時間を計って、
押している時間を元にウェイトを調整すればいいです。

仕様をちょこっと変えて「キーを押した回数だけ加速」とすれば、
キーダウンイベントが発生した回数でウェイトを調整すればいいから
もっと簡単になると思うよ。

キーイベント処理の間は描画が止まっちゃうから、その処理で時間を
かけ過ぎないようにウェイト時間をグローバル変数にするとかの工夫が
要るよん。がんがってねん。
>キーイベント処理の間は描画が止まっちゃうから、その処理で時間を
>かけ過ぎないようにウェイト時間をグローバル変数にするとかの工夫が
>要るよん。がんがってねん。

マルチスレッドにしろよ。
621581:03/12/10 02:48
>>620
この人にはマルチスレッドやインナークラスはまだ無理。
クラスやメソッドの記述のイロハを身に付けてからだし、
その頃にはもう自分で学べるようになってるよ。
イベントディスパッチスレッドで
> try{Thread.sleep(1500);}catch(Exception e){}
とかやるつもりか?
>>621
マルチスレッドが出来ないなら、Java で GUI は扱えない。
624577:03/12/10 03:00
>>619-623
どもです。
おかげさまで、とりあえずの目標どおりのものが出来上がりました。
マルチスレッドて、スレッドを複数作って扱うってことですよね。
まだその必要性がなさそうなので、保留にしてます。
>>623
まだ勉強したてなので、生暖かい目で見守ってください。
625デフォルトの名無しさん:03/12/10 03:14
>>623
Java以外のプログラムでも無理だよ。まあ、プロセス間通信使えば似たようなことできる
かもしれないけど、普通一般的にGUIではマルチスレッド使うわな。


ちなみに、マルチスレッド入門として、Thread#sleep()を使うより、ちゃんとwateさせる方法を
やってみた方がいい。notifyのパフォーマンス云々でsleep使うことはは次のステップだし。
>>615
MRJってことは1.4じゃないよね?
1.4以前では印刷を勧めない。

雑誌だけど日経ソフトウェア2003年6月号に印刷の解説記事がある。
>>626
MRJです。
Swingが何ものか、まだ全く不明ですが。
Swing1.1.1ってのを入れてみました。
これでも無理?

でも、1.4以前では、印刷機能が弱すぎる、
ってのが統一認識なんですね。
>>627
プリンタの選択ができないのよ。
あ、ちなみに、JDK1.4で画像印刷アプリケーション作ったけど、不満は無かった。
630デフォルトの名無しさん:03/12/10 10:17
>>542
KentWebやNetSurfRescue、Tucky'Room, CGI工房などPerlで有名な香具師らや
レッツ!PHPで有名な香具師らが作ったものをJavaで作ってみるとか?

とにかくPerl, PHPでできるものをすべてJavaでリプレースすることにチャレンジしてみるとか。
そしてWeb上で自由に配布!
>>563
> 英政府、SunのJava Systemを採用
> ttp://www.zdnet.co.jp/news/0312/09/nebt_25.html
>
> おもいきったな、英政府

そのうち中国政府もとりいれるか?
サーバー-クライアント型のチャットアプリを作っているんですが、
クライアント側のServerSocketが一度しか受信してくれません。
スレッドにしてwhileで回しているんですが。

プログラムの原理は、クライアントがメッセージをサーバーに送信すると、
サーバーにVector型で登録されているSocket全部に送り返す、
と言った単純な感じです。

何が原因なんでしょうか?
一度だけ受信できるのが訳分からん('A`)
>>632
ServerSocketのaccept()メソッドが一度しか成功しないということ?
その書き込みだけでは、俺も訳分からんよ('A`)
>>631
中国ケチだからPHPとかにしそう。
http://www.php.gr.jp/php/php4/license-faq.php3
Linux採用しているはずだけど
ローカライズの改造ソースとか
ちゃんと公開してるのかね
>>632
>クライアント側のServerSocket

↑この表現がよくわからん。

ServerSocketがあるのは、普通サーバ側だと思うけど。
プログラムやってる時によく耳にするディプロイを適切な日本語に訳すと
何になるんでしょうかね?
配備
638デフォルトの名無しさん:03/12/10 18:02
アプレットで読み込み書き込みをするにはどうしたらいいですか?
639デフォルトの名無しさん:03/12/10 18:25
質問にお答えいただきたく書き込みさせていただきます。

String変数で空白(半角スペース、もしくは何もなし)を判断させるときどのようにしたらよういでしょうか。
String型では aaa.equals("") == false を行うとエラーになってしまうのでcatchで受けてるのですが、他に書きかたはあるのでしょうか?

String aaa
if(if (aaa.equals("") == false || aaa != null) {
})




↓この場合は問題なく""や" "がはじかれます。
(char[] arg0)
if (arg0.equals("") == false || arg0 != null) {
}
>>638
I/Oを使う。仕上がりにjarsignerなどで署名せよ.
そのときはAntを使うことをお勧めする。
>>639
なにをやりたいのか知らないが

String aaa
if(if (aaa.equals("") == false || aaa != null) {
})


はコンパイルエラーになって当然。
どこに間違いがあるかはメッセージでわかる。
どんなエラーメッセージがでるか説明せよ。
またはメッセージをここにコピー&ペーストせよ。


また、そのif文はnullか""をいれるとfalseになる。
空白も" " という文字の一種なので注意すること
>639
順番が逆

if (aaa != null && aaa.strip().equals(" ")) {
// aaa を使う
}

あるいは org.apache.commons.lang.StringUtils#isNotBlank() を使う

ttp://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/StringUtils.html#isNotBlank(java.lang.String)
643632:03/12/10 18:42
>>635
(クライアントの)サーバーからの返信を受け取るポートを
ServerSocketで処理しているんですが、
なんか違和感があったんですがやはりこのような使い方は間違ってますか?
いまいちsocketの概念が分かってないんで(つД`)

>>633
サーバーはメッセージを受け取りクライアントに返しているのが確認できてます
クライアントはそのメッセージを一度しか受け取ってくれないんです
644641:03/12/10 18:43
間違えた。
if (aaa != null && aaa.trim().length() != 0) {
// aaa を使う
}
>>639
貴方様のお書き遊ばされたプログラムはとても高度で複雑なので、
私めには質問の意図もよくは理解できかねますが、
インスタンスがnullかどうかのチェックのほうを、
先に持ってきたほうがよろしいんじゃございませんこと?

OR や ANDの書き方次第で、
処理が実行されたり、されなかったりすることがあることについては御存知?、
>>643
>(クライアントの)サーバーからの返信を受け取るポートを
>ServerSocketで処理しているんですが、

この文章も意味不明だが、クライアント側にも ServerSocket があるのかな?
もし君が作りたいソフトが P2P みたいなサーバにもクライアントにもなれるソフトなので、
どちらにも ServerSocket インスタンスがあったとしても、

クライアントが自身の Socket オブジェクトで、サーバ側の ServerSocket に接続 (connect) したのなら、
クライアントは自身の ServerSocket オブジェクトで、サーバからの接続を待ち受ける必要はないんだ。

クライアントがサーバ側の ServerSocket と接続を確立できれば、
サーバ側にも Socket インスタンスが生成されたとおもう。
あとはサーバ側の Socket インスタンスにデータを書き込めば、
クライアント側の Socket インスタンスにデータが届く。
これで、 "サーバからの返信" とやらを受信する訳にはいかないのかな?

>>643 >>632の意味不明な書き込みを見る限りでは、
君の書いたソースは、何処かが根本的なところで間違っているとおもう。
ソケットについて簡単に解説した Web ページがあるといいんだが。
647デフォルトの名無しさん:03/12/10 19:17
お答えありがとうございます。

>インスタンスがnullかどうかのチェックのほうを、 先に持ってきたほうがよろしいんじゃございませんこと?
>どこに間違いがあるかはメッセージでわかる
そうですね。そっちで回避したほうが良いですね。
チェックもなしに書き込みして失礼しました。

>空白も" " という文字の一種なので注意すること
""一個ですみそうですね。
if (arg1 != null || arg1.equals("") == false)

if (arg1 != null && arg1.equals("") == false){

}
>順番が逆
先に除外してエラーを一時回避できました

isNotBlank()使って解決できそうです。
配列名の尻に数字をつけるセンスがすごくイヤ
649632:03/12/10 19:21
ネットワークのプログラムは学校の実験で
UDP使った低水準なのをちょっとやっただけなので
Socketの考え方が全然分かってなかったぽいです

とりあえずSocketで調べてみます(つД`)
>>632を読む限りでは、まったく分かっていないという訳ではなさそうだが、
>>649このあたりとか。
http://www.wakhok.ac.jp/~tatsuo/prog2002/23shuu/tcp.html
651601:03/12/10 21:31
>>605
確かにアプレットならそれでもいいんですよね。
ただ、データを保存したいフリーウェアだとそうもいかない…。
>>651
JREのインストーラーごと配布すればいいのでは?
SUNのページか、このスレの前のほうのスレに、その方法が書いてあったとおもう。
>>601 >652
おいおい、JavaWebStartを知らんのか?
もっとも効果的な方法なのだが。
>>653
Java Web Start ってJRE入ってないと動かんような…
>>647
> arg1 != null && arg1.equals("") == false

boolean 値を boolean 値と比較するのはよくないので以下でよい。
arg1 != null && !arg1.equals("")

なお「任意の null でないオブジェクトに対して equals(null) は
NullPointerException を投げずに false を返さなければならない」ことになっており
String オブジェクトは実際そうなっているので以下でよい。
!"".equals(arg1)
656norang ◆NorangbvuY :03/12/11 01:30
win板から誘導できました。
XPで、SP1にアップグレードをした後で、SUNのJ2SEをインストールしたんですが、
JAVAのアップレットが読み込めずに(not initedが出る)IRCアップレットが起動できません。

JAVAコンソールには

QuickIRC build 02/05/20(月) 06:39:57

HasJIS:JIS

JIS=>SJIS Enabled. MS932

java.nio.BufferOverflowException
       at java.nio.charset.CoderResult.throwException(Unknown Source)
       at java.lang.StringCoding$CharsetSE.encode(Unknown Source)
       at java.lang.StringCoding.encode(Unknown Source)
       at java.lang.String.getBytes(Unknown Source)
       at com.smilemark.util.ConvertChar.Setup(ConvertChar.java:1544)
       at IRCApplet.init(IRCApplet.java:132)
       at sun.applet.AppletPanel.run(Unknown Source)
       at java.lang.Thread.run(Unknown Source)
と出ます。
解決策はないでしょうか。
よろしくお願いします。
657632:03/12/11 01:31
できたぁぁぁぁ〜〜〜〜
なるほどクライアント側はインプットストリームを監視してるだけで良いのか(*´ω`*)
658マジすいません:03/12/11 01:42
ほんとすいません。
当方馬鹿専門学生です。
数値をソートして、それを二種類以上のグラフで切り替えて表示する
という問題がどうしてもわかりません。
何か参考になる(出来れば似たような例題が載ってる)サイトないですかね?
すいません。
>>654
> >>653
> Java Web Start ってJRE入ってないと動かんような…
getJavaでJRE自動ダウンロード、自動インストールが可能だ。

それもXMLファイルにちょっとかいてそれを自分のアプリにjarするといいらしい。
>>658
ソートのアルゴリズムくらいぐぐるか本を読むかすれ。Javaに限った話ではない。
あとはSwingかAWTの本でも読むか、Jakartaのグラフ表示APIでもつかえ。
>>658
おまえだけではなく質問者全員にいいたいんだが、もっと問題を細分化しろ。
おまえがやりたいことそのものズバリのサイトなんかそうそうあるわけじゃない。

>数値をソートして、それを二種類以上のグラフで切り替えて表示する
1. 数値のソート
2. グラフの表示
(数値をファイルなどから与えるんだったらあと 0. 数値の入力)

0 -> InputStream, Reader 系を調べる
1 -> お手軽にやるなら Arrays#sort, Collections#sort を調べる
2 -> swing, awt などのコンポーネントについて調べる
>>659 SunのGetJavaページにあるJRE確認アプレットではなく、
jnlpファイルへAppletContext#showDocumentさせるアプレットを
作ってそれを使わせたほうがユーザの手間が一つ減るんじゃないかな。
GetJavaだとJREが入った(アプレットが動いた)ことをユーザが
確認して、その後で改めてjnlpファイルを開く必要があるよね。
技術的は同じだけど。
夜分遅くすみません、質問です。
ウィンドウズ上でジャバのファイルをコンパイルしたいのですが
DOS窓以外からコンパイルする事は出来ないでしょうか?
DOS上で日本語がうてないのに困ってしまって・・・。
ファイル名が日本語とかそういうわけではありません。
>>663
bat ファイル使うとか、Apache Ant 使うとか、
Eclipse やら NetBeans やら JBuilder やらを使うとか。
666663:03/12/11 03:06
即レスありがとうございます。方法はあるのですね。
初心者なので聞いたことある、くらいの言葉ばかりなので
教えられた物について調べて自分に必要そうなのを選択したいと思います
667663:03/12/11 03:12
>>665
DOSの使い方の問題でしたね・・・。
自分的にはこれが一番の様です、スレ違いな質問に丁寧な回答
ありがとうございましたm()m
668デフォルトの名無しさん:03/12/11 13:09
PHPを使って文字を入力させ、その文字を
java aaa 入力した文字
みたいな形で受け取ってるんですが、文字化けしとるんですよ…
なんとかなりませんかねぇ?
>>668
なる。
670デフォルトの名無しさん:03/12/11 14:38
SDKをダウンロードしようとしたらサイト落ちてるようなんだけど、、、
http://java.sun.com/j2se/1.4.2/ja/download.html
ここからでいいんだよね?

まいったな(;´・ω・`)
>>670
> http://java.sun.com/j2se/1.4.2/ja/download.html
http://java.sun.com/j2se/1.4.2/download.html から落とせ。

現在 java.sun.com 改装中につき、らしい。
>>670
じゃあ、NetBeansコバンドルをDL( ̄ー ̄)
英語サイトはいけるらしいよ。
サイト改装なんかローカルでやれっちゅうねん。
674670:03/12/11 15:04
あ、英語サイトからいけたのか(´・ω・`)
ダウソできたよ。ありがd

いつも思うんだけど、JREとかJDKって、ダウンロード先がみつけにくい…。
本気で普及させるつもり無いんじゃないかって思っちゃうカモ
>>674
それは思う。
でも、昔よりはましになった。
改装に期待してみる。ま、かわらんと思うが
"java" でググッて sun のそれらしいとこいって "J2SE" 探して DOWNLOAD おす。
でなきゃ "Get Java" めいたのをとにかく押しまくる。
これの何が難しいのか。
>>676
あなたみたいな天才にはわからないのですよ。
ちなみに、その手順が、インターネット始めたばかりのあなたのお母さんにできると思いますか?
>>677
JREは簡単にダウンロードできるようになったよ。
http://www.java.com/ja/
>>677
インターネット始めたばかりのお母さんはインストールもままならないと思うがなぁ。
680デフォルトの名無しさん:03/12/11 16:04
>>669
どうすりゃいいのよ?
>>679
良い方法があるなら Sun にメールでも書いとけ。
>>680
教えない。
っていうか、教えれるか。
そんなあいまいな情報しか出してないやつに。
683デフォルトの名無しさん:03/12/11 17:35
JMFで音声キャプチャをしているのですが、
その音声の波形をリアルタイムに表示することは可能でしょうか?
できるのでありましたら、詳しく教えてください。
684デフォルトの名無しさん:03/12/11 17:59
http://f14.aaacafe.ne.jp/~criollo/
あの〜 以前このサイトに進入すると
クリックしてHPを閲覧可能にしたとたんに
工学ドライブのトレイが勝手に開いたのですが。

javaでプログラムを組んでいたそうなのですが
その時の書式と思われるものを教えていただけないでしょうか?

かなり基本の部分だと思うのですが
私には参考になるものがないと分からないのです。
>>684
NotFoundだし。
686デフォルトの名無しさん:03/12/11 18:08
>>685すいません 既に消されたようです
アーカイブされていないかチェックしましたが
http://www.archive.org/ NG
更にはグーグルのキャッシュも私のスキルが低いからか表示させられず
URLからではキャッシュを探せませんでした。

別に他の書式でも構わないのですが
何とかトレイが出てくるjavaをご教授いただけないでしょうか?
Applet か?
Component 上に円を描くやり方と、Thread の起動は分かる?
Component 最上部を中心とした円弧上を、円の中心が往復するようにして描画し、
できるだけ瞬間的に "あなたはイジェクトを押したくなる" と表示させれば実現すると思う。
かかりにくい人もいる。
688デフォルトの名無しさん:03/12/11 18:51
>>687私に対するレスですか?
何が何だか分かりません(^^;

昔は例のサイトに書式が置いてあった記憶があったのですが、
現在閉鎖されてしまってみる事もできなくなっているため
非常に残念に思っているのです、
できればコピペで(javaは著作権はないよね?)
自分のサイトにも貼り付けようかと思っていまして。
>>688
激しく javascript の匂いがするのだが。板・スレ違いだぞ。
>>688
著作権が無い? そんな訳あるか馬鹿者。
Tips 的に参考にするならまだしも、コピペしたら完全な盗用。
691デフォルトの名無しさん:03/12/11 18:56
>>688
Javaは著作権ない?おまえ著作権って何か知ってて言ってるのか?
それで社会人ならマジ呆れる。
692デフォルトの名無しさん:03/12/11 18:58
>>690
その回答は>>688にとって危険だぞ。
「Javaって著作権あるんだね」というバカな理解をし兼ねない。
>>688はJavaの概念を正しく理解するまで出入り禁止。
694デフォルトの名無しさん:03/12/11 19:00
java とjavascript間違えてました・・

著作権がないと思っていたのもスクリプトの方でしたスンマソ
>著作権がないと思っていたのもスクリプトの方でしたスンマソ
もう、生きる価値無い
当方独習Javaで学習し始めたばかりなのですが、
今クラスとメソッドの部分なのですが各種メソッドは暗記しなければ
だめでしょうか?それともこういう事やりたいときにはこのクラスに
たしかあんなメソッドあったなぁ程度で調べながらでも大丈夫でしょうか?

当方脳のキャパに余裕がないもんで暗記が必須なメソッドとかが
あるなら教えていただけないでしょうか?稚拙な質問かもしれませんが
学習の仕方に自信がなくて・・・よろしくお願いします。
>>696
>たしかあんなメソッドあったなぁ程度で調べながらでも大丈夫でしょうか?

もちろんそれでいいよ。全部は憶えられっこないし。
だからいつでもリファレンスが引けるようにしておくこと。
頻出なのはそのうち憶えていくだろう。
698696:03/12/11 19:21
>>697
早いお答えありがとうございます。出てくるもの片っ端から覚えるのは
やはり間違いですね・・・他の人は覚えてるのかもって不安がありましたが
これでサクサクと進めそうです。リファレンス片手にしこしこがんばります。
ありがとうございました。
>>696
暗記するんじゃなくて、普通に本に載ってたクラスのメソッドを使ってプログラムを書いたりしてたら
勝手に覚えると思うよ。
忘れたら読み返せばいいだけ
700696:03/12/11 19:26
>>696
書いても書いても「だうぅぅぅ。なんだったっけー?」
みたいな感じで全然頭に入らないっす・・・(´・ω・`)ショボーン
でもまだ始めて数日だからそうかもしれないので、よく使うモノは
自然と記憶できることを信じてがんばっていきます。
ありがとうございました。
701696:03/12/11 19:28
( ゚д゚)ハッ!>>699
でした。失礼しました。
それではまたコツコツと勉強進めていきます。
>>684
http://e-jts.com/~shitucho/braku-j.html#9
スクリプトにも著作権は発生し得ると思うが。
703デフォルトの名無しさん:03/12/11 19:36
>>700
何事も、丸暗記型よりも、調査力の方が大切です。
プログラム作成は試験じゃないですから、その都度、何かを参照するのはアリです。
704デフォルトの名無しさん:03/12/11 19:49
>>702例のサイトで表示されたソースを貼り付けたら 著作権違反ですか?


匿名なので気軽に発言しているのも事実ですが、
実際何かの際に 
著作権が発生しないので真面目に作ってもほうっておくと
完全にコピーされて使われる恐れがあるので
プロテクトをかけてブラウザ上から見れないようにした方が良いと
いわれたことがあるのですが
それはFLASHでしょうか?
>>704
>著作権違反ですか?
当たり前。製作者に確認せよ。
製作者が見つからなければ避けるが吉。

クライアントにバイナリなりソースなりが渡るものは、コピーしようと思えばなんでもできると思っておけばいい。
JSP なんかはサーバ側に隠れてるので、できあがりの HTML 以外はコピーできない。
>>704
現実的に言うと、特許を取れる程の設計思想の元で実装してる画期的なコード以外は
著作権等、法律を振りかざす人間は少ないよ。何かしらのメリットがないと行動しないもの。
707デフォルトの名無しさん:03/12/11 20:05
そうでしたか 著作権が法的にも全く発生しないものって
なんだったかご存知ですか?

java javaスクリプト両方に著作権があるとして
著作権が発生しないのは何でしょうか?
708デフォルトの名無しさん:03/12/11 20:06
>>706確かにおっしゃるとおりですね
更には先ほど例に挙げてもらった程度のプログラムだと
偶然重複してしまえば それまでですからね
709貧乏紙:03/12/11 20:10
>>706
プログラムで特許は取れません。
情報処理の試験にも出るよ。
なぜ、プログラムで特許は取れないのか?
プログラムで特許、それはアルゴリズムに対して特許を取るとプログラム開発の
巨大な傷害となってしまいます。プログラムには自由度があるといっても似たような
システムを開発するとどうしても似たようアルゴリズムを使用することになります。
そんなんで特許といっていたら大変なことになるので取れません。
しかし、丸々ソースを写すと著作権の侵害になります。
わかったからはよ著作権スレにユケ
711デフォルトの名無しさん:03/12/11 20:28
SwingのJTextFieldに入力できる文字を半角英数だけに制限しようと思うのですが、テキストフィールドにカーソルが当たったタイミングでIMEのトグルを半角だけ有効にする方法ってないでしょうか。

KeyEvent使えば、入力した時点でのチェックはできるんですが、どうせなら最初から全角は選べないようにしたいと思っています。
712デフォルトの名無しさん:03/12/11 20:33
>>706確かにおっしゃるとおりですね
更には先ほど例に挙げてもらった程度のプログラムだと
偶然重複してしまえば それまでですからね
>>712
なあ、氏ねとは言わんから、せめて下のスレに行ってくれんか?
【Java初心者】今から始めるJava Part01
http://pc2.2ch.net/test/read.cgi/tech/1062422058/l50

お前の知りたかったのはJavaScriptだった時点で
板違いなうえに、>>1を読めばわかるようにスレ違いなわけだが。
>>>=がゼロ拡張と描いてる本と符号拡張と書いてある本とあるんですが、正解はどっちですか?
ちょっと気になったのですが
皆さん
エディタの背景色は白ですか黒ですか
>>715
ム板で聞きなさい
>>716
冷たいお人
718デフォルトの名無しさん:03/12/11 22:02
直列化について以前質問をしたのですが、
また質問させてください。

ディスク上に保存されたファイルは
自分で削除しないとずっとディスク上に残っちゃうんですか?
>>692
おいおいLinuxやGNUにも著作権があるんだぞ
なにいってんだか
http://java.sun.com/
トップページがなにげに格好よくなったのう。
ゴスリングがうつってるし
日本語版のページからは落とせなかったが1.4.2_03になったのう。

>>718
ここまで意味不明な質問だと、その質問内容には
何か深い真意が隠されているのだろうかと回答するのも逡巡してしまうな。

残っちゃうんだとおもうが、それが何か?
>>718
テンポラリに保存しとけよ

残ると困るか?
暗号化しとけ
S=ΣΣ(i*j) 右のΣはj=0からN-1までひだりはi=0からN-1まで
この場合Sをもとめるにはどういったプログラムをかけばいいんですか?
教えてください。お願いします(´・ω・`)
>>723
for を 2つネストし、S をネストの外側で宣言して 0 に初期化する。
ネストの一番内側で S += i*j; とする。
for とネストはググッて理解してね。
>>724
ありがとうございます。
調べてみます。
>>725
とにかく実際に書いてテストしてみろよ
727718:03/12/11 22:51
>>721 122
どうもありがとうございます。
自分がどうしようもない勘違いをしてました。
728デフォルトの名無しさん:03/12/11 22:58
メモリに常駐してる特定のクラスだけを消去することってできますか?
トムキャットでサーブレットを動かしてるときに、とあるクラスを変更したときに
そのクラスがメモリに常駐してたら消してやりたいんす。
つまり、変更したクラスを即 反映させたいんです・・・。
730デフォルトの名無しさん:03/12/11 23:10
jbutton1〜jbutton5まで作ってあって
ある計算の結果、int型の数字(1〜5)を使って
jbutton[計算結果の数字].setText("***")
としたいんですけれどどうすればいいですか?
意味が通じなければごめんなさい。
>>730
配列を使う。
JButton[] jbuttons = new JButton[5];
jbuttons[0] = new JButton("No.0");
 :
jbuttons[4] = new JButton("No.4");

で、

jbuttons[i].setText("***");
>>728
reloadable で済む話?それ以上のこと?

質問とは関係ないがTomcat に限らず
ロードされたクラスをアンロードする方法があるなら俺も知りたい。
733貧乏紙:03/12/11 23:18
>>728
java.lang.Classの説明載せます。
実行中の Java アプリケーションのクラスおよびインタフェースを表します。
同様にどの配列も、同じ要素型および次元数を持つ配列によって共有される
Class オブジェクトとしてリフレクトされるクラスに属します。Java のプリミティブ型
(boolean、byte、char、short、int、long、float、double) のほか、
キーワード void も Class オブジェクトで表されます。
/*----------------------------------------------------------------------*/
これで今、実行してるやつにSystem.gc();
でカーベジコレクション(以下gc)の対象にはできるけど、gcはJVMにより異なる動作をします。
servletには6つのイベントが使えます。
サーブレットを起動・停止、セッションの生成・破棄、オブジェクトのバインド、セッションの属性変更
です。
とあるクラスの変更が何をしているかによって呼び出されるリスナーが違いますので
適当に実装してアクションがあったときにSystem.gc();をすればいいのではないのでしょうか?
PS
servletのイベントリスナーの使用にはweb.xmlの<listener>要素の登録が
必要です。
>>728
java.lang.ref.Reference
で状態をSoftReference扱いにするのはどうかな?

詳細は「Javaの落とし穴」にのってるよ。
System.gc()の代わりにだたのメモリを節約する技なんだけど
735728:03/12/11 23:44
>>732
reloadableというのをはじめて知りました。
調べてみます。

>>733
System.gc()ですか。
あまり使ったことないので勉強してみます。

>>734
そういえば、僕も「javaの落とし穴」もってます^^;
しっかりと読み直して見ます。

皆さんありがとうございました。
明日にでもいろいろ試してみます。
736730:03/12/11 23:46
>>731
なるほど!
ありがとうございます。
737デフォルトの名無しさん:03/12/12 00:06
うーん。
javaでグラフを描きたいんですけどなんかいいサンプルありませんかね?
できればswingがいいなぁ。
>>737
JComponent (継承して使う)と、Graphics の API 。
あとは paintComponent メソッド内で何とかやってみな。
739730:03/12/12 00:13
JPanel panel = new JPanel();
んで

JButton jbutton = new JButton();
panel.add(jbutton);
だとpanelに追加されるのに

JButton[] jbuttons = new JButton[5];
panel.add(jbuttons[0]);
だとpanelに追加されません。
なんででしょう????
>>737
グラフの描画にSwingは関係ないな。
>>739
そのコードのどこでJButtonのオブジェクトが生成されてるんだ?
742730:03/12/12 00:21
>>741
JButton[] jbuttons = new JButton[5];
で作られているのではないんですか?
>>742
それは参照変数の配列を new してるだけ。
>>742
だから >>731 でインスタンス生成してみせたのにー。
君は個別に引数(ボタンの表示文字列とか)を変えたいとき、どうするつもりだね?
>>733,734
どっちも見当違いな回答だ

インスタンスを破棄するんじゃなくクラス定義自体を破棄(してロードしなおし)するんだろ?
>>745 でもなんか単にサーブレットのリロードさせたいだけみたいだし
いまさらつっこまんでもいいんじゃないの。 という気がするが、
向学のためにさらにつっこんでみる。
クラス定義の破棄って別のクラスローダからロードされたクラスは
別物として扱われるから、毎回クラスローダを使い棄てるってことで
いいんだっけか。でもクラスローダってまず親クラスローダにクラスが
ロードできるかどうかキャッシュに残っているかどうか聞きに行くよね。
目的のクラスをVMのクラスパスから外してURLClassLoaderつかえば
いいのかな? わざわざloadClassを再定義する必要とかある?
747デフォルトの名無しさん:03/12/12 01:10
すいません。
javaで日本語を使いたい場合はどうすればよいのでしょうか?
System.out.println("日本語");
で、あっさりコンパイルエラーとなります。
>>747
文字エンコーディングの問題かと思われ。
でなきゃ全角スペースをどっかに書いているか。
OS、ソースファイルの文字コード(もしくはソフト)、コンパイルエラーのコピペを晒せ。
ほんとにファイルにSystem.out...の一行しかなかったとか
そういうの希望。
750デフォルトの名無しさん:03/12/12 01:18
Authenticatorクラスをつかって、Servletに認証させ、あるURLにアクセスしています。
Servletのページにアクセスする度に、異なるIDで、あるURLにアクセスさせたいのですが、
2回目以降は認証無しでアクセスできてしまいます。
なんとか認証をクリアして、再度別のIDでアクセスすることはできないでしょうか?
751747:03/12/12 01:25
>>748
ちょっと手元に環境がないので、後日アップします。
OSはLinuxでエディタはxemacsを使っています。
ソースに書いている文字コードは素人なんで分からないです。
EUCではないと思います。
さっきまで動いていたプログラムが、実行するとエラーが出るように
なってしまったんですが、何が原因なんでしょう?
J2SEのバージョンを最新のに変更したら出るようになったのかも。
エラーを見るとdocがnullのままでxdocでClassCastExceptionが起きてるんですが。
ソースコードは以下です。

import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.apache.crimson.tree.*;
public class Main(){

public static void main(String[] args) throws Exception {

 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
 DocumentBuilder db=dbf.newDocumentBuilder();
 Document doc=db.parse(new FileInputStream("Foo.xml"));

 XmlDocument xdoc=(XmlDocument)doc;
 BufferedWriter bw=new BufferedWriter(new FileWriter("Bar.xml"));
 xdoc.write(bw,"shift_jis");
 bw.close();

}
}
public class Main{
は単なる写し間違いです。
String型とint型の数字を比較するのに良い方法はないでしょうか?
無い知恵をしぼって、


String s = "1";
int i = 1;

if (s.equals(new Integer(i).toString) {

}

と書いたんですが、もっと簡単な書き方がありそうな気がして・・・
>>754
("" + i).equals(s)
用は足すけどあんまりお勧めしない。
Integer.toString (i).equals (s)

とゆーのがある
つーか Integer.parseInt (s) == i じゃだめなのかい
758752:03/12/12 02:06
どうやらEclipseの方の問題っぽかったです・・・
普通にコマンドラインからやったらできたので。

原因不明・・・
>>745
しょうがないじゃん。>>728のいい加減であいまいな質問では何がしたいのかつかみにくく
質問に正確に答えようがないんだから。
760754:03/12/12 02:46
早速のレスどうもです。

>>754
なるほど。簡潔ではありますね。

>>756
あ、もしかして自分の書いた形も「new」は不要だったのかも?

>>757
try 〜 catch を書かないといけなくなって長くなるのでやりませんでした。


いろいろな書き方が出来るものですね。
756さんのがスッキリしてると思いましたので、使わせてもらいます。
KeyEventでCtrl+他のキー(例えばA)というイベントを得たいのですが具体的にどうすればよいのでしょうか?
KEY_PRESSEDイベントでイベントを受け取ることまではわかったのですがそれで両方のキー入力を取得できるわけではないですよね?
Ctrlキーの押下をisCtrlPressed等のboolean値として別個保存すべきなのでしょうか?
もっとスマートな方法があったらご教授願います。
申し訳ない、KeyEvent.isControlDown()なるメソッドがありました。
文字列を quoted-printable でエンコードしたいので
JavaMailの MimeUtility.encode() を使いたいのですが、
戻ってきたOutputStreamからどうやって書き込み済みの内容を取得したらいいか分かりません。

マジで、どうやったらいいんでしょう?
ワトソンでエラーが発生しているので、困っています。
エラー内容はJAVA.exeでアクセス違反をしているとのことです。
アクセス違反しているファンクションはJVM_GetCOMethodModifiersです。
javaのバグParadeを見てみたのですが、投票できなくなっているわりには、
解決法が記されていません。(おまけに英語わからんし)
このエラーが出る理由をご存知の方はご教授ねがえませんでしょうか。
時々しか発生しないんですよね。出ないときは4ヶ月くらいでないのに、
出るときは3日後にはいきなり出て・・・みたいな。
SDKのバージョンをあげたところで直るものなのかも、
Bug Parade ではわかりませんでした。

う〜ん。こまりました;。


765 :03/12/12 15:04
JFrameの大きさのきめかたがよくわかりません。
contentPaneに設定したレイアウトマネージャーのpreferredLayoutSizeが返した推奨の大きさは
contentPaneの大きさでJFrameの大きさじゃないよね。
どうやってJFrameの大きさを設定すればいいのですか?
766デフォルトの名無しさん:03/12/12 15:16
JFlame f = new JFlame();
f.setSize(size);
767 :03/12/12 16:32
>>766
レイアウトマネージャーがpreferredLayoutSizeで返したサイズをそのままつかっていいの?
JFrmeの大きさはメニューやタイトルバーの分、大きくしなくていいのかな?
pack() しろ。
769 :03/12/12 17:25
>>768
そんなメソッドがあったんですね。ありがとうございました。
766さんもありがとう。
770デフォルトの名無しさん:03/12/12 17:29
署名つきjarファイルのJavaアプリがあるとして
実行時に今動いているアプリの自分自身の署名を取得して
チェックする方法を知っている方いませんか?

たとえばURLClassLoaderなどで動的にロードされるプラグイン側から
ホストJavaアプリの署名をチェックしたいのですが。
プログラム起動後に、あるクラス名を入力して
そのクラスのインスタンス作って、メソッドを実行するってことは
できるんでしょうか?
このスレを reflect で検索せよ。
>>771
出来る。
ファクトリーパターン
これからJAVAを学ぼうと思うんですが、何かお勧めの入門書とかってありませんか?
アプレットで簡単なシューティングを作ってるのですが、
敵が自分がいる場所へ弾を撃ってくる ということが出来ません(;´Д`)

なんだか基礎っぽいコトだし、既出しまくりかも知れないし、質問するのも失礼かも知れませんが、
どなたか知恵を与えてください(つд`)
>>776
発射する瞬間の、自機と敵機のX,Y座標の差の比を取って、それに適当な速度
かければいいだけちゃうのけ。Javaの質問ではなさそうだが。
>>737
JakartaとEclipseでライブラリ作ってなかったかな。
>>776
JAVAつーよりもゲーム制作だね
ゲーム制作板だっけ? そっちにいったほうがいいかも

とりあえず自機と敵機のX,Y座標の差を取る
そこから角度を算出してsin cos で球を打つ 簡単にいうとそんな感じ
780デフォルトの名無しさん:03/12/13 07:39
age
>>737
WebDBPressで女ウェイトレスの絵が張ってある奴にJakartaでグラフ表示できるAPIに
ついて載っていたぞ
どうでもいいけど、あの表紙はどうにかしてほしい。
>>782
表紙を萌えょぅι゛ょにすれば
売り上げ倍にはなるだろうに、商売が下手だよな。
>>783
ん? JavaWorldはショタもカバーしているぞ。
>>783
やめてくれ。人前で読みにくくなる。

直接アニメ的な絵にするんではなくて、
ポップアート調の絵にして大人の女にすれば、
それでもそれなりの引きはあるだろうし、
人前で読んでも恥ずかしくないだろうという
現実的な計算の結果があの絵と考えるのはうがちすぎか。
>>786
計算の過程はおおむねそうみたいなんだけど、結果がまちがったな。
もっとマシなイラストレーターいるだろうに。
788デフォルトの名無しさん:03/12/13 19:11
抽象クラスってJavaの最初のバージョンからあるんでしょうか?
もし途中からだったらどのバージョンから(できれば時期も)なんですか?
Java言語仕様(JLS)の初版にあるぞ。
http://java.sun.com/docs/books/jls/first_edition/html/8.doc.html#34944
790デフォルトの名無しさん:03/12/13 19:35
>>789
ありがとござんす
791デフォルトの名無しさん:03/12/13 20:20
>>788
俺が言いたいのは、それを知ってどうするつもりなのかってこと。
>>788
おいおい、最初からあるに決まってるだろ。
なんのためのオブジェクト指向言語なんだか
とりあえず著作権は書いた時点で自動的に発生する。
けれども特許権などのような強力な権力は著作権には無い。

>>709
おまい、ソフトウェア特許の現状を見ろよ。
日本とアメリカはすでにこの特許は有効になっている。
ヨーロッパがソフトウェア特許を有効にしようとする判定が出そうになったので
各種オープンソースコミュニティが必死に署名運動をしていたのは知っていたか?

Jakartaのトップページにもそのことが一時書いてあったんだぞ。
>>784
ショタ? ロリの間違いでは?
ショタもあったけか。
>>793
遅レスにも程がある
>>796
今まで調べてたんだよ。
そっとしといてやれ
何がそっとしといてやれだ。生意気な。
血レスのどこが悪い。
速レスは暇人がやることだ。わかったか。
>>798
そだね。暇人君。
800776:03/12/13 21:17
>>777
>>779
ありがとうございます。
三角関数を使うんですね。勉強し直します(つд`)
また煮詰まった時はゲ製作板で質問します。
>>776
概念的には三角関数だが実際に sin, cos を使うと
ゲームでは遅すぎるので気をつけよう (表引きにして適当に補間)。
802デフォルトの名無しさん:03/12/14 02:12
tomcatなどで使う
web.xml
server.xml
などはjavaとどういう関連性を持っているのでしょうか?
803デフォルトの名無しさん:03/12/14 03:23
>>802
おまえは先ず、コンピュータの記憶と処理の概要から学ぶ必要があるようだな。
804デフォルトの名無しさん:03/12/14 04:21
質問です
voidのないメソッドは
100%戻り値のあるメソッドなのでしょうか?

サンプル文などを見ると
voidもreturnもない文もあると思いますが…
>>804
もしかしてコンストラクタのことかな?

>サンプル文などを見ると
>voidもreturnもない文もあると思いますが…
なら、そのサンプルがなんのサンプルなのかと、
そのサンプルのソースを具体的に、質問といっしょに書き写したほうがいいかも
あとreturnを明示的に書かなくても、
戻り値のあるメソッドは、最後におこなった計算が、
暗黙的に返される仕様になっていたとおもうよ。

int addMethod(int a, int b) {
 a + b;
}
というメソッドがあれば、それは

int addMethod(int a, int b) {
 return a + b;
}

と書いたのと同じことになるかもね。
>>806
まさかと思って試した漏れはそう、負け犬。。。
そりゃC言語か?

コンパイルエラーになったと思ったが。省略は許されず
「return文が指定されていません」と丁寧に厳しく文句をいう。

809デフォルトの名無しさん:03/12/14 05:16
>>808
俺の知っている言語だとPerl
Cは違う
>>807-809
スマソ、逝ってくる……。
811デフォルトの名無しさん:03/12/14 06:44
今さら WindowsCE用(HPC/SH3)の PersonalJava を入手したくなったんだけど、
http://java.sun.com/products/personaljava/
↑を探しても見つけられないんですが・・・。
もう Sun からは提供してないの?
コンパイルしてクラスファイルを作ったのですが、何故がhtmlで読み込めません。
ちなみに、ちゃんとjava plug-inはインストールしてあります。
>>812
JavaでHello World アプレット編
http://www.hellohiro.com/applet.htm
おおおお!
JDKをダウンロード出来るサイトを教えてください
ダウンロード Java 2 SDK, Standard Edition, v 1.4.2_03 (J2SE)
http://java.sun.com/j2se/1.4.2/ja/download.html
>>802
初心者かエキスパート、どっちなんだろ?
核心を突いた質問だ。
>>815
thx
nativeとの文字列の受け渡しを考えています。
byte[]を渡した場合はchar *として受け取ることができるのでしょうか?
効率的な文字列の受け渡し方法を教えてください。
>>818
文字列をそのまま native に渡すと jstring 型のデータとなる。
jstring を char* に変換する専用関数があるので
それを使って char* に変換する (UTF8 に変換する関数もある)。
>>819
ありがとうございました。
変換する関数もすぐに見つけることが出来ました。
821デフォルトの名無しさん:03/12/14 12:46
メインウィンドウからサブウィンドウを二つ開き,
サブウィンドウのどちらかで×ボタンが押されたら,
サブウィンドウを両方とも閉じるプログラムを作成したいのですが,
どうすればこのプログラムを実現することができるのでしょうか?
>>821

サブウィンドウでは×ボタンが押されたときのデフォルトの処理をしないようにする。
その代わりに、メインウィンドウに「わて、×おされましてん」と報告するようにする。
メインウィンドウでは、いずれかのサブウィンドウから×が押された旨報告を受けたら
両方のサブウィンドウを閉じるようにする。
>>821
もしこれで分からなければ、
あとはイベントモデルや、リスナー等について調べるといいかもしれない。

ウインドウ(具体的にはJFrameとかFrameとか)には、
閉じるボタンが押されたときに発生するイベントなどがあるので、
メインウインドウなり、あるいは他のオブジェクトなりに、
このイベントをキャッチするリスナーを実装させて、
そのリスナーのメソッド内に、残りのサブウインドウも閉じるようなコードを書くだけ。
>>821
ウィンドウを閉じる動作を検出したいなら
java.awt.event.WindowListener の windowClosing とか windowClosed とか。

「×ボタンが押された」だけを検出したくて、
Windows での alt+F4 とかは検出したくないってんなら AWT/Swingじゃ無理。
MD5 (j2sdk-1_4_2_03-windows-i586-p.exe) = 98c929fce86a9e2da8ac8a74de76434b

あってますか?
>823
アドバイスありがとうございます.
Javaのイベントに関する部分がまだよく理解できていないので,
もう少ししっかり勉強してから再挑戦しようと思います.

もし,Javaのイベント関係でお勧めの書籍などがあれば,
紹介していただけるとありがたいです.
827821:03/12/14 14:45
>824
windowClosingメソッドはよく使うのですが,ウィンドウを閉じる処理は,
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
と書けばよいと丸覚えしていたので,その仕組みについてはよく分かっていません.
ですから,ちょっと応用的な問題になるとお手上げになってしまいます.
やはり根っこからきちんと理解しないといけませんね.
828デフォルトの名無しさん:03/12/14 16:37
Srevletをいじっているのですが。

doPostを二回使うことは出来ないのでしょうか?
1、Aページでフォームに入力された値をBページで得る
2、Bページでは、入力された値aの名前のファイルからデータcを読み取る
  ファイルから出したデータcとBページで入力された値bを使って計算
4、次のページへ送る

こういう作業をしたいのですが、
doPostの中で、ファイルからデータを読み取るということを行おうとしても出来なかったので

doPost1 aを受け取る
fileOut aの名前のファイルからデータcを読み取る
doPost2 bを受け取、b,cで計算を行い次のページへ

という順番でメソッドを並べてみたのですが
前ページから値を送ろうとするとエラーが出て、
直接Bページを開くと、initで仮に入れたファイル名からデータを取り出して動きました

いろいろ試してみてるのですが、動かないのでお聞きします。
doPost()を二回使うことは出来ますか?
>>828
> doPostの中で、ファイルからデータを読み取るということを行おうとしても出来なかったので

そりゃお前が悪い
830デフォルトの名無しさん:03/12/14 16:48
>doPostの中で、ファイルからデータを読み取るということを行おうとしても出来なかったので
出来ます。なぜ出来なかったと判断されたのでしょうか。

>次のページへ送る
以下の方法で行うことができます。
request.getRequestDispatcher("移動先のページのパス").forward(request, response);
>>830 
お!出来るのですか
何度か試してもうまく動かなかったもので他の方法をと考えてしまいました
どこかにサンプルはないものかと探してるのですが、そういうものはないですよね。
自分のがどうしてだめなのかもう一度考えてみます。
ありがとうございました。

>>829 そのようでした、すいません。
何を直せばいいかは上の書き込みじゃわからないでしょうけど、
もし宜しければ、参考になるキーワードなどありましたら、よろしくお願いします。
まあ、まっとうな初心者本なら、
どの本にもイベントとリスナーの仕組みついては一通り書いていると思う。
Web上なら、まあこのサイトだろうか。

2: java.awtとイベント処理
http://www.wakhok.ac.jp/~tatsuo/prog2002/20shuu/kougi.html
833デフォルトの名無しさん:03/12/14 17:21
コマンドラインで実行するチャットみたいなプログラムを組みたいんですが、参考になるWebページとかありませんか?
835:03/12/14 17:35
死ねよ
SWT のAPI関連のドキュメントを一式アーカイブしたものってないですか?
日本語化されてれば、なおうれしいんですけど。
837デフォルトの名無しさん:03/12/14 21:06
javaでキーボードから数字を入力したいんですけど、何を使えばいいんですか?
Cでいうscanf見たいな奴なんですけど。
お願いします
838デフォルトの名無しさん:03/12/14 21:27
839貧乏紙:03/12/14 21:27
>>837
InputStreamReader sd = new InputStreamReader(System.in);/*System.inは標準入力すなわち実行中のDos画面からの入力*/
BufferdReader buf = new BufferedReader(sd);
String str = buf.readLine();
840837:03/12/14 21:32
ありがとうございます
841 :03/12/14 22:04
初心者です
教えてください

public double calcAvailability(int total) {
return getHours()/total;
}

こういう処理があったとき
intの数字を処理して、その内容をdoubleにして戻すってこと?
その場合呼び出した側はdoubleで宣言したり、キャストとかしなくてもいいのでしょうか?
文脈はしょってんじゃねーよ
http://msugai.fc2web.com/java/method.html

getHours()が double だから、double / int → double になる。なぜならそういうルールだから。
843デフォルトの名無しさん:03/12/14 23:53
>>842
それなら
getHours()がintで引数がdoubleで
処理がdouble / intなら
処理結果の小数点は無視されるの?
844 :03/12/14 23:56
>>843
javaaのドキュメントを読むべし。

sunのサイトからダウンロードしる!
double / int の計算では二項演算子のオペランドの一方が double なので
演算の前に double / double に 二項数値昇格する。
846デフォルトの名無しさん:03/12/14 23:59
public static final int flag1=1,flag2=2;
このように複数のフィールドをまとめて宣言した場合、
一つ一つのフィールドに対してjavadocを書くことはできないの?
>>846
できない。
848デフォルトの名無しさん:03/12/15 00:03
javaで開発でよく使われるフレームワークの一覧が載ってるサイトとかありますでしょうか?
>>847
ありがとSUN
>>845
素人で申し訳ないけど
計算はdoubleでもメソッドがintならreturnされた後は小数点以下は消えるのでは?
851デフォルトの名無しさん:03/12/15 00:04
スレッドとマウスリスナーを使ってマウスでクリックしたところから
円を広げていくプログラムを作っているんですが,
./java/kadai/suimen.java:5: suimen は abstract でなく、java.awt.event.MouseListe
ner 内の abstract メソッド mouseReleased(java.awt.event.MouseEvent) をオーバーラ
イドしません。
というエラーが出てしまいます。手当たりしだい直したのですが消えません。
誰か教えてください。。。初心者な質問ですいません
クラス内でmouseReleased(java.awt.event.MouseEvent) を定義しなおせ
ってことじゃないの?

public void mouseReleased(java.awt.event.MouseEvent){
}

みたいなかんじで
>>851
implements MouseListener ではなく extends MouseAdapter にして
みてはどうか。
854デフォルトの名無しさん:03/12/15 00:11
あ、できました!
public class suimen extends Applet implements Runnable/*,MouseListener*/{
initの中でaddMouseListener(new MouseAdapter()
ってやってました。。。
答えてくれた>>851さん、>>852さん本当にありがとうございました><;

855デフォルトの名無しさん:03/12/15 00:15
JVMとJREの違いがよくわかりません
ttp://www.zdnet.co.jp/dict/programming/language/kind/java/00663.html
ttp://www.zdnet.co.jp/dict/programming/language/kind/java/00659.html

を比べても同じにしか見えないのですが・・・
>855
>JREは、この変換と実行を行なうJava仮想マシンとその周辺のソフトウェアからなる。
って書いてあるじゃん。
Java仮想マシン=JVMだぞ。
857デフォルトの名無しさん:03/12/15 00:32
あ、そうか
JRE=JVM+アルファ
ってこと?
858デフォルトの名無しさん:03/12/15 00:41
SunのサイトにあるJavadocを、まとめてダウンロードすることはできますか?
>>850
double から int への型変換には明示的なキャストが必要。
>>858
できる。
861デフォルトの名無しさん:03/12/15 01:11
変数の宣言で
int=0;
String= null;
など初期化しなければならない時ってどういうときでしょうか?

どうもサンプルなどを見てもするときとしない時がはっきりしません
教えてください

どういうときに
String s = null;
int i = 0;
などの初期化が必要とか、うまい見分け方とかコツとかあるのでしょうか?
ここを見ればその変数の初期化が必要と言う物があれば教えてください
>>861

http://www.y-adagio.com/public/standards/tr_javalang2/defAssign.doc.html#25980
> 16. 確実な代入
>
> 個々の局所変数(14.4)及びすべての blank final (4.5.4) フィールド (8.3.1.2) は,
> その値にアクセスが発生するときには,確実に代入された(definitely assigned) 値をもたなければならない。
863デフォルトの名無しさん:03/12/15 01:50
JFrameからStringのfilenameに対して、
javac filename
をしたい場合、どうしたらよいのでしょうか?
>>863
Runtime.getRuntime().exec("javac " + filename);
>>858
探せよおい。圧縮されておいてあるぞ。
ドキュメンテーションと書いてあるぞ
866デフォルトの名無しさん:03/12/15 02:52
>>864
どうでもええかもしれんが、
Javaにはコンパイラクラスとかあったか?
867デフォルトの名無しさん:03/12/15 03:07
eclipse使っています。
アップレットの大きさを、HTMLを使って、指定するにはどうすればいいのですか?
プログラム上に書き込むと、エラーがでて困っています。
誰か、教えてくれませんか。
>>867
Appletタグでwidthとheight指定すればいいんじゃないの?
Applet本体に引数として渡したいならAppletタグの中でParamタグ使って渡す
869デフォルトの名無しさん:03/12/15 03:32
>>868
トークン "<" に構文エラーがあります。正しくは "interface", "class" です。

という返事が返ってくるのですが、Appletタグは使えるんですか?
870デフォルトの名無しさん:03/12/15 04:30
HTMLのform要素からservletにデータを送ることができません。HTMLからJSPには送ることができるのですが一体何故動かないのかわかりません。どなたか解決策を教えてください。
ちなみに環境はOS:WINDOWSXP
       WEBサーバ:TOMCAT4.1.29
JDK:j2sdk-1_4_2_01
です。
>>870

> HTMLのform要素からservletにデータを送ることができません。

↑まず、これが本当なのかどうかから確認しなきゃならんな。
データは送られてきているけど、それを確認するための表示部分がコケてるだけ、とか。

とにかく状況がわからないと誰も助けてあげられない。
872デフォルトの名無しさん:03/12/15 04:41
871さん、返信ありがとうございます。当方以前windowsmeでxpでの開発と同じ環境で、同じソースを動かしてみたところ、きちんと作動しました。
>>872
871ではないが、なに言ってるのかわからんが。基地外?
>>870
いまどきの学生はこんな会話で意思疎通ができるのか
ニューエイジ スゲーナ オイ!!
>>870 >>872
あなたが言っているのは「スカイラインを加速したのに速度が上がりません」
というのと同じで、加速するのにきちんとアクセルを踏んだのか、メーターが
壊れていないのか、などの情報がまったく無いので誰も助けられないですよん。
まずはHTMLの送信部分とservletの受信部分と確認表示部分のソースを
晒しやがってください。
>>873-875
870ではないが、そこまでいうほどのものか?と思う。
http://java.sun.com/j2se/1.4.2/ja/download.html
J2SE v 1.4.2_03 日本語版のJRE,SDKダウンロードできません。
http://java.sun.com/j2se/1.4.2/download.html
英語版でもインストーラの違いだけで中身は同じでしょうか?
878デフォルトの名無しさん:03/12/15 07:13
870です。お騒がせしてすみませんでした。問題は解決しました。どうやら、Tomcatバージョン4.1.12以上を使用する場合はちょっとした修正がいるようです。
それは以下のものです。
(Tomcatバージョン4.1.12以上を使用する場合の注意)
Tomcat4.1.12以上を使用する場合、上記のURLを指定するとHTTP Status 404 が帰ってきます。これはデフォルトの設定では/servlet/*にアクセスがあった場合、サーブレットを実行するようになっていないためです。
<解決方法>
[Tomcatのフォルダ]\conf\web.xmlを編集します。
273行目付近の以下の赤字の2行のコメントアウトの行をはずします。
(修正前)
<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
(修正後)

<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

この修正で/servlet/*にアクセスがあった場合にサーブレットが実行されるようになります。編集が終了したらTomcatを再起動してください。
>>878
その記述はセキュリティホールになる可能性があるから、運用環境では使わないこと。

お前さんのミスはServletでHelloWorldを書かなかったことだ。
書いていればデータを受け取る受け取らない以前に表示されないことがわかったはず。
HelloWorld書かずに悩む奴は初心者。
書いてるのを見て笑う奴は超初心者。
881デフォルトの名無しさん:03/12/15 09:06
870ですが、879さんの「お前さんのミスはServletでHelloWorldを書かなかったことだ。
書いていればデータを受け取る受け取らない以前に表示されないことがわかったはず。」
というご指摘ですが、servletでhelloworldはきちんと作動しました。
私が言っていることは
HTMLからservletに情報を送信することができなかったためにきちんと作動しなかったということです。
しかし、ここに書かれていることによって解決しました。
http://www.hellohiro.com/servlet.htm

>>881
doPostにHelloWorld書けば間違いなく解決してたはず。
doGetのテスト→doPostのテストと順にテストしていく姿勢が重要です。
今はいいけど、後々何かでハマった時には、step-by-stepな考え方を
思い出してね。
>>881
ほんとに、修正前の状態でhelloworldが動いたのか?
そうだとしたら、878の修正は、値が受け取れる・受け取れないとは関係ない
884デフォルトの名無しさん:03/12/15 10:08
doPostでも実行しましたが、当初全く動きませんでした。嘘だと思うならば
Tomcat4.1.29で878を無視してやってみて下さい。私と一緒の結果になるはずです。
>>884
まぁそう開き直るなって。
4.1.29なら、web.xmlに自分で個別に登録していないServletは実行できない。
doPostだろうがdoGetだろうが同じこと。

>>878の記述は、その個別の登録を端折ってしまってなんでも実行させてしまう書き方。
(それで、実行して欲しくないServletにまでアクセスされてしまうからセキュリティーホールになる)

何が問題なのか、今自分が何をしているか、どこまでできたのか、何ができてないのか
しっかり把握して試行錯誤するのは、初心者のうちは難しかもしれんが大事なこと。
これができる奴は上達も速い。まぁがんばりな
>>885
自分の非を認めない姿勢をみると、884は上達が速いやつではないな。
>>884
じゃあ、とりあえずhelloworldのソースとそのときのweb.xml、そして、doPostが動かなかないソースを開示するべし。
>Tomcat4.1.29で878を無視してやってみて下さい。私と一緒の結果になるはずです。
これは論理が分かってて初めて言える言葉だなぁ。
>>874
世の中そんなもんだ。
はじめはだれでも躓く。
答えやすい質問をするようになんとか導いてやるのもいいんではなかろうと。
すいませんが教えてください。
ハッシュを使い、キーにデータID、値にキューとしてデータを格納したいと考えています。
入力されたデータ<ID,data>を調べて、初めて入力されるIDならば、キューに格納し、
すでに以前に入力されたことのあるデータならば、キューの最後に追加します。
rubyで書いた場合、
hashqueue = Hash.new
hashqueue[id]||=[]
hashqueue[id].push(data)
となるんですが、HashtableクラスとQueueクラスを使えばいいと思うのですが、
呼び出したり入力したりするのにどのように書けばいいのでしょうか?
Queue クラスなんて無い。
Hashtable なら
void put(key, value) と Object get(key) 。
ぐぐったら、どうもJ2SE 1.5(Tiger)から追加されるらしいな。java.util.Queue<E>とかいうのが
要するに、IDごとのキューをマップにぶらさげたいわけね。
HashMap(Hashtable)とArrayList(Vector)かな。
無理矢理同じようにかけばこうなるかな
HashMap hashqueue = new HashMap ();
hashqueue.put (id, new ArrayList ());
((ArrayList) hashqueue.get (id)).add (data);
JFrameでアプリケーションの設定ダイアログを開いているのですが、メニューを選択すればしただけ開いてしまいます。
そのフレームが開いてる間メインのフレームにフォーカスが移らないようにしたいのですがどうしたら良いのでしょうか?
896890:03/12/15 18:58
>>891-894
どうもありがとうございます。できました。
Queueクラスってまだなかったんですね・・すいません。
>.895
「そのフレーム」とは JFrame のことですか?
普通のプログラムはそういう設計になりません。
「そのフレーム」とはダイアログのことですか?
モーダルにすれば解決します。
898デフォルトの名無しさん:03/12/15 20:57
....####..#.....
.......####.....
................

swing使ってゲーム作ってるんですが、上のようなものを表示するとズレて
しまうのを回避する方法はありますか?つまり勝手にピリオドの幅を狭めて
しまうのをです。お願いします。
>>898
setFont で "Monospaced" を指定する
ただし font.properties がうまく指定されてないと手がつけられない
ASCII 文字なら大丈夫だとは思うが・・・・
JTextPaneで列番号と行番号を取得するにはどうしたらいいでしょうか?
JTextAreaではgetCaretPositionとgetLineOfOffsetを使って番号を取得していたのですが
特定の文字に色を付けたいと思って
JTextPaneにしたら上のやり方ではできなくなってしまいました

また、現在行のマークアップ(カレットのある行の背景色だけ変わる)などは
どのようにすればできるでしょうか?
901デフォルトの名無しさん:03/12/15 21:52
すいません
Jakartaプロジェクト
って何を指しているのでしょうか?

strutsとかtomcatとかごちゃごちゃしてよくわかりません
>>901
Apach 直属のプロジェクトは以下のとおり

 HTTP Server
 Ant
 APR
 Avalon
 Cocoon
 Commons
 DB
 Incubator
★Jakarta
 James
 Maven
 Perl
 PHP
 TCL
 Web Services
 XML
 Conferences
 Foundation
>>901
その中の 1 プロジェクトである Jakarta の配下に
以下のサブプロジェクトがある。

 Alexandria
 BCEL
 BSF
 Cactus
 Commons
 ECS
 Gump
 Jetspeed
 JMeter
 Log4J
 Lucene
 ORO
 POI
 Regexp
 Slide
 Struts
 Taglibs
 Tapestry
 Tomcat
 Turbine
 Velocity
 Watchdog
904デフォルトの名無しさん:03/12/15 22:19
javaのAPIって何でしょうか?
googleで調べるとjavadocとかリファレンスとか
いろいろ出てきてしまうのですが
>>904
身近な奴に聞け。長文書く気にはなれん。
>>904
Javaの実行環境で、標準的に提供される(ことになってる)ライブラリのインターフェイス(外部仕様)のこと。
って感じ。C言語の標準ライブラリとかに相当するもの。ふつうAPIってのはOSの話に出てくるんだけどね。
>>901
ごちゃごちゃしてよくわからないのは、Jakartaの問題だとおもう。
やっぱり似たようなのあるし。
Commonsの中にいろいろあったりするし。
>>896
Jakarta CommonsのCollectionsにあるかも。
909デフォルトの名無しさん:03/12/15 22:41
オブジェクト指向って
簡単に言えば
それぞれのクラスが用意されているのでそれをオブジェクト(インスタンス化)として
利用しなさいって事?
>>906
> ふつうAPIってのはOSの話に出てくるんだけどね。
これは間違い。
>>909
違う。どっちかと言えばクラスを用意してインスタンス化して利用しましょうということ。
受動的じゃいかんよ。
>>911
違いがよく分からん

クラスに命を吹き込んで(オブジェクト)それぞれ組み合わせて利用するってことか?
用意されてるから使うんじゃなくて、使うために用意するんだよ
914デフォルトの名無しさん:03/12/15 23:01
でも
http://java.sun.com/j2se/1.3/ja/docs/ja/api/
などは
クラス名.メソッドとして使うと思うけど

これなどは初めから用意されてるし
どっちかと言えばこっちの方が使うこと多いかも
>>914
初めから、じゃなくて、使う必要性があるから用意してるの
オブジェクト指向プログラミングを行う上では、
API もクラス化されてた方がいろいろ都合がいいでしょう?
>>909
それってコンポーネント指向の説明に近いかも?
917デフォルトの名無しさん:03/12/15 23:20
ストアドプロシージャについて教えてください
これがあることで何が出来るのでしょうか?
>>917
スレ違い
>>917
簡単に言えばSQL処理のショートカット
>>919
どう簡単にいえば、そうなるんだろう・・・

データベース側に持たせる処理のことだな。
Javaなんかの埋め込みSQLよりも記述しやすい。
利用側にかかわらず同じ処理を記述できることもメリット。
すみません、「AWT」(Abstract Window Toolkit )の読み方を教えてください。
922デフォルトの名無しさん:03/12/16 00:41
>>921
おまいは14型のサムスンで十分事足りる。
923デフォルトの名無しさん:03/12/16 00:57
JSF 対応ツールの Project RAVE の超限定早期アクセス版が公開されたんだけど
ユーザ情報を入れたら「お前の条件じゃまだダウンロードさせん」と言われました。
http://wwws.sun.com/software/products/jscreator/index.html
ダウンロード出来る条件をみんなで捜しませんか???

ちなみに2パターン入れて(仕事先が2つあるので)選択枝があるとこは
その1:ディレクター、ソフト開発、100人以下、メディア
その2:スタッフ、システムアーキテクト、500-999、学校
って入れました。。。
>>923
ダウソ板行け(嘘
925923:03/12/16 01:08
えーだってダウソ板住人興味なさそうじゃないですか、RAVE なんて・・・
926デフォルトの名無しさん:03/12/16 01:14
Javaの事なら俺に任せろ。
927923:03/12/16 01:14
度々すいません。更に選択項目ありましたね。

その1:ディレクター、ソフト開発、100人以下、メディア、JAVA/C,C++、Web/EJB/Swing/HTML、全部の情報くれ
その2:スタッフ、システムアーキテクト、500-999、学校 、JAVA/C,C++/VB、Web/EJB/Swing/HTML、全部の情報くれ

その2は行けると思ったんだけどなぁ・・・
928デフォルトの名無しさん:03/12/16 01:53
現在表示しているJSPの画面URLを、javaでなんらかの形で取得する方法ってありますか!?
抽象的な表現ですいません。
>>917
データベース
http://pc2.2ch.net/db/
930デフォルトの名無しさん:03/12/16 02:33
今出てるj2sdk1.4.2_03ってマジでMulti-language版?
正規表現で日本語がマッチしないんだが。
有向グラフのデータ構造(隣接リストを用いたもの)を
表したいのですが、ぐぐると配列を使ったものがありました。
コレクションでシンプルに表現出来ませんかね?
>>931
自分でクラス作った方がいいよ。
俺は Vertex と Edge と作って、
始点を key にした Map に Edge のコレクション作るとかしてるけど。
Edge からは Vertex 2 つに参照。

他にもいろんなインデックス作った方が検索がしやすくて楽だわなぁ。
JAVAやり始めるならここだけは絶対見ておけ!っていうHPはありますか?
正直ここのテンプレから探ってもよくわかりませぬ。
向いてないとかそういうの抜きで教えて欲しいです。
やる気だけはあるのでどうかお願いします。
934933:03/12/16 05:51
すいません、やはり自分で調べてみます。
どうも失礼しました。
現在、下記のエラーが発生して困っております。
原因をご存知の方がいらっしゃいましたら、お答え願えませんでしょうか。

エラー
 ワトソンでアプリケーション例外が発生する。
 アプリケーション名はjava.exe
 エラー内容はアクセス違反。(C0000005)
 OSは winNT4.0 SP5
 例外発生箇所のファンクション名はJVM_GetCPMethodModifiers

 JAVAのBugParadeで調べて、SDK1.2系のBugであるらしいことまでは確認している。
 当方の環境でたまにしか発生しないため、その理由を調査中。

 こ環境で常駐させているjavaアプリは多数存在するため、
 どのモジュールで発生しているかわからない。
 
 以上、ご存知でしたらよろしくお願いいたします。
>>933
この2つは、見た形跡がないと話にならん

http://www.google.co.jp/
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
>>933
>>1のリンク先にないものをあげると、
とりあえずフォーラム系なら、この二つ。
JavaHouse
http://java-house.jp/ml/
Java Technology Forums
http://forum.java.sun.com/

チュートリアル系なら。
Java Technology Learning
http://java.sun.com/learning/index.html
The Java Tutorial
http://java.sun.com/docs/books/tutorial/index.html
developerWorks: Java technology
http://www-6.ibm.com/jp/developerworks/java/
Java Solution 連載記事一覧
http://www.atmarkit.co.jp/fjava/rensai/index/index.html

あとはここも。
Java FAQ
http://www.gimlay.org/~javafaq/

>>934
死ね
938デフォルトの名無しさん:03/12/16 14:12
Swingについて質問です.
フレームに配置されたコンポーネント(JComponent)の
フレーム(JFrame)上の絶対位置を知りたいのですが,
良い方法があったら教えて下さい.

JComponent#getLocationは親コンポーネントからの
相対位置しか返さないようです.
うまいやりかたはしらんけど、フレームに突き当たるまで親をさかのぼって差分を積算すればいいんじゃないの
940938:03/12/16 16:53
geLocationOnScreenを応用することにしました.

>>939
geLocationに少し疑問に思う点があったので使用しませんでしたが,
御意見ありがとうございました.
941941:03/12/16 17:47
凄い初期的な質問で申し訳ありません・・・
三日間取り組んでうまくいかなくて困っております
SDKのクラスパスの設定が分かりません・・・

環境はVineLinux 2.6(GONOME環境)
$java -version
java version "1.4.2_03!
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)

今までやった流れは
j2sdk-1_4_2_03-linux-i586-rpm.bin
をDL
http://java.sun.com/j2se/1.4.2/ja/install-linux.html#install-rpm
を参考にinstall
http://www.gimlay.org/~javafaq/S001.html#S001-03
ここを参考にして.cshrcにパスを追加しました。

csh使ってます。
set path=(/usr/java/j2sdk1.4.2_03/bin $path)
942941:03/12/16 17:47
これで
$javac HelloWorld.java
は問題なく成功して、HelloWorld.classが作られたのですが
$java HelloWorld.class
を実行すると
Exception in thread "main" java. lang. NoClassDefFoundError: HelloWorld/class
とのエラーが出てしまい、いろいろしらべた結果クラスパスが通ってないと見て調べたのですが
------------------------------------------------------------------
Cシェルの場合は次のように設定します。

setenv PATH /usr/local/jdk1.1.6/bin:$PATH
setenv CLASSPATH /usr/local/jdk1.1.6/lib/classes.zip:$CLASSPATH
-------------------------------------------------------------------
などの文章を見つけ、これだ!と思っていたのですが
classes.zipなるものがどこに格納されているか分かりません
$find . -name classes.zip
をしてもひっかからず、/usr/java/j2sdk1.4.2_03/lib/の中を見てみてもそのようなファイルは存在していないようです・・・

長くなりましたが、どこにクラスパスを指定すればいいか分からず困っております。
迷える子羊にヒントだけでもお願いします!
すみません、教えてください。

JNDIつかって、LDAPのAttributesを追加したのですが
同じ項目名を使うと、以前に追加した内容が上書きされてしまいます。
BasicAttributesのリファレンス読んだのですがッ問答無用で上書きになるようで
対策がさっぱわかりません。

どなたか、いい方法後存知で無いですか?
入力された文字が全角か半角かを判断する方法ってないのでしょうか?
>>941
>$java HelloWorld.class
>を実行すると
>Exception in thread "main" java. lang. NoClassDefFoundError: HelloWorld/class

とりあえず、

$java HelloWorld

とやってみてください。


>>944
char c = 入力された文字;
boolean ishankaku = (("" + c).getBytes().length() == 1);
こういう感じ。Unicode を ShiftJIS になおしてからバイト数を調べる。
でも getBytes() が ShiftJIS で返って来るとは限らないから勉強してね
947944:03/12/16 18:55
>>946
勉強してきます
ありがとうございました
948941:03/12/16 19:08
>>945
Hello javs World !
ええーーーーー・・・・でちゃった・・・
何て情けないミスを・・・
しかもjavaじゃなくてjavsになってるし・・・

945さんありがとうございます、本当に助かりました。多謝!
>>948
あー、それから>>942のような java *.class と打ち込んで、
クラスパスのエラーがでる場合の解決方法は、>>1のリンク先に書いてあるから。
こんどは書き込む前に、>>1をよく読んでからにしてくださいな。
950デフォルトの名無しさん:03/12/16 20:28
コマンドラインで実行するチャットみたいなプログラムを作りたいんですが、なにとか参考になりますかね。
952:03/12/16 20:32
死ねよ

…前も同じような展開だったな…………。
とりあえずネットワークプログミングでぐぐれ。
954931:03/12/16 22:02
>>932 さん
ありがとうございます。すぐいただいてたのに寝てしまった....

> 俺は Vertex と Edge と作って、
> 始点を key にした Map に Edge のコレクション作るとかしてるけど。
> Edge からは Vertex 2 つに参照。

ううむ...アルゴリズムの理解がなってないからなんだと思いますが、
ぴんと来られてませんです。すみません。

クラス構成としては

・Edge が隣接する Vertex (previous, next 等)を持つ。
・Edge の集合を Map に置いて行ったものが、ある Vertex の隣接リストになる。
・グラフオブジェクトなりには、各 Vertex の隣接リストの集合(リストのリスト)と、
グラフへの操作や頂点の走査のメソッドがある。

と言うイメージで合ってますでしょうか?
でもそれだと始点を key にする、と言うのがどうも...もちついてないのか自分。
955デフォルトの名無しさん:03/12/16 22:40
HTMLはアブレットですか?サーブレットですか?
>955 ゴブレットです。
HTMLはマークアップ言語の一種でら。
一般的にはHTMLファイルのことも言うでら。
アプレットはHTMLに埋め込むJavaコードのことでら。
サーブレットはサーバサイドの技術のことでら。
958デフォルトの名無しさん:03/12/16 23:04
APサーバ、webサーバ、webAPサーバ
の違いを教えてください

http://ash.jp/java/j2ee.htm
この説明だとごっちゃになっているのですが
959デフォルトの名無しさん:03/12/16 23:10
JavaアプレットJavaによって作成されたプログラムのうち、
HTMLファイルに組み込まれた形で配布され、WWWブラウザで実行されるもの。
って書いてあるんですけど、意味がいまいちわかりません。
>>952
…つーか、前もあのリンクをクリックしてないだろ?
俺は>>951ではないが騙されたと思ってクリックしてみれ。
まあ、クリックしてもそういった感想しかもてなかったのなら、当分無理。

まあ、そんなことはともかく、1000も近いので、今度こそ
前スレなどで提案されていた質問用のテンプレを考えてはどうかと。
961デフォルトの名無しさん:03/12/16 23:30
JAVAを勉強し始めてようやくコレクションの章までたどり着いたのですが、
コレクションの例題はすべて文字列/Stringを例にしているのですが
数字は扱えないのですか?

HashSet hs;

としたあとで数字を 

hs.add (任意の数字) 

として追加することは出来ないのですか?


>>961
数字はそのままでは追加できない。
Character型を使え。

hs.add(new Character('9');
>>962
なんで Integer じゃなくて Character?
964900:03/12/16 23:35
答えてくれる方いらっしゃいませんか?
もし、できないことだとわかりきっているものでしたら
あきらめるんですが…
965デフォルトの名無しさん:03/12/16 23:36
>>962
説明不足はいい加減にしておけ。
オブジェクト型の引数にプリミティブ型をぶっこむにはラップしたらいい。と家。
>>963
「数字」は数値じゃなくて文字だろ。
967デフォルトの名無しさん:03/12/16 23:39
>>966
Javaではその辺は曖昧じゃなかった?
>>962

おぉ!リロードしたらもう返事が!

早速動作を確認し、正常に動作することを確認できました。
ありがとうございます。

ところで、どうしてコレクションでは数字が使えないのでしょうか?
参考書やらJavaの説明が丁寧にしてあるHPをみても
当然のようにStringを用いた例題が出てくるだけで、
数字は使えませんとの説明がありません。
>>964 modelToView
970デフォルトの名無しさん:03/12/16 23:48
>>801
どれくらいのスペックで使うとゲームで遅すぎるんだ?
971デフォルトの名無しさん:03/12/17 00:43
はじめまして
JVMってJRE以外ってあまり聞かないのですが
どういったものがあるのでしょうか?
>>968
コレクションの前にプリミティブ型とオブジェクト型を理解しろ。
その入門書に書いてなかったか?

プリミティブ: int、long、float、double、boolean、char
オブジェクト: Object とそのサブクラス

プリミティブ型にはそれぞれ対応するラッパーオブジェクトがあ(ry
JDK1.5 以降はプリミティブとラッパーを自動変換してくれるから
プリミティブも暗黙的にコレクションに格納できるかもな。
>>971 マイクロソフトとかIBMとかいろいろ。携帯にのっているのも
SunのJREじゃないなあ。
>>971
JavaPress かなんか忘れたけど最新号にたくさん載ってたぞ。
どれも使いもんになりそうになかったので名前も忘れた。
晩飯食ったかも忘れた。
975デフォルトの名無しさん:03/12/17 00:59
みなさんマジでj2sdk1.4.2_03って使えてますか?
976デフォルトの名無しさん:03/12/17 00:59
j2re1.4.2_03のほうだった。
>>975
証明書以外に何か変わったのか?
>>377
java -version の出力結果が変わった。

ヒマだったら展開後のファイルの比較とかしてみれば?
>>377 じゃなくて >>977 だった…
>>972
> プリミティブ: int、long、float、double、boolean、char
byte と short が抜けてるね。
>>971
> JVMってJRE以外ってあまり聞かないのですが
JRE と JVM は別の概念。
982デフォルトの名無しさん:03/12/17 01:27
HelloWorld.javaからHelloWorld.classを作り、HelloWorld.mfファイルを作って
>jar cfm HelloWorld.jar HelloWorld.mf *.class
とコマンドラインに入力するとjarファイルは出来たのですが、
Fatal exception occurred. Program will exit.
と出て実行出来ません。何の問題でしょうか?
そろそろ次スレ
984デフォルトの名無しさん:03/12/17 02:04
>>982
すみません何だかよく分かりませんが解決出来ました。
良く分からないままにしておくなよ
きっといつか解決させておく癖をつけておけば良かったと思う日が来る
>>972
>>980

うむ、理解できた。(気がする。。。)

ちなみに持っている参考書には、

『基本データ型(プリミティブ型)』 と 『参照型』 ってなっていました。

話の内容からすると、この『参照型』っていうのが
『オブジェクト』のことだと理解できました。

コレクションの説明には、『複数のオブジェクトの集まりを一つのオブジェクトとして扱う』
『要素数が増減するオブジェクトを簡単に管理する』とあるので、
基本データ型である数値は対象外、もしくは何らかの加工が必要だと理解できました。


ありがとうございました。
>>982-984
マニフェストファイルの最後に改行を加えなかったとか
あれって、最後に一行空行をつけていないと、うまくいかなかったおもう。

>>960
質問テンプレはwikiにそういうページを先に作っておいて、
>>1には、そのページへのリンクを、とりあえず貼っておくとか
で、テンプレの実際の内容は、追々考えていくという感じで
>>986
>話の内容からすると、この『参照型』っていうのが
>『オブジェクト』のことだと理解できました。

わかってるかもしれないけど、ここは正確じゃない。
オブジェクトにメッセージ出すときの「宛名」みたいなもんが参照。
コレクションっていっても、宛名のリストを抱え込んでるだけ。
で、Javaで用意してるコレクションフレームワークでは、宛名以外のものは扱ってないってことね。
>>988

私はどうやら正確に正しく理解しているわけではなかったようです。
理解が深まりました。重ね重ねありがとうございます。
>>988
あいかわらず、例え好きだね。
あいかわらずって何。あんた漏れのなんなのさ。
あ、違うぞ。988は通りすがりだから。
次スレ建てました。


【初心者】Java質問・相談スレ38【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1071613279/
994次スレ1:03/12/17 07:42
Wiki更新終了しました。
過去ログ一覧を修正して気がついたのですが、
Java質問スレ36までが既にhtml化されているようですね。

【トリビアの泉】Java初心者質問スレ【32へぇ〜】
http://pc2.2ch.net/tech/kako/1063/10637/1063774151.html
【初心者】 Java質問・相談スレ33 【大歓迎】
http://pc2.2ch.net/tech/kako/1065/10656/1065684016.html
【初心者】Java質問・相談スレ34【大歓迎】
http://pc2.2ch.net/tech/kako/1066/10667/1066718007.html
【初心者】Java質問・相談スレ35【大歓迎】
http://pc2.2ch.net/tech/kako/1067/10679/1067999989.html
【初心者】Java質問・相談スレ36【大歓迎】
http://pc2.2ch.net/tech/kako/1068/10689/1068926949.html

それでは新スレへ参りましょうか。
【初心者】Java質問・相談スレ38【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1071613279/l50
>>994
otu!
何かにたとえて説明しなければうまく説明できない奴は、説明下手。
我は997取ったりと説明す。
998デフォルトの名無しさん:03/12/17 10:25
ume
999デフォルトの名無しさん:03/12/17 11:06
記念カキコ v(^-^=)
1000デフォルトの名無しさん:03/12/17 11:06
JavaとJavaScriptの違いを教えてください。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。