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

このエントリーをはてなブックマークに追加
1ざべこ
   ∧  b
  /●ヽ/
 (∧_∧)  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< テンプレ合流しますた
 (    )  \_____
 | | |
 (__)_)


関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)

Google で検索 ⇒ http://www.google.co.jp/
JavaFAQ で探す ⇒ http://www.gimlay.org/~javafaq/javafaq.html
ご要望によりじゃばこサイト ⇒ http://www.javaco.org/

JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/

パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/

基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
http://pc.2ch.net/tech/kako/1026/10266/1026601774.html
2ざべこ:02/09/25 17:58
ぐはっ
やられた
おいおい
どっちを本スレにするんだ?
5秩父りお:02/09/25 18:01
7を飛ばすなよ
6ざべこ:02/09/25 18:02
■■■ 過去スレの一覧 (1) ■■■
JAVA厨房
http://piza.2ch.net/tech/kako/966/966391052.html
Java相談室
http://piza.2ch.net/tech/kako/971/971960169.html
Java相談室 Part2
http://piza.2ch.net/tech/kako/980/980858322.html
Java相談室 Part3
http://piza2.2ch.net/tech/kako/994/994150280.html
Java相談室 Part4
http://pc.2ch.net/tech/kako/997/997791189.html
Java相談室part5
>>5
いや、前前スレが 6 だったのに
前スレ立てたヤツが間違って 6 にしたんすよ。
だから、8 でも間違いではない。
8群雄割拠時代を生き抜く:02/09/25 18:18
■■■ 過去スレの一覧 (2) ■■■ (一部 HTML 化待ち)
http://pc.2ch.net/test/read.cgi/tech/1003567552/
ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza.2ch.net/tech/kako/981/981424252.html
ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://pc.2ch.net/test/read.cgi/tech/993358225/
ネタ心者歓迎! 今更ながらにJava相談室
http://pc.2ch.net/test/read.cgi/tech/1003569074/
ネタ心者歓迎! 今更ながらにJava相談室 その2
http://pc.2ch.net/tech/kako/1006/10064/1006408230.html
ネタ心者歓迎!今更ながらにJava相談室 その3
http://pc.2ch.net/tech/kako/1007/10078/1007802486.html
ネタ心者歓迎!今更ながらにJava相談室 その4
http://pc.2ch.net/test/read.cgi/tech/1010545421/
初心者歓迎! Java相談室 その5
http://pc.2ch.net/test/read.cgi/tech/1012968994/
初心者歓迎! Java相談室 その6
http://pc.2ch.net/test/read.cgi/tech/1015418174/
初心者歓迎! Java相談室 その7
http://pc.2ch.net/test/read.cgi/tech/1018631329/
初心者歓迎! Java相談室 その8
http://pc.2ch.net/test/read.cgi/tech/1020453823/
9それがlβMのe-コマーす:02/09/25 18:19
■■■ 過去スレの一覧 (3) ■■■ (一部 HTML 化待ち)
【初心者・ネタ】Java質問・相談スレ【大歓迎】
http://pc.2ch.net/tech/kako/1021/10218/1021817147.html
【初心者】Java質問・相談スレ2【大歓迎】
http://pc.2ch.net/tech/kako/1023/10233/1023319551.html
【初心者】Java質問・相談スレ3【大歓迎】
http://pc.2ch.net/tech/kako/1024/10248/1024885660.html
【初心者】Java質問・相談スレ4【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1026601774/
【初心者】Java質問・相談スレ5【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1028096225/
【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1029774594/
【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1031397913/ (本当は7)
10いよっ:02/09/25 18:20
■■■ Javaの基礎と よくある質問 ■■■

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

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

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

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

Q: 僕、サルなんですけど・・・。
A: サルにはわかるヒアリングJava入門(マルチランゲージ対応)
http://www.asahi-net.or.jp/~rc4t-ishr/Saru/index.html

このほかの FAQ はこちら↓をご覧ください。
http://www.gimlay.org/~javafaq/javafaq.html
11改行多すぎましたか:02/09/25 18:23
■■■ Java関連スレいろいろ ■■■ (一部 HTML 化待ち)
【統合開発環境】
[Java]JBuilder5[Java]
http://pc.2ch.net/test/read.cgi/tech/995044723/
【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc.2ch.net/test/read.cgi/tech/1017214967/
Forte for Java
http://pc.2ch.net/test/read.cgi/tech/1016161880/
JAVA/C++開発環境 "eclipse" スレッド 2
http://pc3.2ch.net/test/read.cgi/tech/1023103421/

【サーバサイド】
JavaサーブレットQ&A LV2
http://pc.2ch.net/test/read.cgi/tech/1012728608/
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/test/read.cgi/tech/1004972840/

【携帯】
携帯JAVAのスレッド
http://pc.2ch.net/test/read.cgi/tech/1011977260/
iアプリ
http://pc.2ch.net/test/read.cgi/tech/1000723476/
i‐MODEのJAVA
http://piza2.2ch.net/tech/kako/975/975428633.html
iアプリでゲーム
http://game.2ch.net/test/read.cgi/gamedev/1005042631/

【その他】
クライアントサイドJavaどうよ?
http://pc.2ch.net/test/read.cgi/tech/1002160815/
【祝】 JDK 1.4 βリリース
http://pc.2ch.net/test/read.cgi/tech/990949654/
12飽きてきた:02/09/25 18:24
■■■ 撲滅させたいかた、死滅を心配してるかた ■■■

CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/test/read.cgi/tech/1009707596/

Java撲滅委員会
http://pc.2ch.net/test/read.cgi/tech/996848309/

●●JAVAって死滅しちゃうの????●●
http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
●●JAVAって死滅しちゃうの???? PART2●●
http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
●●JAVAって死滅しちゃうの???? PART3●●
http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
で、どっちが本スレなのよ?
14これで最後:02/09/25 18:27
>>14
ご苦労様
じゃあ、独断と偏見により、こっちが本スレという方向で。
17デフォルトの名無しさん:02/09/25 18:44
コレクションに対するガベージコレクタの動作に関する質問です。

aVector1.add(aString);
aVector2.add(aVector1);
aVector3.add(aVector2);
aVector3 = null;

これだと、aStringやaVector1やaVector2は
ガベージコレクタによって開放されることが保証されますか?
>>17
aString や aVector1, aVector2 が他から参照されていなければそのうちにね。
>>18
回答ありがとうございます。
ツリー上の構造だと再帰的な開放が必要なのかと思い込んで
憂鬱になっていましたが、不安が解消してすっきりしました。
>>17
不安なら、↓が呼ばれてるかどうかチェック
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Object.html#finalize()
21デフォルトの名無しさん:02/09/25 20:02
どっかにディレクトリやファイルをコピーする
API落ちてたら教えてください
>>21
Runtime.getRuntime().exec("COPY /Y C:\\mona C:\\giko");
必殺・API落とし
>>22
おしいなあ。
copy は内部コマンドなので Runtime.exec() から直接は呼べないし、
ディレクトリのコピーもできない。xcopy が適切。
(もちろんこれはWin上での話だが。)
>>24
う、そうだった。
Unix に慣れた手で久しぶりに DOS を触ると陥る罠
前スレでまともな意見がなかったのでもう一度教えてください。
Autoexec.batっていうのをなんたらかんたら設定するみたいなのですが、設定の方法が全くわかりません。
設定方法を教えてください。
みなさんはjavaで何を作ってますか?
ゲームやチャットかな?
>>28 いつの時代の話だYO!
31デフォルトの名無しさん:02/09/25 20:54
22>
なるほど!

AntみたいにOSに依存しない方法もありますか?
>>31 Fileクラスくらい調べたんだろうなオイ
>>27
OS を書け
34前スレの731:02/09/25 20:59
ようやくコンパイル出来ました!!ありがとうございました!!
File#listFiles() でディレクトリ内のファイル一覧を取得できます
File#isDirectory() でファイルなのかディレクトリなのかを判定できます
File#mkdir() でディレクトリを作成できます
FileInputStream でファイルを読み出すことが出来ます
FileOutputStream でファイルに書き込むことが出来ます

さぁもう出来るだろ。
>>31
APIレベルでは用意されてないよ。
(new File(src)).renameTo(dst)
するとか

FileInputStream(src) から
FileOutputStream(dst) にデータコピーして
(new File(src).delete()
するとか。
37デフォルトの名無しさん:02/09/25 21:01
>>33
Win98です。
39デフォルトの名無しさん:02/09/25 21:07
autoexec.batが3つくらい見つかったんですけど、どれに
SET PATH=%PATH%;[Javaをインストールしたディレクトリ]\bin;
を書くのですか?
>>39
普通は c:\autoexec.bat
41デフォルトの名無しさん:02/09/25 21:13
>>40
ありがとうございます。
これで出来そうです。
何か問題が発生したらまた質問すると思いますので、迷惑だとは思いますがまたよろしくお願いします。
>>41
迷惑です。
43デフォルトの名無しさん:02/09/25 21:22
質問。
ワーカースレッドでSQLクエリ実行中に、
別スレッドからワーカースレッドを止めるにはどうしますか?
>>43
executeQuery() か executeUpdate() がなかなか戻らないという想定で良いか?

Thread#stop() を使う。ワーカースレッドの中では ThreadDeath が発生するので、
ちゃんと finally ブロックでコネクションやステートメントをクローズするように
作る。

ResultSet#next() が多すぎて止まらない場合は Thread#interrupt() を使う。
while(! Thread.isInterrupted() && rs.next()){…} みたいな感じで。

出来れば先に interrupt() して 1 秒待機して終了していなかったら stop()
とかが良いと思う。

t.interrupt();
t.join(1000);
if(t.isAlive()){
  t.stop();
}
4543:02/09/25 21:48
>>44
そう、executeQuery() か executeUpdate() がなかなか戻らないという場合です。

でもstop()は非推奨なわけですが、大丈夫でしょうか?
4643:02/09/25 21:50
続き

stop()だとロックが開放されてしまうのが怖いです。
47デフォルトの名無しさん:02/09/25 22:17
いくつかの本を見てみると、
public static void main(String args[])
というのと
public static void main(String argv[])
というのがあるのですが、どちらでも好きなほうを使えば良いのですか?
48デフォルトの名無しさん:02/09/25 22:19
>47
明らかに「argv」は不自然。

んで質問。
Ctrl+C でプログラムが中断させられるのを防ぎたいのですが、
どうすればいいんでしょうか?
>>47
郷に入っても郷に従う気の無い著者の本は避けたほうが良いかも。
っつーことで、オススメなのは
public static void main(String[] args)
>>48
あ、俺も それ聞きたい。
ctrl-C で 強制終了されたときって例外も無しに終了しちゃうから
ファイル入出力とかしてると作業途中のファイルとか残っちゃうんだよね。
>>48
シャットダウンフックってCTRL-Cシグナルハンドルできなかったっけ?
とおもってやってみたら、一応できた。

public class HandleTest {
 public static void main(String[] args) {
  Runtime.getRuntime().addShutdownHook(new Thread(){
   public void run(){
    System.out.println("強制停止っぽい");
   }
  });
 try{
   synchronized(HandleTest.class){
     HandleTest.class.wait();
   }
  }
  catch(Exception e){}
 }
}
手元がWin98なので、他の環境は知らん。各自調べれ。
あと、フックするだけでシグナル種別の識別できないから、できることは
限られてる。再開なんかしちゃいかんと思う(永久ループになる)。

一番いいのは、「コンソールアプリじゃなくてSwingか何かでGUIにする」
だろう(藁

>>50
File#deleteOnExit()ってメソッドなかったっけ?
52デフォルトの名無しさん:02/09/25 23:03
だからstatic メソッドってオーバーライドできないの?
53デフォルトの名無しさん:02/09/25 23:04
ge
54デフォルトの名無しさん:02/09/25 23:49
JDKをインストールしたのですが、Dドライブにインストールするのはやっぱマズいんでしょうか?
下のプログラムが実行出来ません。

class Test {

public static void main (String args []) {
System.out.println ("Hello.");
}

}
5548:02/09/25 23:50
>51
それはシグナルハンドリングじゃないっす。
「何らかの原因でVMが終了する(異常終了除く)」or「プログラムが終了する」直前に後始末をつける為のフック。
>>50の要求にはそれで答えられるんですけどね。
やりたいのは「CTRL+Cを無視して処理を続行する」って事。
やっぱムリかなぁ・・・
>>54
別にまずくはない。
>>55
だからjavawで起動してコンソールつかうのやめればイイデソ。
58デフォルトの名無しさん:02/09/26 00:04
>>56
では何故思い通りの結果にならないのでしょうか・・・
CPad for Java2 SDKというソフトを使って実行などを行っているのですが、実行結果とは全然違った結果が返ってくるのです。
>>58
そりゃ実行結果じゃなくてたんにJVMがエラー返してるだけだろ。

例外発生時の質問をする上での常識:
スタックトレース晒せ。
さらすまでもなく、Exception in thread "main" NoClassDefFoundError
だろ。
61デフォルトの名無しさん:02/09/26 00:34
Java、というかプログラミング初心者なんですが、
J-PHONEのJavaアプリで時計を作ろうと思ってるんですが、
日本標準時の拾得が上手く行きません。
どうやるのがいい方法なんでしょう。
62デフォルトの名無しさん:02/09/26 00:48
>>60
それはどんなときにおこる例外ですか?
63デフォルトの名無しさん:02/09/26 00:55
UNIXのsyslogに動作ログを書きたいのですが
syslog.conf の設定と実際JAVAでどのように書けばよろしいのでしょうか?
教えてください お願いします
>>51
File.deleteOnExit() だと
例えば IBM の JDK1.3 とかでファイル削除しなかったりする。
Sun の JDK1.3.1_04 だと消えるみたいだけど、1年か2年ぐらい前に
Sun の JDKで試したときも消えなかったからダメだと思ってた。
66デフォルトの名無しさん:02/09/26 02:26
64> どうもありがとうございます

ずーっと調べていたんですが、Log4jってのは標準なものなのでしょうか?
ふつうsyslogに出力する場合はこれをつかうのでしょうか?
フリーソフトなのかなとか思っていたのです
67デフォルトの名無しさん:02/09/26 02:27
readline() ワーニング出るんですけど1行読み込みにはAPIなにつかいます?
readLine()
API仕様に書いてなかったか?BufferedReader使えって

それはそーと
ウォーニングと書きたくなければ警告と書きやがれ括弧推奨
7070:02/09/26 03:22
マナタンのやさしいJavaとやさしいJava活用編を読みました。
将来的にはJavaでゲームを作りたいのですが、次に読むべき本
としては何が適当でしょうか?
あくまでもやさしくしてほしいわけか
先行者のハック
73デフォルトの名無しさん:02/09/26 05:49
Javaでグラフを書かなければいけないことになって困ってます。
とりあえずtranslateして現在中央に原点を設定しています。。
それで今までは直線を引くのをdrawLineでdrawLine(0,0,50,50)みたいに
2点の座標を入れて表示させていたのですが
今度は角度θだけのデータで、原点から直線を引きたいのです。
この場合どのようなソースを書けばいいのかわかりません。
何か良い方法がありましたら教えてください。よろしくお願いします。

>>73
角度θだけ? 距離 R もいるだろ。
プログラム中のデータは極座標で扱いたいって意味だよな。
極座標から直交座標への変換は高校の代数幾何の教科書に載ってるよ。
75デフォルトの名無しさん:02/09/26 07:40
アプレットに
"http://localhost:8888/test.html?param=50"
というようにURLに値を渡したときに
このparam=50をアプレットで取得する方法ってのは、
ありますでしょうか。
この変数"param"は他のアプレットから値が可変で送られてくる
仕様になっております。お知恵拝借よろしくおねがいします。
>>74
数学わかりましぇん。てへてへ。
double x = R * Math.cos(theta);
double y = R * Math.sin(theta);
78デフォルトの名無しさん:02/09/26 09:15
class A{
static void met(){
System.out.println("親");
}
}
class B extends A{
static void met(){
super.met(); //この部分でエラーが出るのはなぜですか?
System.out.println("子");
}
}
class BlueBook{
public static void main(String args[]){
A a = new A();
B b = new B();
a.met();
b.met();
}
}
このソースをコンパイルすると「super は未定義な変数です」と出るんですが
なぜですか?

>>78
static メソッドの中では this や super は使えません。
80デフォルトの名無しさん:02/09/26 09:38
>>79
super を消せばオーバーライドは出来ていると言う事ですか?
static メソッドでオーバーライドつうかどうか知らんけど、そのコードなら
static 消せばいい。それか親のクラス名を指定してやるか。

static void met(){
  A.met();
  System.out.println("子");
}
>>80
A b = new B();
しなければ オーバーライドできているか確かめられんと思うのだが。
ある文字列があって、それをディレクトリやファイルの名称とする際に
その文字列が使用しているプラットフォームでファイルやディレクトリ名に
使用してはいけない文字が含まれているかを
確認する簡単な方法はないでしょうか?
>>83
System.getProperty("java.io.tmpdir") ディレクトリに
File#createNewFile() でファイルを作成してみる。
85デフォルトの名無しさん:02/09/26 10:03
次のコードの出力は何になりますか?

byte b1 = -5;
int i = 0xff;
byte b2 = (byte)(b1 ^ i);
b2++;
System.out.println(b2);

この問題で答えが、 5 になってるんですが意味が分かりません。
なぜ5になるんですか?
8685:02/09/26 10:07
この場合 i には16進数のff(10進数の240)が入って、
1111 1011   ← −5
1111 0000   ← 240
0000 1011   ← XOR
b2に11が入ってインクリメントで答えは12になるような気がするんですが
>>86
それだったら
i = 0xF0;
のような気もする。
8883:02/09/26 10:14
>84
すると、tmpとはいえ一度はファイル・ディレクトリを作成する以外に
確認する方法はないんですね。

便乗で申し訳有りませんが、作成できなかった場合
どの文字が元で作成できなかったかをエラーメッセージをして
ユーザに表示したいのですが、こういったことを実現する方法はありませんか?
byte b1 = -5; //   11111011
int i = 0xff; // ...11111111
byte b2 = (byte)(b1 ^ i); // ← ^はXOR演算子なので、00000100
b2++; // 00000101
System.out.println(b2); // 5
1111 1011 -5
1111 1111 255
0000 0100 XOR
0000 0101 ++
>>88
一文字ずつバラして全部createNewFile() してみれば?
>>88
じゃぁ一文字づつ分解して createNewFile() が成功するかどうか確認するとか。
どうせたいしたコストなんてかかんないだろうし。あるいはインストール時 (初回
起動時) に 0x0000〜0xFFFF までのうち createNewFile() に失敗する文字の
マップを作っちゃうとか (ひどく強引だが)。

ちなみにユーザが入力した文字をそのまま createNewFile() するとセキュリティ
ホールになるので注意。
9384=92:02/09/26 10:23
かぶった
鬱だ氏膿…
9485:02/09/26 10:25
おかげさまで理解できました、ありがとうございます。
95デフォルトの名無しさん:02/09/26 11:05
java.awt.MenuBar ってFrameにしかセット出来ないんですよね?
PanelとかAppletとかにはセット出来ますか?
yahooゲームや将棋倶楽部24などのjavaを使用するサイトで接続がすぐに切れて
しまうのですがjavaの問題なのでしょうか?
下手な文章ですがすいません、おねがいします
>>96
回線の問題と思われ
98デフォルトの名無しさん:02/09/26 13:21
9996:02/09/26 13:33
みかかに電話したら留守録になりあとから連絡が来るそうです

ありがとうございました。
100デフォルトの名無しさん:02/09/26 13:53
サーブレットのマルチスレッドでの動作に関する質問です。

サーブレットは、1インスタンス・マルチスレッドだそうですが、
下記のようなサーブレットの場合、ユーザーAのスレッドが
(2)に達する直前に、ユーザーBのスレッドが(1)の処理を
行うとAのセッションにはBのUserオブジェクトがセットされて
いるということが起こるのでしょうか?

public void doPost(HttpServletRequest request,
           HttpServletResponse response)
           throws ServletException, IOException {

  String userId = request.getParameter("userId");
  String password = request.getParameter("password");
  
  // ログイン処理。データベースからユーザーデータを取り出し、
  // Userオブジェクトを生成。
  User user = // (1)ログイン処理
  
  HttpSession session = request.getSession();
  session.setAttribute("user", user); // (2)セッションに User をバインド
  
  ReqeustDispatcher rd = request.getRequestDispatcher("ログイン後のページ");
  rd.forward(request, response);
}
>>100
ローカル変数はスレッドごとに用意されるのでその心配はない。
102100ちゃうけど:02/09/26 14:34
前から疑問だったので便乗させて下さい
ローカル変数が個別に確保されるのは知ってるものの
どうもイメージがわかないのですが、
スレッド毎にスタックエリアが確保されるのでしょうか
以前縦書エディタを教えてほしいと言ったものです。
教えて頂いたソースを実行したのですが、何も表示されませんでした。
何が足りないのでしょう?
Javaはほとんど初めてなのでご指導お願いします

import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class VTextArea extends JTextArea {
protected void paintComponent(Graphics g) {
Dimension size = getSize();
((Graphics2D)g).setTransform(AffineTransform.getRotateInstance(
Math.PI/2, size.width/2, size.height/2));
super.paintComponent(g);
}

public static void main(String args[]){
VTextArea myApp = new VTextArea();
}
}
>>102
そういうこと。C/C++ のスタック変数と同じような感じの領域がスレッドごと
に用意される。
10583:02/09/26 16:02
>83です。
最初に質問したものはある程度対処できたのですが、
JFileChooserでOpenダイアログ等を表示して
ファイル名に例えば
 //a/a
といったファイル名を入力しgetSelectedFileで取得するとパスが
d:\test/a/a
となってしまいます。
ファイル名に/や\を入力されてしまった場合、どのようにして対処すればよいでしょうか?
なんとなくJFileChooserを継承してオーバーライドしないと対処できそうになさそうですが・・・
> どのようにして対処すればよいでしょうか?
あんたはどうしたいわけ?
>>103
おいおい、それは誰かのジョークのコードだろ。真に受けるなよ。
どこがジョークかというと、表示を単純に回転しているだけで、
縦横の比率の不一致も、カーソルでポイントする位置の変換も
全く考慮していない。
>>103
アレって冗談じゃなかったのか?

とりあえず JTextArea とか使わずに JTextComponent とか
TextComponent の継承クラスを自作して、そーゆーので
エディタ作れるようになってから、もう一度質問してください。
ageちった… 鬱氏
11083:02/09/26 17:31
>106
/や\等の文字はWindowsでは(他のOSあまり詳しくないので他はわかりませんが)
ファイルやディレクトリの名称としては使ってはいけないものなので
それらを入力してApplyボタンを押下した際には
エラーメッセージを表示してユーザにわかるようにしたいです。
103です。
ガーン・・・そうだったんですね。
107さん、108さんご指摘ありがとうございました。
(中身確かめないでコピペしてました)
すみません。もう少し勉強してきます。
>>110
先の 1 文字づつ分解して実際にファイルを作る方法で確認できるし、
セパレータが入ってるか判定したいなら fileName.indexOf(File.separatorChar) >= 0
で判定できる。
113デフォルトの名無しさん:02/09/26 18:42
とりあえず、初心者向けの本を一冊読みました。
次ぎはやっぱり、ゲームを作ってみたいのですが、
どういった本を読めば勉強になるでしょうか?
何のゲーム作る気ダヨ
>>113
いい本もあるかもしれないが、あまり期待しないほうがいい。
自分でネットでサンプルコードを漁って、リファレンス片手に
分析してみるのがいいんじゃないの
116デフォルトの名無しさん:02/09/26 18:54
>>113
画面表示とキーイベントが分かってれば
音ゲー以外はどんなゲームでも作り始める事はできるはずだ。

実際に問題に突き当たってからその解決方法の載ってそうな本を捜すなり
ここに相談しにくるなりすれ。
>>113
いきなりロープレとか言い出すと100%間違いなく挫折するので、
Vectorによくあるようなミニゲーム作るようにしる。
118113:02/09/26 18:56
>>114
シューティング。BGMはスラッシュメタルで。
>>115
とりあえず、大きい本屋で参考になりそうな本を探してきます。
>>116
困ったときは頼らせてもらいます(w
119113:02/09/26 18:58
>>117
うーん、とりあえず、JAVAのシンプルなゲームのソースを研究してきます。
↓3Dについてはここがいいかも。詳しく見てないけど、ソースついてた
http://www.asahi-net.or.jp/~cs8k-cyu/java3d/index.html
121デフォルトの名無しさん:02/09/26 19:17
javaでプラグインみたいなのってどうやってするのですか?

Winでいうところの
「dllファイル追加で機能追加」
みたいなの。
「class(jar)ファイル追加で機能追加」
「ClassLoader リフレクション」あたりで検索
共通インターフェイスを決めるのを忘れずに
124113:02/09/26 19:46
あのう、早速で申し訳ないのですが、拡張子が
.jarのファイルをエディタで中身を見ようとしたのですが、
ものすごい勢いで文字化けを起こしました。
このファイルを見る事はできるのでしょうか?
jarは圧縮ファイル
>>124
その程度のことなら>>10を辿れ
今気付いたが、>>10にある
http://java-house.etl.go.jp/ml/topics/
このURLはもう古い。こっちだ
http://java-house.jp/ml/topics/
128デフォルトの名無しさん:02/09/26 19:57
ハロはろー

質問です。
例えば、

s="パフパフ";

と、変数初期化代入するとしますよね
この場合、変数の型を指定してないのでint型に
なると思うのですが、
文字列の型は決まってないのでしょうか?
却下
130デフォルトの名無しさん:02/09/26 20:37
java 2 SDK 1.3.1がうまく動作しないんですが。コマンドプロンプトに
java-versionと入力しても内部コマンドまたは外部コマンド操作可能な
プログラムまたはパッチファイルとして認識されません。とでてしま
いますTT
環境変数のPATHの値の末尾に;c:\jdk1.3.1\binといれてOKにして
も再起動しろってウィンドウがでないです。そこだけ本とちがくて
あとはまちがってないと思います。OSはNTです。
java -version
132デフォルトの名無しさん:02/09/26 20:40
>>116

俺は Swing (SWTでもいいかな) 使って何かアプリケーション
(ゲーム作ろうっていうなら、シナリオエディタ がいい) 作るのがいいと思う。

使いやすい GUI ライブラリを使えば、設計の勘所も自然と学べると思う。
(いわゆる Model, View, Controller の分離ね)
133130:02/09/26 20:50
131さんありがと〜!!
134デフォルトの名無しさん:02/09/26 22:31
javaでtiffファイルをgifに変えることは可能ですか?
>>134
自力で変換プログラム書けば可能です。
とゆーのは置いといて、JAI とか調べてみたら?
jdk1.4.0以降だったら javax.imageio に入ってる。
JAIって標準では tiff読み込みも gif書き出しもサポートしてないみたい。
>>135
ありがとう、探してみます。

>>136
え、そうなんですか…。
.Framework使えば簡単にコンバートできるんだけど、
できることならjavaだけでやりたいなあ…
>>137
http://java.sun.com/products/java-media/jai/iio.html
によれば
As of JAI 1.1.1_01, the latest public version of JAI,
the image formats supported by these ancillary codec classes are: BMP, GIF (decoder only), FlashPix (decoder only), JPEG, PNG, PNM, TIFF, and WBMP.
だそうです。GIFの書き出しは Unisys特許とのからみでダメなのか?
よく知らんけど。
139デフォルトの名無しさん:02/09/27 00:02
すいません、平方根を求めるにはどうしたら。
マジでゲームしか見たことない
おまいら何を作ってんの?
141デフォルトの名無しさん:02/09/27 00:20
アークタンジェントのかき方ってどうでしょう?
POWを使ってかくのでしょうか?
142m ◆wH01DHdg :02/09/27 00:27
Javaで参照変数を引数にした場合は
戻す必要ないですよね?
でもなんかそういうプログラムはよくないのでしょうか?
例えば
/*******************/
int a[]={1,2,3};
change(a);//このメソッドは下で定義してます。
for(int i=0;i<3;i++){
System.out.println(a[i]);
}


void change(int a[]){
a[0]=2;
}
/***************************/

こうすれば結果は2,2,3ですよね?

でもこういうのはよくなくて、いちいちリターンしろと言われました。
意味がないとおもいますが。
144m ◆wH01DHdg :02/09/27 00:33
つまり、
a=change(a);


int[] change(int a[]){
a[0]=2;
return a;
}

にした方がいいのでしょうか?
145デフォルトの名無しさん:02/09/27 00:35
>>59
JVMって何ですか?
スタックトレースって何ですか?
余りにも無知ですが、教えてください。
>>144
何か特殊な使い方をしたいのでなければ、いらん。
System.arraycopyだってdstを戻したりしないし。
>>140
俺、Java好きだけど、
携帯やアプレットのおもちゃのようなゲームならともかく、
Javaで作られたゲームなんてほとんど見たことがない
いったいどこで見たの?

ちなみにゲーム製作板のスレね。
Javaでゲーム作る話してるキチガイがいるよ(藁
http://game.2ch.net/test/read.cgi/gamedev/1013953851/l50
148m ◆wH01DHdg :02/09/27 00:40
>>146
一般的にJavaの開発ではこういう風に
Cのポインタ的に参照変数を使うのことはよくあるのでしょうか?
それともあまり使わない方がいいのでしょうか。
私的にはこういう場合にリターンしなくてもいいように、ポインタや
参照変数があるのだから、それを使わないということは参照変数の
意味がないし、Javaの有用性がなくなると思うのですが。
Cで言えば、ポインタを使ってはいけないと言っているのと一緒だと
思います。
ただJavaではポインタという意識がないために、こういうソースは
Javaの開発者にとってはわかりにくいのでしょうか。
>>145
http://www.gimlay.org/~javafaq/S000.html
Java VM(JVM)って何ですか?
http://www.gimlay.org/~javafaq/S003.html
実行時にエラーが出力されたのですが、どのように見ればいいのでしょうか?
>>142
> Javaで参照変数を引数にした場合は
> 戻す必要ないですよね?

いじられた後の参照が目的ならね。

> でもなんかそういうプログラムはよくないのでしょうか?

1つのメソッドで2つの参照を同時にいじってリターン
したいって場合をのぞいて、普通はそんなコード書かない。
「inputに対してoutput」の方が分りやすいし勘違いも少ないだろ。
例えば、

void change(int a[]){
a = {2, 2, 3};
}

ってコードを換えた場合、結果は1、2、3になるだろ。勘違いする
奴が悪いと言えるが、分りにくいコード書く奴も悪い。
だから、

int[] change(int a[]){
a[0] = 2;
return a;
}

とし、a = change(a);に換えた方がいい。


151m ◆wH01DHdg :02/09/27 00:51
>>150
なるほど。
でもCではそんなことしないと思います。
それはやはり明示的にポインタがあるからですかね。
配列で
a={}としている場合は、あたらしいオブジェクトをいれているので、
参照先が変わるから、結果は1,2,3ですよね。
その辺をきちんと理解しておけばいいと思うのですが。
私には「わかりにくいとか言うのはそのプログラマーの技術不足なのでは?」
と感じてしまうのですが。
>>150
メモリに余裕があるなら
int[] change(int a[]){
 a = a.clone();
 a[0] = 2;
 return a;
}
のがいいね。
>>151
ちゃんと C 勉強してるか?
標準関数でも
void *memcpy( void *dst, const void *src, size_t length );
みたいにポインタ返すのはいっぱいあるんだけど。
154m ◆wH01DHdg :02/09/27 00:55
なるほど。
Javaではポインタ的考え方はしてはいけないんですね。
よくわかりました。
ただ
a=change(a)というのは同じ物に同じ物をいれているので、
無意味に感じるので、クローンしてから入れる方がいいのですね。
j2sdk1.3をインストールして、j2sdk1.4をインストールして、
JBuilder(sdkは1.3らしい)をインストールしたら、レジストリが
どうかしちゃったらしく、コマンドラインでjavaをすると、
「ランタイムは1.4を要求してるのに、レジストリには1.3とあります」
みたいなエラーが出て動かなくなりました。
その後、力業でレジストリを削除し、sdkとJBuilderをアンインストし、
j2sdk1.4を再インストールしてjavaコマンドは使えるようになりましたが、
今後JBuilderを再インストールしてよいものか悩んでます。

同じような経験のある人います?
あるいは、どなたかアドバイスを。
俺としては、コマンドラインとJBuilderの両方を使いたいんです。
(どっちか言うと、コマンドライン)
>>151
> でもCではそんなことしないと思います。

それは思い込みだと思います。
反例:標準ライブラリの文字列操作関数
157m ◆wH01DHdg :02/09/27 00:57
>>153
当然ポインタ返すことはありますよ。
私が言っているのは引数と戻り値が同じポインタで
しかもそれをまた同じポインタに代入することは無意味だと思うと
いうことです。
>>157
つまり、C でも
void *memcpy( void *dst, const void *src, size_t length );
でなくて
void memcpy( void *dst, const void *src, size_t length );
であった方が良いわけですね?
Cの標準ライブラリ関数が、引数でとったアドレスをそのまま
返すことが多いことの理由は、一つにはエラー処理のためだと思う。
(つまり、例外発生時にNULLを返す)
Javaには例外処理があるので、この意味ではいらない
160デフォルトの名無しさん:02/09/27 01:00
Stringの文字列の文字コードをEUC→SJISに変換して戻り値として渡したい
のですが、どうすればいいですか?SJIS→EUCも教えてください。
162m ◆wH01DHdg :02/09/27 01:04
この辺はJavaでも微妙なところなんですかね…。
>>151
> でもCではそんなことしないと思います。

だろうね。言いたい事はよく分る。
でもJavaでは、int[]型なら>>144の様にできるけど、
int型だとできないんだよね。他のプリミティブ型や、
プリミティブのラッパークラスもできない。
だから、これらを操作するなら戻り値を使う。

> 私には「わかりにくいとか言うのはそのプログラマーの技術不足なのでは?」

Cでも分りやすいコードを書くってのは大事だろ。
分り易いってのは、初心者でも分るコードなんだよ。
Javaはオブジェクト指向型言語だから、オブジェクトに対し、
メッセージ(引数)を送り、その結果レスポンス(戻り値)を
貰うというのが一般的な初心者でも理解できる設計なんだよね。
>>159
>(つまり、例外発生時にNULLを返す)
memcpy って例外発生すると NULL 返すんですか?
fopen() とかは失敗すると NULL 返すけど。
165m ◆wH01DHdg :02/09/27 01:07
>>163
分かりました。
ただ実際の開発の現場でもやはり参照変数を戻すのが
基本なのでしょうか?
習熟したJavaの技術者が集まっていてもですか?
> ただ実際の開発の現場でもやはり参照変数を戻すのが
> 基本なのでしょうか?
> 習熟したJavaの技術者が集まっていてもですか?

基本です。Javadocだけで概要を把握しやすいし。

>>165
>参照変数を戻すのが基本
Java では、じゃなくて C でも C++ でも基本だと思うけどね。
(参照変数っつかポインタだけど)
168m ◆wH01DHdg :02/09/27 01:12
わかりました。
ありがとうございました。
Cではポインタを忘れた方がいいようですね。
>>165
初心者は とかく型破りな書き方を好みますが、
それは C でも Java でも関係ないです。
170m ◆wH01DHdg :02/09/27 01:14
Cではじゃなくて、Javaでした。
>>167
さすがにCでも戻すのですか????
あなたがいってるのは
「ポインタが戻り値になることがある」ということではないですか?
私は
「引数と戻り値が同じポインタで、しかもそれを同じポインタに入れる」
という処理のことを言っています。
Javaではそうしなければならないようですが、Cでまでそんな
ことをするのですか?
>>142
つーか、メソッドの引数に処理対象の参照を渡すぐらいなら、
その処理対象オブジェクトに対するメソッド呼び出しの形で実装しろよ。

例えば>>142を(ちょっと無理矢理っぽいが)書き換えればこんな感じだな。
---
public class Hoge {
 private int[] a = {1,2,3};

 public void change() {
  a[0] = 2;
 }

 public void print() {
  for(int i = 0; i < 3; i++){
   System.out.println(a[i]);
  }
 }

 public static void main(String[] args) {
  Hoge hoge = new Hoge();
  hoge.change();
  hoge.print();
 }
}
---
>>164
すまん。思い込みだったらしい
173m ◆wH01DHdg :02/09/27 01:17
>>171
処理対象の参照変数がローカル変数の場合はどうするんですか?
>>m ◆wH01DHdg
なんか、ろくに考えもせずにただ
「Javaの参照はCのポインタとは違うんですねぇ」
とか言ってないか?
175m ◆wH01DHdg :02/09/27 01:19
うーん、私は初心者丸出しだったのですね。
でもこれではポインタの意味があまりないと思うのですが。
>>m ◆wH01DHdg
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strcpy.3.html
> 返り値
> strcpy()関数とstrncpy()関数は 受け側の文字列destへのポインタを返す。
177m ◆wH01DHdg :02/09/27 01:21
ポインタがあるのは、こういう風に戻り値を設定せずに
値を変更できることに魅力があると思っていたのですが。
それがないとなると、ポインタなんて何の意味もないので、
全部値で受け渡せばいいのではないでしょうか。
178171:02/09/27 01:22
>>173
> 処理対象の参照変数がローカル変数の場合はどうするんですか?
---
  Hoge hoge = new Hoge();
---
そもそも、ここの変数hogeはローカル変数です。
>>177
>ポインタがあるのは、こういう風に戻り値を設定せずに
>値を変更できることに魅力がある
おいおい…
180m ◆wH01DHdg :02/09/27 01:25
>>176
この関数の中で何をしているのか知りませんが、
これはむしろ戻り値のポインタを受け取らないと変更されないのでは
ないでしょうか?
それとも戻り値のポインタを受け取らなくてもdest文字列は変更
されていますか?
181デフォルトの名無しさん:02/09/27 01:26
ハロはろー

質問です。
例えば、

s={"パフパフ"};

と、変数初期化代入するとしますよね
この場合、変数の型を指定してないのでint型に
なると思うのですが、
文字列の型は決まってないのでしょうか?
182m ◆wH01DHdg :02/09/27 01:26
>>178
ここでの処理対象はint a[]だと思いますが。
>>179
やはり根本的な誤解があるようですね。
うーん。難しい…。
>>180
>この関数の中で何をしているのか知りませんが
strcpy 知らないってどーゆー事ですか?

>それとも戻り値のポインタを受け取らなくてもdest文字列は変更
>されていますか?
されています。
184m ◆wH01DHdg :02/09/27 01:28
>>183
ああ、ストリングコピーでしたか。
ただストリングコピーで
a=strcpy(a,b)なんてすることありますか?
Javaの参照とCのポインタ(アドレス)の用法上の違いは、
・基本データ型を指せるかどうか
・相対参照(配列の要素を指していると見做すこと)の可否
(その他関連:GCの有無)
くらいのもん。だと思う。
>>184
なんで
void strcpy(char *dest, const char *src);
でなくて わざわざ
char *strcpy(char *dest, const char *src);
と dest の値を返してるか考えてみてください。
Cでポインタを使った出力引数が常用されるようになったのは
帰り値で値1つしか外にとりだせない(生の構造体も不可)
制約を回避するための方便だよ。
188181:02/09/27 01:33
お前ら人の話聞いてるのかよ

マジで教えろください
189m ◆wH01DHdg :02/09/27 01:34
>>185
相対参照って何でしょうか??
うーん、これは自分で勉強しないとダメですね。。
>>186
やはり「わかりやすいから、一応戻している」のでしょうか。
でもこの場合は、この戻り値を受け取れば例えば

c=strcpy(a,b)すれば、2つコピーできますよね。
標準関数だからこういう処理にも対応するためにポインタを戻している
のではないでしょうか?
a=strcpy(a,b)とするのは無意味ですから。
190m ◆wH01DHdg :02/09/27 01:35
>>187
そうですよね。
だからこそポインタの場合は戻り値で戻す必要はないと思っていました。
ただ戻り値が1つでいい場合はポインタでも戻せということなのでしょうか。
>>189
>c=strcpy(a,b)すれば、2つコピーできますよね。
こーゆーのを 2つコピーと言うんだろーか?
>>189
おいおい、それじゃあ
char a[] = "mojimoji";
char *b = a;
char *c = a;
で文字列を3つにコピーできちゃうのかよ
193181:02/09/27 01:38
(゜д゜)<あらやだ!

知らないのね
194m ◆wH01DHdg :02/09/27 01:39
>>191
ああ、strcpyの中身がわからないのでなんともいえませんが、
aとbは別のアドレスなんですね。
それではc=strcpy(a,b)は意味がないし、2つコピーとは言えませんね。
>>181 さすがにそこまで間違ってると、君に何かを教える自信がない
196171:02/09/27 01:39
>>142
処理の対象となるのはint[]型の変数で、それに対する
change()とprint()という2つの操作がある。
これら処理対象と操作をひっくるめて実現したのがHogeクラス。

…こんな感じで考えるのがオブジェクト指向。
オブジェクト指向でコードを書いていれば、
メソッドの引数に処理対象の参照を渡すなんてことは
ほとんどなくなるはず。
197181:02/09/27 01:41
なに間違えてる?
コードなら気にしないで

これからだから。

まず、概念を理解してから…
(;´Д`)俺ばか…
>>194
> aとbは別のアドレスなんですね。

意味が分りません。a == bです。
199m ◆wH01DHdg :02/09/27 01:41
>>192
そうですね。
おかしかったです。strcpyの中で a=b;という感じなのかと
思っていました。

だとするとなぜポインタを戻しているんでしょうね。
さきほど誰かが書かれていたと思うのですが、例外用なのでしょうか。
それともCでもinput,outputをできるだけはっきりさせた方がいい
という方針なんでしょうか。
> s={"パフパフ"};
>
> と、変数初期化代入するとしますよね
できねぇよ。型書けよ。

===終了===
>>198
おいおい…
202m ◆wH01DHdg :02/09/27 01:44
>>196
なるほど、引数に処理対象の参照変数を渡している時点で
オブジェクト指向から外れていると。
うーん、深いです。でもすごく勉強になります。
つまりそういう場合は、クラス化するべきということですね。
やっと理解できました。
>>198
あ、クローンじゃないんですか。
>>201
あれ?暗黙で型変換しないっけ?
(char *)a == b
204181:02/09/27 01:45
?だって独習javaでそうなってるんだもん
>>202
> あ、クローンじゃないんですか。

・・・・判った。君がCを解ってないのが判った。↓ここに逝っておいで
http://www.catnet.ne.jp/kouno/c_faq/c6.html
>>204
String[] s = { "パフパフ" };

String[] s;
...
s = new String[] { "パフパフ" };
しかありえんと思うぞ。
207181:02/09/27 01:51
あれ?stringってデータ型でしたっけ?
208m ◆wH01DHdg :02/09/27 01:55
>>205
ちょっと勘違いしました。
ポインタですからクローンも糞もありませんでした。
ただもしかしたら別のアドレスにいれてるのではないかと
思いまして。値だけ一緒になるようにして。
209181:02/09/27 01:56
じゃねぇ…クラスだよねぇ

やっぱint型として扱われてるの?
210m ◆wH01DHdg :02/09/27 01:57
うーん、strcpyでポインタを戻しているのはアドレスをはっきりさせる
ためではないでしょうか。
アドレスを表示したり。
ただ
a=strcpy(a,b)ということは無意味だと思います。
Cの開発でもこんなことしますか?
>>209 そのint型ってのはどっから出てきたんだオイ
>>209
クラスってデータ型じゃなかったのか。
データ型 <-> void だと思ってたよ。
213m ◆wH01DHdg :02/09/27 02:00
今日はありがとうございました。
考えてみます。
ちょっとレス流れるの糞早いよ。
>>155
JBuilderは使ってないので知らんが、JBuilderの後にJ2SDK1.4インストールではダメか?
216181:02/09/27 02:01
データ型を宣言しない場合は
int型として扱われると

書いてある…
strcpy(strcpy(a, b), c) なんてことができるな。
>>216
っていうか、それコンパイルできるのかよ
219171:02/09/27 02:03
>>202
ついでに、Cの
---
strcpy(dest, src);
---
ってのをJavaっぽく書くと、
---
StringBuffer dest = new StringBuffer(src);
---
とか
---
StringBuffer dest = new StringBuffer();
dest.append(src);
---
ていう感じになるかな。
# やっぱり、CとJavaは別物だってことを意識しないと。
>>217 意味ねーw
221m ◆wH01DHdg :02/09/27 02:07
>>217
???
これは意味がないのでは?
>>219
newしているということはアドレスは別なのではないですか?
つまりクローンですよね。
222181:02/09/27 02:07
だからコードのことは気にしないで

コンパ無理なのは
当然だろうけど、その部分だけ書いてあるんだよ
本にも
>>222 じゃあ本が間違ってるか、解釈がおかしいんだよ。

===終了===
http://www.shoeisha.com/book/errata/
224181:02/09/27 02:12
また明日、図書館行って読んでみるね
225m ◆wH01DHdg :02/09/27 02:13
私の現在の理解では
・Javaでは処理対象が参照変数の場合も戻した方がいい。
 (ただ処理対象が参照変数になる時点でオブジェクト指向から外れている)
・Cでは標準関数などでは戻しているが、普通の関数では戻さなくてもいい。

なのですが。
226m ◆wH01DHdg :02/09/27 02:14
今日はありがとうございました。
strcpyという機能そのものが、Javaでは必要ないでそ。
Immutableオブジェクトは実体コピーなんか作る必要ないでそ。
参照だけコピーすりゃ十分。
>>225
>Javaでは処理対象が参照変数の場合も戻した方がいい。
例としては Object[] java.util.List#toArray(Object[] a) とかがあるね。
>>227
strcpy を出してきたのは
int[] change(int a[]){
 a[0]=2;
 return a;
}
より
void change(int a[]){
 a[0]=2;
}
の方が良い。
Java では前者の方が良いのかもしれないが
C では前者のような書き方はしない。みたいなこといったからだよ。
誰も Java に strcpy が必要だなんていってない。
>>228
ちょいまち、それは違うでしょ。
新しい配列のもつべき型のヒントを与えているのであって。。。
231 ◆k/Ubp.Kg :02/09/27 02:36
>>228 ダウト。
Javadoc読まれよ。
>>230
>新しい配列のもつべき型のヒントを与えているのであって。。。
いやだから
void java.util.List#toArray(Object[] a)
でもいいわけじゃん。
(a.length < list.size())でなければ。
まぁ確かに非常に良い例って訳ではないかも。
>>232
違う例だし。list.toArray (a) == a ならまだしも。。
まあ、「処理対象が参照変数の場合も戻した方がいい」という言葉自体が
意味不明なのでアレだが
>>233
list.size() <= a.length であれば
list.toArray (a) == a は保証されてるはずだと思ったけど。
>>234
ガーン!ガーン!ガーン!ガーン!・・・

知らなかった〜。スマソ
236 ◆k/Ubp.Kg :02/09/27 03:01
>まぁ確かに非常に良い例って訳ではないかも。
自分もそう思いますた。でも他に良い例って見付からないなぁ…。

>>234
保証されてます。
237217:02/09/27 03:04
間違えた。strcat のつもりだった。
要するに strcpy などがポインタを返すのは、その返値を
別の関数の引数にできるようにするためだろうと言いたかったわけだが。
238 ◆k/Ubp.Kg :02/09/27 03:22
strcpyだと、
  strcpy(c, strcpy(b, a));
…かな。

>要するに strcpy などがポインタを返すのは、その返値を
>別の関数の引数にできるようにするためだろうと言いたかったわけだが。
漏れもそれ以外の使い方を知らない。でもそれはCだからやるわけで、Javaだと
必要ない…っていうか、そういう書き方って好まれないような気がする。
239デフォルトの名無しさん:02/09/27 03:27
すみませんが質問です。
直線を引いたんですがこれを赤とかのデフォルトではない色を使って直線を引きたいのですが
どのようにすればいいのか困ってます。
直線の色の変更とはどうすればいいのでしょうか?
よろしくお願いします
StringBuffer みたいに自身を返すメソッドという形式はそれに近いかと思う。
241デフォルトの名無しさん:02/09/27 03:37
  ∩,,∩
  ミ∧∧  / ̄ ̄ ̄
  |ミ゚Д゚ミ<>>240 ありがとよ。
  U U   \___
>>239
graphics.setColor( new Color(rgb) );
graphics.drawLine(x1,y1,x2,y2);

ヒントだ。まんま書かずに調べてみそ。
243240:02/09/27 03:42
>>241
スマソ、>238 へのレスだ
244242:02/09/27 03:46
>>239
Graphics.setColor(java.awt.Color.red);

と書いたほうが親切だった・・・
test
246239:02/09/27 04:07
ダメでした(;´Д`)
setColorの使い方がおかしくてredに設定したはずなのに黒です(;´Д`)
247デフォルトの名無しさん:02/09/27 04:20
ウィンドウを閉じたり、アクティブにしたりした時は
windowClosed()
windowActivared()
なりでつかまえられますが、ウィンドウのサイズを
変更した時のメソッドはどっかにありませんか?

また、ウィンドウのサイズを固定することはできますか?
248 ◆1/w7JUOU :02/09/27 04:28
できます
public void init() {
  this.setBackground(Color.red);
  yellowB = new Button("yellow");
  blueB = new Button("blue");
  this.add(yellowB);
  this.add(blueB);
  yellowB.addActionListener(this);
  blueB.addActionListener(this);
}
public void paint(Graphics g) {
  // 背景に関係するコード無し
}
public void actionPerformed(ActionEvent ae) {
  if (ae.getActionCommand().equals("yellow")) {
    this.setBackground(Color.yellow);
  } else {
    this.setBackground(Color.blue);
  }
}

ボタンを押せば背景色が変わりますが
setBackground()だけで再描画されるカラクリが分かりません
おしえてください。
内部でrepaintか何かを呼んで再描画していると思われ
いや、そういう疑問じゃないのか。
背景はpaintが呼ばれる直前に塗りつぶされるんだろ
>>250-251
私の説明不足のようでした。ゴメンナサイ。

setBackground()の後、内部で何が起こって再描画しているのか分からないんです。
そういうものだ!と言われてしまうとそれまでですが、
どのような条件で再描画されるか分からないんです。
setBackground()読んだ直後にupdate()明示的にコールして
再描画したらエエだけちゃう?
まちがった。そんなメソッドないや。repaint()だ。
>>253-254
いや、あの、>>249 はちゃんと動きます
なぜ、再描画されるのか分からないんです。
これが理解できないの為(?)、
自分で書いたものは期待通りに動いてくれないんです。
ちなみに、.>>249 には repaint() も update() もありません。
>>255
JAppletならpaint()じゃなくてpaintComponent()じゃないの?
>>255
Appletクラスにrepaintはある。お前はクラスの継承が解ってない。
│Д`) ワケわかんね〜
>>257
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/applet/Applet.html
↑ここの「クラス java.awt.Component から継承したメソッド」の repaint() の事ですか?
でも、repaint() 呼んでないんですが・・・
自動的に repaint() するんですか?当然?
>>258 setBackground呼んでるじゃん。その中でなぜ呼ばれていないといえるのだ
J-PHONEのJavaアプリでCalender使って時刻拾得したんですけど、
うまく行きませんでした。どうしてなんでしょう。
拾得しましたか
262デフォルトの名無しさん:02/09/27 09:17
>>132

ソレがいいと思う。
クラス、メソッド、変数の名前のつけ方一つでも、何か一つライブラリ使ってるのと使ってないとでは
感覚がぜんぜん違うし、設計となるとなおさらそう。
StringBufferが確保するメモリって何とかならんのでしょうーか
デカイ文章を丸々取り込んだあとに、StringBufferを開放しても
どっかに大量のメモリ保持してやがる。こんちくしょう
26483:02/09/27 09:56
>83 >110の質問をしました83です
昨日の話を引きずってしまいますが、どうかよろしくおねがいします。
>112
1文字づつ分解して確認するにしてもindexOfで確認するにしても
どうのようにして確認すればいいかわかりません。

JFileChooser jFileChoose = new JFileChoose;
int selectionBtn = jFileChooser.showSaveDialog(ownerFrame);
if(selectionBtn=JFileChooser.APPROVE_OPTION){
 File returnFile = jFileChooser.getSelectedFile();
 ・
 ・
}

というソースがあって
ユーザが例えば
D:\Testのディレクトリ配下にてa/aというテキストを入力して
Applyボタンを押下したとします。
これでreturnFile.getPathは
D:\Test\a\a になりますがこれを一文字ずつ確認する方法で確認すると
「:」の時点でひっかかりますし
returnFile.getNameとした場合、aが取得される為、正しく確認することができません。

何か私が検討違いしているのでしょうか?
そもそも、ファイルダイアログにJFileChooserを利用するのが間違ってるのでしょうか?
アルファベット、カナ、英数字の全角 <-> 半角の変換がしたいのですが、
そういった機能はありますか?

過去ログを少し検索してみましたが、見つかりませんでした。
266U ◆tFsGiu0c :02/09/27 12:18
>>181
もしかしてそれは、

JavaScript

ではないのか?
>>264
そもそも JFileChooser の動きが正しいんじゃないの? とあるディレクトリ配下で
相対パス指定の入力がはじかれたら「ケッ! クソアプリが!」と思うぞ。ちなみに Java で
/ がファイルセパレータとみなされるのはもう慣例。
268はじめたばっかり:02/09/27 14:20

MS-DOSでコンパイルすると、エラーで画面が埋まってしまい、
最初の方が見えなくなってしまいます。
最初の方のエラーを見るためにはどうしたらよいでしょうか?
誰か教えてください。
command > file

これを忍法リダイレクトという。
98,MEだとエラー系出力は取れないので注意されたし。
270デフォルトの名無しさん:02/09/27 14:51
>>268
漏れはMS-DOSでコンパイルすると、
エラーで画面が埋まってしまうので、
上の方のエラーは諦めていますがドキュンですかね?
ソレよりも何よりも javacのドキュメント読むべし。
-Xstdoutが(JDKのバージョンによって使い勝手が異なるものの)
用意されてる

JDK1.2 :javac -Xstdout xxx.java > log
JDK1.3 :oldjavac -Xstdout xxx.java > log
JDK1.4 :javac -Xstdout log xxx.java

エラー出力を取り込む方法はOSとかシェルごとにバラバラだけど、
DOS時代からあるよん
XPなら
コマンド 2> log
でOK!
273デフォルトの名無しさん:02/09/27 15:27
D:\以下のディレクトリを一覧表示するサンプルソースとかってありますか?
便乗で、Windowsの名前順にソートした場合と同じように
並べるにはどうすればいいでしょう?

単純な文字列比較ではできないはず...
> -Xstdoutが(JDKのバージョンによって使い勝手が異なるものの)
それが面倒なんだよな。

> DOS時代からあるよん
でもDOSには無い。

どっかにエラー出力をリダイレクトするツールが転がっていたはず。
そういうのを使えば操作を統一できて楽。
> > -Xstdoutが(JDKのバージョンによって使い勝手が異なるものの)
> それが面倒なんだよな。

ソレすら面倒ならIDE使った方がマシ
# そうすると「重い」とか文句言うのだろうが。
277 ◆k/Ubp.Kg :02/09/27 15:58
>>273
サンプルは知らんけど、File#listFiles()使って再帰的に辿れば、ファイルを走査できるから、
それを出力するなりコンポーネントに張り付けるなりすれば。

>>274
Javaの標準APIには無いんじゃないかな。自分で比較用のメソッドか何か書くしかないと思われ。
> # そうすると「重い」とか文句言うのだろうが。
大当たりだ。ゴルーーーア!
つーか最後の2行読んでないのか。
279Java初心者:02/09/27 16:18
Java初心者で困っています。
教えてください。
このようなコードを書きました。

/*  <applet code=test.class width=400 Height=300>
  </applet>
*/
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class test extends Applet {  
  private myPanel myPnl;
  Button btn = new Button("おして!");
  public void init() {
    myPnl = new myPanel();
    this.setBackground(Color.darkGray);
    this.add(myPnl);
    this.add(btn);
    btn.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
     btn_actionPerformed(e);
     }
    });
  }
  private void btn_actionPerformed(ActionEvent e) {
    myPnl.eNameLabel.setForeground(Color.white);
  }
}
280Java初心者:02/09/27 16:19
<続き>
class myPanel extends Panel {
  public Label eNameLabel;
  myPanel(){
    super();
    Label eNameLabel = new Label();
    this.setLayout(null);
    this.setSize(100, 100);
  
    this.setBackground(Color.cyan);
    eNameLabel.setFont(new Font("Dialog", 1, 18));
    eNameLabel.setText("■■■■");
    eNameLabel.setBounds(new Rectangle(8, 12, 80, 16));
    add(eNameLabel);
  }
}

このようなプログラムでボタンを押すと、NullPointer例外が発生するのですが、
自分で作ったクラスのメンバーに対するアクセスが不正で
出ているのではないかと推測しています。
これを正しく動作させるためにはどのように変更すればよいのでしょうか?
教えてください。よろしくお願いします。
281Java初心者:02/09/27 16:30
あとひとつ聞きたいのが、
>>280 の自作クラスのコンストラクタで最初に行う、
スーパークラスのコンストラクタの呼び出し(のつもり)
なんですが、意味あるのですか?
Javaを教えてくれていた人が必ず書いていたので
おまじないのように書いています。
私は必要に応じてでないと意味がないように感じるのですが、
意味があるのですか?
public Label eNameLabel; // フィールド
...
Label eNameLabel = new Label(); // ローカル変数(フィールドeNameLabelを覆い隠す)
>>281
スーパークラスの初期化処理が行われないと、危険だからです。

>>274
Vectorに突っ込んでsortするというのではだめなのか?
>>283
Unicode の文字順序が Shift-JIS の順序と違うって話じゃねー?
28583:02/09/27 16:43
public Label eNameLabel; // eNameLabelという名前のLabelを宣言
myPanel(){
 ・
 Label eNameLabel = new Label(); // eNameLabelという名前のLabelを宣言してインスタンス化
 ・
}
----------------------------
public Label eNameLabel; // eNameLabelという名前のLabelを宣言
myPanel(){
 ・
 eNameLabel = new Label(); // 上で宣言したeNameLabelという名前のLabelをインスタンス化
 ・
}
28683:02/09/27 16:47
>264
>267
JFileChooser の動きが正しいんじゃないの?
ということですが、Loadのダイアログならそれでもいいのですが、
Saveのダイアログでユーザがb/aと入力してきたら
bディレクトリを作ってaファイルを作成するのが正しいやりかたってことでしょうか?
仮にユーザがa/a/a/a/a/a/a・・・・と入力したら
大変なことになっちゃいますが・・
>>281
省略した場合は、引数なしの super() が自動的に呼ばれる。
だから、この場合は違いがない。
しかしこれはあくまでも例外で、引数つきの super(String)などは
決して自動では呼ばれない。
http://www.gimlay.org/~javafaq/S010.html
288260:02/09/27 16:52
>>261
えと、Canvasクラスはこんな感じで書いてるんですが
import javax.microedition.lcdui.*;
import java.util.*;

final class HelloWorldCanvas extends Canvas{

  public void paint(Graphics g){
    Calendar cal;
    cal = Calendar.getInstance();
    String str = cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE);
    g.setColor(255,255,255);
    g.fillRect(0,0,getWidth(),getHeight());
    g.setColor(0,0,0);
    g.drawString("Hello World!",0,20,g.LEFT|g.BOTTOM);
    g.drawString(str, 40, 60,g.LEFT|g.BOTTOM);
    g.drawString("Width:" + getWidth() + " Height:" + getHeight(),getWidth(),getHeight(),g.RIGHT|g.BOTTOM);
    }
}

これだとKToolbarでやると時刻は表示されるんですけどGMTになっちゃって、
J-PHONEのエミュレータや実機でやると表示すらしてくれませんでした。
>>286
a/a/a/…を入力したユーザにしてみればそれを期待していると思うが。
新設にディレクトリ作るならダイアログを表示したりするわな。(「ディ
レクトリ a/a …は存在しません。新規に作成しますか?」っての)
290Java初心者:02/09/27 16:59
>>282
あなた神です。
すごくわかりやすい答えありがとうございました。
しかもすばやく。

こういった知識はどうやって勉強するのでしょうか。
いまはネットだけなんですが。
やっぱり本とか買ったほうがよいですか?
教科書は東京理科大学のSunSiteなんですが、
さすがに情報が古いようなんで。
29183:02/09/27 17:01
>289
超悪質なユーザがa/a/aをず〜〜〜〜〜〜〜〜〜〜〜〜〜とやってたら
ず〜〜〜〜と「新規作成しますか?ダイアログ」を表示するってことですか?
(mkdirs?メソッドうる覚えですが、、を使えば一気に出来たような気がしますが・・・)
設計思想の違いでしょうが、やっぱり変な感じがしちゃいますね・・

とりあえず、やったユーザが悪いってことで割り切る事にします。
2日に渡り、お答えくださった方々。ありがとうございました。
292Java初心者:02/09/27 17:06
>>285=83
丁寧にありがとうございます。
よくわかりました。
ぜんぜん気づきませんでした・・・・。
>>288
それはAPIの実装があやしいな。

>>290
さてな。俺は>>10とか
294デフォルトの名無しさん:02/09/27 17:17
>>291
一回だけ聴いていっぺんにディレクトリ掘ればいいじゃん。
Winのインストーラはみんなそうだろ?
>>291
>>294 が言ってるけど一回だけ聞けば良いじゃん。ダイアログ出すことで
「あ / ってディレクトリの意味になるわけ」ってユーザに間接的に知ら
せる事もできるし。

その超悪質なユーザってのは自爆してるわけか?
29683:02/09/27 17:40
>294
>295
>Winのインストーラはみんなそうだろ?  
そういわれると確かにそうですね。
それに何度も新規ディレクトリを作成しますかと聞いておいて
途中でキャンセルしちゃったらそれまで作ったディレクトリは何なのって?ことになりますね

>その超悪質なユーザってのは自爆してるわけか?  
自爆ですね。悪質じゃないし^^;
297299:02/09/27 18:28
ストリームは入出力機能を司る概念とあるんですが、
これはどういう意味なんでしょう?
>>297 使ってみてから聞け。
class Foo {
  public static void main(String args[]) {
    Object obj = new Integer("85");
    System.out.println("Before Cast");
    Double dobj = (Double)obj;
    System.out.println("After Cast");
  }
}
このプログラムについてですが、このキャストのどこに問題があるのですか?
The Integer object is not Double object.
302前スレ 651:02/09/27 22:05
Java 1.4.1 の WebStart で Win2k が青画面でクラッシュするのはなんでかな〜と
思ってたんだけど、Sun の Bug Database を見たら、ATI Rage Mobility との相性が悪い
というバグが登録されてた。 Bug ID 4749817。

原因が分かってちょっと嬉しかったので、vote してきたよ。
以上、ひとりごと終了。
もう一度 >> 249 を再掲させてもらいます。
まだ、わかんないんです。

public void init() {
  this.setBackground(Color.red);
  yellowB = new Button("yellow");
  blueB = new Button("blue");
  this.add(yellowB);
  this.add(blueB);
  yellowB.addActionListener(this);
  blueB.addActionListener(this);
}
public void paint(Graphics g) {
  // 背景に関係するコード無し
}
public void actionPerformed(ActionEvent ae) {
  if (ae.getActionCommand().equals("yellow")) {
    this.setBackground(Color.yellow);
  } else {
    this.setBackground(Color.blue);
  }
}
ボタンを押せば背景色が変わりますが
setBackground()だけで <再描画されるカラクリ> が分かりません
おしえてください。
↑の続き
>>250-259 で答えていただきましたがよく分かりません。
>>259 は setBackground() を調べろってことですよね。
java\awt\Component.java に次の2つがありましたが、?????です。

public void setBackground(Color c) {
 Color oldColor = background;
 ComponentPeer peer = this.peer;
 background = c;
 if (peer != null) {
  c = getBackground();
  if (c != null) {
   peer.setBackground(c);
}}}

public void setBackground(Color c) {Component.this.setBackground(c);}

どうぞよろしくおねがいします。
>>300
> このプログラムについてですが、このキャストのどこに問題があるのですか?

全て
>>304
だからさ、setBackgroundが再描画させてるに決まってるじゃん。
そんなライブラリの実装をほじくって何になるんだよ
>>300
マジレスすると、Javaではオブジェクトをキャストすることはできない。
参照がキャストされているだけ。
>>304
つーか、調べてやろうとおもったけど、
ソースのダウンロードがトロトロなので、やめ。
>>306
>だからさ、setBackgroundが再描画させてるに決まってるじゃん。
そうなんだと思いますが、>>303 のようなプログラムを書いている時に
repaint() が必要なのか等の知識がないので、期待通りに動いてくれないんです。

みなさんは setBackground() は再描画してくれると覚えているのですか?
>>308
sdkのルートのsrc.zipのことじゃないんですか?
>>309
表示に影響するようなプロパティが変更されたら、ふつー再描画させたくないか?
>>309
ならPropertyだけ変更されて、再描画は行わないと。
明示的に最描画を行えと。
>>310
えっそんなのあったっけ?

確かに消したような記憶もw
>>310
あるよ。普通それをみるんじゃない?
>>311
それは、repaint() や update() 等は必要無いんだけど
もう一度綺麗に描画したいから呼ぶと言うことですか?
また、
>表示に影響するようなプロパティ
とありますが、これらは知識ですか?経験ですか?
>>309
ひょっとして君さ、背景を勝手に塗りつぶしてほしくないわけ?
もしそうならopaque(不透明)プロパティの話だと思うが
>>315
じゃあ逆に、背景色を変更しますって書いてあるのに、
表示が変わらなかったとしよう。それは嘘になるだろ。
visibleでない状態で変更するならともかく。

というかちゃんとAPI仕様読んでるか?updateなんかふつう直接呼ばないよ。
みなさん、お騒がせしました。
どうやら随分トンチンカンな質問のようですね。う〜〜〜〜〜ん

>>317
どうもその辺が分かってないみたいな感じです。
API仕様をもう少し勉強します。
ありがとうございました。
もう少し付け足し
setBackgroundの set を準備の意味だと思ってるところが間違いなのでしょか?
setは変更を意味するのか?
>>319 set=設定。get(is)XXXとsetXXXは対になってる。
確か MS JVM は setBackground() ではまだ再描写が行われず、再描写の
ウィンドウメッセージだけが投げられる。処理が終わってイベントディス
パッチャーに戻ってきて始めて再描写処理が走る、と記憶しておるが。
つまり setBackground() から処理が戻った直後に新しい背景色が描写
されているかどうかは実装依存。
なるほどな。でも再描画イベントは発生するんだな
323 ◆k/Ubp.Kg :02/09/28 03:44
明示的にrepaint呼ぶようにしたらダメなのん?
324デフォルトの名無しさん:02/09/28 03:58
テキストエリアを使っていて.getText()で取った数値をdoubleに直して計算に使ってるのですが
テキストエリアに何もいれなくても動作するようにしたいときにはどのようにすればいいのでしょうか?
「テキストエリアに何も入力されてなければ処理をしない」
というのをif文でかきたいのですがどのように書けばいいのかわからず困っています
いろいろ考えたのですが上手くいかず質問させてもらいました
さらにこういう方法がいいとかありましたらよろしくお願いします
325321:02/09/28 04:05
>>322
そりゃそうだろうて。ビュー関係のプロパティを変更したら何らかの再描写動作が
行われるのが (Invisible の場合, Peer が生成されていない場合は除いて) 一般
的な動作だと思うけど、もともとの質問者はそれが聞きたかったんだっけ? それと
も setBackground() で再描写される仕組みが知りたいんだっけ?
どうも話の流れが良く分からん。
>>324
public void actionPerformed(ActionEvent e){  // ← Action イベントか知らんけどとりあえず
  String num = text.getText();
  if(num.trim().length() == 0){
    return;
  }
  double value = Double.valueOf(num).doubleValue();
  ...
}
327324:02/09/28 04:36
>>326
ありがとうございます!
さっそくためしてみます
328setBackground:02/09/28 04:41
>>325
一応名前入れました。

>setBackground() で再描写される仕組みが知りたいんだっけ?
こっちです。
仕組みもよく分からないんですが、その上、
なぜ再描画されるとみなさんは知ってるんですか?
他にも再描画されるメソッドがあるんですよね。
これのことだと思いますが>>ビュー関係のプロパティ変更

#今、API仕様読んでます。
329デフォルトの名無しさん:02/09/28 05:30
JDKをインストールしたらJavaWebStartというのもインストールされて
しまいました。サンプルを起動できるようですが、これはいったい
何のデモなんでしょう?

それと、Draw4Appっていうのはとても気に入ったのですが、
サンプルのソースはないのでしょうか?
>setBackground
>なぜ再描画されるとみなさんは知ってるんですか?

あえて言えば経験かなぁ?というか深く考えたことがない人が多数だと思う。
背景色のデータだけ変わって見た目が変わらないってのは不自然だから。
>>329
再描写動作は Component#setBackground() の中にあった peer.setBackground() の
中で行われている。この ComponentPeer はインターフェースなので、実際どのように
再描写が行われるかは実行環境依存。たとえば中で repaint() を呼び出してやっている
かもしれないし、MS JVM みたいに REPAINT のウィンドウメッセージを投げて終わり
かもしれない。
>>330
何はともあれ、ドキュメントくらい読めよ。
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jws/index.html

サンプルのソースはしらない。
334setBackground:02/09/28 16:14
>> 331-332
何となく分かってきた・・・というか自分を納得させました。
しかし、新たな?問題が出てきました。
次のように paint を具体的に書いてみました。すると
g.drawOval() だとボタンを押すだけで再描画されますが
g.drawRect() だとボタンを押しただけでは再描画されません。
(マウスやキーのイベントが必要のようです)

これはどういうことなのでしょうか?

public void init() {
  this.setBackground(Color.red);
  yellowB = new Button("yellow");
  blueB = new Button("blue");
  this.add(yellowB);
  this.add(blueB);
  yellowB.addActionListener(this);
  blueB.addActionListener(this);
}

public void paint(Graphics g) {
  /****** 下のいづれかを使用する ******/
  // g.drawOval(0, 0, 100, 100);
  // g.drawRect(0, 0, 100, 100);
}
public void actionPerformed(ActionEvent ae) {
  if (ae.getActionCommand().equals("yellow")) {
    this.setBackground(Color.yellow);
  } else {
    this.setBackground(Color.blue);
  }
}
335setBackground:02/09/28 16:15
age 忘れ
>>334
誤「いづれか」 正「いずれか」
337デフォルトの名無しさん:02/09/28 18:10
(1):***@hotmail.com (SMTP:mx1.hotmail.com)
(2):***@yahoo.co.jp (SMTP:mta11.mail.yahoo.co.jp)
宛に連続で2通のメールを送りたいんですが
2回目のSendMail()が(1)のSMTPホストにつながります。
何でなんでしょう…識者の方お助けください。
338337:02/09/28 18:10
import java.io.*;
import java.net.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class MailTest {
 final static String from = "****@hotmail.com";
 final static String subject = "test";
 final static String body = "test.";

 public static void main(String[] args) {
  SendMail("***@hotmail.com", "mx1.hotmail.com");
  SendMail("***@yahoo.co.jp", "mta11.mail.yahoo.co.jp");
 }
339337:02/09/28 18:11
 private static boolean SendMail(String to, String smtphost) {
  try {
   Properties prop = new Properties();
   prop.put("mail.smtp.host", smtphost);
   Session sess= Session.getDefaultInstance(prop, null);
   MimeMessage mmes = new MimeMessage(sess);
   mmes.setFrom(new InternetAddress(from));
   InternetAddress[] iadr = {new InternetAddress(to)};
   mmes.setRecipients(Message.RecipientType.TO, iadr);
   mmes.setSubject(subject, "iso-2022-jp");
   mmes.setText(body, "iso-2022-jp");
   Transport.send(mmes);
  } catch(Exception e) {
   System.out.println(e.toString()); return(false);
  }
  return(true);
 }
}
>>334
ウチではどちらも再描画されたが。
341 ◆k/Ubp.Kg :02/09/28 18:49
>>334
ウチでも再描画されてる。MSのVMとかなの?
> (マウスやキーのイベントが必要のようです)
って何のこと?何でそう思ったの?

>>341
| ∩
|_| |_
|Д`) ヨイコハ ミチャ ダメヨ・・・
|⊂
|


     ♪  ___ ∩
   ♪    し|_| |   ダッ ダッ ダッバダバダバ
        (´Д`;)   ダッ ダッ ダッバダバダバ
        \(   )ヽ  ダーバシュビドゥワ
            く      


    ♪    _. ∩
     ♪  |J_| |   シャバダバシャバダバ〜
       (;´Д`)  シャバダバシャバダバ〜
        ノ(   )/  シャバダバダッバーダバダバ
           >     シュビドゥワ〜!
344デフォルトの名無しさん:02/09/28 23:47
ObjectOutputStream oosがあって
それを
new DataOutputStream(oos);
とやると
挙動がおかしくなるけど、
これは仕様かな?
例えば、outputStreamとしてメソッドに渡してしまった時、
困ってしまう。
どうおかしくなるの
>>344
それをやる意図が分からん。何がしたいの?
>>344
ObjectOutputStream implements DataOutput
のはずだけど、なんでそんなラップせにゃならんの?
動いたよ?意味不明だけど。
---------------
String filename = "__oos_out.dat";
FileOutputStream fos = new FileOutputStream (filename);
ObjectOutputStream oos = new ObjectOutputStream (fos);
DataOutputStream dos = new DataOutputStream (oos);
dos.writeInt (12345);
dos.writeUTF ("Hello!");
dos.close ();
//
FileInputStream fis = new FileInputStream (filename);
ObjectInputStream ois = new ObjectInputStream (fis);
DataInputStream dis = new DataInputStream (ois);
System.out.println (dis.readInt ());
System.out.println (dis.readUTF ());
dis.close ();
---------------
12345
Hello!
---------------
>>246
どうみてもデータ作成の一部を他のクラスやメソッドに委託したいようにしか
見えんが。
>>344
まさか渡したメソッド内部でキャストしてなくて、
writeXXX()がコールできないです〜とかそういう
マヌケな話じゃないだろうな?
351デフォルトの名無しさん:02/09/29 00:24
レベルの低い質問で申し訳ないのですが、
現在「やさしいJava」が終わりそうなんですが、次は何がいいですか?

工学部生でとりあえずJavaでもしとこうかなって感じなんですが…
SUN Java認定資格を始め取ろうと考えてましたが、受験料が半端じゃないので
止めました…で、目標がないんでどこまでいけば良いのかわからなくなってしまいました。
>>351
とりあえず自分で目標作って、いろいろ作って見れ。
353351:02/09/29 00:37
>>352
そうしますか…学校でも数値解析とかし出すし、Cをちゃんと先にやるかな。

あ〜、行き詰って来た…
354デフォルトの名無しさん:02/09/29 00:48
>ObjectOutputStream implements DataOutput
>のはずだけど、なんでそんなラップせにゃならんの?

A1#write(InputStream in);
というメソッドがあったとして、

ObjectOutputStream oos;
A1 a;
a.write(oos);
とやった時

>>348
oosとdos両方でいっかいづつ書くと上手くいかないです。
>>353
どなりたくなる俺は40代。
>>349
246 -> 346か?
だとしたら、ますます意味分らん。

>> 354
> A1#write(InputStream in);
> というメソッドがあったとして、
A!#write(OutputStram out);か?

> とやった時
どうなるの?

> oosとdos両方でいっかいづつ書くと上手くいかないです。
ラップして使うんじゃねーのか?
357デフォルトの名無しさん:02/09/29 01:26
Javaはdelegateつかえないのか
Javaの大将が政治的理由かなんだか知らんがMSの提案を蹴った
おかげでアノニマスクラス大量生産なフヌケたコードが増えたがな
VS++やJ#.NETではもちろん使えるYO!
359デフォルトの名無しさん:02/09/29 02:13
文字コードがEUCのString文字列をMS932に変換
する方法を教えてください。
>>359
> 文字コードがEUCのString文字列
んなものは存在しない。
文字ストリームなら、ReaderやWriterのコンストラクタで指定。
>>354
oos.writeInt (12345);
dos.writeUTF ("Hello!");
oos.writeInt (54321);
dos.writeUTF ("Good-bye!");
こういうことか?ちゃんと動くけど?
>>360
同じJIS X 0208の文字がUCS-2だと違う文字になることは良いのか?
>>362 そーゆーのはStringでは扱えないってだけじゃないの
>>359 なにしろまずはJavaFAQを読んどくこと
http://www.gimlay.org/~javafaq/S146.html
S146: エンコーディング - encoding(国際化/日本語化)
パッケージ名にいつも悩みます。
クラス名にも悩みます。
毎回開発途中で変えたくなってCVSの前で海よりも深く後悔します。
365:02/09/29 07:37
>>364
きみはさるかね?
そういう人のための日本語名
>>366
日本語名はやめとき
jarで問題になった気がする
>>364
俺もよくやる。いつもリポジトリを直にいじって解決してる。
Javaプログラムをリファクタしてると頻繁に名前を変更する事になるんだけど、
そういうときCVSって厄介。
ファイル名固定縛りとかやると、とたんにリファクタリングの自由度下がっちゃうし。
CVS以外のバージョン管理ソフトは、ファイル名変更に対してどう対処しているんだろ。
javaで多分木を作りたいのですが、そういうのを作るのに、便利なクラスとかありますか?
それとも、自分で自作してますか?コレクションのTreeSetとTreeMapを見てみたのですが、なんか違うみたいですね。
>>370

「Composite パターン」とかで検索しる
>>370
Vector
>>371
遠回りな気がした。
374354:02/09/29 14:37
うちの環境じゃ動かないみたいです
java1.4です

dos=new DataOutputStream(oos);
oos.writeInt (12345);
dos.writeUTF ("Hello!");
oos.writeInt (54321);
dos.writeUTF ("Good-bye!");
って事ですよね?

これで、オブジェクト再構築できました?
どうも、ヘッダ情報などを書き込んでいて、
それが乱れるのではないかと推測しているのですが。
つまり、
ObjectOutputStream oos=new ObjectOutputStream(outputStream);
とやった時点でヘッダが生成され
ObjectOutputStream oos2=new ObjectOutputStream(oos);
とやると第二のヘッダが出て、
oos.write...
oos2.write....
oos.write...
とやるとめちゃくちゃになってしまうのではないかと。
>>374
flush() が必要か? と一瞬思ったが。
>>374
あのさぁ、君、いつもそうやって断片的なコードしか出さないから答えようが
ないんだよ。ついでにいつのまにか論点も変わってるしね。
377374:02/09/29 16:26
論点変わってないですよ。
OOSをDOSでラップして使ったりすると挙動がおかしい。

10クラス程度にまたがっていて、
writeObject/readObjectの中身だけで500行くらいあったので、
コードはれませんでした。

outputStreamで受け取って、
DataOutputStreamにして書き込むところを
全部修正したら上手くいったので、
報告しておきます。

リファレンスには何も書いてなかったのでバグかもしれませんが。
今度暇があればソースでも除いてみます。

objectWrite/Readを実装する時は気をつけてください。
小さいコードで再現しないわけ?
>>374 のバグに 2000 バガス
>>374
わしは君の書き込みを、直列化復元できないのだが
このコードは動いたよ
-----------------
File f = File.createTempFile ("___oos_out", null);
f.deleteOnExit ();
//
OutputStream fos = new FileOutputStream (f);
ObjectOutputStream oos = new ObjectOutputStream (fos);
DataOutputStream dos = new DataOutputStream (oos);
dos.writeUTF ("Hello!");
oos.writeInt (12345);
dos.writeInt (54321);
oos.writeUTF ("Good-bye!");
dos.close ();
//
InputStream fis = new FileInputStream (f);
ObjectInputStream ois = new ObjectInputStream (fis);
DataInputStream dis = new DataInputStream (ois);
System.out.println (dis.readUTF ());
System.out.println (ois.readInt ());
System.out.println (dis.readInt ());
System.out.println (ois.readUTF ());
dis.close ();
-----------------
>>374が動かない完全なコードを晒すまで、誰も納得しないよ
直列化したときのdosとoosの順番と、復元するときのdisとoisの順番が
対応してないから>>374はうまくいってないのかと思ったけど、
disとoisはどっち使ってもちゃんと復元できるね。ウチの環境は1.3.0だけど。
あ、でも>>380のコードで
disをDataInputStreamでなくObjectInputStream、
dosをDataOutputStreamでなくObjectOutputStreamにすると復元できないね。
どゆこと
バージョン1.4ベースで良いのなら、
java.bean.XMLDecoderを使う手もあるかも……
なんて思ったりして…
>>370
私なら、Relaxerを使うかも
387383:02/09/29 22:03
このコードは正しく動かない>>384
-----------------
File f = File.createTempFile ("___oos_out", null);
f.deleteOnExit ();
//
OutputStream fos = new FileOutputStream (f);
ObjectOutputStream oos = new ObjectOutputStream (fos);
ObjectOutputStream oos2 = new ObjectOutputStream (oos);
oos2.writeUTF ("Hello!");
oos.writeInt (12345);
oos2.writeInt (54321);
oos.writeUTF ("Good-bye!");
oos2.close ();
//
InputStream fis = new FileInputStream (f);
ObjectInputStream ois = new ObjectInputStream (fis);
ObjectInputStream ois2 = new ObjectInputStream (ois);
System.out.println (ois2.readUTF ());
System.out.println (ois.readInt ());
System.out.println (ois2.readInt ());
System.out.println (ois.readUTF ());
ois2.close ();
-----------------
>>383-384
ObjectOutputStream は中でバッファリングしている。flush() もせずに 下層⇔上層
ストリームへ交互に書き込めば出力データが壊れて当然。
389388:02/09/29 22:13
ちなみに上層に DataOutputStream を使った方法 (↓) はどうやっても
再現できず。
ObjectOutputStream oos = new ObjectOutputStream(out);
DataOutputStream dos = new DataOutputStream(oos);

層が逆 (↓) なら >>337 の理由で当然のことなんだが。
DataOutputStream dos = new DataOutputStream(out);
ObjectOutputStream oos = new ObjectOutputStream(dos);
390388:02/09/29 22:14
>>337 --> >>388
391デフォルトの名無しさん:02/09/30 00:29
技術評論社の「JAVAグラフィクス完全制覇」という本で勉強中
なのですが、以下のコードの意味が分からなくて悩んでいます。

col0[0]=(c0>>2)&1;

col0[]はint型の配列、coは同じくint型の、メソッドの引数で
渡される仮変数です。

自分でコード書いて確かめろ!って言われそうですが、まだ
サンプルコード丸写しの段階なもので、どなたか教えてください。
よろしくお願いします。
>>391
c0 の値を右に 2 ビット (符号ビット含まず) シフトし、その下位 1 ビット
を取り出して配列 col0 のインデックス 0 に代入。
>391
c0 の3bit目の値を col0[0] に代入しています
>>387-390
なるほどねー。flushしないと駄目だね。
395391:02/09/30 00:45
>>392-393
なるほど、よく分かりました!
ありがとうございました。
>>391

Beanshellとか使えば、コーディングせずに
そういうの確認できるよ。
http://www.beanshell.org

GUIなら、(windowsで普通にjreをインストールしてるならダブルクリックでOK)
java -jar bsh-1.2b6.jar
CUIなら、
java -classpath bsh-1.2b2.jar bsh.Interpreter

で立ちあがるから、そこで、いろいろ打って確認スレ
>>396
391じゃないけど、ありがとう
こういうの欲しかった
>>396
日本語はだめっぽいな。
399デフォルトの名無しさん:02/09/30 15:46
動画像から静止画像を切り出そうと思うんだけど、mpegファイルを扱うにはJMFに手を出すしかないよね・・・というかAPI仕様が見つからん
400デフォルトの名無しさん:02/09/30 15:49
ごめん、APIあった。でもよーわからん。知恵を授けて
401デフォルトの名無しさん:02/09/30 16:04
HTMLでD:\test\test2\test3.txtというファイルへのリンクを張りたいのですが
getPath()だと当然ですがサーバーで操作したときのみ取得できます。
クライアントから取得したいとき(ROOTはD:\test、サーバのIPが
192.168.0.1だとします)
URLをどのように取得したらいいんでしょうか?
>>401
狂おしいほど意味不明
独習Javaにのっていた次のプログラムでエラーが出るので
対処法を教えてください。

st という StreamTokenizer オブジェクトを作成したあと、

  while (st.nextToken() != StreamTokenizer.TT_EOF) {
    switch (st.ttype) {
      case st.TT_WORD :
        System.out.println(st.lineno() + ")" + 
            st.sval);
        break;

という感じのコードが続くのですが、コンパイルすると、

StreamTokenizerDemo.java:21: 定数式が必要です。
          case st.TT_WORD :
                 ^
というエラーメッセージが表示されます。
どこがまずいのでしょうか?
>>403
StringTokenizer.TT_WORD と書かなきゃだめ。
>>403
定数ってインスタンスにしないと出ない?
406404 Not Found:02/09/30 18:28
間違えた。StreamTokenizer.TT_WORD か。
>>404-406
無事コンパイルできました。
thanks.

最初、StringTokenizer.に修正しようとしてうまくいかず、頭を抱えてしまった(鬱
408デフォルトの名無しさん:02/09/30 21:20
java.lang.NoClassDefFoundError
こんな例外が出てしまいました。
原因を教えてください。
409デフォルトの名無しさん:02/09/30 21:23
>>408

クラスパスとか設定せず java コマンド打ってください。
>>409

やってみましたが、相変わらず同じエラーが出ます。

>>408
びっくりするほどユートピア!びっくりするほどユートピア!
とハイトーンで連呼しながらjavaコマンドを打ってみる。
javaと打ったらBSキーを4回連打する。またjavaと打つ。またBS。
これを繰り返す。
脱力感を感じ始めたら、その続きも打ってよし。
最後にENTER。白目を剥きながらENTERキーを押す。
でも結果は変わらない。
それが人生だよ。
412デフォルトの名無しさん:02/09/30 21:46
>>410

正しい path を指定してコンパイル・実行してみてください。
Java.言語.指定されたクラスが見付かりません。エラーです。

せめて、訳せよ。
そしてdirコマンド打ってそのクラス名に対応するクラスファイルが
あるのかチェックしろよ。
あとな、java hoge.class だとエラーだからな。
実行は、java hoge だぞ。
>>408
java -classpath . hoge
で動いたりする?
>>412
pathは正しいはずです。昔は全然エラーが出ませんでした。

>>413
クラスファイルは生成されています。

自分としてはEclipseに原因あると思います。最近入れたのですが
これ入れてからおかしくなった気がする。
>>415
動きません。
UNrecognized option: -classpath
Could not create the Java virtual machine
ってエラーが出ます。
とりあえず、
echo $CLASSPATH $JAVA_HOME
だな。
>>418
JAVA_HOME C:\j2sdk1.4.0_01
CLASSPATH .;%JAVA_HOME%\lib\tools.jar
PATH %JAVA_HOME%\bin
すみませんこのような警告がでてしまいます。

Warning !!!
Your machine could'nt be Java Language
実行できました。
どうやらファイルのパス指定に問題があったようです。

教えていただいた方々ありがとうございました。
>>421
>教えていただいた方々
これには>>411も含まれているのか、それだけを聞かせてくれ。
>>422
感謝しているのは善意ある方々です。
424391:02/10/01 00:17
>>396
遅レスですみません、Beanshellインストールできました。
なんだか楽しそう! いろいろ試してみます。
どうもありがとうございました。
425デフォルトの名無しさん:02/10/01 00:25
jarファイルを作って
実行したのですが、

win32 Error 126

とエラーが出て起動しません。

META-INFは

Main-Class: ****

となっています。

JBiluderでの実行はちゃんと動きます。

解る方いますか?

win32 Error 126はどういう意味なのでしょうか?
>>425 無駄な改行、見にくいからやめていただけるとありがたい。
で、そのエラー、dllがないとかそういうときにでるやつ。
>>246
改行すいません。
何か解決方法って解りますか?
>>427
error 126: 指定されたモジュールが見つかりません

JBuilder の JDK バージョンとコマンドライン上の JDK バージョンが違うに
一票。
429デフォルトの名無しさん:02/10/01 01:36
文字コードがeucのファイルを読み込んでMS932の文字コードの
ファイルに書き出したいんですが、どうすればいいですか?
特殊文字@、〜がうまくいかないのですが・・・
誰かサンプルがあったらお願いします。
>>429
JavaはUNICODE
なのでいわゆる機種依存文字やUNICODEに対応する字がないものは
標準ライブラリではどうやっても無理。

自分でしこしこ変換ルーチンかけ。
>>429
MS932 の代わりに Shift_JIS か Cp943C 使ってみれ。
@はUnicodeに入ってたような
そか、EUC-JPに入ってないんだな
ワークベンチのデフォルトエンコーディングをUnicodeにしたら、
コード補完がきかなくなりますた。
まだあまり国際化対応には強くなってないようだのう。
初心者です。いろいろやってみたのですが、わからないので質問させてください。
いまアプレットを作っています。
アプレットで使われるクラスを二つ別に書いていて、ひとつのJavaファイルとして保存しています。
これをコンパイルすると計3つのクラスファイルが出来上がります。
そこで質問なのですが、
アプレットビュアーではちゃんと表示されるのですが、
これをウェブサーバにアップロードすると、
Class XXX not found で表示できません。
もちろん、アプレットタグを含むHTMLファイルと同じディレクトリに
Classファイル全てをコピーしています。
ブラウザ表示ではアプレットタグに指定したサイズで表示されています。

code= で指定するClassはアプレットを指定していますが、
その他二つのファイルも指定する必要があるのでしょうか?

ちなみにウェブサーバのマシンだとブラウザでちゃんと表示されます。

どうしたら他のマシンでも表示されるのでしょうか?

codebase
大文字小文字は大丈夫か?
438435:02/10/01 18:45
>>436,437
動きました。
codebaseに加えてjarについても勉強できました。ありがとうございました。
これ(jar)について何か気をつけることはありますか?
あったら、是非教えてください。
>>435 は>>437の指摘どおりに間違ったてたわけか。
440デフォルトの名無しさん:02/10/01 20:16
サンのJava認定資格って持ってるとなにかメリットはあるの?
その価値みたいなものはどれくらいなのかな?
441大王 ◆3ma1HZI. :02/10/01 20:50
今日独習JAVAを買ってきた。
これから3日で終了させるつもりだ。
もちろん仕事が終わった後だ。
俺が言いたいことはもうわかっているな?
これから3日間俺が質問したら即効で答えてほしい。
頼んだぞ。
じゃあ速攻質問しろ
443大王 ◆3ma1HZI. :02/10/01 21:50
質問だ。以下の理由がわからん。なぜだ?

-5.6 % 3.3 = -2.3
5.6 % -3.3 = 2.3
>>443
世の中そういうもん
>>443
過去ログ読め。特に411あたり
446大王 ◆3ma1HZI. :02/10/01 21:59
>>411 :デフォルトの名無しさん :02/09/30 21:43
>>>>408
>>びっくりするほどユートピア!びっくりするほどユートピア!
>>とハイトーンで連呼しながらjavaコマンドを打ってみる。
>>javaと打ったらBSキーを4回連打する。またjavaと打つ。またBS。
>>これを繰り返す。
>>脱力感を感じ始めたら、その続きも打ってよし。
>>最後にENTER。白目を剥きながらENTERキーを押す。
>>でも結果は変わらない。
>>それが人生だよ。

これがなんだというのだ?
>>446
実践してからケチつけろよな
449デフォルトの名無しさん:02/10/01 22:12
*e+6*l+t*0+g+@*)+g*)+4*k+8*e+k*4+q*e+
の意味がわからなくて困ってます
どなたか教えてくれないでしょうか?
450初心者です:02/10/01 22:20
お薦めの本とか勉強法を教えてください(ちなみに本は”やさしいjava”を一通り
見ました。)
451Need Help:02/10/01 22:21
原因があるのがJavaなのかPostgreSQLなのか分からないのですが、
Webアプリケーションで、DBへ登録処理を行うプログラムを
実行した後、サーバで ps -ax コマンドを打つと、

postgres: user dbname 127.0.0.1 idle in transaction

こうなっており、トランザクションの最中の状態の
ようです。ですが、commit処理からclose処理まで
きちんとされており、実際にDBにデータが登録も
されています。

原因はどういったことが考えられますか?
452教えてください:02/10/01 22:24
二つのArrayListを一つに結合するにはどうしたらいいですか?
addAllじゃだめなの
454教えてください:02/10/01 22:35
>>453
ほんとだ。すいません。ありがとうございました。
455初心者です:02/10/01 22:37
お薦めの本とか勉強法を教えてください(ちなみに本は”やさしいjava”を一通り
見ました。)
456デフォルトの名無しさん:02/10/01 22:40
内部クラスは何のために使うのか教えてください。
使用目的がわかりません。
457大王 ◆3ma1HZI. :02/10/01 22:41
>>448
うむ、ご苦労、理解した。

まず第1章が終わった。次は2章に移る。
みなのもの、これからも私のために尽力を尽くすように
JTextAreaでテキストエディタを作ってます。

UndoManagerを利用するところまではわかったのですが
そこから先がどうもわかりません

どのリスナでテキストが変更されたかを関知するか、
どこにundo内容を格納するか。
等、よろしくお願いいたします
>>456
引き出しの中を小分けにするようなそういう感じ
>>459
お前はJAVA_HOME/demo/jfc/Notepadを見たことが無いのか?
>>456

内部クラスから元クラスのmethod、変数に
自由にアクセスできるぞ。
引数渡ししなくても。
>>456
使い方が分からなければ無視すれば? たぶんキミには必要ない。
>>456
例1
コレクション系のソースを確認してください。
java.util.Iteratorインターフェースの実装を内部クラスで行っています。たぶん。
>>456
例2
あるクラスの実装を少しだけ変えて使用したい時、
いろんな意味で面倒なので、
内部クラスを書いて、メソッドのオーバーライドを行う。
466デフォルトの名無しさん:02/10/02 00:04
Sunのチュートリアルにある以下のサンプルですが、
run()内の while (clockThread == myThread) って意味あるんですか?
常に成立してしまうように思えるのですが。成立しない場合を(もしあれば)
教えてください。よろしくお願いします。

467466:02/10/02 00:04
(import行省略)
public class Clock extends Applet implements Runnable {
private Thread clockThread = null;
public void start() {
if (clockThread == null) {
clockThread = new Thread(this, "Clock");
clockThread.start();
}
}
public void run() {
Thread myThread = Thread.currentThread();
while (clockThread == myThread) {
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException e){
}
}
}
public void paint(Graphics g) {
(中略、現在時の表示)
g.drawString(dateFormatter.format(date), 5, 10);
}
public void stop() {
clockThread = null;
}
}
>>466
stop() されたけど myThread が停止してない場合
stop実行されたら、falseになるじゃん
ついでに Clock 以外のクラスから Runnable 実行したときの防御にも
なってる。Thread t = new Thread(new Clock()); t.start(); みたいな。
471451:02/10/02 02:09
原因が分かりました。
コネクションプールを使用しているWebアプリだったのですが、
吐き出されるSQLクエリのログを見てみると

Connection conn = pool.getConnection(); // poolからコネクション取得
conn.setAutoCommit(false); // (1) begin;
/* いろいろな処理 */
conn.commit(); // (2) commit; begin;
conn.setAutoCommit(true); // (3) end;
conn.close() // poolにコネクションを戻す

最初は(3)の文が抜けていたため、ずーっと
あるコネクションがpoolの中でトランザクション中の
状態になっていたようです。

ところで(2)の conn.commit() が「commit; begin;」という
SQLクエリを発行するのが JDBC の一般的な仕様なのでしょうか?
ここが commit; だけなら何も苦労しなかったのに・・・
そういえば、PreparedStatementを使ってる場合、
どうやってQueryの内容を確認してる?

syntax errorでSQLExceptionが投げられた場合、
その情報だけではわかりにくいと思うんだけど?
>>472
Connection, Statement, PreparedStatement のラッパークラス作って
その中で SQL とパラメータダンプしてる。クローズし忘れの警告とかも。
つうか >>471
PostgreSQL ってそんなんなんだ。特にエラーとかは発生せずに状態だけ
トランザクション中になってるって事か。
>>473
ありがとう。参考になったよ。
いっそドライバー書き換えたろかと思ってたんで。
>>475
ラッパークラスって行っても上記インターフェースをすべて実装した奴な。
↓みたいな感じで普通の JDBC とほとんど同じ使い方の奴。

Connection con = pool.getConnection();
con = new ConnectionHelper(con);        // こいつがラッパー
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("...");
...
477475:02/10/02 03:17
>>476
もちろん、わかってるよ。
すまん。なんか言い方悪かった。
でも、本当に感謝はしてます。
>>478
いや分かってるなら良いんだが、ラッパーというといきなり独自 API のクラス
作り始める連中も結構いるんで。
480Java初心者:02/10/02 11:17
またしても質問させてください。
アプレットで製作しています。
自作のコンポーネントのクラスのようなものがあります。
それはパネルから継承して中に10個ほどラベルを配置しています。
その背景を点滅させようとすると、ラベルの背景は初期背景色が残るので、
ラベルの背景も背景色を設定しています。
このパネルを複数画面に配置し、パネルを複数点滅させようとすると、
パネルの背景を描画した後にラベルの背景を書き換えているのがわかってしまいます。
この部分的な書き換えをせずに、設定を変更後、
一気に全画面を描画するようにするにはどうすればよいのでしょうか。

とりあえず、paint()とupdate()は上書きしましたが、状況は改善されません。
たぶん書き方が悪いと思うのですが、どのように書けばよいのでしょうか。
パネルの setEnabled(false) → パネルの背景描画 → ラベルの背景描画 → パネルの setEnabled(true)

setEnabled() は invalidate()/validate() だったかも知れん (マトモなアプレットは
久しく作ってないので忘れた)。
482デフォルトの名無しさん:02/10/02 11:53
実行時に
Exception in thread "main" java.lang.NoClassDefFoundError:
というエラーが出てしまい、実行できないのですがどうすれば宜しいのでしょうか?

コンパイルは普通にできるのに・・・。
winMe/jdk1.3
483(´・ε。・`):02/10/02 11:58
>>482
クラスパス設定。
FAQなので過去ログに腐るほど事例はあるかと。
>>482
このスレ全表示して "NoClassDefFoundError" で検索。
485デフォルトの名無しさん:02/10/02 12:18
>>483
>>484

無事に動きました。
教えていただき、ありがとうございました。
486Java初心者:02/10/02 12:42
>>481
 御教授ありがとうございました。
 しかし、思ったようにはなりませんでした。
 あとでソースを晒すのでよろしかったら指摘してください。
487Java初心者=480:02/10/02 14:00
>>480 で質問したものです。>>481さんが指摘されたことをやってみたのですが、うまくいきません。
/*  <applet code=Test2 width=640 Height=480></applet>*/
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;

public class Test2 extends Applet {
  private MyPanel mPnl[] = new MyPanel[9];
  private boolean flickOn = false;
  Timer flickTimer;
  public void init() {
    this.setBackground(Color.gray);
    for(int i = 0; i < 9; i++){
      mPnl[i] = new MyPanel(i);
      this.add(mPnl[i]);
    }
    Timer flickTimer = new Timer();
    flickTimer.schedule(new TimerTask() {
      public void run() {
        flickOn = !flickOn;
        for(int i = 0; i < 9; i++) {
          if (mPnl[i].panelFlick == true) {
            mPnl[i].flick(flickOn);
          }
        }
        repaint();
      }
    },0 ,500);
  }
<続く>
488Java初心者=480:02/10/02 14:02
<続き>
  public void paint(Graphics g) {
    update(g);
  }
  public void update(Graphics g){
    this.paintComponents(g);//←─────@
  }
}
class MyPanel extends Panel {
  public volatile boolean panelFlick = false;
  
  private Label l1,l2,l3,l4,l5,l6;
  private Button tglBtn;
  private Color panelColor;

  MyPanel(int index){
    this.setBackground(Color.red);
    l1 = new Label("****"); l2 = new Label("****");
    l3 = new Label("****"); l4 = new Label("****");
    l5 = new Label("****"); l6 = new Label("****");
    tglBtn = new Button("点滅トグルSW");
    tglBtn.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        panelFlick = !panelFlick;
      }
    });
    add(tglBtn);
    add(l1); add(l2); add(l3);
    add(l4); add(l5); add(l6);
  }
<さらに続く>
489Java初心者=480:02/10/02 14:05
<さらに続き>
  public void paint(Graphics g) {
    update(g);
  }
  public void update(Graphics g) {
    this.paintComponents(g);//←─────A
  }
  public void flick(boolean isOn) {
    this.setEnabled(false);
    if(isOn == true) {
      panelColor = Color.red;
    } else {
      panelColor = Color.white;
    }
    for(int i = 0; i < this.getComponentCount(); i++) {
      Object obj = this.getComponent(i);
      if(obj.getClass().getName().equals("java.awt.Label")) {
        this.getComponent(i).setBackground(panelColor);
      }
    }
    this.setBackground(panelColor);
    this.setEnabled(true);
    this.update(this.getGraphics());
  }
}
私がおもうに、@、Aの矢印を書き込んだところに問題があると思うのですが、
どのように変更したらよいでしょうか。教えてください。
490デフォルトの名無しさん:02/10/02 14:53
btn1を押すとボタンの文字を「開ける」から「閉じる」に変えるようにしようとしたところ、、
以下の文でコンパイルできませんでした。何がいけないのでしょうか?
また、btn1を押すとbtn1の色を変えるようにするにはどうしたらよいでしょうか?

btn11 = new Button("開ける");
btn11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
btn11.setText("閉じる");
}
});
>>490
どんなエラーが出たんですか?って言うかコンパイルエラーならメッセージ貼れやボケ。
>>451
PostgreSQLのJDBCの実装って本当に
Connection#commit()で
でクエリー "COMMIT;BEGIN;" が発行されるの?
>>487
要するに、Labelの背景が透明にならないのがイヤなんでしょ?
背景が透明になるLabelを自分で書くとか、javax.swing.JLabelを使うかしたほうが
手っ取り早いのではないか。
>>490
setText→setLabel
495490:02/10/02 15:29
>>491
すいません書きなおします

btn1を押すとボタンの文字を「開ける」から「閉じる」に変えるようにしようとしたところ、
以下の文で


シンボルを解釈処理できません
シンボル:メソッド setText (java.lang.String)
位置  :java.awt.Buttonのクラス
               btn11.setText
                  ^


というエラーが出てコンパイルできませんでした。何がいけないのでしょうか?
また、btn1を押すとbtn1の色を変えるようにするにはどうしたらよいでしょうか?

btn11 = new Button("開ける");
btn11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
btn11.setText("閉じる");
}
});
>>495
new ActionListener() {
public void actionPerformed(ActionEvent ae) {
btn11.setText("閉じる");
}


は、

btn11 = new Button("開ける");
btn11.addActionListener();

とは直接的な関係はありません。別のクラスですから。

イベントでe.getSourceでボタンを取得してそれに対して操作すれば?
497490:02/10/02 15:33
>>494
ありがとうございます

また、btn1を押すとbtn1の色を変えるようにするにはどうしたらよいでしょうか?

btn11 = new Button("開ける");
btn11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
btn11.setLabel("閉じる");
}
});
498490:02/10/02 15:36
>>496
ありがとうございます。
>>494
の教えてくれた通りにやったのですが、コンパイルできましたよ
>>497
btn11.setBackground(Color.white)
とか。
よく似たこと>>487-489がやっとるぞ
500Java初心者=480:02/10/02 15:50
>>493
そういうことなんですが、問題はアプレットということなんです。
もしかして、JRE1.4をクライアント側にインストールしさえすれば、
Swingを使えるのでしょうか?
>>500 もちろん。
502490:02/10/02 16:02
>>499
ありがとうございます。できました!!!
503デフォルトの名無しさん:02/10/02 16:05
コンピュータがbtnAを押すと、
「コンピュータが計算しています」と言うメッセージを表示してから
一秒くらい経ってから
「何かボタンを押してください」と言うメッセージを
表示するようにしたいです。
下の????の部分に何を入れたらよいでしょうか
どなたか教えてください。

btnA = new Button("OK");
btnA.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
lblComment.setText("コンピュータが計算しています");
?????
lblComment.setText("何かボタンを押してください");

}
});
>>503
????? ←この部分を日本語で書いてみろ
>>504
はてなはてなはてなはてなはてな

です。
>>503
現在の時刻を記録する。

現在の時刻が記録した時刻+1秒以上になるまで待つ。


>>505
正解!
>>506
それをそのままコードにしたら、できるでしょ
>>504
ハードディスクを消去しました。
510506:02/10/02 16:16
>>508
私は質問者ではないです。
511Java初心者=480:02/10/02 16:19
>>501
うひょー!知りませんでした!
アプレットではAWTしか使えないっていう、学生時代の遠い記憶を鵜呑みにしてました。
早速Swingに変更します。ありがとうございました!!!
512デフォルトの名無しさん:02/10/02 16:26
>>506
調べたのですが現在の時刻の記録の仕方がわかりませんでした。

下の()内の部分に何を入れたらよいでしょうか
どなたか教えてください。

btnA = new Button("OK");
btnA.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent ae) {
    lblComment.setText("コンピュータが計算しています");
    (現在の時刻を記録する。)
    (現在の時刻が記録した時刻+1秒以上になるまで待つ。)
    lblComment.setText("何かボタンを押してください");
  }
});
>>512
質問にまったく進化がないっす。
勉強ならば自分で調べ倒しなさいな。そうすることによって初めて身になる。
プログラミングなんて人に聞くもんじゃないんだよ。

どういうキーワードで検索したの?
514512:02/10/02 16:49
>>513
正直調べ方がわからないんです。
本に載ってなければお手上げって感じで・・・
辞書みたいな本があればよいのだけども。
runtimeについて調べてるんですが・・・
VBばっかリやってると馬鹿になる、のお手本だな(ワラ

java.util.Dateクラスを調べたらいい。

最初に↑だけでビジーループ版作って、理解できたらjava.lang.Threadクラスのstaticメソッドを組み合わせる。
516デフォルトの名無しさん:02/10/02 17:00
>>512
JavaDOCって知ってる?
まずそれダウンロードしたがええよ。
http://java.sun.com/j2se/1.4/ja/download.html
ガンガレ
ちょっと待て、時間経過を待つのにループ回すのか?
スレッド.寝てろ(長) でいいんじゃ?
>>512

調べるならSystemクラスのほうがいいよ。

public void actionPerformed(ActionEvent ae) {
  lblComment.setText("コンピュータが計算しています");
  Thread t = new Thread(){
    public void run(){
      Thread.sleep(1000);
      lblComment.setText("何かボタンを押してください");
    }
  };
  t.start();
  return;
}
520512:02/10/02 17:24
>>516
あ、それもって無かったです。
ありがとう、これで頑張ってみます
521デフォルトの名無しさん:02/10/02 19:06
Javaプログラムにデータファイルを読み込むことってできないんですか?
>>521
アプレットは無理。アプレットじゃないならせめて検索くらいせれ。
523デフォルトの名無しさん:02/10/02 19:13
サーブレット絡みで質問です。

以下のURLをブラウザのアドレス欄に打ち込んで、
dispatch サーブレットで、リダイレクトしたとします。

www.example.com/servlet/dispatch?foo=var

dispatch のサーブレット
  RequestDispatcher rd = request.getRequestDispatcher("/abc.jsp");
  rd.forward(request, response);

すると、実際には abc.jsp が表示されますが、
アドレス欄は「www.example.com/servlet/dispatch?foo=var」
のままです。

このアドレス欄にある「www.example.com/servlet/dispatch?foo=var」
という URI を abc.jsp から取得したいのですが、何か方法はあるので
しょうか?
request.getRequestURI()メソッドだと、「/abc.jsp」が返ってきます。
>>522
わかりました
>>523
request.getAttribute("xxx") で取れたと思う。xxx が何だったか忘れたが
getAttributeNames() で一回ダンプして見れば分かるだろう。
チャットクライアントを作っているのですが、メッセージを送信したり
受信した時に、テキストエリアを自動的にスクロールするようにすると、
テキストエリアの表示がおかしくなってしまいます。画面にゴミが
出てしまうのです。

テキストエリアのスクロールの制御がよくわからなくて、スクロール
ペインをこんな感じ

JScrollBar vsb = spnMain.getVerticalScrollBar();
vsb.setValue(vsb.getMaximum());

でスクロールさせているのですが、これがまずいのでしょうか?
527466:02/10/02 23:32
>>468,469.470
どうもありがとうございました。
528デフォルトの名無しさん:02/10/02 23:35
JavaのAPIって自分でつくれんのかい?
つくれるよ
>>529
って言うかJavaのAPIって何を指すの?
531466:02/10/02 23:39
>>468,469.470
どうもありがとうございました。
532デフォルトの名無しさん:02/10/02 23:40
たとえばObjectみたいなスーパークラス。
ますます言っている意味がわからん
534528:02/10/02 23:46
だからObjectみたいなクラスの素を
Win32APIやシステムコール組み合わせて自分で作れるか聞いてんの。
Objectだって中身はそうでしょ。
多分、その質問の解答は
「作れない」だと思われる。
いや、どのレベルのもの作りたいかによるかと。
しかし、JavaのAPIって自分でつくれんのかい?
だけで、ここまで詮索できるのか?
JNIまでしか詮索できんかった
>>537
APIからJNIを想像できるとは、すさまじい想像力だ。
元の質問者はAPIの意味をちゃんと調べなさい。
539名無しさん@Vim:02/10/03 00:10
いきなり話し変わるけど、
SunへのJavaのバグ報告がめちゃめちゃ面倒になってる。

昔は楽だったのに。
540デフォルトの名無しさん:02/10/03 00:14
すごくスレ違いでスマソ。
只今、モナー版にて、「☆☆モナー海を渡る☆☆」
というスレで、その手のプロ(海外版windows等に詳しい方、
AA、モナー職人様、英語のプロ(パソコン用語詳しい方)、
などを臨時必要としています。手・CテC空いている方、
腕に覚えのある方,興味のある方はぜひご参加くださいませ。

http://aa.2ch.net/test/read.cgi/mona/1033460821/l50

やって頂きたい事と、目標です。

1.モナーや日本式(全角使った)AAを世界に広めてみたい。
2.そのために、ふさわしい海外サイトはどこか。
大きく、参加し・襪4くれそうな雰囲気で1A流行りそうなトコ。
3.どうやって全角の絵を表示させるか。
 今のところ、GIFに変換するのがよさそう。
 でも、将来的にはちゃんとしたものを見せてあげたい。
 フォントの事とか、エンコードだとか、色々微妙。どうする?
その手にくわしい方がほしい所。
 その説明を外人さんにするにはパソコン用語に詳しい英語のプロさんcome!!
4.流行するようなモナーって何だろう?8頭身とか??
 全角使った日本独特のAA文化も見せたい。
5.喋る2ch用語も英語に。英語のプロさん来てくださいまし
6.・・・・とりあえず皆で協力しあおうではないか。
●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●●
/|         |  |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
  |         |  | ̄ ̄ ̄ /|                    ||
  |         |  |   / /|TTTTTT   TTTTTTTTTT||TTTTT
  |        /\ |  /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /
  |/  /.  _.| ̄|/|/|/         Λ_Λ
/|\/  / /  |/ /           (___)
/|    / /  /ヽ            /〔 非OO 〕〕つ
  |   | ̄|  | |ヽ/l            `/二二ヽ
  |   |  |/| |__|/   Λ_Λ     / /(_)
  |   |/|  |/      ( ´∀`)   (_)    Λ_Λ
  |   |  |/      // /  ^ ̄]゚        (`   )
  |   |/        ゚/ ̄ ̄_ヽ         ⊂〔〔 非OO 〕
はぁ〜〜〜
JavaDocってメモリ馬鹿食うのね。

最大メモリ300Mバイト当てても、java.lang.OutOfMemoryErrorが発生してしまうのだけれど、
こういう場合、ど〜すれば良いのでしょうか。

ソースコードは、1ファイル当たり6000〜18000行で、104もファイル数があって、
パッケージ分けも出来ないというきびしい条件なんです。

他のJavaDoc風ツールでもあれば良いのだけれど…
543 ◆k/Ubp.Kg :02/10/03 06:20
>>542
javadoc -J で VM が使用するメモリを制限して javadoc かけてもダメなんかな?
やったことないけど。
544542:02/10/03 07:48
こんなオプションがあったんですね。
JavaDoc成功しました。Ant経由で、12分4秒。
ありがとうございました。
545 ◆k/Ubp.Kg :02/10/03 08:10
>>544
ぉ、解決したみたいで良かった良かった。
>ソースコードは、1ファイル当たり6000〜18000行で、104もファイル数があって、
>パッケージ分けも出来ないというきびしい条件なんです。
すごい状況だな…。
いまCの構造体を置き換えるクラスを作ってるんですが、
Char[8]とかやつはStringに置き換えるのが普通ですか?
プリミティブ型でまんまでもいけると思うんですが、Characterにすべきですか?
どれが一番まともなやり方なんでしょう。
>>542
さしつかえなければ、1 ファイルにそんなに詰め込む状況になった理由を聞いてもいい?
もしかしてCOBOLやC/C++からの移植?
age
549デフォルトの名無しさん:02/10/03 14:56
あがってないな
550デフォルトの名無しさん:02/10/03 15:02
PGになるにはどうしたらいいんですか?
>>550
goto http://www.google.co.jp
input [PGになるにはどうしたらいいんですか?] and Enter.
>550
恋人と別れる。
553デフォルトの名無しさん:02/10/03 15:43
Javaの暮らすライブラリってドキュメントにも書いてないんだけど、どう考えても
多重継承してるよなって思うところがあるのですが、私は正しいですか?
>>553
もっとAPI仕様書読んでみろ。
多重継承のいみわかってるのかきいてみたい。
>>552
恋人なんかいません。
>>555
神のプログラマになれる素質がある。
>>555
君にはPG(あるいはGM)になる才能がある。
>>556,557
太り気味で汗いっぱいかくのにお風呂嫌いでもなれますか?
>>558

ああ、おまえなら最高のプログラムになれるさ!
>>559
プログラマになりたいのですが、プログラムにしかなれませんか?
>>558
合格!神の領域に逝けるかも
562553:02/10/03 17:20
>554
例えばawtでGraphicsやImageがある。PanelやContainerがComponentから継承
していることは分かるが、GraphicsやImageが継承されていることは書かれていない
がPanelではそれら抽象クラスが実装されてません?
>>560
君にはデバッグの素質がある。かなりある。
寒い慰めあいだな。
565デフォルトの名無しさん:02/10/03 18:33
フリーのJITコンパイラのURL教えてください。
571デフォルトの名無しさん:02/10/03 18:58
Linuxで使えるフリーのJITコンパイラのURL教えてください!!!
578デフォルトの名無しさん:02/10/03 19:04
てめえらLinuxで使えるフリーのJIT*コ*ン*パ*イ*ラ*のURL教えやがれ!!!
   ∧  b
  /●ヽ/
 (___)  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< こっちの方がカワイイ
 (    )  \_____
 | | |
 (__)_)
ウンコみたい
589デフォルトの名無しさん:02/10/03 19:13
嵐ですか?
 嵐ですか?
  嵐ですか?
   嵐ですか?

嵐ですか?
591デフォルトの名無しさん:02/10/03 19:14
   ▲  b
  /●ヽ/
 (∧_∧)  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< デュークたんかわいちゅぎだからな!
 (    )  \_____
 | | |
 (__)_)
>>565
死ね
このURLはどこから湧いてくるんだ?
ボウフラの発生と共通点がありそうだが。
603デフォルトの名無しさん:02/10/03 19:22
class a{
public static void main(String args[]){
for(int i=0;i<10;i++)
System.out.println("できません");
}
}
できません。なぜですか?おしえてください
JITコンパイラ使わせろ!!!
>>547
ツールによる自動生成による結果です。
ちなみに生成元になるテンプレートの時点で、30000行を超えています。
616デフォルトの名無しさん:02/10/03 19:30
粘着警報
ぜんぜん面白くないどころか ウザイ
622デフォルトの名無しさん:02/10/03 19:33
連続投稿スクリプトだったらアク禁ものだな
626542=606:02/10/03 19:34
>>547
より正確には、
XMLのDTD → ツール1 → XMLスキーマ → 微調整 → スキーマコンパイラ
という方法をとりました。
633デフォルトの名無しさん:02/10/03 19:37
JSPがコンパイルできません。
Servletと連動するようになっているのですが、
JSPからServletのクラスが読み込めないようで”シンボルが解決できません”になります。
Tomcat3.2.3の頃はこれで動いたのですが…。今は4.1.12です。
何か仕様が変わったのでしょうか。
どなたか解決方法を教えてください。
たくさんあるね。
636565:02/10/03 19:38
どうもありがとうございました!
非常に助かりました!
しねよ
データベースに接続した後
Aというテーブルがあるかどうか調べて
無かったら作るという処理をしたいんだけどどうしたらいいの?
639デフォルトの名無しさん:02/10/03 21:18
Servlet (およびそこから使うクラス) から、Socket生成して外部と通信っつーのは普通にやることなのかな?

JDBC使っていいんだから、Socket生成を禁止する理由はないような気もする。
EJBでは御法度なのは分かってるんだけど、定石なのか、落とし穴があるからあんまりやらないのか、見極めきれない。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;


public class MyApplet extends Applet implements ActionListener{


Label lTitle; //蓋ラベル
Panel pBody; //パネル
Label lSub; //中ラベル
Panel pMenu; //メニューパネル
Button bSyori1; //ボタン@
Button bSyori2; //ボタンA
Button bSyori3; //ボタンB
Button bSyori4; //ボタンC
Button bEnd; //終了ボタン
Panel pBottom; //外辺部分パネル
Label lBottom; //底ラベル
Button bBack; //戻るボタン



public void init(){

//背景の色とレイアウトを決める。
setBackground(Color.lightGray);
///////////////////////////////////////////////////////////
//使う部品を生成
lTitle = new Label("MyApplet",Label.CENTER); //タイトルラベル
lTitle.setForeground(Color.blue);
lSub = new Label("*** メニュー ***",Label.CENTER); //サブラベル
lSub.setBackground(Color.gray);

lBottom = new Label(); //ボトムラベル
bSyori1 = new Button("処理1へ");
bSyori2 = new Button("処理2へ"); //ボタン
bSyori3 = new Button("処理3へ");
bEnd = new Button("終了"); //ボタン
bBack = new Button("戻る"); //ボタン
JMFをつかって複数の動画ファイルを
連結して再生する方法ってありますか?
現状では、Playerを動画ファイルごとに
作って、VisualComponentを取り出し、
前の動画が終わるたびに張り替えて再生
しています。

ManagerのcreateMargedDataSourceメソッドを
使ってみたのですが、このメソッドで生成された
DataSource用のPlayerは作成できなかったです。

OS:Windows2000,98
JDK:1.4.1
JMF:2.1.1b
643たすけてーー!:02/10/03 22:21
スタイルシート使ってウェブ上でドキュメントの印刷してます。
改ページの処理をしてやってるんですけど、
2ページ目以降、少しずつズレが生じて途中でくずれてしまいます。
どうやったら印刷開始位置を統一できるのですか?
助けてください。ほんとに泣きそうです。朝までかかっても
解決する自信がありません・・・。
pMenu = new Panel(); //パネル
setLayout(new GridLayout(4,1));
//Panel pMenu; //メニューパネル
pMenu.add(bSyori1);
pMenu.add(bSyori2);
pMenu.add(bSyori3);
pMenu.add(bEnd);
pBody = new Panel(); //パネル
setLayout(new GridLayout(2,1));
//Panel pBody; //パネル
pBody.add(lSub);
pBody.add(pMenu);


pBottom = new Panel(); //パネル
setLayout(new GridLayout(1,2));
//Panel pBottom; //外辺部分パネル
pBottom.add(lBottom);
pBottom.add(bBack);


setLayout(new BorderLayout());//シーケンス図どおりだとうまくいかないので移動
this.add("North",lTitle);
this.add("Center",pBody);
this.add("South",pBottom);
bSyori1.addActionListener(this);
bSyori2.addActionListener(this);
bSyori3.addActionListener(this);
bEnd.addActionListener(this);
bBack.addActionListener(this);
}

public void actionPerformed(ActionEvent e){
//
if(e.getSource() == bSyori1){
String msg1 = new String ("処理1(ボタン押した?)");
lBottom.setText(msg1);
}else if(e.getSource() == bSyori2){
String msg2 = new String ("処理2(押したよね?)");
lBottom.setText(msg2);
}else if(e.getSource() == bSyori3){
String msg3 = new String ("処理3(押したってば。)");
lBottom.setText(msg3);
}else if(e.getSource() == bEnd){
String msg4 = new String ("終了されました。");
lBottom.setText(msg4);
}else if(e.getSource() == bBack){
String msg5 = new String ("戻れません。");
lBottom.setText(msg5);
}
}
}
同じパッケージ内の、他のクラスを使用する場合はどうすればいいのでしょうか?
>>647
特に何もしなくて良いですけど。

package a;

public class b
{
}




package a;

public class c
{
public static void main(String[] args)
{
b bx = new b();
}
}

649デフォルトの名無しさん:02/10/03 23:00
エディッタに秀丸を使っているのですが、秀丸からコンパイルする方法って無いでしょうか。
あったら教えてください。よろしくお願いします。
エデッッタ
>>648
回答ありがとうございます。
そんな感じでやってるんですが、
cをコンパイルする時に「bが見つからないぞ」と怒られます。
階層化してるのがまずいんでしょうか。
>>649
秀丸に聞け
653デフォルトの名無しさん:02/10/04 00:14
クラスの配列を作ったときはそのコンストラクタが呼ばれていない気がするのですが

例)
CLASS_A aaa[] = new CLASS_A[10];
>>649
マクロ書いて使ってた。
でも、なぜか異様に待たされるのでJBuilder使うことにした。
>>653
そらそーだ
>>653
厨:それ、「CLASS_Aもしくはその子供のインスタンスを10個格納出来る配列(クラス)」をインスタンス化しただけです。そこに格納するCLASS_Aのインスタンスは別に作成して下さい。
>>649
1.コマンドプロンプトを立ち上げておく。
2.Javaソースを書く。
3.Alt + Tab
4.ant

これじゃダメですか?
Javaプログラム同士でプロセス間通信を行いたいのですがどんな方法が考えられるでしょうか?
Socket通信の他に何かありますか?
>>651
クラスパスちゃんと通ってます?
つうか、>>653は引数の必要なコンストラクタを持つクラス
の配列を作るときはどうするつもりだったんだろう。。。
>>658
・JNI
・標準入出力 (Process#getInputStream, getOutputStream)
>>661
上は少々大袈裟なので下について調べてみます。ありがとうございました。
>>658
ソケットにしとけ。マシン隔てても使えるし。
そもそも、Javaのプロセスは1つのマシンな訳だから、
異る2つのマシン間の通信と考えれば、ソケットを使う
のが良い
>> 658, 661
HORBとかRMIは、ソケット通信のうちとみなして無視してるの?
RMIでもいいけど
>>663
なるほど、理にかなってますね。

>>664
その辺勉強不足なので勉強してみます。

TOMCATとApache-SOAPを使ってリモコン的な物を作ろうとしています。

♪〜          
 □−−SOAP−−□<音楽をならせ!)
サーバ       クライアント

でも、Apache-SOAPは呼び出しごとにオブジェクトを生成してサービスを処理後に破棄しているようです。

と、言うことは再生命令を渡してもすぐにオブジェクトが破棄されてしまうため、単体ではそれを実現出来ないなと。

そこで、サーバ上にプレーヤアプリケーションを常駐させてSOAPサービスからプロセス間通信でプレーヤに
命令を出すと言う物を考えました。
>> 666
RMIにしといたほうが、いいと思う。まあ、ありえないかも知れないが、Webサーバと
プレイヤーアプリケーションが、別マシンになってもそのまま使えるからね。
>>666
全くもって意味のないSOAPの使いかただな。
勉強してるだけか?

その程度なら、クライアントとサーバ間の通信自体を
ソケットかRMI使って実装した方がはやい。

>>668
いっそJavaをつかわな…げふげふっ
>>668
>全くもって意味のないSOAPの使いかただな。
>勉強してるだけか?

はい、勉強してるだけです。学園祭での展示です。

通信プロトコルの研究なんて展示しても何がどうだかわからないわけで。
ネットワークごしに動いていることを意識させてなおかつインタラクティブ性の高いもの。

で、あの結論に達しました。

実践でやるなら絶対にソケットでちゃちゃっと作ってますw


調べてみたところ、SOAPサービスのスコープ(ライフタイム)はRequest Session Application
と選べるようです。

TOMCATのJSPで使われるBeanに設定出来るそれと同じ意味を持つようです。


http://www.atmarkit.co.jp/fjava/rensai/jsp06/jsp06.htmlに

>application 現在のWebアプリケーション アプリケーションの有効期間と同じだけ、永続的に使用できる
>(使用例:アクセスカウントなど、アプリケーション間で共有する情報を保持させる)

と、あるのですが、この場合、BeanのライフタイムはTOMCATのライフタイムとほぼ同じになるのでしょうか?
そうならばプレーヤを用意しなくてもApache-SOAPの中で完結出来るのですが。


試せ?そうですねw
>>670
そのアプリケーションではSOAPコールで単に音楽を鳴らすスレッドを走らせればいいだけです。
ライフサイクルは関係ありません。
>>659
クラスパスでルートの階層をし指定したらうまくいきました。
どうもありがとうございました。
673デフォルトの名無しさん:02/10/04 14:14
重複があがってるな
あげとく
HTTPで
User-Agentを変更する方法ありませんか?

java.net.URL
を見てみたのですが違うクラスなのでしょうか?
675674:02/10/04 15:39
すいませんもう少し詳しく書きます。

URl url1 = new URL("http://www.xxx.com/index.html");
BufferedReader in = new BufferedReader
(new InputStreamReader(url1.openStream()));
省略

でUser-Agentを送って"http://www.xxx.com/index.html"を
取得したいのですがいろいろと調べてみたのですが解りませんでした。
よろしくお願いします。

URL#openConnection()
URLConnection#setRequestProperty(String,String)
URLConnection#getInputStream()
677初心者ですんまそん:02/10/04 15:51

 ローカルなハードディスクに  aaa.class を作っておいて、
 それを bbb.html(aaaと同じ場所に保存されています) で、

 <applet code="aaa.class">

 で呼び出すんだけど、classファイルが見つからないと
 文句を言われます。どうしてですか?

 何が原因と考えられますか?

678デフォルトの名無しさん:02/10/04 15:56
679674:02/10/04 16:00
>>676
ありがとうございます。
これは
RequestProperty("User-Agent: Mozilla/4.0")
とやればいいのですか?

すいませんまだクラスに慣れていないので
ドキュメントをよんでみたのですがこの位しか予想が付きませんでした。
680厨房神:02/10/04 16:13
BDBZMlってウイルスですよ.
msnのメールで送ったら拒否されました。
そういえば海外で使われている分割を解くtool知ってますか?
どうかこの厨房の神に教えてくださいまし。


>677
appletviewerを実行した時に
java.lang.ClassNotFoundException: クラス名
って出るんだよね?
大文字小文字も関係あるけどちゃんと合ってる?
>>677
<applet code="aaa">が正しい。
.classがあると、aaaパッケージ内のclass.classだと認識されることがある。
683デフォルトの名無しさん:02/10/04 17:08
684677:02/10/04 17:28

 >>681 あってます。ファイル名には小文字しか使ってません。

 >>682 それをやってみましたが、駄目でした。

 レスありがとうございます。
>>677
JDK 1.4 コンパチでコンパイルして MS JVM 1.1.4 で動かしてるとか。
>>685
俺もそれではまった。
気づくのに半日かかったよ。
質問です。
コンポーネントの見た目の絵を、Imageに格納したいと思っているのですが
うまくいきません。具体的には、JAppletのinit()中で、

Component cont = getContentPane();
JPanel jPanel = new JPanel(new BorderLayout());
JButton jButton = new JButton("title");
jPanel.add(jButton, BorderLayout.CENTER);
cont.add(jPanel);
Image img = createImage(100, 100);
Graphics g = img.getGraphics;
jPanel.paint(g); //ここでimgに描画させる

としてみたのですが、imgは真っ白なままです。
うまく解決する方法はあるでしょうか?
688じゃヴぁ:02/10/04 20:29
APIってなんじゃらほい?
あぴー
>>677

JAppletで作って、MSのVMでswingが見つからない
ってのではないだろうな。

見つからないのはなんてクラスだ?
aaa.classが見つからないのか?
コンソールに出力される、ClassNotFoundExceptionには
なんて表示されている?
691デフォルトの名無しさん:02/10/04 20:48
フラッシュでゲームとか作りたいんですけど
ジャバやったことない超初心者でも結構簡単に
理解できるようなお勧めな本教えてください。
>>691
Flash なら Flash 板にどうぞ。
http://pc3.2ch.net/swf/
JSTLを使っているJSPを、Antでコンパイルしようとしています。
しかし、コンパイル中に以下のようなエラーが発生してしまいます。

error:null
02-10-04 09:49:02 - エラー: ファイル '\login.jsp' は次の例外を発生しました
:java.lang.NullPointerException

JSTLの記述自体を削除するとAntで正常にコンパイルできます。
また、JSTLの記述を含んでいても、Tomcatがコンパイルを行うと
正常に動作します。

jspcのclasspathは、jstl.jarとstandard.jarに通しているはずなのですが...
何が原因なのでしょうか?
>>693
コンパイルできた=正常動作と考えてない?
695677:02/10/04 22:43

 >>690

 すんません。自宅のXPだとちゃんと動くんです。
 職場のW98だとダメなんです。表示結果は月曜に。

 おながいしまそ。

696名無しのVim使い:02/10/04 23:20
>>695
私は、
1.Jarファイルが壊れていた。 →java.lang.ClassNotFoundException
2.同じ名前で中身の違うクラスがあった。 →java.lang.ClassNotFoundException
なんて経験がある。

でも、この場合は違うような気がする。1の可能性は注意。
697デフォルトの名無しさん:02/10/05 04:34
java.sql.Statement#setQueryTimeout(int seconds)
ってOracleJDBC8.1.7で使用できるのでしょうか?サンプルで下記のコードを
作成してみたのですが、17行目で止まってしまうのはわかるのですが、制限
時間を超えてもいっこうにSQLExceptionが発行されません。
AutoCommitはもちろん無効化(false)に設定しているのですが・・・
Googleとかで検索かけても出来るよとしかなく、すみませんがどなたか知りま
せんか?

-------------------------------------
1 String strSQL = "SELECT * FROM SAMPLETBL WHERE ID=1 FOR UPDATE";
2 conn1.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
3 conn2.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
4 Statement stmt1 = conn1.createStatement();
5 Statement stmt2 = conn2.createStatement();
6 stmt1.setQueryTimeout(1);
7 stmt2.setQueryTimeout(1);
8 System.out.println("応答時間制限(s) : "+stmt1.getQueryTimeout());
9 System.out.println("応答時間制限(s) : "+stmt2.getQueryTimeout());
10 rs1 = stmt1.executeQuery(strSQL);
11 while(rs1.next()){
12 System.out.println(rs1.getString(1));
13 }
14 System.out.println("SQL1 END");
15 //conn1.commit();
16 rs2 = stmt2.executeQuery(strSQL);
17 while(rs2.next()){
18 System.out.println(rs2.getString(1));
19 }
20 System.out.println("SQL2 END");
21 conn2.commit();

698これ:02/10/05 04:51
Iteratorで、逆順に処理したいときはどうするもの?
ListIteratorツカウ
>>697
なんで17行目で止まるのかよく分からないんだけど、おしえて。
reverse_iterator ..............................無い
reverse_iterator を導入するというテもあったと思うんだが、何故にListIterator
という手段を取ったのだろうか?

ListIterator li = list.listIterator(list.size());
while (li.hasPrevious()) {
Object obj=li.previous();
....
}
という感じになるはず。検証してないけど。
>>700
想像だが、同じテーブルを FOR UPDATE してるから排他ロックかかってる
んじゃないの?
あ、まさにそれを狙ったコードだから、タイムアウトしない理由かスマソ。
704700:02/10/05 10:16
>>702
ナルホド・・・
つうことは、DBサーバ内部での排他ロック機構での停止までいっている
ときは、タイムアウトの対象にならない、ということなんでわ?
JDBCの仕様か、使ってるJDBCドライバの実装依存の話か、SQLServer自身
の仕様の話なのかは、調べてみんといかんね。
705642:02/10/05 12:57
うう・・・・JMFってあんまり使われてないのかな・・・・
まぁ、単純に考えれば何もJAVAでやる必要ないからなぁ・・・
>>704
>タイムアウトの対象にならない
それは困る。典型的なデッドロックじゃん(w
クライアントが流行ってない時期があったからね。
今となっては別の手段が…
708デフォルトの名無しさん:02/10/05 15:41
FOR UPDATEで排他ロックがかかるからconn1のトランザクション
が解除(commit/rollback)しないうちに同レコードにアクセスし
ようとするconn2は待ち状態になる。NOWAITをかけると待たずに
ロック中である旨のSQLexceptionが投げられるけど・・・
OracleのJDBCドライバは未実装ってこと?
しまったsageとく
万年カレンダーを作っています。
8割方完成というところまでこぎ着けたのですが、あと一歩というところで困っています。

私は、1600年1月1日を火曜日とし(大学のUNIXのCalはでそうだったので)
それを起点に、入力された日付がそこから何日たっているので何曜日だ、と計算しているのですが
他の方の作品と照らし合わせてみると、どうしても曜日がずれてしまっているのです。

1600年1月1日は何曜日が正しいのでしょうか。
もしご存じの方がいらっしゃったら教えてください。
JavaScriptw

<script>
var w =new Array("Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat.");
var d = new Date(1600, 0, 1);
document.write("1600-1-1 is " + w[d.getDay()]);
</script>

> 1600-1-1 is Sat.
712710:02/10/05 17:13
お騒がせしました。無事解決できました。
暦の関係で、1752年の9月で日数の調整が行われていたようです。

>711
わざわざ有り難うございました
で、何曜なの?
714710:02/10/05 18:20
おそらく火曜日ではないかと思います
715デフォルトの名無しさん:02/10/05 18:30
はじめまして、JAVA初心者です。この度、新言語のJAVAを始めようと思います。

そこで、質問です。今までただにエディタでソースを作ってたんですが、
これからForteを使おうと思っているんですが、うまくインストールできません。

症状としては、Forteのインストール中に「SDKを探してます。お待ちください」
で、どんなに待っても次へ進みません。

J2SEの1.41が既にインストール済みなんですが、Verが新しすぎるから
うまくいかないのでしょうか?それとも、WindowsMeはForteを使うことが
無理なんでしょうか?どなたか教えていただけませんか?
>>715
触使え。強くお勧めする。
>>715
ちなみにWin2000 J2SDK1.4.1でForte動いてるぞ。
だからVerの問題だと思う。
718715:02/10/05 18:42
>>716
触?

>>717
漏れがインストールしようとしているやつはJ2SE1.41(インストール済み)と、
(インストール失敗の)Forte4(アーカイブ名はffj_ce_win32.exe)です。
同じやつですか?
OSのVerが悪いってこと?やっぱりWin2000とかじゃないと駄目か・・・?
>>718
Forteは同じ奴だね。
720デフォルトの名無しさん:02/10/05 18:51
以下の applet のソースをコンパイルして IE6 で表示しようとしても
Class Test not found となって表示されません。
Java plug-in で IE を有効にすると表示されるようです。なぜでしょうか?


import java.applet.Applet;
import java.awt.Graphics;

public class Test extends Applet{
public void paint(Graphics gs){
gs.drawString("Hello world!", 10,40);
}
}
721715:02/10/05 18:54
>>719
そうですか・・・。気になったのが、getstartedce40_ja.pdfを読むと、
J2SEが1.31か1.40と書いてあるので無理なのかとも思ったんですけど・・・。
>>718
触ってのはたぶんEclipse(日食,月食の食)。
IBMが自社ツールのベース部分を公開したもの。
Javaにしては軽快で評判いい。
プラグイン次第でJavaだけでなくC++そのたいろんな言語に対応可能。
日本語化できるプラグインも出て盛り上がってる。
専用スレが下のほうにあるから検索してみ。
JavaのGUIエディタはForteが最強って話だが。
724デフォルトの名無しさん:02/10/05 19:14
>697
WebProg板#Servlet,JSPスレから紹介されて来ました。

似たような状況で、execute(executeQuery)でのINSERTでロックされる
現象にぶつかりました。

とりあえず、動くようになったのは、バッチ処理でSQLを登録して
一括でexecuteBatchしたら動作しました。

ただ、それでは解せないので、解決法を探してるのですが、
697さんのStatementが別インスタンスになっているのって問題になりませんでしょうか? 

僕も、リレーションが張ってある別テーブルへのアップデートの
ところで止まってるのですが、SQL 1文ごとにStatementを開放、取得
してるので、Statementのインスタンスが違うという意味では、同じ状況と言えます。
>>718
蝕って略すならまだしも触は... ってのはともかく、
eclipseは少なくともJREにパスが通ってないと駄目だから、
ForteでSDKが見つからんって言われているような状態で
すんなり起動できるかは不安だけどな。
http://java.sun.com/getjava/installer.html
をクリックしてみて、正常にアプレットが表示されるならOK.
NGでも自動的にJREがインストールされる。
726715:02/10/05 21:51
>>725
教えていただいたURLへ逝くと、きちんとアプレットは起動しました。
ですが依然Forteのインストールはできません。

ffj_ce_win32.exeを起動し、どうしても「Java 2 SDKを検索しています」から
先へ進みません。「見つからない」とか言われるわけでもなく、
「検索しています」のまま止まってしまいます。右上の×を押すと
「終了しますか?」と出るんで、「はい」を押せば正常終了するんで、
固まっている訳でもないようです。

通常、Forteのインストール時は、SDKの検索は何秒程度で終わるのでしょうか?
すぐ終わる。
>>715
J2SDKからインストールし直してみたら?
あと、JAVA_HOMEとかの設定を見直すとか。
>>726
ForteがJDK1.4.1に対応してないんじゃねーの?
だから、JDK1.4.1で動いてる奴がいるんだって。
でも、>>726 の症状は、まだ JDK1.4.0 にしか対応していなかったForte 4.0 EAを
JDK1.4.0_01 な環境にインストールしようとしたときと同じなんだよな。
すいません、どうしても次の問題がわからないんです
知恵遅れな私ですが教えてくださいませ…

//Giko.java
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Giko extends@{
int x=10,y=10;
public void init(){
A
}
public void paint(Graphics g){
B(x,y,20,20);
}
public void mouseDragged(MouseEvent me){
C
D
E
}
public void mouseMoved (MouseEvent me){}
}
問題は上の@〜Eです…すいませんが宜しくお願いいたします
>>720
コンパイラは何でどのバージョン使ってる?
クラスファイルとかの仕様も時と共に実は変わってきているんだが…
734デフォルトの名無しさん:02/10/05 23:43
クラスを多重継承しようとしたら失敗しました。

class AAA extends BBB , CCC {
}

って感じで書いているのですが、どこか間違っているのでしょうか。
↑ネタ
>>732
(1)はともかく、何をしたいのかを明示しない限り(2)-(6)は答えが定まりません。
それと丸数字使うなボケ
>>732 は宿題
738720:02/10/05 23:49
>>733
コンパイラは j2sdk-1_4_1-linux の javac です。
これではだめなのでしょうか?
windows にも j2sdk-1_4_1 入れて、それの appletviewer なら動作します。
でも msjava の jview /a では動きません。
>>736さん
すいません
半径が10ピクセルの黒塗り円がマウスをドラッグすることで、円がマウスポインタを
追っかけるよにしたいんです。
本当にごめんなさい、、、
ちょっと待て。ネタなんだろ? ネタの続きなんだろ?
頼むからそうだと逝ってくれ。
741734:02/10/06 00:04
>>735
ネタではありません。というか735がネタなのでしょうか?
どなたか教えてください。よろしくお願いします。
>741
どう見てもチミがネタ
>>738
JDK 1.4 で MSJVM 互換アプレットをコンパイルするときは
-target 1.1 オプション (だっけ?) 付けれ。
>>738
-target 1.1 は?
omoikkiri kabutta utuda
>>738
720を手元でやったら出来たよ。
>>739
問題の一部が欠けているように見える。
それで、皆答えが出せないのです。
748720:02/10/06 00:25
$ javac -target 1.1 Test.java
でコンパイルしたら動きました!みなさまありがとうございました。
749734:02/10/06 00:25
>>742
すみません。何がネタなのかわからないのですが?
>>732
1. 以下のURLをブラウザで開け
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
2. java.applet.Appletについて調べよ。
3. java.awt.Graphicsについて調べよ。
特に、Graphics#drawArc()とGraphics#setColor()について調べよ。
4. java.awt.event.MouseEventと、java.awt.MouseMotionListenerについて調べよ。
イベント回りは初心者には難しいので、ズバリ言う。
アプレットGikoにはjava.awt.MouseMotionListenerを実装(implements)させること。
そうすると、アプレット上でマウスがドラッグされたときに、
mouseDragged()に記述された手続きが実行される。
>>747さん
一応問題見直したところあれで全てなのですが…
皆さんすいません本当にお手数おかけして…
>>749
常識を無視してるから。
753747:02/10/06 00:33
>>751
選択問題ではなくて?
1 Applet
2 this.addMouseMotionListener(this);
3 draw
4 Point p = me.getPoint();
5 this.x = p.x;
6 this.y = p.y;
754747:02/10/06 00:34
ごめんミスった。
どこをミスったかは秘密
だからネタなんだってば
implements MouseMotionListener
757734:02/10/06 00:41
>>752
意味がわからないのですが。頼み方が悪いという意味でしょうか?
具体的にお願いします。
他にもあるぞ
初心者スレなんだからそろそろ誰か教えてやれよ。俺は嫌だが(w
>> 734
752じゃないが、ネタでないなら、一体なんなんだ? 入門書でclassとinterfaceの
あたりを読み直すことを勧める。
Java 多重継承で調べてみ
>>759
Javaで多重継承できるのはインターフェイスだけ

public interface A extends B, C

ならOK(だたしB,Cもinterfaceであることが必要)
クラスは単一継承しかできない。インターフェイスは
複数実装できる。
以上
>>762
頭悪いぞ
764734:02/10/06 00:51
>>762
interface A {
  int aaa;
  void disp() { }
}

interface B {
  int bbb;
  void do() {}
}

class C extends A , B {
}

とすればいいということですか?
>>764
頼むから'Java' と '多重継承' で調べてくれ。
ちょっと手に負えそうにないから。
>>764,765
インターフェイスについても調べろ。
コンパイルが通らないようなコード書くな
767734:02/10/06 00:55
>>765
間違っていますか?
>>732
1 Applet implements MouseMotionListener
2 this.addMouseMotionListener(this);
3 g.drawRect
4 Point p = me.getPoint();
5 this.x = p.x;
6 this.y = p.y;

こうかなぁ?
interfaceの使い方はわからない奴は、
ずっとわからないと思う。

最近、会社の同期を見て思った。
>>767
禿しくネタくさい
>>768
後は732に判断してもらおう。
>>769
そいつは、インターフェイスが分らないんじゃなく、
OOを分ってないだけ
773734:02/10/06 01:00
>>770
わからないから聞いているのですが。
ついでなのですが、instanceofはどのようなときに約に立つのでしょうか?
ネタって言われても仕方ないぞ。
まさか、入門書も読まずに、Javaを学ぼうとしているのではないだろうな?
>>773
説明しだすと、本気で1スレ使い切る。
このスレではやめて欲しい気もする。
軽くなら俺的にはOK
>>773
で、おまえは調べたのか?
って言うか、既に場が荒れてる……
779776:02/10/06 01:05
interfaceではなくて、instanceofだったのね。
class, interface, extends, implementsの区別もつかない人間が、instanceofを
知ってどうしようというのか小一時間……
781デフォルトの名無しさん:02/10/06 01:09
クラスパスを通したいのですが、すでに環境変数にクラスパスが設定されていてできないのですが、
どうすればいいの?
ネタフリ〜〜〜
だれか、Generics 試してみた人いますか?
感想を聞いてみたいです。
>>781
そのクラスパスの後ろに追加するんです。
やり方は環境による。
784734:02/10/06 01:11
>>780
区別がつかないから聞いているのですが・・・
知らなければずっと使えないので・・・
785781:02/10/06 01:12
>>783
もう追加できないのですが。
環境はwindowsです。
>>784
何でも聞けばいいってもんじゃない。
本くらい少しは読んでくれ。
ちょっと思ったけど、GenericsとJakartaのDynaBeanとかって、
ある意味逆行するね。
>> 734
まず、一体、何の本を、どの程度読んだのかを教えてください。
とか思ったけど、java-houseで聞いてみたらどうよ。親切な人たちが、いろいろ
教えてくれるよ。
>>785
過去ログ>>441を参照しろ
>>785
いくつか削れ!じゃなくて、
私ならば、実行時にクラスパスを追加します。
javac -classpath=%CLASSPATH%;追加のクラスパス Javaソース
java -cp %CLASSPATH%;追加のクラスパス 実行クラス
>>788
このスレと同じ状況になるのは必至かと
>>788
それはやめてくれ。まじで
>>785
たぶんそのままやってると死んでしまうので
Antとか使ったらどうよ?
794734:02/10/06 01:17
>>786
ではどの程度のことなら聞いてもいいのでしょうか?
よくわからないのですが。
Windows98で、autoexec.batやら、バッチファイルでクラスパス追加してたら、
100行目ぐらいから、追加されなくなった。てなことがありました。
796デフォルトの名無しさん:02/10/06 01:20
789はちょっとずれてる気が
>>794
初心者スレゆえ聞いても問題はないが、しかし、
入門書の1、2ページ目にあるような内容はやめて欲しい。
798デフォルトの名無しさん:02/10/06 01:21
>>794
Antならうまくいくんじゃない? たぶん。
799795:02/10/06 01:23
クラスパスに追加しまくる場合、
XML系のライブラリに注意したほうがいいよん。
800734:02/10/06 01:24
ついでに聞いてもいいでしょうか?
コンパイルしても
java AAA
ってしないと実行できないのですが普通のexeのようにクリックして実行される形式にコンパイルすることはできないのでしょうか?
801795:02/10/06 01:26
>>800
いくつかあります。(無償、有償含めて)
シェルや、バッチにするという手もあります。
>732
1 Applet implements MouseMotionListener
2 addMouseMotionListener(this);
3 g.fillRect
4 x = me.getX();
5 y = me.getY();
6 repaint();

俺的にはこうかな
>802
Rect じゃねーや Oval だスマソ
HTMLのパーサについて教えてください。
以下のJDCのTechTIPSのサンプルコードを利用すると、
aタグのhrefの内容が取得できますが、
HTML.Tag.A→HTML.Tag.INPUT
HTML.Attribute.HREF→HTML.Attribute.NAME
としてもinputタグのnameの内容は取得できません。
aタグ以外は全て取得できないようなんですが、
どうすればうまくいくのでしょうか?

ttp://sdc.sun.co.jp/NASApp/sdcpersonal/private/jdc/techtips/1999/tt0923.html

サンプルコードの内容は一部抜粋すると、
import javax.swing.text.*;
import javax.swing.text.html.*;

EditorKit kit = new HTMLEditorKit();
Document doc = kit.createDefaultDocument();
Reader rd = getReader(args[0]);
kit.read(rd, doc, 0);
ElementIterator it = new ElementIterator(doc);
javax.swing.text.Element elem;
while ((elem = it.next()) != null) {
SimpleAttributeSet s = (SimpleAttributeSet)
elem.getAttributes().getAttribute(HTML.Tag.A);
if (s != null) {
System.out.println(s.getAttribute(HTML.Attribute.HREF));
}

という感じです。
805697:02/10/06 05:41
>>697
のOracle排他ロックタイムアウトの件なんだけど
仕方ないんでSQLServer2kとSQLServerType4JDBCドライバで
同じコードを流してみたんだけど、今度はSQL文自体に問題
らしく、DECLARE CURSOR を使わないと FOR UPDATE文は使え
ないとのこと・・・SQLServerのマニュアルも見ないと・・・うーむ
XML の設定ファイルがあり、これを jar に含めた場合、
どのようにしたら読み込めるでしょう?
807 :02/10/06 06:24
>>806
意味が良くわからないんだが。
読み込むアプリケーションはなに?
InputStream in = bokeboke.class.getResourceAsStream("/XMLFILE");
809ふれあいケツ毛工房。:02/10/06 11:04
private Image[] image=new Image[4];//イメージ

[]ってなに??そして[4]ってなにものなんですか??
教えてください?!m(__)m
810715:02/10/06 12:11
>>728 >>729 >>730
じゃぁForte4CEがJ2SEの1.41に対応していないということですか?
試しに1.41をアンインストールして、1.402をインストールしても
同じ症状でした。やはりJ2SEは1.40を使わないと無理ってことでしょうか?
こりゃいよいよ、COBOL後継言語論が現実味を帯びてきたな・・・
812U ◆CZtFsGiu0c :02/10/06 12:43
>>804
読み込んでいるHTMLはどんな風になってますか? Parserが参照しているDTDに、
そのHTMLが合致していない場合ちゃんとタグが取れないと思います。

本当はDTDを取り替えられればいいんだけど、事実上取り替えはできません。
>>810
まだ悩んでるのか?
Windows98だけど、ちょっと俺もインストール試してみようかな
814813:02/10/06 21:33
がーん。ログインできず。なぜだ。
>>810
Javaの再インストールしても良いのなら、
とりあえず、J2SE Cobundle版のほうでも使ってみたらどうだ。←無責任なやつ
http://java.sun.com/j2se/1.4/ja/download.html
815715:02/10/06 22:08
>>814
それも思ったんだけど、これってJ2SEは英語版のような気がする・・・。
少なくとも、インストーラは英語だった。だから途中でやめた。

J2SEの1.40はもうDLできないのだろうか・・・。
1.4.0.02でも無理だったんで・・・・!
816813:02/10/06 22:31
>>815
私は君の症状は
おそらく、バージョンではなくて、別の理由ではないかと考えている。

ひょっとしてインストール中の
「SDKを探しています。お待ちください。」
のメッセージのダイアログの下の方に
”ボタン”とかあったりしなかったかな?
817813:02/10/06 22:56
Windows98でインストールに成功した。

方法
1.SDKを探すところで、インストーラーに任せず、自分でSDKの位置を指定してやる必要がある。
2.SDKの位置は、J2 SDKのインストールディレクトリを指定する。
3.例えば、「C:\j2sdk1.4.0」を指定する。その直下には、「bin」とか「jre」というディレクトリがある。

これで大丈夫だった。
さて、アンインストールするか。
818デフォルトの名無しさん:02/10/06 22:58
JAVAを勉強はじめたんだが、スレッドがスレッドじゃない気がするのは俺だけか?
819デフォルトの名無しさん:02/10/06 22:58
>>818
おれもそれ思った。板もないし。
821804:02/10/06 23:30
>>812
Uさんありがとうございます。

サンプルコードには特にパーサを書いてないんですよね。
なのでディフォルトのHotJavaパーサのようです。
読み込んでいるhtmlはgetAttributeで見てみると
ちゃんと認識しているようです。。。

javadocを追いかけてくとその辺の知識が足りないのが
よくわかりましたが、HTMLEditorKitについて詳しく載ってる
ページor本はないですか?
javahouseにもほとんど情報がないようですね。
「javaによるパーサ構築法」という本が唯一あるくらいです。
それかhtmlパーサの場合でも、XMLのパーサを
利用するのでしょうか?

以上散文でした。。

822デフォルトの名無しさん:02/10/06 23:30
>>810
漏れは、1.41でForte4CEが動いてる。

ホイールマウスで動いてます。でも、Forteの豊富な機能の使い方がよくわかんない。
微妙に遅いし。
823715:02/10/06 23:30
>>813
「SDKを探しています。お待ちください。」の画面にはボタンはいっさい
出ません。ただ気になるのが、「探しています」の状態になって0.5秒後、
ほんの一瞬、DOS窓のような黒いものが現れます。一瞬ですので、
すぐ消えてしまいます。

SDKのあるパスを指定するような画面自体現れないということは、やはりVerの
問題ではなさそうですね・・・。いったい原因は何なんでしょう!
824813:02/10/06 23:47
私の手元のForteと
あなたの手元のForteが別物の予感。

吊ってくる。
825アフォ:02/10/07 00:02
マンコ ide.cfg に以下を書け
-userdir c:\java\ide\Netbeans332\userdir
-jdkhome C:\java\jdk\jdk1.3.1_04
-J-Xmx196m
-J-Xss1024k
-J-Xms31m
-J-XX:NewSize=30m
-J-XX:MaxNewSize=30m
-J-XX:CompileThrethold=300
-J-verbose:gc
>>821
「Javaによるパーサ構築技法」もってます。
はっきりいって、HTMLのパースには役にたたないです。

私の知っている範囲の資料で一番HTMLEditorKitに詳しい和書は、
残念ながら黒本かな。(10ページくらい。内容薄い。しかも役立たず。)

一番参考になるのは、Mozillaだったりして。
827デフォルトの名無しさん:02/10/07 00:38
重複スレ(もうすぐ削除)にレスしたので、ここでも一度質問させてください。

FontをDialogInputとMonospacedの2種類を表示したいんですけど、おなじフォントが表
示されてしまいます。

import java.awt.*;
import java.applet.*;

public class TestApplet extends Applet {

 public void paint(Graphics g) {

  Font f1 = new Font("DialogInput", Font.BOLD, 20);
  Font f2 = new Font("Monospaced", Font.BOLD, 20);

  g.setFont(f1);
  g.drawString("Hello", 20, 100);

  g.setFont(f2);
  g.drawString("Hello", 20, 200);
 }
}
皆はJAVA暦何年?
>>828
覚えてないが・・・1.0の時代から齧ってはいた。

99年ごろだったかの一太郎Arkのアンケートで、Javaの経験年数の
選択肢に10年以上があって、阿呆かと。
>>829
妄想癖のある人を抽出するための選択肢です
831 :02/10/07 02:29
こら、おまえらん中にJINIに詳しいやつっているの?
>>827
私は、そのコードで正しく表示できましたよ。

動かしているのは、どんな環境ですか?
どのJavaが動いていますか?

というか、MSのIEのJavaで動いていると見た。
833827:02/10/07 06:22
>>832
すみません、環境を書くのを忘れました。
Solaris2.8 J2DK1.3です。

これってユーザーの環境で変わるんですか?それともコンパイルの環境で変わるんです
か?

試しにWindowsXP+IE6+Java Plug-in by Sunで見るとうまくいきました。
(コンパイルした環境はJ2SDK1.4.1 + WindowsXP)
しかし今度はDialogとSanSerifが一緒になってしまいます。

>>831
詳しいですが何か?
また妄想癖を持ったやつ(=834)が出てきた
javaのクラスファイルって簡単にデコンパイル出来るらしいけど、
解析されないよう暗号化ってできませんか
>>836
スパゲチーコードをかけば(・∀・)イイ!
>>837
ワロタ
おいらのソースは常に暗号化!
誰か解読してくれ
>>836
そういうツールあるよ。暗号化じゃなくて「全てのクラス名、
メソッド名、シンボル名を人間にとっては意味の無い文字列
に変更する」やつ。オブファスケータっていうの。ググって
味噌。
それでも根性あれば読めるんだけどね。
はぁ、日本人はすぐこれだ
数十万行のソースの全解読は努力も根性も通用しない世界。
PATH 変数の設定で、間違えてシステム環境変数を
変えてしまい、コマンドプロンプト上で
コマンドが認識されなくなってしまいました。
元の変数値に戻したいのですが、わかりません
windows xpです。
どなたか教えていただけないでしょうか…
843デフォルトの名無しさん:02/10/07 13:43
>>842
ほれ。まったくいじってないからデフォルトだと思う。
Windows XP Proです。

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
844843:02/10/07 13:44
ちょっと調べてみたけど、SystemRootってどこで定義されているんだ?
845デフォルトの名無しさん:02/10/07 14:19
正規表現使いたいんですけど、
Perlでいうところの{0}とかマッチした文字列って
取得できないのですか?
>>843
たすかりました。
ありがとうございます。
>>845
できるよ。
文字列の式を評価して値を得るのって、
どうやってやるんだろう?

String expr1 = "1 + 1";

System.out.println(???.???(expr1));
みたいなことがやりたいんだけど、???が
わからないです。だれか教えて?
849845:02/10/07 15:09
>>847
できた

>>848
たぶん無いです。スタックは実現できるので
逆ポーランドで実装するのがいいと思われ
>>848
Pnuts などの BSF 対応スクリプトライブラリを使って eval すれ。
851U ◆CZtFsGiu0c :02/10/07 16:12
>>821
>サンプルコードには特にパーサを書いてないんですよね
なのでディフォルトのHotJavaパーサのようです。

じゃあ、swingのライブラリに入ってるパーサをそのまま使ってるんでしょう。
#あれってHotJavaのパーサだったのか

詳しいことを知るにはソースを読むしかないんじゃないかな。
#少なくともおれはそうした。

>読み込んでいるhtmlはgetAttributeで見てみると
ちゃんと認識しているようです。。。

質問に合ったINPUTタグのNAME属性も入ってるってこと?
だとするとよくわからんなあ。

このパーサはライブラリに入ってるバイナリ形式のDTDを参照してパースすると
いう妙ちきりんな代物で、世の中で使われているテキスト形式のDTDを使うこと
はできない。だけどHTMLのパースはやっかいな代物なので、このパーサを使う
前提でDTDのパーサを作ったみたら?
852. ◆P25aipVMtc :02/10/07 17:08
取得したIPアドレスからホスト名を判別するプログラムを作りたいのですが

InetAddress address=InetAddress.getLocalHost();

で取得したIPアドレスを

InetAddress host=InetAddress.getByName("aaa.bbb.ccc.ddd");
System.out.println(host.getHostName());

の("aaa.bbb.ccc.ddd")に放り込むにはどうすればいいんでしょうか。
よろしくお願いします。
Forte4をインストして(Tomcat4.01もいんすとされる)
Tomcat4.1.12をインストする。
この時点ではForte4は正常に動作するのですが、
Tomcat4.1.12を起動してしまうと、終了しても、
再起動してもForte4が起動の途中で止まってしまいます。
ちなみにForte4をアンインストしてインストし直すと起動します。

両方使いたいのですが何かいい方法ないですか?
854デフォルトの名無しさん :02/10/07 20:03
指定したHPのソースを自動でメモ帳か何かに保存するというプログラムを作りたいのですが、
何かアドバイスをいただけないでしょうか。
よろしくお願いします。
855デフォルトの名無しさん:02/10/07 20:15
javaをはじめたいんですが、
とりあえず、コードを実戦的に打てるように
なるための教科書を教えて下さい。
プログラムはCのみです
APIみれ
>>852
InetAddress host=InetAddress.getByName(address.getHostName());

>>853
よう分らんが、Tomcatはインストーラを使わず、zipからインストールすれ

>>854
メモ帳に保存というのが意味不明です。それ以前に、Javaとは何か分って
ますか?
858デフォルトの名無しさん:02/10/07 20:30
>>857
javaにはソースを拾ってくる機能があると聞いたのですが。
>>858
メモ帳に保存じゃなくてテキストファイルに保存だろうがこの ヴォケ
URL#openStream() でやれや チンカス
860名無しさん@Emacs:02/10/07 20:35
>>858
view-source:http://hogehoge/index.html
の事言ってるっぽいけど、JavaScriptじゃなくて、
Javaの話なんだよね?(上はJavaScript)

ソースとってくるだけなら、wgetとか使った方が早いと思うが。
861デフォルトの名無しさん:02/10/07 20:36
>>859
率直な答えどうも・・・
862855:02/10/07 20:39
プログラムはCのみです

プログラム歴はCのみです
の間違いでした。
よろしくお願いします。
863名無し~3.EXE:02/10/07 20:47
>>862
http://bookshelves.tripod.co.jp/Html/programming.html#Java
読むか、英語が苦じゃないなら
http://java.sun.com/
856が言ってるのは
http://java.sun.com/j2se/1.4.1/docs/api/
これ。
864853:02/10/07 20:48
>>857
さっそくzipをダウンして解凍したのですが
こんどはstartup.batを起動すると、
'Djava.endorsed.dirs='が見つかりませんと出てしまいます。
865821:02/10/07 21:26
>>826

>「Javaによるパーサ構築技法」もってます。
>はっきりいって、HTMLのパースには役にたたないです。

立ち読みしましたがなんか薫り高い本ですね。
パースとは文字の羅列から意味のある情報を
抜き出す作業云々・・

黒本はざっと見て該当部分がみつかりませんでした。
あとオライリーのjavaネットワークプログラミング
などにも多少載ってますね。一番詳しいかも。
でも5800円。。。

Mozillaってjavaベースのブラウザのソースとか落ちてるんですか?


866質問:02/10/07 21:29
チャットできるようなプログラム作ってるんですが
クライアントとサーバーの入出力のメソッドについてちょっと聞きたいです。
本を参考に作ってみたんですが、

クライアントの出力のメソッドがOutputStream(----)
入力のメソッドがBufferedInputStream(----)

サーバーの出力のメソッドがPrintWriter(----)
入力のメソッドがBufferedReader(----)

です。なぜクライアントとサーバーの入出力を同じメソッドにせず
わざわざ違うメソッド使うんでしょう??意味あるんでしょうかこれ。
>>866
Server → Client はテキスト中心、Client → Server はバイナリ中心ってんじゃ
ない?

そんなことないか。なんだそりゃ。
多分意味は無い。
868 :02/10/07 21:33
>>866
nioつかえ。
869 :02/10/07 21:35
しかし、いしばっておもしれえな。
870869:02/10/07 21:36
誤爆、すまん
871821:02/10/07 21:43
>>851
すみません、name属性が入ってるかどうかまでは
確認できてません。
タグを羅列させて、全部拾えてるかを見ただけです。。

おっしゃるように一度ソースを見てみます。
でも結構癖が強そうですね。
とりあえず、ほしかったのはinputタグだけなので、
正規表現を利用して自力で拾いました。
あまりスマートではないですが。。(^^;

あと、cookieについて質問です。
(会員ページとかにアクセスして、情報を拾ってくるツールを
作っているので)

cookieが要求されるページにアクセスするために
javaのソフト上から(ブラウザの動きを模擬して)
getcookieにこたえるようなことをしたいのですが、
この場合、下のどの方法が一番簡単でしょうか?

・j2EEのAPIを使ってcookieを操作
(クライアント側の処理のAPIはない?)
・SWTでのOLEコントロールを利用して、IE経由でサイトに接続
(cookieはIE任せ)
・ソケット通信を自力で書いて対応
・C#へ移行する(.NETクラスライブラリを利用する)
3つめだと、ページ毎に対応が必要ですよね。。
2つめあたりが一番スマートでしょうか?
>>864
catalina.batが、
-Djava.endorsed.dirs
になってる?
Djava.endorsed.dirs
になってるように読めるが
873715:02/10/07 21:50
>>813
漏れがインストしようとしているForteは

アーカイブ名:ffj_ce_win32.exe
サイズ:40.0 MB (41,977,829 バイト)

です。ちなみにJ2SEは

アーカイブ名:j2sdk-1_4_1-windows-i586.exe
サイズ:35.9 MB (37,724,482 バイト)

です。OSはWindowsMe、MEMは384MBもあります。HDD容量も十分。
j2sdk1.4.1\binにautoexec.bat書き換えによりパスが貼ってあります。
なぜインストできないんだ・・・!
>>866
文字コードと関係あるかもね。
875デフォルトの名無しさん:02/10/07 22:08
>>874
ねーよ、馬鹿
876デフォルトの名無しさん:02/10/07 22:11
iーアプリでファイル操作って出来るんですか?
877デフォルトの名無しさん:02/10/07 22:15
>>876
できねーにきまっとろーが
878デフォルトの名無しさん:02/10/07 22:16
>>872
ありがとうございます
さっそく調べてみた所catalina.batは
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%"
-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%"
-Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
となっており大丈夫でした。
もう一度起動してみたところ、よく見てみると
'-Djava.endorsed.dirs='が見つかりません。
でした。
879デフォルトの名無しさん:02/10/07 22:21
>>877
それじゃぁそれっぽいことは出来ますか?
>>873
俺のはWinXPで
j2sdk-1_4_1
ffj_ce_win32.exe
で動いてるよサイズは同じ。
パスは設定してないけどちゃんと認識してくれたよ
881U ◆CZtFsGiu0c :02/10/07 22:39
>>871
Jakarta CommonsプロジェクトのHTTPClient使うってのはどう?
#つーか、どこでも同じようなことやってんのね
>>871
 私も>>881と同じような答え。
わざわざ作らず、完成したものをどっかから持ってきて利用する。
>>878
解った。改行が入ってるんだ。
JAVA_OPTSか、CATALINA_OPTSか、DEBUG_OPTSに。

884871:02/10/07 23:13
>> 881
すばらしっすね!
英語苦手なんでjakarta避けてきたのですが。
ってフルで翻訳されてますね。(^^;
ありがとうございました!

ちなみに個人でやってるだけです。
一人でコーディングって限界あるので
そのへんうまく使ってかないといけないですね。

885871:02/10/07 23:37
>>881
サンプルまでありますね。すばらしい!
というか自分のアンテナの低さに
ややへこみますた。

危うく1ヵ月くらいかけてcookieもどきを
各ページに作るところでした。。
>>885
ユニットテスト系も役立つかもね。
HttpUnitとか。
887886:02/10/07 23:49
「eXtreme Programming テスト技法」という本に、
3ページくらい、Javaアプリケーションへの組み込みへの応用っていう項目があった。
JavaBeansってあるよね。EJBではなく、普通の。
あのJavaBeansの仕組みを
自作のスタンドアローンアプリケーションに組み込んだ人いますか?
889885:02/10/08 00:03
>>886

おおー!良さげですね。
javaはやっぱりNW系が強いですね。
>>854
とりあえず、
・ファイルへの書き込み
・HPの読み出し
の二つのサンプル探してきて、
自前のライブラリを作ったら?
今後拡張していくらでも使えるので。
891デフォルトの名無しさん:02/10/08 00:12
JAVAアプリケーションで5枚の静止画をコマ送りしてアニメーションさせるのが
うまくいかない。Thread.sleep()で時間をおいて画像を切り替えてdrawImage()で
表示させようとしているんだけど、最後の画像だけ表示されて途中は表示されず
空白のまま・・・何がいけないのか教えて。ちなみにソースは以下に↓
892デフォルトの名無しさん:02/10/08 00:12
getcharの使い方がよくわかりません。
おしえてください。
893891:02/10/08 00:12
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;

class Animation_Image extends JFrame
{
 Image[] src = new Image[5];
 Image img;
 MediaTracker mt;

 Pixel(String title)
 {
  super(title);
  setSize(400,300);
  setBackground(Color.black);
  Container c = getContentPane();
  c.add(new Pixel_Panel());
  mt = new MediaTracker(this);

  for(int n=0; n<5; n++)
  {
   src[n] = Toolkit.getDefaultToolkit().getImage("../photo/photo"+(n+1)+".jpg");
   mt.addImage(src[n],0);
  }
894891:02/10/08 00:13
  try{ //イメージのロードが完了するまで待つ
   mt.waitForID(0);
  }
  catch(InterruptedException e){}
  for(int i=0; i<5; i++) {
   try {
   Thread.sleep(500); //0.5秒停止
   }
   catch(InterruptedException e){}
   img = src[i];
   System.out.println("img="+i);
   repaint();
  }
 }
 class Pixel_Panel extends JPanel{
  public void paintComponent(Graphics g){
   super.paintComponent(g);
   g.clearRect(0,0,getWidth(),getHeight());
   g.drawImage(img,0,0,this);
  }
 }
 public static void main(String args[]){
  Pixel w = new Pixel("アニメーション");
  w.show();
 }
}
>>893
試してないけど、コンパイルできる?これ
896891:02/10/08 00:52
コンパイルできます。
photo1〜5.jpgの5枚をメディアトラッカーに載せてThread.sleep()で
一定間隔で表示切替しているのですが、最後の5枚目だけ表示されて
途中の1〜4枚目は表示されません。その間パネルは空白です。
drawImage()をrepaint()で再描画しているあたりが怪しいとは自覚して
いるのですが原因がわからずいっぱいいっぱいです。
drawImage()を使って画像を切り替えるにはこんな感じではだめなんでしょうか?
>>888
はい、あります。でも、それがどうしたの?
>>897
どんなふうに使ったかをきかせてほしいですわ。
>>896
MediaTracker って addImage() で重複 ID があった場合、同じ ID の奴を
全部ロードしてくれたっけ? してくれなかったよな?
つまりそういうことです。
ついでに 900 GET
901891:02/10/08 01:52
手元の本の説明には

addImage(image,a);

aはイメージをグループ管理するための識別IDで任意の整数値で、
識別IDで示されるメディアトラッカー上のすべてのイメージをロードするには

try{
mt.waitForID(0);
}catch(InterruptedException e){}

上で指定した識別IDのすべてのイメージがロードされたかチェックし、

if(mt.checkID(0)){
for(i=0; i<n; i++)
g.drawImage(img[i],0,0,this);
}
で表示するとあります。グループ管理とあるので重複していてもよさげな気がします。
902891:02/10/08 02:09
パネル上でイメージの描画をする際に下のようにThread.sleep()で時間を空けて
drawImage()で2枚の画像を切り替えて表示しようとしているのがだめっぽい?
後者だけ表示されるだけ。って前と同じこと言ってた。スマヌ

class hogehoge extends JPanel
{
 public void paintComponent(Graphics g)
 {
  g.clearRect(0,0,getWidth(),getHeight());
  g.drawImage(img1,0,0,this);
  try
  {
   Thread.sleep(1000);
  }
  catch(InterruptedException e){}
  g.drawImage(img2,0,0,this);
 }
903デフォルトの名無しさん:02/10/08 02:21
>>902
イベントディスパッチスレッドを直接sleepするなよ・・・
別スレッドでタイマー作って1秒ごとにイベント起こし
て差し替えろ。
目茶苦茶だな
>>854
「紙2001」使え
>>905
俺もそれオッスメ
907897:02/10/08 10:07
>>898
J2EEでロジックとプレゼンテーション間でのデータの受け渡し。
JDBCからのデータをコピーして転送すんの。
908デフォルトの名無しさん:02/10/08 12:48
ローカルにデータを保存するときに、管理者やハッカーが読めないように暗号化したいのですが、
どうするのが最適でしょうか。教えてください。
>>908
最適な暗号を使ってください。
しっかし管理者が読めないように暗号化って…
>>909
管理者だから何でも許されると思ったら大間違いです。
よのなかには、いっしょうみないほうがよいデータもあります。 :-)
911862:02/10/08 16:33
>>863
有難う御座います。
でも、
英語で勉強すると、つまずくと思うので、
まずは、簡単な日本語入門の、とりあえず
コードをすぐに打てるようになる、という教科書
が欲しいです。
詳しい事を学ぶのは、その後でもいいと思うので
まずとっかかりを作りたいと思っています。
(以前C++の教科書をぶあついの買ったら、読むのだけ
で苦労して、コードを打つ事ができなかった)

で、
http://bookshelves.tripod.co.jp/Html/programming.html#Java
みたんですが、
この中で、特におすすめってどれですか?
912デフォルトの名無しさん:02/10/08 16:59
クラスの間で複数行の文字列をやり取りしたいのですが、
StringListみたいな便利な型はもちろん無いですよね。

それで、Stringの配列を作ることにしたのですが、こんどは入れるモノの大きさが不定なので
大きさを指定して宣言するのもマズー。大きさを指定せずに先頭だけ作って、あとから後ろに
追加していくというのは可能なのでしょうか?
>>912
Vector, ArrayList, …
>912
普通のList(java.util.ArrayList等)でいいんじゃ?
要素がStringじゃ無く Objectなので、データを
取ってくるときはキャストしないといけないけど。
>>913-914
ありがとうございます。リファレンスで勉強してみます。
916715:02/10/08 20:47
>>880
実は今日、漏れの所持するWin2000のPCに、J2SE1.4.1とFFJ4をインストール
したところ、何も問題なくインストールできました。

結論:FFJ4はWindowsMeでは使用できない。

みなさん、お騒がせして申し訳ありませんでした。
それと、ご協力ありがとうございました。

漏れはやっとスタティック変数とスタティックメソッドの意味が理解できたと
いうレベルです。もともとコボラーで、Cは半年。オブジェクト指向の
マスターにはかなり時間がかかりそうです。
917デフォルトの名無しさん:02/10/08 21:53
98では問題なくインストールできてますが.>sun one studio 4
jdkは1.3ですが.
918898:02/10/08 22:06
>>907
ちがう〜。
すでにある仕組みを利用するのではなくて、
JavaBeansフレームワークをアプリケーション内に自前で構築する。

他の人の作成したJavaBeansを、BeanInfoだのBeanDescripterなりだったかを使って、
プラグイン状態で機能させるとか、

そういうのをききたかったのですよ。
919813:02/10/08 22:13
>>917
ちなみに813が>>824までの間に試していたのも、
Sun One Studio版でした。
920名無しのVIM使い:02/10/08 22:19
>>911
そのサイトのJava本は全部、残りも大半読んだことあるけど、
Java言語入門向きの本はないな。

下の2冊はおもしろかったけどね。
Javaの鉄則―エキスパートのプログラミングテクニック
Javaの格言―より良いオブジェクト設計のためのパターンと定石
921デフォルトの名無しさん:02/10/08 23:07
java.security.cert.CertPathValidator 使ったことある人いる?
CRLChecker がうまくいかないんだけど…。
>>912
「複数行の文字列」なら String 使っとけばいいんじゃない?
改行文字も一緒に突っ込めばいいだけなんだから。
>>912
java.nio.CharBufferのリストでも
使えば〜 と言って見る。
>>918
JavaBeanの仕様ってわかってる?
925911:02/10/09 10:26
Java言語入門向きの本
だれもおしえてくれない。。。。
>>911=925
http://sunsite.tus.ac.jp/java/javaj/jtutorial/
ここは情報が古くてこのとおりにプログラムするとワーニングでまくるけど、
とりあえず、勉強するには十分だと思うよ。
本を買うのは、ここの情報で足りなくなってからでも十分だと思う。

「独習Java」ってなかったっけ。
このC++は結構わかりやすかったから。
ワーミングが正しい
サーバーサイドで複雑な画面遷移を簡単に構築できる
フレームワークってないでしょうか?
>>928
何を求めているのかわかんない・・・。
930名無し~3.EXE:02/10/09 16:56
>>925
結城さんの本は?安くて文章も分かりやすいよ。
http://www.amazon.co.jp/exec/obidos/ASIN/4797308036/
あとお金を使いたくないんだったら、どっかの大学の学生向けチュートリアル
でも探してそのとおりにやってみるってのもいいかもね。誰も採点してくれな
いけど。
>>928
Struts 試してみたら?
初心者向けの本を一冊読んだので、
次ぎは中級者向けの本を読もうと思うのですが、
お勧めなどありましたら、是非ご教授ください。
中・上級者向けなら「Effective Java」をすすめたいところだが、さて。
JPanelを継承して、画像を描画できる
Panelを作成したんですけど、描画時にちらつき
が起こるのでコンストラクタで
super(true);
とやって、ダブルバッファリングを有効にたんですが、
相変わらず、表示の際にちらつきます。
なので、次はこのPanelを持っているFrameに対して
getRootPane().setDoubleBuffered(true);

と、かましてあげてもだめですた・・・・・
どうやったら、ダブルバッファリングできるのでしょうか?
>>933
内容を見てきました、素人が読む本ではないのでは?
自分としては、実務的な例を勉強したかったのですが、
まだ、JAVAを使いこなしているレベルでは全然ないので・・・
>>935
プログラム書けば?
>>936
うん・・・
938715:02/10/09 20:31
ちなみに皆さんにFFJの件でお世話になった私の教本は

プログラミング学習シリーズ Java@ Javaではじめるプログラミング
著:桑原信也 SE SYOEISHA 定価:2400+税

っていうやつ。オブジェクト指向が全然わからない漏れでも少しずつ段階を
追って覚えられる。多分この本はプログラムの経験がない人でも
楽しくやれると思う。ご参考まで・・・!
finalって文法的にはわかってるつもりだが、適応する基準がわからん。
継承しない関数は全て付けるべきなのか、
それとも、継承しないことを強調したいときだけ付けるべきなのか。
staticについても同じ、staticでもいい奴には絶対付けるべきなのかどうか。
中・上級者の皆さん教えておくれ。
>>939
final はともかく static は「でもいい」で付けるようなものではない・・・
static の機能的な意味は分かってるか?
941911:02/10/09 21:19
>>926
>>930
ありがとう。
本の方が楽によめるから、
「独習Java」

Java言語プログラミングレッスン〈上〉Java言語を始めよう 結城 浩 (著)
を立ち読みして見ようと思います。
そんで良さそうな方を読もうと。
942デフォルトの名無しさん:02/10/09 21:20
>>911
それを読み終わったら、「JAVA開発者のためのアンチデザインパターン」を読むといい。
>> 939
finalは、継承するな! という場合に付ける。
staticは、940を参照。というか、意味がわからないなら、使ってはいけない。
944デフォルトの名無しさん:02/10/09 21:30
>>943
そうだよね。わからないことはしちゃいけないよね。
人生の意味がわかっていない君も生きてちゃいけないよね
>>944
おまえが市ね
>>908
もしかしたら、私は暗号化したことあるかもしれません。
アプリケーション固有のデータ形式があって、データに最適化した形の独自圧縮をかけてから、
データ保管用ディレクトリに書き出していました。

独自形式の圧縮って、ある意味、暗号化しているようなもんだよね。
>>940
必ずしもインスタンスメソッドでなくてもいいケースってない?
なければ、わしの理解不足。
ユーティリティとかはクラススコープにするけどね。
ビジネスロジックはインスタンスが良いね。
サブクラス化する可能性もあるしね。
staticメソッドはインスタンスでなくクラスに属するので
サブクラスでオーバーライドできない。
「必ずしもインスタンスメソッドでなくてもいい」場合でなく
「積極的にクラスメソッドであるべき」場合に使おう。
>>948-949
Oh!わかりやすい。
修飾子は積極的に明示すべき時だけ使うと。ありがとう。
>>941
独習Java 第2版第1刷 (2002/7/16)
若干、誤植がある

for(int num = 1; num @@ 11; num = num + 1 )
って例で3分ほど悩んだ
本文の誤植は許せるんだけどなぁ
952デフォルトの名無しさん:02/10/09 23:04
オススメのJava雑誌を教えてください。
特に最近創刊したJava Developerに興味があるので、
買った方は是非、感想をお聞かせください
953デフォルトの名無しさん:02/10/09 23:13
>>952
ジャマイカのすべてという本があったがどうだ?
954デフォルトの名無しさん:02/10/09 23:14
あるファイルを探すプログラムを作りたいのですが、どのように作っていいかわかりません。。
アドバイス、できればソースも含めてよろしくお願いします。
955デフォルトの名無しさん:02/10/10 00:05
FileReaderクラスでread関数を使うとファイルの最後にいくとー1を返すとあるのですが、
これはー1をファイルに保存できないということなのでしょうか?
よくわかりません。おしえてください。
956デフォルトの名無しさん:02/10/10 00:10
>>954
static File[] File#listRoots()でルートをとってきて、
あとはFile[] File#listFiles()で再帰。
>>ー1
最近の FileReader は変なもの返すようになったんだねぇ
>>955
Stream系のread()は呼び出すと一文字分読み込んで、      ←だったけ?
int値にして返してきます。
このint値は通常、正の値です。                    ←だったけ?
で、このメソッドはファイルの終わり(EOF)が来た時に、
そのことを-1をもって表現しているのです。つまり、そうゆう決まりにしたと。

文字処理の例

try { // ←忘れずに

 // ↓FileReaderインスタンスの生成
 FileReader fileReaderr =*************;
 BufferedReader bufferedReader = new BufferedReader(fileReader);
 String readLine = null;

     //↓このメソッドはnullでEOFを表現します。
 while ((readLine = bufferedReader.readLine()) != null){
  //readLine文字列に対する処理をおこなう。
 }

} catch(FileNotFoundException e){
 // 例外処理
} catch(IOException e){
 // 例外処理
}
てな感じにしたほうが良いかと。
>>946
独自の圧縮は確かに簡易の暗号として使えなくも無いが、
アルゴリズムが判明すると、容易に瓦解する。
特にJavaの場合はバイトコードの解読も容易なので、さらなる注意が。
>>952
Java World だけでよし。
Java Developer はリファクタリングレッスンだけ立ち読みすれ。
961946:02/10/10 01:49
>>959
クラスファイルの脆弱性は確かにかなり危険。
Javaは動的結合なので、クラスファイルを置き換えただけで、
ID、パスワード付き暗号もあっさりかわされたりする場合もある。

最近、クラスファイルにバージョンを持たせておいて、指定のバージョンでない時は、
java.lang.LinkageErrorを自分で投げて停止するという荒業を見た。
この例外の使い方あってんのか?


さて、
みなさ〜ん
そろそろ次スレの時間です。
前にも質問あったような気がするけど、探せなかった
UMLクラス図からソースのようなCASEツールじゃなくて、
JavaのソースからUMLクラス図はくようなツールはないですか?

知ってたら教えてください。
フリーだったらすごくうれしい。
あと、クラス図ってExcelとかVisio以外でどうやって書いてます?
>>962
MagicDraw UML で出来たと思う。コンパイル済みの *.class からも UML 書けた
はず (情報に限界あるけど)。
964962:02/10/10 18:57
>>963
ありがとう。探してみます。
965初心者:02/10/10 23:02
JAVAアプリケーションをコマンドプロンプトから実行
しているのですが、普通のWindowsプログラムみたいに
コマンドプロンプトから独立して動かすにはどうしたら
いいですか?

動かしている間、コマンドプロンプトが使えないのよ。
>>965
start java hoge
967デフォルトの名無しさん:02/10/10 23:09
>>966

ありがとうございました。他にもやりかたありますか?
>>967
Emacsで、
M-x shell
java hoge&
とか、cygwinで、
java hoge&
とか
969デフォルトの名無しさん:02/10/10 23:13
>>965
jar圧縮すればダブルクリックで起動できるよdemoフォルダの.jarファイルダブルクリックしてみそ
っていうか、Emacsなら、
M-! java hoge
の方がいいか
971デフォルトの名無しさん:02/10/10 23:18
っていうか Emacsってなに?
972デフォルトの名無しさん:02/10/10 23:21
>>971

フィンガーファイブと一緒にいた、
5mくらいのでかい人形。
973デフォルトの名無しさん:02/10/10 23:49
javawさえ知らない人おおいのね。
ドキュメントくらい読もうよ・・・タノムカラ・・・
javawもwinではコンソールつかまれるでしょ
「コンソールを開けたくない」が目的じゃないだろ。
JSPのオーサリングツールってありますか?
976デフォルトの名無しさん:02/10/11 00:29
ServletやJSPの勉強で掲示板を作成しているのですが。
掲示板のログをXMLファイルに落とそうと思っています。

なんか楽できる方法とかないでしょうか?
xercesとか使って自分で全部ガリガリ書かないとだめぽ?

J2SDKのloggerとかlog4jも見てみたんだけど、なんか思っているようには
できなさそう…まだ調査中なのでよくわかりませぬ。

希望としては
<remark date="2002/10/11 00:00:00">
<user email="[email protected]">username</user>
<message>(・∀・)イイ!</message>
</remark>
というよな感じのをログファイルに並べて行きたい感じ。
希望としてはBeanをサクッとXMLにシリアライズしてくれるクラスライブラリとか
あれば嬉しいのだけど。

こういうこと考えること自体アフォなのかなぁ…。
977デフォルトの名無しさん:02/10/11 00:39
>>976
そんな貴方にJDK1.4
java.beans.XMLEncoder/XMLDecoder
>>976
WebProgram板逝けよ。
ついでにこのスレも引っ越せ。
979デフォルトの名無しさん:02/10/11 00:47
>977
サンクス。でもこれはどうやらXMLEncodeとDecodeでセットにして、Beanを永続化
させるのが目的みたいっす。
できればスキーマとか自分で決めたい感じ。
わがままいってスマソ。

>978
うーん。質問の内容自体はWebとは関係ないと思うんだけどな。
980977:02/10/11 00:52
>>979
オブジェクトとXMLのノードのバインディングを自力で決める
というのは、たんなるオナニーだと思うけどね。
標準に従っといたほうがお得だよ。ヘンなロジック作りこむ
必要ないし。(うちのバカSヨにいってやりたい・・・)
>>976
Relaxerって知ってる?


こういうXMLファイルのnameタグ内のtextエレメントに値をセットしたい時に、
<hoge>
 <name></name>
</hoge>

こんな風に、メソッドでアクセスできるようになるJavaソースを生成してくれるよ。
Hoge h = new Hoge();
h.setName("Hello world");
String result = h.makeTextDocument();


もちろんXMLのスキーマも自分できめられる。
982976:02/10/11 01:01
>980
たびたびありがと。
> オブジェクトとXMLのノードのバインディングを自力で決める
> というのは、たんなるオナニーだと思うけどね。
そっすね。言われてみればそんな気もする。
Beanに戻して書き直すもヨシ。
XSLTやCocoonで整形してもヨシ。

ほほーん。その方向で考えてみます。
983977:02/10/11 01:05
>>981
その系統ならJAXBという手もあるね。まだRI完成してないけど(w

・・・EA版RIのダウンロードサイトが今どこにあるか知ってるひといる?
なんか見当たらないんだけど・・・

JDOMでDOMツリー構築してシリアライズでもいいかもね。

最近いろいろあってこまるねえ・・・別にどれ使ってもいい気がする
ところが特に。
984デフォルトの名無しさん:02/10/11 01:06
>981
さんきゅーう。
そいえば、そんなものもありましたねー。
いわゆるスキーマコンパイラってやつですね。
ちょい前にSOAP勉強してるときに聞きかじりますた。

そんときは(今も?)XMLの規格がゴタゴタしてる印象があって、ほっぽっちゃったけど
ちょい勉強してみますわ。
ありがとう。
すいません,XSLTのパーサ(?)をインストールしようとしているのですが,その前にJAVA2を実行
できる環境かどうかがわからないんですが,どうしたらわかるんですか?
>>985
java -version
>>986
おお!ありがとうございます!
1.3.0JAVA2RUNTIME....って出たってことはOKってことですよね!
ふぅ〜.
ありがとうございますた.
988デフォルトの名無しさん:02/10/11 06:47
JDKとJREアンインストールしても、WindowsのコンパネにJava Plug-Inってのが残ったままなんだけど。タスケテクレー。Windows 98です。
>>976

Castorを使え。
990デフォルトの名無しさん:02/10/11 10:36
>271 etc.
DOSでjava(interpreter)のerror出力はリダイレクトできませんかね。ランタイムエラーをディバッグしたいんですけど。
991ざこば:02/10/11 11:34
■■■ 撲滅させたいかた、死滅を心配してるかた ■■■

CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/test/read.cgi/tech/1009707596/

Java撲滅委員会
http://pc.2ch.net/test/read.cgi/tech/996848309/

●●JAVAって死滅しちゃうの????●●
http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
●●JAVAって死滅しちゃうの???? PART2●●
http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
●●JAVAって死滅しちゃうの???? PART3●●
http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
992ざこば:02/10/11 11:35
1000
Kate
Jed
NotePad
まんこ
vi
999次スレ案内:02/10/12 12:32
【初心者】Java質問・相談スレ9【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1034303501/l50
1000次スレ案内:02/10/12 12:33
【初心者】Java質問・相談スレ9【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1034303501/l50
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。