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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
JAVA初心者の方はこちらのスレで質問をしましょう。そして誰か教えてあげてください。

なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。雑誌や宿題などの疑問を質問するときは出展を明記した
ほうが解決が早いです。

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


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

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

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


基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
http://pc3.2ch.net/test/read.cgi/tech/1026601774/22
21:02/07/31 15:17
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/test/read.cgi/tech/997791189/
Java相談室part5
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/test/read.cgi/tech/1006408230/
ネタ心者歓迎!今更ながらにJava相談室  その3
http://pc.2ch.net/test/read.cgi/tech/1007802486/
ネタ心者歓迎!今更ながらに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/

【初心者・ネタ】Java質問・相談スレ【大歓迎】
http://pc.2ch.net/test/read.cgi/tech/1021817147/
【初心者】Java質問・相談スレ2【大歓迎】
http://pc.2ch.net/test/read.cgi/tech/1023319551/
【初心者】Java質問・相談スレ3【大歓迎】
http://pc.2ch.net/test/read.cgi/tech/1024885660/
【初心者】Java質問・相談スレ4【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1026601774/
31:02/07/31 15:17
■■■ Javaの基本的なクラスやパッケージについての解説。 ■■■
Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html

Javaについてのよくある質問と回答集。
Java House ML Topics
http://java-house.etl.go.jp/ml/topics/

Java言語規定 目次
http://www.y-adagio.com/public/standards/tr_javalang/index.htm

Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html

41:02/07/31 15:17
■■■ Java関連スレいろいろ ■■■

統合開発環境。

JAVA開発環境 "eclipse" is COOL!!
http://pc.2ch.net/test/read.cgi/tech/1013268002/
JAVA/C++開発環境 "eclipse" スレッド 2
http://pc.2ch.net/test/read.cgi/tech/1023103421/

[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/
IBM VisualAge for JAVA
http://pc.2ch.net/test/read.cgi/tech/989931658/

サーバサイド。

JAVAサーブレットQ&A
http://pc.2ch.net/test/read.cgi/tech/972229341/
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/
Pure Java Mail Server
http://pc.2ch.net/test/read.cgi/tech/1009991622/
Java Media Framework とか
http://pc.2ch.net/test/read.cgi/tech/1015938096/

Javaアプレットのゲームの限界は!
http://game.2ch.net/test/read.cgi/gamedev/1005230153/l10

51:02/07/31 15:18
■■■ 撲滅させたいかた、死滅を心配してるかた ■■■

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

JavaとC++はどちらが良いのですか?
http://pc.2ch.net/test/read.cgi/tech/1023079017/
??Javaってどこで使われてるの??
http://pc.2ch.net/test/read.cgi/tech/1026137766/
Javaは難しすぎ
http://pc.2ch.net/test/read.cgi/tech/1022667056/

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

61:02/07/31 15:18
■■■ 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 はこちら↓をご覧ください。

JavaFAQ : Java に関するよくある質問とその回答集
http://www.gimlay.org/~javafaq/javafaq.html
誰にも分からないJava講座
http://park.ruru.ne.jp/ando/work/who/html/index.html
71:02/07/31 15:18
81:02/07/31 15:18
91:02/07/31 15:18

101:02/07/31 15:18
関連情報 以上
おつ
カットアンドペーストはどうやればやれますか?
131:02/07/31 15:25
>>12
パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/
>>13さん
ファイルを作ってやりたいのですが・・・
うーん。Tomcatスレとか、
あれから、いろいろ補足したいスレもあったし、

pcサーバからpc3サーバへの移転にも対応した
テンプレも作成していたのだけど新スレに、まにあわなかった。。。

>>12たん。
クリップボードをつかいたいのなら、こことかどう?
http://java.sun.com/products/jdk/1.2/ja/docs/ja/api/java/awt/datatransfer/Clipboard.html
http://www.dmz.hitachi-sk.co.jp/Java/Tech/transferable/index.html

googleで「クリップボード Java」で、ざっと検索しただけなので、
最初のURLはともかく二番目のURLは中身よく読んでいないけれど。

// いやファイルをつかってということは、
// 文章のcut&pasteではなくファイルのcut&pasteなのかな。
>がばまんさん
ネタは放置です。。。
とりあえず>>4 1たんの補足。

統合開発環境。

IBM VisualAge for JAVA
http://pc.2ch.net/tech/kako/989/989931658.html

JAVA開発環境 "eclipse" is COOL!!
http://pc.2ch.net/tech/kako/1013/10132/1013268002.html
JAVA/C++開発環境 "eclipse" スレッド 2
http://pc3.2ch.net/test/read.cgi/tech/1023103421/l50

[Java]JBuilder5[Java]
http://pc3.2ch.net/test/read.cgi/tech/995044723/l50
JBuilder6について語り合いませんか?
http://pc3.2ch.net/test/read.cgi/tech/1011609625/l50
JBuilder 7日本語版発売、Personal無償7月中
http://pc3.2ch.net/test/read.cgi/tech/1023102379/l50
【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc3.2ch.net/test/read.cgi/tech/1017214967/l50
Forte for Java
http://pc3.2ch.net/test/read.cgi/tech/1016161880/l50

サーバサイド。

JAVAサーブレットQ&A
http://pc.2ch.net/tech/kako/972/972229341.html
JavaサーブレットQ&A LV2
http://pc.2ch.net/tech/kako/1012/10127/1012728608.html
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/tech/kako/1004/10049/1004972840.html

JSPに関するQAスレッド
http://pc3.2ch.net/test/read.cgi/tech/1014905560/l50
TOMCAT
http://pc3.2ch.net/test/read.cgi/tech/998525941/l50

携帯。

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

クライアントサイドJavaどうよ?
http://pc3.2ch.net/test/read.cgi/tech/1002160815/l50
【祝】 JDK 1.4 βリリース
http://pc3.2ch.net/test/read.cgi/tech/990949654/l50
Pure Java Mail Server
http://pc.2ch.net/tech/kako/1009/10099/1009991622.html
Java Media Framework とか
http://pc.2ch.net/tech/kako/1015/10159/1015938096.html
Javaアプレットのゲームの限界は!
http://game.2ch.net/test/read.cgi/gamedev/1005230153/l50

ム板のみんなでRobocode (・∀・)ヤローウヨ!1台目
http://pc3.2ch.net/test/read.cgi/tech/1020161792/l50


>>16たん。
ネタ心者に無視されちゃえ。

初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/l50
191:02/07/31 17:38
>>15
サーバー移行したの忘れていたよ。
次回には直しておきます。
201:02/07/31 17:43
>>17
>>18
さんく
テンプレ直しました。
21デフォルトの名無しさん:02/07/31 20:50
javaのソースコードを解析するのに何か便利なツールは無いでしょうか?

変なコードを解析するのにつかれまった・・・。
>>21
整形ツールは?
2321:02/07/31 21:46
>>22
Win2kで使えるので何かいいのありますか?
24ななし:02/07/31 21:56

板違いかもしれませんが、質問です。

オブジェクトの動的バインド(レイトバインド)はOO開発で必須な機能でしょうか?

(1) 不要。ない方がよい。

(2) 必須である。静的バインドだけでは柔軟性に欠ける。

(3) あってもなくてもよい。たまに便利な場合もある、という程度。

VBしか使ったことがないため、今まで漠然と、他の開発言語にも当然ある機能
だと思っていましたが、つい最近、Javaではできないと知りました。

ちなみに、VBの場合のレイトバインドの利点は、参照するコンポーネントのバージョンが不明
(例えば、Excel, WSH等のバージョンが個別ユーザー毎の実行環境により異なる)な場合でも、
バージョンの違いを吸収して動作可能なプログラムを作れる点です。
(事前バインドでは、開発環境と実行環境でのバージョンの相違が原因で配布したアプリが正常
動作しない場合があります)

JavaでCOMを使う試みもあるようですが、このあたりはどのようになっているのか気になります。
>>24
なぜ、初心者スレで聞くの?
どっちかっつーと、インスタンスメソッドに
静的バインドはイラネーってのが Java の立場では?
27ごみれす:02/07/31 22:33

Java ではバインドという言葉を使わないのよねー。
動的バインドってどういう意味かな?

1:コンパイル時にクラス名の解決はしておくが、
  実行時に使用する実態のクラスは、実行時環境のモノを使う。

2:コンパイル時にはクラス名の解決をしない。
  実行時にクラス名文字列からクラスとインスタンスを得る。

メソッドの場合は…、めんどうだな。
静的/動的って簡単に言えば C++ のvirtual無しが静的、
virtual有りが動的って… そういう話じゃなくて?
CYGWINでSDKをインストールする方法って、どこで聞けばいい?
別々にインストールすれ。全く問題ない
31デフォルトの名無しさん:02/08/01 01:17
JTextFieldで、tabキーを押された時にイベント処理したくて、

JTextField jtf = new JTextField(10);
jtf.addKeyListener(KeyListenerImple);


ってやってるんですが、他のキーはフックできるんですがtabは特殊な
キーらしく(フォーカス移動に使ってるから当然だけど)イベントが発生しません。

どうやったらいいっすか?
3231:02/08/01 01:20
つーか、さげ侵攻なのね。スマソ
3324ではないです:02/08/01 01:41
>>27
VBの動的バインドってのは2の方
たとえばObject型(すべてのクラスのインスタンスはObject型に代入できる)の変数oに
文字列(もしくはクラス)からインスタンスを作成代入してo.fooって感じで実行できる。

ちなみに静的バインドは1の方
クラスAの型の変数に同じクラスAもしくはそのクラスAをインターフェース継承した
クラスBのインスタンスを代入して使用する。
3531:02/08/01 04:33
>>34
解決しました。どうも
>>30
CYGWINでSDKをインストールする方法
ヽ(`Д´)ノスレさんオツカレ!!>>1
>>34
JDK 1.4 だとその方法は使えんぞ。
Component.setFocusTraversalKeys() を使わないと。
class Leg {
double [] foo;
void show(){
Sytem.out.println(foo.length);
}
}
public class Nagasa{
public static void main(String args[])
{
Leg reg1 = new Leg();
//ここでLegクラスの配列fooを初期化したい。<質問
reg1.show();//初期化した配列の長さを見る。
}
}
どうやるんすか?
41前スレ956:02/08/01 10:51
前スレの956で
>Frame上に配置されているボタンやテキストエリアを重なるような形で
>Canvasオブジェクトを配置するようなことをするにはどうしたら良いでしょうか?
という質問をしました。
964さんにお答えいただいたのですがこちらの説明不足で真意と違うお答え他になってしまい
すいませんでした。
質問を繰り返すようですが再度お願いします。

まず、現状ですがhtml上にあるアプレットのボタンからFrameオブジェクトで別のウィンドウが開き
そのFrameオブジェクトの上にはボタンオブジェクトやテキストエリアオブジェクト、ラベルオブジェクトが
GridBagLayoutで配置されています。

今回、やりたいことはそのボタンやテキストエリアが配置されているFrameオブジェクトの上に
あたかもダイアログボックスのようにCanvasオブジェクトを配置したいということです。

このような処理をawtだけを使って出来ないでしょうか?
>>41
Frame.removeAll();
Frame.add(Canvas);
ってことか?
それとも、インナーフレームのことか?
4342:02/08/01 11:21
インナーフレーム=Dialog(Frame,(modal=true));
インナーフレーム.setBounds(Frameの位置);
>>39
double [] foo;

static double [] foo;
>>44
どもです。クラス変数にstaticいるんでした。忘れていますたです。
配列の初期化のほうも、一生懸命本読んでいたらわかりますた。
reg1.foo = new double[3];
reg1.fooって書くのがわかってなかったでし。
実ははじめてクラスをつくったです。
4741:02/08/01 12:01
>42さん
Frame上に配置されているボタン等はそのままでCanvasオブジェクトをボタン等の上に重なるように配置したいので
removeAllではないです。

また、インナーフレームとありますがインナーフレームとは何でしょうか?
googleで調べても違う意味(プラモ系?)がヒットしてわかりませんでした。
インナークラスのようにフレームの中にフレームがあるということでしょうか?
4842:02/08/01 12:30
>>47
ごめん、インターナルフレームです。
メソッドの途中で処理を抜ける場合、(VBならExit Sub)
どのようにしたらよいでしょうか?

戻り値のあるメソッドなら
「return 戻り値」
で抜けられますが
Void型のメソッドの場合、戻り値がないためどのようにしたらよいかわかりません。

どなたか宜しくお願いします。
50デフォルトの名無しさん:02/08/01 17:56
>>49
ただのreturn;

public class test {
public static void main( String[] arg ) {
if ( arg.length==0 ) { return; };
System.out.println( arg[0] );
}
}
5149:02/08/01 18:03
>50さん
おぉ。そんな単純だったんですか・・^^;
最初、わからなかったのでreturn nullとか訳の分からない事やってました。
その時のエラーメッセージで「Voidのメソッドから値は返せない」と、でたのでreturnは使えないものだとばかり・・
とにかく、ありがとうございました。
2chで初歩を習うってか・・・ほそろしい。
>>49
> Void型のメソッドの場合、戻り値がないためどのようにしたらよいかわかりません。

Void型のメソッドの場合、戻り値がないのだから戻り値を書かなければいいのです。

「return;」
「書き込む前にリロード」
覚えて帰ってちょうだい
その程度のこと覚えんでも…
>>55
書き終わったあとに、すでに書き込みされていても、消すのもったいないから送信するな 漏れは
なんかいい感じでアレだな・・・・
6031:02/08/01 23:41
>>38
使えますよ。
でも、推奨しないAPIつかうなゴルァ(゚Д゚)っていわれるけど
>>60
それはツカエナイというやつでないの?
6221:02/08/02 00:03
>>45 さん、ありがと! すごくイイ!
63デフォルトの名無しさん:02/08/02 11:50
abstract class Hoge を継承したクラス hoge があります。
Hoge に、Hoge を継承したサブクラスのコンストラクタ hoge() を呼び出す
メソッド reset() を実装してしたいのですが、
どのようにすればよいのでしょうか?
hoge.reset(); // 同じ書き方でそれぞれのコンストラクタを
hage.reset(); // 呼び出すことを目的にしています。

>>61
推奨してないAPIは、ちゃんと使えますよ。
>>63
コンストラクタじゃなく、単にHogeクラスのreset()をオーバーライドするだけで
いいのでは?
66おもろない:02/08/02 12:35
>>64
でも推奨してないよ

使えますよ

でも推奨してないよ

...
67デフォルトの名無しさん:02/08/02 13:16
>>65
そのとおりなんですけど、オーバーライドしても
本当に reset() は下のように呼ぶだけなので、
それだけだったらあらかじめ Hoge のほうで用意できたら楽かなと(^^;

public void reset(){
hoge();
}
>>67
それをやるなら
Hogeとhogeの親子関係を解くべき
>>67
コンストラクタについて勉強すれ
7067:02/08/02 14:10
クラスから、別のクラスのメソッドを動的に変えて呼び出せるので
できると思ったのですが。
すみません、ちょっと見直してみます。
>>67
>>70
1を読んでおくことをオススメします。
72デフォルトの名無しさん:02/08/02 16:14
あのう、コンパイルどうやるんですか?
javac ○○○.java
>>72
お願いですから入門書を買ってください。
>>72
javac ファイル名

76お願いします:02/08/02 16:25
JScrollPaneのスクロールバーの出現するサイズを変えたいんですが
どうやればいいのでしょうか、お願いします。
Java言語規定第2版
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
なぜに初版のままなのか解らんので張っときます

…でも、instanceofの項目で誤訳があったり(ワラ
>>76
中のコンポーネントのサイズを変えれ。
79お願いします2:02/08/02 16:37
>>78
レスありがとうございます。
…というかすいません、言葉足らずでした。
setLayout( null ) の時です。

フレームを縮めた時にコンポーネントが消えてから
スクロールバーが出てきてしまうのですが…。
80デフォルトの名無しさん:02/08/02 18:00
これは何のエラーなんですか?コンパイルできたのに実行できない。・゚・(ノД`)・゚・。


Exception in thread "main" java.lang.NoClassDefFoundError: kouza1 (wrong
ouza1)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
java -classpath %CLASSPATH%;. kouza1

google で NoClassDefFoundError くらい調べろ。ってかこのスレの
ちょっと前にも話出てなかったか?
82デフォルトの名無しさん:02/08/02 18:16
JAVAをインストールした後のPATHの設定ってどうやるんですか?
Windows NT/2k/XP 系: [スタート]-[設定]-[コントロールパネル]-[システム]-[詳細]-[環境変数]
Windows 95/98/Me 系: [スタート]-[プログラム]-[アクセサリ]-[メモ帳] で C:\autoexec.bat を開いて SET PATH=... 行を追加
Unix 系: .profile とか .cshrc とかに書いとく
Cで言うところの参照渡しをJAVAでやるにはどうしたらよいのでしょうか...

↓C
void RefTest( int * a )
{
*a = 1000; // aの値は1000になる
}

↓JAVA
void RefTest( int a )
{
a = 1000; // aの値は1000になるがこのメソッドの中でのみ マズー
}
>>84
いわゆるリターンバッファを使った方法は後で後悔することになるからやめとけ。
一つの機能は一つの結果を返すのが基本。返す項目が複数ある場合には Bean でも
作れ。

どうしてもやりたいなら配列かコレクションで渡せ。
void RefTest(int[] a){
  a[0] = 1000;
}
>>82
パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/
8782:02/08/02 18:39
>>83
ありがとうございます。私がとち狂っておりました。逝ってきます・・・
8884:02/08/02 18:47
>>85
....そ、そうなんか、そういう時代なんだな....
89デフォルトの名無しさん:02/08/02 19:15
JDK 1.2.2で背景と文字色を指定して文字列を表示させるアプレットで、
アプレットビューワでみるとチラつくのは仕様ですか?
>>88
IPO と基本データ型だけで設計すんのは COBOL でやってくれ。
>>89
情報が足らん
出直せ
>>89
仕様ではありません。
教えてください。
1、コンストラクタって何ですか?クラスのオブジェクトを初期化するためのものなんですか?
2、class FooのオブジェクトFoo hogeを初期化するときは
Foo hoge=new Foo();とかくことはわかったんすけど、hogeを何個もいっぺんに
初期化したいときはどう書けばいいんですか?
Foo hoge1=new Foo();
Foo hoge2=new Foo();
はしんどいっす。Foo型の配列とかつくれるんですか?
941:02/08/03 00:58
JBuilder7 Personal固有の質問は下記でお願いします。

JBuilder 7日本語版発売、Personal無償7月中
http://pc3.2ch.net/test/read.cgi/tech/1023102379/
>>94
>>93の質問はJB7にかんする質問なのか?
>>93
1.コンストラクタって何ですか?
クラスのオブジェクトを初期化するためのものと考えていて良いです。

インスタンスが生成された後、インスタンス変数の初期化前に動く手続きです。
スーパークラスのコンストラクタは呼び出さなくても暗黙に呼び出されます。


2.hogeを何個もいっぺんに初期化
Foo hoge[100];
for ( int i=0 ; i<hoge.length ; i++ ) hoge[i] = new Foo();
とでもしてください。

なんか他に一気に生成する方法あるのかな?
あまり大量のオブジェクトつくるアプリ書かないから実はよく分からない。
大量に作るときはArrayList使って保持してるし。
あり?インスタンス変数初期化されてからコンストラクタ動くわ。スマソ。
更にスマソ。
Foo hoge[] = new Foo[100];
としてくださいな。
93です、>>96さんありがとです。一応あれから考えに考えて
こんなんしたどうなんだろと思ったんですけど、やっぱり自分的にも
おかしいっす。

class Foo{
static double [] hoge;
}
public class Aso{
public static void main(String args[]){
Foo [] foo = new Foo [2];//Fooクラスの変数fooを2個作ったつもり
for(int i=0;i<2;i++){
foo[i]=new Foo();//2個を初期化したつもり
}
for(int i=0;i<2;i++){
foo[i].hoge = new double[3];//foo[i]のhogeを3の配列として初期化したつもり
}
}
}
つもりなんですけど、foo[i].hoge = new double[3];って変だと思うんですけど、正しい
書き方わからないんです。教えてくださいまし。

>大量に作るときはArrayList使って保持してるし。

ってなんすか?興味しんしん。
わからないなら書くなよ
http://pc3.2ch.net/test/read.cgi/tech/1027353004/
>>100
言ってることわからん。答えないなら書くなよ。
102デフォルトの名無しさん:02/08/03 02:07
foo[i].hoge = new double[3];//foo[i]のhogeを3の配列として初期化したつもり
を外から配列サイズ(3)を指定しなくていいのであれば、
public class Foo {
 double[] hoge = new double[3];
}
または
public class Foo {
 double[] hoge;
 public Foo() {
  hoge = new dobule[3];
 }
}
とすればいい。
93です。>>99の質問ですが、最初に投げた質問>>93とすこし違って
しまいました。クラスFooのFoo型の変数fooのクラス変数hoge
が配列のとき、fooを配列を使ってたくさん初期化したときに、
foo[i].hogeを初期化するにはどうすればいいのですか?
です、たぶんそうです。初心者なので質問がうまくつくれません。よろしこ。
>>99
static double[] hoge;
としてしまうと、hogeがFooクラスの全インスタンスで共有されてしまうから
staticはつけてはいけない。

続けて質問するんなら番号でもいいから名前つけれや。
話がわかりにくい。
>>102さん、ありがとです。
mainでキーボードからの入力でdouble[] hoge = new double[];
のサイズを指定しています(サイズと書くのか、メモ)。ですので、
できれば、mainでサイズ3の配列として初期化する方法を知りたいです。
106っていうか:02/08/03 02:13
>>100
君がスレ違い
10793:02/08/03 02:18
>>104さん、すいません。
こんなたくさんレスつけてくれると思ってなくて。
http://pc3.2ch.net/test/read.cgi/tech/1028096225/93-105
>>93 >>99 >>103 >>105が質問です。
108102:02/08/03 02:18
>>105
だから名前つけろって。
そういう時は、コンストラクタを
public Foo(int size) {
 hoge = new double[size];
}
とすれば外から指定したサイズで配列を作れる。
呼び出し側(今はmain())では
int size = 3;
Foo[] foos = new Foo[100];
for (int i = 0; i < foos.length; i++) {
 foos[i] = new Foo(size);
}
でええやろ。
10993:02/08/03 02:21
>>104
ということは、もしFooにクラスメソッドをつくるときには
staticというのをつけておかないと、クラス内のメソッドから
hogeは呼び出せないということでしょうか?
>>99
hoge が static になってるからインスタンスいくつ作っても同じ物になります。
Foo.hoge = new double[3];
とする・・・というか、
class Foo{
static double [] hoge = new double[3]; //hogeを3の配列として初期化
}
public class Aso{
public static void main(String args[]){
Foo [] foo = new Foo [2];//Fooクラスの変数fooを2個作ったつもり
for(int i=0;i<2;i++){
foo[i]=new Foo();//2個を初期化したつもり
}
}
}
ですね。

オブジェクト単位でhogeが欲しい場合は、Fooのコンストラクタで生成します。
ただし、doubleはオブジェクトでないので上のコードからstaticを取るだけでOKです。

> ArrayList
java.util.ArrayList です。
実行中に追加できて便利です。toArray()メソッド役に立たんけど(w


なんかレス一杯ついてるけど・・・いいや、書いちゃえ。
11193:02/08/03 02:26
>>108さん 名前つけました93です。
public Foo(int size) {
 hoge = new double[size];
}
つまりこういうコンストラクタをFooで定義しておけばいいんですね。

>>110さん

>hoge が static になってるからインスタンスいくつ作っても同じ物になります。

どうもです!じつはさっきからこの問題にぶち当たっていたのです。
おなじもんがたくさんできるので困っていたのです。staticは
クラス変数にはつけると本に書いてあったのですが、難しいですね。
わからんことだらけです。
toArray()は便利だよ、案外。
動的にString配列サイズを変更したい場合とか
String[] array = (String[])arraylistObj.toArray( new String[0] );
>>109
その通りです。
つか、よく分かったもんだ。一を聞いて十を知る?
>>109
>ということは、もしFooにクラスメソッドをつくるときには
>staticというのをつけておかないと、クラス内のメソッドから
>hogeは呼び出せないということでしょうか?

staticにするか否か、は「そのクラスの全インスタンスで共有すべきもの」
かどうかで決める。「staticメソッドから使いたいから」staticにする、
っていうのは特に初心者のうちはしてはいけない。
下手すると全部staticになっちゃうよ。
>>112
そ・・・そか、しまった。toArray(Object[] a)を使うんだったのか。
イテレータ使って一個づつ取り出してキャストしてました俺。
11693:02/08/03 02:38
>>113さん どもです。 
全部書くと多いので省いているのですが、Fooのなかにクラスメソッド
が2個あって、そこでstatic double [] hoge をつかっているのです(泣
だからstaticとると実はやばいのではと感じたのです。
質問がだんだんとできあがってきたのですが(すいません)、

クラスFooのFoo型の変数fooのクラス変数hoge
が配列のとき、fooを配列を使ってたくさん初期化したときに、
foo[i].hogeを初期化するにはどうすればいいのですか?さらに
mainでキーボードからの入力でdouble[] hoge = new double[];
のサイズを指定しています。ですので、
できれば、mainで任意のサイズの配列として初期化する方法を知り
たいです。

java.util.ArrayList を調べる。コンストラクタを新たに
Fooのなかで定義するといのはなんとなくわかりました。

それから>>103でかいた
foo[i].hoge = new double[3];って書き方は文法的にはどうなんでしょうか?
>>116
文法的には正しくとも、他のクラスに初期化の責任を持たせるのは、カプセル化
の観点からお勧めできない。
>>116
とりあえず文法だけを問題にすると、static変数(static double[] hoge;)なら
Foo.hoge = new double[size];
だけでいい。
全インスタンスに対してhogeは一つだけだから一回だけ作ればよろしい。

ところが>>111 で、
>>hoge が static になってるからインスタンスいくつ作っても同じ物になります。
>どうもです!じつはさっきからこの問題にぶち当たっていたのです。
>おなじもんがたくさんできるので困っていたのです。staticは

と書いてるから、hogeはインスタンス毎に必要なんじゃなかろうか?

>foo[i].hoge = new double[3];って書き方は文法的にはどうなんでしょうか?
文法的には正しい。が、hogeがstaticなら意味がない。

>全部書くと多いので省いているのですが、Fooのなかにクラスメソッド
>が2個あって、そこでstatic double [] hoge をつかっているのです(泣

この2つのクラスメソッド(staticメソッド)が本当にstaticであるべきかどうか考えよ。
11993:02/08/03 02:52
>>117さん、どもです。
初期化という言葉の使い方わかってないので、へんなこと書いているかも
しれません。
mainでFoo fooの中身が決まるのはおかしいということでしょうか?
fooがアドレス帳みたいなデータをもっている変数だとしたら、
その中身はユーザーが入力するまで決まらないってのは変だという
ことでしょうか?

staticとったら、コンパイルとおるんですけど、実行できなく
なりました・・・・。
120Java勉強中:02/08/03 02:56
今、クラスライブラリで、IOパッケージのところを勉強してるんですが、
全くわかりません。。。
(例えば、なんでclose()メソッドを最後にしなくちゃいけないの?
 ってか、close()メソッドって何???そもそもストリームって何?などなど。)
とにかくお手上げです。

そこでなんですが、IOパッケージについてわかりやすく説明してある
解説本、サイトを知っていたら教えていただけませんか?
あ、ちなみに今使っている参考書は主に「独習Java」です。
12193:02/08/03 02:57
>>118 どもです
static double [] hoge にはいっている数値の和と平均を計算する
メソッドなんですが、それはクラスメソッドだとダメなんでしょうか?

インスタンスごとに必要というのは、foo[i]ごとに、違うhoge[]が
必要ということでしょうか?はい、そうでし。質問がまともに
かけなくて本当にすいません。

皆さん、とろい漏れにいろいろアドバイスありがとうございます。
>>121
>static double [] hoge にはいっている数値の和と平均を計算する
>メソッドなんですが、それはクラスメソッドだとダメなんでしょうか?

ということは、2つのFooインスタンス
Foo foo1, foo2;
に対して、
foo1.sum() と foo2.sum() の結果は違う値にならないといけない(インスタンス毎の
double[] hogeを元に計算するのだから当然)から、
合計(sum())と平均(avareage())はクラスメソッドではなく、インスタンスメソッドで
なくてはいけない。

だから、合計と平均を求めるメソッドがstaticというのが間違い。
何度も言うけど、staticなメソッド、メンバ変数は全インスタンスで共有される。
変数なら一つだし、メソッドなら、どのインスタンスから呼び出しても同じ値を返す。
staticメソッドにするのなら、そのメソッドに引数に配列を渡すようにしたほうがいいのでは?

class Foo {
static double val;
static double sum() {
//valの和を返す
}
}

class Foo {
static double sum( double[] val ) {
//valの和を返す
}
}

それとも、Fooのオブジェクトの状態としてval(double配列)を持つのであれば
class Foo {
double val;
Foo( double[] val ) {
this.val = val;
}
double sum() {
//valの和を返す
}
}
staticメソッドにすべきかの検討材料として、大雑把なものとして
・オブジェクトの状態を変更するか
・オブジェクトの状態により結果が異なるか
というのがあるのではないでしょうか。
//合計を求める
double sum = Foo.sum(foo.hoge);
より
//合計を求める
double sum = foo.sum();
の方がカコイイなぁ
staticメソッドってめったに使わないものだけどね・・・
12793:02/08/03 03:18
>>122さん どもです
>合計(sum())と平均(avareage())はクラスメソッドではなく、インスタンスメソッドで
>なくてはいけない。

インスタンスメソッドというのはどういうものなんでしょうか?
JAVAではクラスではなくて、関数というのはMAINの外で定義できない
んでしょうか?

>だから、合計と平均を求めるメソッドがstaticというのが間違い。
>何度も言うけど、staticなメソッド、メンバ変数は全インスタンスで共有される。
>変数なら一つだし、メソッドなら、どのインスタンスから呼び出しても同じ値を返す。

そうなんでしか。クラスをつくるのって難しいですね。いろいろ細かく
教えてくれて感謝です。>>123さんのコメントも含めて、いったん出直した
方がよいことがわかってきました。

まずクラスを作ってから、もう一度で直してきますです。
>>123さん これちょっとお借りしますです。
class Foo {
double val;
Foo( double[] val ) {
this.val = val;
}
double sum() {
//valの和を返す
}
}

みなさんいろいろありがとうございました。
夏休み期間は夜に大盛況だな。
12993:02/08/03 03:25
>>125さん、どもです。どうも書いているうちにカキコが増えてしまう
ようです。

>//合計を求める
>double sum = foo.sum();

MAIN内部で
fooが一個だったときは、これでうまくいっていたのでした。
foo[i]としだしたあたりから、すべてうまくいかなくなって、
ループで数を増やせばいいという見通しが甘いことに気づいたのでした。
ここで、それはstaticというのをhoge[]につけているからだと指摘され
いったん解決するのかと思ったのですが、もっと根本的な問題と
いうことがわかり、Fooのクラスの設計から出直してきます。

Fooのなかのクラスメソッドのほうにはstaticという冠詞はつけて
いないのですが、クラスでメソッドを定義するとデフォルトで
staticということになるんでしょうか?

あと漏れの持っている本はしょぼいのでstaticという言葉の
定義がきっちりかいてありません。もしよろしければ
誰か教えてください。
>>119
>mainでFoo fooの中身が決まるのはおかしい
この場合を例に取ると、Fooクラスを利用するためにはfoo[i].hoge = new double[3]
という操作をしないとfooは利用できないですよね。
つまり new Foo() が初期化処理として不完全であるということです。
不完全な状態が存在するのは、後日改造や流用することになったときなどに、
new double[3]するのを忘れているかもしれないという事態が予想できるわけです。

それを防ぐためには、Fooはnewしたら既に完全であることが望ましいわけです。
13293:02/08/03 03:37
>>131さん どもです。
なんとなくわかりました。だからコンストラクタをまた別に
用意しておく必要があるんですね。Fooに起こると予想される
事態はFooのなかで準備しておけということですね。
ますますクラスがぼろぼろなのがわかってきますた。
>>129
「クラスメソッド」って「staticメソッド」の意味で使ってるのかと思ってたよ・・・

staticメソッド=クラスメソッド=クラスに属する=全インスタンスで共有される
インスタンスメソッド=クラスのインスタンスに属する

でわかるかな。デフォルトはインスタンスメソッドです。
単に「メソッド」と言うときもインスタンスメソッドの事を指すことが多い。

変数は、何度も書いているけど、例えば100個のインスタンスを作ったときに、
すべてのインスタンスで共有したいのなら、static変数にするし、
そうでなく、別々に持ちたいのならインスタンス変数にする。

簡単に言って、最初のうちはstatic変数もstaticメソッドも使わなくていい。
134デフォルトの名無しさん:02/08/03 03:39
次に買う図書のことで悩んでます。
Java初体験っていう本を読み終えて
プログラミング言語Java第3版を買ったんだけど、内容が少し難しいです。

次に読むんだったら、これがオススメっていう本はありますか?
それともこのままプログラミング言語Java第3版をがんばって
読んでいったほうがいいんですかね?

ちなみにJava初体験が初めて読んだプログラミング書なので
プログラミングの基本的な知識はあんまりありません。
アドバイスよろしくお願いします!
13593:02/08/03 03:49
>>133さん どうもです。やはり漏れも>>134さんのように
まともな本を買う必要があるようです。(言葉の使い方がおかしい。)
というか辞書みたいな本ないっすか?厚くても英語でもいいので、
字引みたいに引ける本がほしいです。

>staticメソッド=クラスメソッド=クラスに属する=全インスタンスで共有される
>インスタンスメソッド=クラスのインスタンスに属する

まだ、なんとなくしかわかりませんが、staticはしばらく書かないことにします。
136デフォルトの名無しさん:02/08/03 03:58
Java言語プログラミングレッスン(上下)かな
137デフォルトの名無しさん:02/08/03 04:02
その次はJavaプログラミングマスターコース(上下)
JavaWorldにもJava入門の連載があるな。
あれで初心者がわかるとは思えんが(藁
>>134は筆おろしの相手が悪かったね。
>>95
??
>>95
93に向けてってどっかに書いてある?
>>138
私はあれで理解した。
>>134
Java初体験のレベルの本を買え

# Java初体験なんて本知らない
>>134
入門書はやっぱりオライリーブックス
145デフォルトの名無しさん:02/08/03 15:59
2chではもうJAVA終わりぽなのに、大学では率先してJAVA技術者を養成しようとしています。
いったいどちらが正しいのでしょう。2chが間違っていたことは過去に数回もないので大学の教授陣が一部の雑誌に流されてるだけでないことを祈りマフ。
そう思うんならそんな大学さっさと辞めちまえよ
147デフォルトの名無しさん:02/08/03 16:03
そこが素人と俺の違いです。
俺は自分の意思でJAVA以外に違う言語を数種ヤっているので辞めなくても大丈夫なのです。
ぷぷっ>>146
必死だな(藁
ぷぷっはおまえだよ
150マヂレスしてみる:02/08/03 16:17
「違う言語を数種ヤっている」なら「大学の教授陣が一部の雑誌に流されてるだけでない」ことがわかるだろう。
それがわからないのならはお前にはセンスも能力も無いということ。
>そこが素人と俺の違いです。
笑えるな。
151デフォルトの名無しさん:02/08/03 16:24
>150
そうですか!流されてませんか!わかりました。いやー、馬鹿のふりをしてみるものですね。
こうも簡単に答えが引き出せました。どうもありがとうございました。
必死だな(藁藁
153デフォルトの名無しさん:02/08/03 16:29
>>150
>「違う言語を数種ヤっている」なら「大学の教授陣が一部の雑誌に流されてるだけでない」ことがわかるだろう。
なぜそうなるの?
オレにはどうしてそういう結論が出てくるのかよくわからん。
>>151
> いやー、馬鹿のふりをしてみるものですね。
おまえは本当に馬鹿だから「ふり」をしなくても大丈夫だよ。
155デフォルトの名無しさん:02/08/03 16:31
>153
おれもそうおもった。
2ch見て顔真っ青にしてカリキュラム書き換える大学・・・行きたくねぇ
>>156
ハァ?
大学生に釣られてる奴らって…
今回の大学生は軟弱だったな
160Jun:02/08/03 23:40
サーブレットなんですが、コンパイルエラーで

import文で
パッケージ javax.servlet は存在しません。
パッケージ javax.servlet.http は存在しません。

とコンパイルエラーが発生します。
どうすれば正常にimportできるようになるか教えてください。
161Rina ◆tI333vNE :02/08/04 00:05
>>160
CLASSPATHが通っていないだけでは?
手もとに入門書やドキュメントがおありでしたら, そちらをお読みください.
EE入れてないとか
163Jun:02/08/04 00:15
>>162
EEとは何のことなんですか
EE なんて言うか? EE 言いたかっただけとちがうか
ふつうはEEなんて書かずに
E2って書くね。
E2-PROMのことだろ?
166Rina ◆tI333vNE :02/08/04 00:42
>>164
言わないと思う. 小一時間問い詰めちゃってくださいw

>>163
あくまで私の個人的意見だけど, 自分で調べてみましたか?
ここは初心者用のスレではあるけれど, だからって何でも答えて
くれるワケではないよ? どれだけ悩んで, 調べて, 自分で考えて
きたのかが伝わって来ないと, みんなキチンと答えてくれないと
思う. とりあえず, googleでCLASSPATHとservletで調べて
ごらん? もう腐るほどHITするはずだから.
167Rina ◆tI333vNE :02/08/04 00:44
>>163じゃなくて>>165だ、すまそ.
疲れてるのかなw
>>167
逆だ。>>166が正解だろう・・・
169Rina ◆tI333vNE :02/08/04 00:48
>>168
そうなの?
Rinaタン(;´Д`)はぁはぁ
171 :02/08/04 01:17
EE-JUMP
どうでもいい
がみんないい
感じで改行し
ようぜ
それは約
一名を指してない
かw
>>173
そと
んな
ない
こよ
175デフォルトの名無しさん:02/08/04 01:42
質問します。
閏年かどうかを判定するプログラムを作りたいのですが、
数字が割り切れるかどうか(除算の余りが0となるかどうか)を
判定させるには、どんな方法があるのでしょうか?
1.4.1 になっても文字列の扱いには StringBuffer 使ったほうがいいのかなぁ。
177175:02/08/04 01:45
sage進行でしたね、
ごめんなさい。
>>177
A%B==0
しかもsageてねぇ
>>176
JDC Tipsによると場合によるみたいね
>>176
Stringの足し算くらいならそのままでいいんじゃなかったっけ、たしか
181177:02/08/04 01:49
>>178
なるほど、助かります。頑張ってみます。

>>all
今度こそ、sageです。ごめんなさい、逝ってきます。
>>175
java.util.GregorianCalendar#isLeapYear(int year)
183134:02/08/04 02:12
みんなどうもありがとう!
さっそく本屋にでも行ってみます。
Stringの+演算子の使用は、
リテラル+リテラル→どうせコンパイル時に最適化されますので、見た目のよいように好きに書いてください。

リテラル+変数、変数+変数→コストはStringBuffer使うのと変わりませんので、好きに書いてください。

リテラル+変数+何か、変数+何か+何か→StringBuffer#append()使うほうが,コストが低くなります。
ただし、このたぐいのことをやるときは分離されたリテラルの管理が面倒になるでしょうから、性能に問題
なければいっそのことjava.text.MessageFormat#format()使ったほうがいいですよ。
めったにでないエラーのメッセージ組み立てなんかには、是非MessageFormatを。

ループ内で繰り返し+する→そんな貴方に是非StringBufferを。
バイトアレイストリームにライトして最後にStringするとかもあるけど、どっちが効率
いいんだろね。

という認識だったのですが、よいのでせうか?
>>184
良いんでないの?
俺的ボーダーラインはループ文内で += を使うかどうかが StringBuffer の
使いどころ。ループじゃなくても += が多発するなら StringBuffer#append() で
やる。

こんなときだけ C++ の << オペレータ使いたくなる。
きのう、Javaのチューニングの本を読みました。
そこには、「JNIコールにはコストがかかるので、注意して使いなさい」と書いてありました。

ところが、SCSLでDLしたJDKのコードを見る限り、JDKコアAPIのnativeメソッドのJNIコール
には、ユーザが行うJNIコードと特に変わっているわけでもないように見えるのです。
これが重いとなると、えらいことになるとおもいますが、どうなっているんでしょうか?
>>185
> << オペレータ
StringBuffer.append("xx").append("xx").append("xx");
じゃ駄目なの?
>>187
たまに連続 append() よりも

buffer << "[" << i << "] " << msg;

みたく書きたくなる。
まぁ + 使えば append().appned()... と同じなんだけど。
>>188
コスト的には+連続はappend()連続よりはるかに重いので、一緒じゃないです。
+を一回は実行時には、「StringBuffer作ってappend()してtoString()して
います」んで・・・

スピードが気にならないならMessageFormat.format()使いましょう。
Cのsprintf()みたいなものです。こんな感じで使います。

String s = MessageFormat.format(
  "{0}[{1}]{2}",
  new Object[]{message1,message2,message3});
190189:02/08/04 05:34
ココで作ってるObject[]インスタンスなどは、どうせ最近のJVMには
世代別GCが実装されてるので、すぐ消えてなくなってくれるでしょう
から、気にしない〜:)
>>189
どこの学生か知らんがそれは間違い。文字列の連続連結は最後に toString()
が行われる。以下の逆アセンブルコード (String s = s1 + s2 + s3;) を見れ
ば明白。

// 6 9:new #5 <Class StringBuffer>
// 7 12:dup
// 8 13:invokespecial #6 <Method void StringBuffer()>
// 9 16:aload_1
// 10 17:invokevirtual #7 <Method StringBuffer StringBuffer.append(String)>
// 11 20:aload_2
// 12 21:invokevirtual #7 <Method StringBuffer StringBuffer.append(String)>
// 13 24:aload_3
// 14 25:invokevirtual #7 <Method StringBuffer StringBuffer.append(String)>
// 15 28:invokevirtual #8 <Method String StringBuffer.toString()>
// 16 31:astore 4

スピードは StringBuffer どころか + 演算子に比べて、ヘヴィーなオーバーヘッド
がかかっている分 MessageFormat の方がはるかに遅い。さらに細かい文字列インス
タンス作りまくるので GC の回数を増やすことにもなる。今さらっと確認しても処理
時間 (+演算子:MessageFormat) = 421:3635 ミリ秒だったぞ。

ってか君、MessageFormat の選択基準間違ってる。これはフォーマットを外部定義
できるところに利点があって、決してパフォーマンスではない。

まぁ技術屋を目指すなら本ばかり読んでないで自分の手で実際にいろいろやって
みることだな。
テストコードは↓これ。最適化でコードが消されてないことは逆汗で確認済み。

String x = "hello, world";
long s = System.currentTimeMillis();
for(int i=0; i<100000; i++){
  String y = "[" + i + "] " + x;
}
System.out.println(System.currentTimeMillis() - s);

s = System.currentTimeMillis();
MessageFormat fmt = new MessageFormat("[{0}] {1}");
for(int i=0; i<100000; i++){
  String y = fmt.format(new Object[]{new Integer(i), x});
}
System.out.println(System.currentTimeMillis() - s);
あ、すまん。「スピードが気に入らない」じゃなくて「気にならない」か。
読み違えたよ。
194超初心者 ◆m58/BWI. :02/08/04 11:16
独習JAVAで勉強を始めた初心者です。
その独習JAVAで質問があるんですが、
一つ目は175ページの練習問題の1なんですが
このソースで、mainメソッドの中に
obj.hello("Yes");
という一行を加えると、コンパイルエラーが出ます。
166ページの上のほうに「スーパークラスは、そのクラスの
オブジェクトまたはそれから派生した任意のオブジェクトを
参照できます」とかいてあり、実際に
A3 obj = new C3();
の部分はコンパイルが通ります。
しかし、objはC3のインスタンスであるのに、そのメソッドである
void hello(String s)が呼び出せないのは、どういうことでしょうか?
何の問題もなく、
Hello from C3 Yes
と表示されるものと思っていたので、
まずここの部分で悩んでいます。どなたかご教授願います。
長くなるので二つに分けます
195超初心者 ◆m58/BWI. :02/08/04 11:17
二つ目ですが、187ページのソースなのですが、
「変数nameと変数ageには妥当な既定値がないので、
既定コンストラクタをほかのクラスから呼び出すことは
できません。したがって、ほかのクラスから呼び出せないように
コンストラクタをprivateで宣言する必要があります」とあるのですが、
ここで、このコンストラクタを中身を空でprivateで宣言する意味が
理解できません。これなら、このprivateのコンストラクタは
無くても同じだと思うのですが、なぜ宣言してあるのでしょうか?
他のクラスから呼び出せなくて中身が空なら、無くてもいいと
思うのですが、敢えて宣言してあるのはどんな意味があるのでしょうか?
ここでもつまづいています。
以上、どなたか識者の方、ご教授お願いします。

すいません、sage進行だったんですか・・・・
>>195
あるクラスのコンストラクタが存在しないと
そのクラスのスーパークラスのコンストラクタが呼ばれます。
197デフォルトの名無しさん:02/08/04 12:37
>>194
A3にhelloとやらのメソッドが無いんじゃないの?
実態がC3でも、インターフェースはA3なわけだからA3にもなくちゃダメだよ。
hello()がprivateだったりして
>>193

言ってる事は良かったが

>まぁ技術屋を目指すなら本ばかり読んでないで自分の手で実際にいろいろやって
>みることだな。

とまで書いてしまった以上,オチがついてしまったのがカコワルイ
まぁまぁ
201初心者丸出し:02/08/04 16:45
JAVAを始めて1ヶ月の初心者です。

1 /**
2 * エラーメッセージを出力する
3 **/
4
5 import java.util.*;
6 class cast{
7   public static void main(String args[]){
8      Vector err = new Vector();
9      err.add("メッセージ1");
10     err.add("メッセージ2");
11     err.add("メッセージ3");
12     err.add("メッセージ4");
13     String errMsg[] = (String[]) err.toArray();
14     for (int i=0 ; i < err.size() ; i++ ) {
15       System.out.println( errMsg[i] );
16      }
17   }
18 }

コンパイルは通るのですが、実行時に
java.lang.ClassCastException:
とでてしまいます。

自分で調べた結果
>13 String errMsg[] = (String[]) err.toArray();
スーパークラス(object型) → サブクラス(String型)

13行目でナローイングが発生しているために、エラーが発生しているのかと思っています。

質問の内容
・エラーメッセージ1〜4を表示させるには?
・「スーパークラス → サブクラス」はだめ(あぶない?)で、
 「サブクラス → スーパークラス」は大丈夫なのはどうして?

の以上2点です。どなたか、ご教授お願いします。
>13     String errMsg[] = (String[]) err.toArray();

こうしないで

15       System.out.println( errMsg[i] );

ここで(String)にキャストしながらイテレートすれば?
203初心者丸出し:02/08/04 17:02
イテレート?
初めて聞いた単語です。。。
なにせ、始めて一ヶ月なもんで。まだまだ、勉強が足りませんね。
できれば、コードで教えていただけないでしょうか?

15       System.out.println((String)err[i] );

かね。実験してないけど。
205初心者丸出し:02/08/04 17:10
それは、Vector型のerr配列を宣言しないとだめですか?
>>205
ごめん err.elementData()[i];か。
207初心者丸出し:02/08/04 17:27
elementData()というメソッドは、Vectorクラスにはなかったです。
elementDataフィールドはありましたけど。

>15 System.out.println( (String) err.elementAt(i) );

と書いたら、なんとか表示されました^^
ありがとうございました!

もう一点なのですが、
「スーパークラス → サブクラス」はだめ(あぶない変換?)で、
「サブクラス → スーパークラス」は大丈夫なのはどうしてなのでしょう?
>>207
確かにフィールドだ。申し訳ない。

StringクラスとVectorクラス、どっちもObjectから派生している。
だからといってStringクラスをObjectの変数に入れてVectorにキャストしたら・・・。

下の方はまぁ、ポリモルフィズムという話になってくるけどね。
説明できる自身はないので本でも読んでくださいな。
String errMsg[] = (String[])err.toArray(new String[0]);
じゃないかな
210イテレート:02/08/04 17:39
java.util.Enumeration e = err.elements();
while (e.hasMoreElement())
 System.out.println(e.nextElement());
>>207
「サブクラス ⊃ スーパークラス」だから
instanceofで確認すればいい
for(Iterator it = err.iterator(); it.hasNext(); )
  System.out.println((String)it.next());
213初心者丸出し:02/08/04 17:51
>209
>String errMsg[] = (String[])err.toArray(new String[0]);

たしかに動きました。
toArray(Object[] a)だと、指定した配列型で返してくれるんですね。
むぅ、勉強不足でした。Javaが面白くなってきました^^
>>213
個人的には嫌いなコード。
型を渡す仕組みさえあればそんな汚いコード書くこともある撒いて。
List#toArray(java.lang.Class)
みたいに書けると嬉しい、ということ?
>>215
が、筋じゃない?

型を伝えるために使いもしない変数作って渡すってスマートじゃない気がするけど。
217初心者丸出し:02/08/04 18:02
>211
「サブクラス ⊃ スーパークラス」だとなぜ、いけないのでしょう?
Javaの基本がわかっていないから、理解できないのかな?
勉強不足ですいません。。。

>214
そんな、汚いコードなんですか。。。
これからは、そういう判断力も身につけなければならないですね。
私は、見ただけではわかりません^^;
>Javaの基本がわかっていないから
また保育園と化しているな
>>218
タイトル見てものを。
array = (String[])list.toArray((Object[])String[].class.newInstance());
玉砕しますた

>型を伝えるために使いもしない変数作って渡すってスマートじゃない気がするけど。
確かにね。その感覚で行くと
String errMsg[] = (String[])err.toArray(new String[err.size()]);
が多少マシかな。渡した配列が返ってくるから。

>>217
最初のうちは気にする必要は無い。
>>220
うむ。
222デフォルトの名無しさん:02/08/04 18:20
スミマセン質問です。
ある数値の16進表現の文字列を得たいのですが、どうやればいいでしょうか?
C で言えば sprintf(res, "%x", src); みたいな処理です。
よろしくお願いします。
>>222
toString
Integer#toHexString(int)かjava.text.DecimalFormatで逝っとけ
225222:02/08/04 18:22
>>223
16進にするオーバーライドなんてありましたっけ?
226222:02/08/04 18:22
×オーバーライド
○オーバーロード
227222:02/08/04 18:23
>>224
ありがとうございまーす!試してみます
>>214
型を渡す機構ならある。
java.lang.Class
渡す配列が足りないとき

a = (Object[])java.lang.reflect.Array.newInstance(
a.getClass().getComponentType(), size);

とかやってるから、無条件で

public Object[] toArray(java.lang.Class cls) {
Object[] a = (Object[])java.lang.reflect.Array.newInstance(
cls.getComponentType(), size);
System.arraycopy(elementData, 0, a, 0, size);
return a;
}

は可能だと思うんだが・・・なんか問題あるのか?
229214:02/08/05 00:30
さぁ?
230229=215:02/08/05 00:31
すまそ。214は別の人
231215:02/08/05 01:28
>>228
214が言いたいのは、「問題なさそうなのにAPIとして用意されていない」のがおかしい、ということだろう。
自作でならいくらでも作れる。
>>231
いや、APIで用意されてないのはその実装では、なんか問題があるのか?
>>228
リフレクトってどうなのよ?
メタ言語って奴じゃないの?
234215:02/08/05 02:43
>>232
あ、Class[]な配列を作りたいときに困るな。
235215:02/08/05 02:46
あ、訂正。やっぱ問題ない
int s;
int t;
s-tを2乗したいときはどう書くんですか?
>>236
(s-t)*(s-t)
>>236
楕円の面積?
239デフォルトの名無しさん:02/08/05 11:24
Threadもの作ったとき、コンストラクタでstart呼ぶのはどう思う?

美しいか、美しくないか?
>>239
いいんじゃない?
Mainでそのコンストラクタ読んだら先生にすごい顔されたよう・・・。
Main萎え
242初心者:02/08/05 12:21
class Sample{
public void keisan(String args[]){
ここでいろいろやってファイルからloadの数を読込んだ
double x[] =new double[load]: //こんな感じでメソッド内で宣言
ここから先でいろいろやってx[]に数値を入れてった
}
pubic void B(){
for(int a=0;a<load;a++){
System.out.println(x[a]);
}
}
適当につづく・・

ここでBのほうのメソッドにx[a]の配列を表示させたいんですがうまく引き渡しできません。
配列を別のメソッドでもそのまま使えるようにするにはどうすればいいでしょうか
初心者なのでうまくいかず困ってます。よろしくお願いします。
>>242
ごめん、コード略しすぎ。
やるなら変に略した元コードではなく、問題が発生する簡単なサンプル書けよ。
>>242
って言うかそもそも変数のスコープとか理解してない予感。
BASIC上がりか?
245239:02/08/05 13:30
>>240
(゚∀゚)サンクスコ
Swingコンポーネントプログラムを勉強しようと思って本を買ってきたのですが、サンプルプログラムがことごとく動きません。
インターネット上のSwingのサンプルプログラムもコピペしてみたのですが、こちらも動きません。
エラーメッセージはException in Thread"main" java.lang.NoClassDefFoundError となります。
助けてください!!
>246
>81
248246:02/08/05 14:36
早速のレス感謝です。

昔クラスパスの設定?をしたので一応普通のJAVAのプログラムは動くのですが、Swingの本のプログラムが動きません。
これらのプログラムを動かすには別にまたクラスパス?の設定をするのですか?
>>191
> 以下の逆アセンブルコード (String s = s1 + s2 + s3;) を見れば明白。

こういうのもアセンブルコードなんだ?
>>249
かわいそうなコナンだからそんなに・・・・
>>246 とりあえず、その本の書名さらしてみ?
>>246
javax.swing.*でなく
com.sun.swing.*になってる悪寒
自演厨
254デフォルトの名無しさん:02/08/05 21:46
アプレットでのjavaについて学習・勉強できる本を買いたいと思っています。
が、大手の本屋などを探してもなかなか「丁寧に」解説してある本にめぐり合いません。
オフィスエム著の最新javaハンドブックはすごく分かりやすかったんですが、
アプレットに関して少ししか載っておらず、購入しませんでした。
アプレットに関する主にguiについてなどを細かく丁寧に解説されてる本など、
使っている方でオススメのものとかあれば教えてもらえませんでしょうか?
>>254
わがまま。1冊ですまなければ2冊買う。
それが嫌ならWebなりどっちも載っているわかりにくい本を死ぬ気で読み解け。

それができないならやめてしまえ。
>>254
JAVAパワフルテクニック大全集(既廃刊?)
257デフォルトの名無しさん:02/08/05 22:12
ありがとうございます

>>255
やっぱりお金ですかトホホ。

>>256
廃刊みたいでした……
>>257
金がないなら時間と技術でカバーしろと言っている。
>>242
>class Sample{
>public void keisan(String args[]){

これってmainって書かなくていいんでしょうか?
C++をちょっとやって挫折してからJAVAに移ったので、
mainがすべてクラスの定義の中で書けるってのが
どうもよくわかりません。全体でmainは一個だと
最初に刷り込まれたのが致命的。
mainメソッドのなかにクラスの定義を全部
書いていいのでしょうか?クラスを作成する
ときにmainが書けるのはどういうメリットが
あるんでしょうか?
>>259
>mainメソッドのなかにクラスの定義を全部
>書いていいのでしょうか?

C++でもこんな訳のわからんことできなかったと思うが・・・。

そのクラスのテストドライバが簡単に作れる。

個人的にはエントリポイントはあるクラスのコンストラクタとかの方がうれしかったけどね。
>>259
>mainメソッドのなかにクラスの定義を全部書いていいのでしょうか?
意味不明。メソッドの中で作ったクラスは外から見えんし。
もしかして、
「全部のクラス定義のなかにmainメソッドを書いていいのでしょうか?」か?
おおう、全文字使ってまともな文が(w

>メリット
テストドライバを本体に書き込めるのは・・・肥大化は上手くないな。
>「全部のクラス定義のなかにmainメソッドを書いていいのでしょうか?」か?

そうそう、そうだよ、馬鹿なんだから許せよ。だから教えれ。
>mainがすべてクラスの定義の中で書けるってのが

って自分で書いていたわ、だから
「全部のクラス定義のなかにmainメソッドを書いていいのでしょうか?」
これは正しい推論ではないかも。

やっぱり
class hoge{
フィールド
メソッド
public static void main(String args[])
{
ここには何をかくの?何も書かなくてもいいの?
}
}
という質問です。これはおかしい?
>>262
問題ない
但し、実行するクラスのmainは呼ばれるけど
他のクラスのmainは明示的に呼ぶまで呼ばれない
265デフォルトの名無しさん:02/08/06 02:58
public class Sample6
{
public static void main(String args[])
{
double root2, root3, big; // 変数を宣言する。


root2 = Math.sqrt(2); // 2の平方根を求める。
root3 = Math.sqrt(3); // 3の平方根を求める。
big = Math.max(root2, root3); // 大きい方の値を求める。


System.out.println(root2); // 2の平方根を表示する。
System.out.println(root3); // 3の平方根を表示する。
System.out.println(big); // 大きい方の値を表示する。
  }
} 

すいません、これがコンパイルエラーになってしまうんですけど、
どうしてでしょうか?ヽ(`Д´)ノウワァァン!!お願いします・・・鬱
すいません、ageてしまいました。
あと、出展は桑原信也著
JAVAではじめるプログラミングです。
>>265
三宅:「インポートしてない」
関口:「ファイル名がショボー」

どっち!?
268デフォルトの名無しさん:02/08/06 03:23
Mathクラスはjava.lang.Mathだからインポートいらないよ。
ファイル名はちゃんと「Sample6」にした?
すいません、インポートって何ですか?>>267
ファイル名は大丈夫だと思われます。
Sample6.java:16: \12288 は不正な文字です。
  }
^
Sample6.java:16: ';' がありません。
  }
^
Sample6.java:17: \12288 は不正な文字です。
} 
^
Sample6.java:17: 'class' または 'interface' がありません。
} 
^
エラー 4 個
↑こんな風になります。お願いします。
あっもしかしてどっかに全角スペース入ってない?
コード内に全角スペースが入ってるとコンパイラが解釈できないんだよ。
あ、そうかもしれないです。
全角スペースが入ってるような気がしてきました。
もう一度初めからやり直します。
皆さんありがとうございました。逝ってきます。
                _,,,,-―――- 、
              -''"        -‐ \
             /     _-‐  ̄;;;;;;;;;   ヽ
            /   _-''" ;;;;;;;;;;;;;;;;;;;,,,,,,   l
           l    l'    :::::::::::::::::::::/ ̄ ヽ
             |    l,   ,.-''''''ヽ  /     }
           l     | J /     ヽl     ノ
        ._...--、ヽ    |_-‐l      ノ `‐---‐'|_
       /:::::::|:::} ヽ⌒ヽ|   ヽ __ノ::::::::::::::::   >
       ノ:::::::::l ノ {         ;;;;;;;;;;;;;;,. -―' ̄
       |:: :: 「  ヽ- r'  'J   ;;;;;;;;;;;;;;;;/
      _|-'''''' ̄)   ,..|-、_     ::::::::::{
     r'      ̄)_,...-|`-、_ `-、_ ;;;;;;;;;;;__>
      |      ̄)  、_  `ー------/
     |      ̄__)'''''''ヽ'''- 、___ノ`''' 、_
    /\   _ノ :::::: ::::}    r ヽ|     ヽ
   /   `--'''> `ー __..-'    ''--''|    |   ヽ
 /       /    ||        |   |    ` _
        /|.     ||       |   |      ー、
      /_,,,..|     ||    r'''ヽ|   l'、_       ''-、
    _/    |     ヽ    ヽ-''|   /   ヽ_       '''- 、
         |      \    |   {     ヽ       /、_  -― 、
         |        ヽ r-、|   l         '''-、    /     ,..-, `ヽ
         |         v 、__|   }         "''- ' ヽ、   (  `-'-′
         /            |   |             、__  ヽ,
275246:02/08/06 13:29
appletviewer AAA.htmlなら動くのですが java BBB だと例外なく、
Exception in Thread"main" java.lang.NoClassDefFoundError 
というエラーが出てしまいます。

意味もわからず,パスをいじっていたのが原因かとも思うのですが、そんなことってありますか?
>275
そんなことってあります
277246:02/08/06 15:02
・・・打開策があればぜひ教えてください(泣)
そもそもパスとクラスパスって別ものですか?
278デフォルトの名無しさん:02/08/06 15:39
Javaアプレットで直接MySQLDBを検索するプログラムでエラーがでます。
Causedby: java.io.FileNotFoundException: E:\Java\org\gjt\mm\mysql\Driver.class (指定されたパスが見つかりません。)
でE:\Javaはhtmlやclassのあるフォルダで、org\gjt\mm\mysql\Driver.classは、プログラムで
Class.forName("org.gjt.mm.mysql.Driver");としています。
CLASSパスの設定は
CLASSPATH=.;C:\MM.MySQL\mm.mysql-2.0.14\mm.mysql-2.0.14-bin.jar;C:\j2sdk1.4.0_01\lib\tools.jar
となっているのですが、エラーの原因は何なんでしょう?
>>275
>昔クラスパスの設定?をしたので一応普通のJAVAのプログラムは動くのですが

>java BBB だと例外なく、
>Exception in Thread"main" java.lang.NoClassDefFoundError 
>というエラーが出てしまいます。
は一見矛盾しているように読み取れます。
ちゃんと状況をまとめなおして書き込みする
ことをおすすめします。
#BBBはJAppletを継承してて、それをjava BBBで実行している
#ようなきもするけど、それならそう書いてください。
>そもそもパスとクラスパスって別ものですか?
別物です。
280デフォルトの名無しさん:02/08/06 19:44
アプレットを作成中です。
JDK1.3.1を使っているのですが、IEのVMのバージョンは1.2という話を聞きました。
1.3.1でコンパイルしたアプレットはデフォルトの状態のIEでは
動かすことはできないのでしょうか?
試してみたのですが、表示されないのでそう思ったのですが・・・。
古ければ新しいものを自動的にダウンロードみたいなことはできるのでしょうか?
281デフォルトの名無しさん:02/08/06 19:44
pdfのようなブラウザから見れるファイルをサーブレットから送って
ブラウザ上に表示したいんですが下記のようなサーブレットソースでは
ファイルを開くか保存するか、というダイアログが出てしまいます。
このダイアログを出さずに直接ブラウザに表示させるには
どのようなレスポンスを作成すれば良いのでしょうか?
とうか教えてください。

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment;filename=" + pdfファイル名);
BufferedOutputStream writer = new BufferedOutputStream(response.getOutputStream());
// ファイル内容の書きこみ処理
}
>>280
Internet Explorer に標準で乗ってるのは 1.1.4 相当の JVM だ。
バイナリに互換性を持たせるなら javac -target 1.1 [クラス名] と
コンパイルしてやれば良い。しかし、プログラム内で 1.1 にないクラスや
メソッドを使用してるとアウト。

>>281
Content-Disposition ヘッダ付けてるところが余分。
>>280 Java pluginをダウンロードさせたいときは
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/plugin/developer_guide/using_tags.html
かな。使ったことないけど。これってVMもインストールされるの?
284280:02/08/06 20:35
>>282
ありがとうございます。1.1だったんですね。勘違いしてました。
1.3で追加されたようなものは使ってないのでこの方法でやってみたいと思います。

>>283
さっと目を通したんですが、ちょっとよくわかりませんでした。
暇の時にでもじっくり読んでみます。
285281:02/08/06 20:37
>>282
即レスありがとうございました。
無事期待通りの動作をしました。
よかったよかった
287サル前後:02/08/06 22:23
超初心者です。
ほぼ、日本実業出版社の”ここからはじめるJAVA”どおりにやってんすけど、
コンパイルできません。
class Sample1
{
public static void main(String args[])
{
System.out.println("おはようございます");
}
}
どっかおかしいですか?
どなたかお願いします。
>>287
コンパイルエラーメッセージを書くのが筋だと思うがね。

public class
多分
set CLASSPATH=%CLASSPATH%;.

publicじゃなくても実行できるんだよ
290サル前後:02/08/06 22:47
>288 エラーは
エラー:Sample1.javaを読み込めません。
エラー 1個
ってかんじです。
>289 えーっと、コマンドプロンプトにこうやって書けってことでしょうか?
なんら状況は変わらないんですが。
291no good:02/08/06 22:51
質問です。
ここで聞いていいものやら・・・

JavaScriptのwindow.open()でWord文書とかを指定すると、
Word(アプリ)が起動して文書が表示されますが、それと同時に
何も表示されていない新規ブラウザも表示されてしまうんです。
この、空のブラウザを表示させない方法ってあるんでしょうか。
正直邪魔なんですけど。

よろしくお願いします・・・
>>290
パターンとしては、Sample1.javaじゃなくてsample1.javaとか
大文字小文字が間違っているとか、メモ帳使っててSample1.java.txt
にファイル名がなってたとかあるかな。dirって打ってリターンしてごらん。
>>290
ファイル名が間違ってないか、ディレクトリの指定を間違ってないか確認しる。
>>291
Javascriptはhtmlに埋め込む場合はWeb制作板へ。
295no good:02/08/06 22:59
>>294
そうですか、Web制作板ですね。
行ってみます。
ありがとうございました。
いや違うだろ。原因は Sample1.java.txt
298サル前後:02/08/06 23:21
>>292
dirって打ったら
Sample1.java.java ってなってました。
大文字小文字や、ディレクトリもあってるはずなんですが.....
ドライブCのボリュームラベルがありません。
ってでてることとか関係あるのかな....
ほんとシロートで申し訳ないです。
>>298
Sample1.java.javaじゃなくて、Sample1.javaね。
つーか、プログラムするならエクスプローラのフォルダ
オプションいじって拡張子表示されるようにする...
>>298
.javaは2つもいらない。つまりファイル名を間違えてたことになる。
そのまま実行したいなら
javac Sample1.java.java
と打て。
名前を変えたいなら
REN Sample1.java.java Sample1.java
って打て。
>278
E:\Javaにclassファイル置いちゃだめじゃないの?
クラスパスが通っているとこの下に、パッケージの階層
つくってファイル置かないと。
効率よくメモリリークしていく様子を観察できるプログラムを書いてください。
>>302
Runtime rt = Runtime.getRuntime();
Vector v = new Vector();
while(true){
  System.out.println(rt.freeMemory() + "/" + rt.totalMemory());
  v.add(new byte[1024 * 1024];
}
>>303
コンパイルエラーでました
どうしてくれますか?
305デフォルトの名無しさん:02/08/07 00:57
Windows2000 で Ant 1.5 を使おうと思っているのですが、

 <property environment="env" />

を入れると、「16ビット MS-DOS サブシステム」というタイトルのメッセージボックス
でエラーが出て、DOS 窓内では、property の行数の位置で NullPointerException
になっているようです。

Ant の少し前のバージョンでは動かせたことあるのですが(全く同じものではないですが)、何かおかしいことしてますか?
306305:02/08/07 00:58
ちなみに、property の行をコメントアウトすると一応通ります。
307302:02/08/07 01:05
>>303
サンプルありがと。
だいたいやりたいことはこれだったので助かりました。

やっぱりVectorに溜め込むのが一番楽だね。
308デフォルトの名無しさん:02/08/07 01:11
JBuilderや一太郎arkを起動したときに、Windowsだと
C:\Documents and Settings\ユーザ名
の場所に、.arkや.jbuilder6といったディレクトリができて
設定ファイルが作成されています。たぶん、このディレクトリが"ホーム"といった判断をJVMが行っているんだと思うのですが、
どうやればこの"ホーム"の場所を取得することができるんでしょう?
Linuxなどの場合は、どこに設定ファイルが保存されているんでしょうか?
>>308
System.getProperty("user.home")
うわぁ
環境変数を読んでいた俺はバカだった
311Tips:02/08/07 01:21
System.getProperties().list(System.out);
313308:02/08/07 01:26
>>309
getPropertiesとか使ってみたりしてたのに
すっかり見落としてました。
ありがとう。
JMSでPC間を繋ごうとしているのですがうまく行かず、エラーが出ます。
javax.naming.InvalidNameException: TopicConnectionFactory: [LDAP: error code 34
- invalid DN]; remaining name 'TopicConnectionFactory'

ソースですが、JNDIのコネクションのところは下記のようになっています。
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,"ldap://localhost:389/dc=###.dc=jP");
InitialContext jndi =new InitialContext(env);

topicConnectionFactory=(TopicConnectionFactory)jndi.lookup(JMS_FACTORY);

JNDIのコネクションのところは同じ形で、属性を取得するプログラムをかいてみたところ
うまくいったので、"ldap://localhost:389/dc=###.dc=jP"の部分が間違っている可能性はないと
思います。
JDK1.4.0、J2EE1.3.1、サーバーはJ2EEを使っています。エラーの原因がわかる方がいましたら宜しくお願いします。
2chの初心者スレで聞くことじゃないなぁ・・・と言ってみるテスト
316デフォルトの名無しさん:02/08/07 21:17
HttpServletRequestWrapper とかって何のために存在するの?
やたらとプログラマが HttpServletRequest や 〜Response のラッパー作るから
標準に取り入れただけか?
317 :02/08/07 21:24
やっぱり、今日もわけわからん。
はじめて1ヶ月になるが、
本なしでは、チンプンカンプン。
ああ、やっぱりアホだ。オレは。
でも、がんばるぞ。
>>316
Filter使ってみ
Swing で質問です。

JMenuBar と JMenu がある Java アプリケーションで、
JMenuBar をクリックした時に現れる JMenu が、JMenuBar と離れて出て来ることがあります。
そのアプリケーションのサイズをマウスで変更すると、それ以後は JMenu と JMenuBar がくっついて表示されるようになるのですが、
これを始めからくっついて表示されるようにする方法はありますか?

なお、上記の現象は JDK1.3 のみで発生し、JDK1.4 では発生しませんでした。
>>319
>JDK1.4 では発生しませんでした。

答えは出てるんじゃ?
321デフォルトの名無しさん:02/08/08 03:02
JavaでMSNメッセンジャーみたいに、字と絵(絵文字?)を両方扱える
テキストボックスかメモ帳みたいなアプリケーションは簡単に作成できますか?
>>321
あなたにとって簡単かどうかは誰にもわかりません。
>>321
できます、はい終わり。

次の方どうぞ〜.
324デフォルトの名無しさん:02/08/08 15:10
厨房な質問で誠に申し訳ないが……。

java.util.Dateからjava.sql.Dateに値をコピーするにはどーしたらいいのでしょうか?

要するに、SimpleDateFormat#parseの戻り値をjava.sql.Dateに格納したいんです。
考えて見ればキャストできなくてあたりまえなんだけど、さりとてコンバートできないと
やっぱり困る。

多分、検索の仕方が悪いんだと思いますが、一言でよいのでアドバイスを(拝)
>>324
(゚∀゚) ひとつひとつ手でうつす! 丁寧にな
java.util.Date d = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(d.getTime());
かな?
327デフォルトの名無しさん:02/08/08 16:11
>>326
イケました。なるほど、getTime()ってこーゆーときに使うんですね。

アドバイスありがとうございました(拝)
328デフォルトの名無しさん:02/08/08 16:32
アプレットを実行して、画像のパスを間違えてて画像のパスを直したり、
あるいはファイル名などを変えて正常に見られる状態で再コンパイルしたのに、
アプレットがそのパスが間違えてあるままだったりします。

IEで実行してるんですが、履歴とか一時ファイルを消去しても直りません。
こういう場合ってどうなされていますか?再起動ですか?
>>328
URLのケツに ? をつける
330デフォルトの名無しさん:02/08/08 16:46
>>329
わわ!見れるようになりました!
ありがとうございます!^^
331330:02/08/08 17:03
すいません
パスの変更のほうではできたのですが
パスは変更せず同じファイル名の画像を違うものと変更しアプレットを実行した場合では
変更前のアプレットと画像が同じでした。(IEを使い一時ファイルを消し履歴も消しました)

IEが悪いのでしょうか?
332デフォルトの名無しさん:02/08/08 17:48
ある文字を'\'に変換しようと思って
s = s.replaceAll( "hoge", "\\" );
ってやったら実行時エラーなるんだけど・・・
>>332
その実行時エラー貼り付けないと誰もわからんよ。
予想1) java.lang.NullPointerException

334332:02/08/08 18:02
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:455)
at java.util.regex.Matcher.appendReplacement(Matcher.java:532)
at java.util.regex.Matcher.replaceAll(Matcher.java:636)
at java.lang.String.replaceAll(String.java:1706)
at a.main(a.java:6)
>>334
1なんて確保されてる以上の配列の要素読み書きしようとしてんじゃねぇぞごるぁ!
>>334 その動作自体は仕様だから問題ない。
http://developer.java.sun.com/developer/bugParade/bugs/4689750.html
337332:02/08/08 18:47
>>336
ありがとうございますた
338なんじゃ?:02/08/08 19:42
これって知ってる人いる?
きょう、はじめて知ったんだけど、使ってる人いる?

フープ
http://www.hirokiok.com/ja/whatsnew.shtml
>>338 ああ、BeanShellが組み込まれたエディタなのね。
http://www.beanshell.org/
340338:02/08/08 20:00
なんかしらんけど、落とせんぞ。ためせんぞ。
>>340
何を?フープは落せるぞ?
342デフォルトの名無しさん :02/08/08 22:55
あ、あのですね、JAVAで作ったアプリケーションを友達のパソコンで
実行してもらおうと思ったら、JAVA2 SDKとかで環境を作成してもらわ
ないとやっぱ無理なんですか?
jreをインストールさせろ
>>342
困るよな。それだと
>>342 基本的にはそう。けど、ちょっと試してもらいたいとか
そういうときは、CD-Rで展開済みのJRE持っていけばインストール
作業なしであとくされなく実行できるよ。
>>342
JREを同梱して、友人にはJava環境であることを教えない。
起動はショートカットか.BAT経由。これ最強。
>>342
JAVA2SDKもインストールしてないような奴とは縁を切れ
348デフォルトの名無しさん:02/08/09 00:35
最近、逆コンパイラのJadがリンク切れナンだけど。お前らミラー御存じないですか?
>>347
俺はJDKインストールを強要する友人と手を切るが。
正直な話、JDKインストールしろってのは、かなり無理があるよ。
JAVAのプログラムを実行しろって時点で、既に無理があるんだから。
素人はJREのインストールだけで十分でしょ。
JDK 1.1 で動くように作って jview.exe を使う。
業務の本番環境でちょっと Java のツールを動かしたい時、JDK の
インストールなしにフロッピー入れるだけで実行させたいときは
これでやる。
353デフォルトの名無しさん:02/08/09 05:10
Javaの1.2で、外部ファイルの内容を(改行なども生かしたままで)Stingに落とすにはどーしたらいいのでしょう?
単にreadLineで読み取ったものを+"\n"してString(またはStringBuffer)に足してきゃいいだけ?

……っと、何がやりたいかというと、外部ファイルをテンプレートとして、定型のE-MailをサーバサイドJavaから
送信したいんです。「文字列中の特定の文字列を置換する」というメソッドはもう作ってあるので、あとは上記の
事が出来れば、そのまんまJavaMailに送ってやればOKかな、と思いまして……

「こんな方法もあるぞゴルァ」というご意見も含めまして、アドバイスを頂ければ幸いです。よろしくお願いします(拝)
>>353
それでも良いし↓でも良い。メール送信なら改行コードを変更できるから
>>353 のやりかたの方が良いかもな。

Reader in = new FileReader("hoge.txt");
char[] buf = new char[1024];
StringBuffer buffer = new StringBuffer();
while(true){
  int len = in.read(buf);
  if(len < 0)  break;
  buffer.append(new String(buf, 0, len));
}
in.close();
String content = buffer.toString();
355353:02/08/09 06:12
>>354
んと、そのやり方では、エンコードはどうなるのでしょう?
文字列置換の関係で、一回はUnicodeにしなきゃいけないんですよ。
それが心配でreadLine使うかな、と思ったのですが、何かreadLineはCR+LFの
LFだけとっぱらうとかで、単純に+"\n"ってやってくっつけて大丈夫なのかな、と思いまして……。

……もしかして、charで読んできた時点でエンコードしてるのかな? ならこちらのほうが
余計な心配しなくていいかもしれませんね。
>>355
エンコードとは文字コードのことか? ファイルの内容はシステムデフォルトの
文字コードとして Unicode に変換される。Windows なら MS932 だし
Unix なら euc-jp。
357デフォルトの名無しさん:02/08/09 10:54
JBuilder 6 Personalを入れたら、JAVACで今までつかっていたSDK1.4が
使えなくなりますた。JBuilderと一緒にインストールされる1.3を使うように
レジストリを書き換えられてしまつたようです。
Win厨房の漏れにはどうしようもありません。JBuilderをアンインストール
したら、レジストリも元に戻るんでしょうか?
楽して生きようと考えたのが誤りでした、反省します。エディタとコマンド
プロンプトに戻りたいのです。どなたか助けてください。お願いします。
ここ最近JAVAを勉強し始めて、基礎の基礎くらいは
理解したつもりでいる初心者です。
が、どうもJAVAでコーディングをしていても、
使い慣れたC言語の感覚そのままに書いていて
JAVAというかオブジェクト指向の美味しさみたいなものを
全く味わえていない気がします。

どういった単位を一つのクラスとして構築すればいいとか、
継承などが絡んでくる時などは、どの変数はどのクラスに宣言すべきだとか、
そういうJAVAのオブジェクト指向言語としての美味しさのようなものが
学べるお奨めの本って何か無いでしょうか?
特にオブジェクト指向的なクラスの構築方法とかがわかりません。

一応C言語ならば中級くらいまではマスターしているつもりです。
なんか今の状態ではちっともJAVAを使っている気がしないので
どうかよろしくお願いします。
>>358
Javaとオブジェクト指向の本なんて腐るほど出ているが。
書店に4時間くらい滞在してわかりやすいものを選べばいい。
>357
自分ではやってないけどJDK設定でなんとかなるんじゃないの?
>>357
JBuliderアンインストールしてだめならJDKインストールし直せば?
362357:02/08/09 11:16
>>357
JBuilderPersonalはJDKを切り替える機能が使えないようなのです。
>>361
ふみゅ。そうでしね。
363357:02/08/09 11:23
JBuilderをアンインストールしますた。直りました。

でもIDEって一回使うとなかなか手放すのが惜しいです。
なんとかして1.3と1.4を両方使いたかったのですが。やはり
二兎追うものはですね。
JAVAでお勧めのIDEってなんでしょうか?
364(´ー`)y-~~:02/08/09 11:23
>>357
環境変数Pathの*先頭*に使いたいjava.exeのディレクトリのパスを追加すればよろし。
2000/XPなら[マイコンピュータのプロパティ]-[詳細]-[環境変数]-[環境変数]-[システム環境変数]-[Path]
Win9xならautoexec.batに set PATH=C:\j2sdk1.4.1_01\bin;%PATH%

つかJBuilderなりEclipseなり他のツールなり使えば
そんな無駄な苦労はしなくていいぞ
>>363
JBuilder Pro
366357:02/08/09 11:28
>>364
環境変数では、C:\j2sdk1.4.1_01\binを指定していますた。
でもjavac使うと、レジストリで1.3を使うように指定されています
とかでたんです。(JBuilder6Personal導入以降)

*先頭*というのがポイントなんでせうか?Eclipse?今度はそれを
入れてみようかな。
367(´ー`)y-~~:02/08/09 11:31
>*先頭*というのがポイントなんでせうか?

だからそう書いてるのに・・・
一番のお勧めはJBuilderだな。他にもいろいろあるけど
>>366
金出さないのは勝手だがレス無視すんなよ・・・。
369357:02/08/09 11:36
>>368
はあ?
>>369
夏厨ってちょっと叩かれるとすぐ正体あらわすよな。
まぁ、それがおもしろいんだが。
371デフォルトの名無しさん:02/08/09 11:41
ど初心者ですけど、[Relaxer]って、使い心地どうですか?
最近Javaソースなどを使うことになって、四苦八苦ですけど、
スキーマ・コンパイラーらしいんですけど。
レスしてもらってうれしかったんだね。よかったね。
>>372
お、名前消したな。自信なくなったか?
初心者スレで初心者煽るのはヤメレ
ここって質問しているのに、反応ないです。
>>374
そうそう。Javaについてのスレでは?煽ってる場合かと。
禿同。
>>353
メール本文の改行コードは<CR><LF>だから
くっつけるのは"\r\n"です。
http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#101089
あと、354氏が自分でも言っているように354の
コードはOSによる改行コードの違いを無視している
可搬性の悪いコードなので、readLineのままで
よいのでは? まあテンプレートファイルの改行
コードが<CR><LF>みたいなんで動けばいいって話もあるけど。
377376:02/08/09 14:16
imu.nu経由すると#以下が消えるの忘れてた。
ttp://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#101089
JavaMail経由したら改行なんか気にしなくても勝手に変換してないの?

テンプレートならVelocity使うっていう手もあるな
http://www.ingrid.org/jajakarta/velocity/
379376:02/08/09 15:01
>>378
あ、JavaMailっての読み逃してました。ごめん、生でSMTPするのかと思った。
確かにCRLFOutputStream.write()のソース読むと、\r\nと\nは気にしなくても
いいようになってるね。
>JBuilderPersonalはJDKを切り替える機能が使えないようなのです。

切り替えは出来ないが1.4を選ぶことは出来る。同時に使えないだけ。
>>380
逆ギレ厨房にレスしないの・・・。
後にこのスレを見るであろう初心者に情報を提供しただけだ
383デフォルトの名無しさん:02/08/09 19:04
ひらがなはUnicodeで\u3040〜\u309fの範囲らしいですが
漢字はどうなんでしょう?
ちょっと聞きたいんですがC言語で#ifにあたる命令ってJAVAにもあるんですか?
386デフォルトの名無しさん:02/08/09 19:17
>383
英語わかるません。
>>385
プリプロなんぞ邪道です。
そのためのrun anywhereですから。
388デフォルトの名無しさん:02/08/09 19:18
>385
どうしても#ifが使いたいならコンパイル前にCプリプロセッサを通すとか。
390デフォルトの名無しさん:02/08/09 20:45
>>358
この辺のスレが参考になるかと。
「推薦図書/必読書のためのスレッド7」
http://pc.2ch.net/test/read.cgi/prog/1006353701/-100
Tomcatで使っていたサーブレットのプログラムをj2eeで使いたいのですが、
j2eeのどこに置けば良いのでしょうか?
ちなみに\jakarta-tomcat-3.2.4\webapps\testにhtmlファイルを\jakarta-tomcat-3.2.4
\webapps\test\WEB-INF\classesにclassファイルを置いていました。
Jakarta Taglib から SQL タグって抜けたんけ? どこっちまった?
>>391
j2eeのexamplesがどこにあるか見たらわからんかな?
394353:02/08/10 05:07
>>356
>>376
>>378
>>379

アドバイスありがとうございました。とりあえず>>356様の方法で実装してみましたが……化けました(T_T)
ちなみにMail出す前にout#printlnして確認したので、少なくともJavaMailのせいではありません。
つーこって、今度はreadLineで試して見ます。

>>376
では、readLine + "\n"でOKということですね? ではその方法で実装して見ます。

>>377
……英語よめまっしぇん(T_T)

>>378
一身上の都合によりJRunなのです(^^;
395353:02/08/10 05:08
ついでで申し訳ありませんが、もう一つ質問を(拝)

JavaMailで、From:やTo:に日本語を含ませるのはどうすればいいのでしょう?
396353:02/08/10 06:33
>>394
自己Resです。

……readLineでもダメでした(T_T) debian+JRun3.0の環境でデフォルトのエンコーディングっつーことなので、
テンプレートに使うファイルがEUCになってるかどうかは確認しました。viでちゃんと表示できてます。

……エンコーディング、明示的に指定する方法があるんでしょうか? getBytesしないとダメ?(^^;
>……エンコーディング、明示的に指定する方法があるんでしょうか?
APIリファレンス嫁よ。FileReaderのところに書いてある。

もう何回書いたかわからんようなコードだな。
エンコーディングはShift_JISなりeuc-jpなりWindows-31JなりJISAutoDetect(非奨励)なり試してみれ

String encoding = "euc-jp";
String filename = "template.txt";
StringBuffer body = new StringBuffer();

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename), encoding));
try {
  String line;
  while ((line = in.readLine()) != null) {
    body.append(line);
    body.append("\n");
  }
} finally {
  in.close();
}
System.out.println(body.toString());

しかし、Debianでeuc-jpのファイルならFileReaderでも読めるはずだから
なにか別の原因かも。
>一身上の都合によりJRunなのです(^^;
競合するものじゃないだろ。Velocityは汎用のテンプレートエンジン

>viでちゃんと表示できてます。
viはShift_JISも表示できるんでは?

>ちなみにMail出す前にout#printlnして確認したので
out#printlnってなんだ?System.out.println()か?
PrintWriter out = response.getWriter()か?
読み込みは成功してても表示でばけてるってことはないか?
399デフォルトの名無しさん:02/08/10 13:12
VisualAge for JavaのEntry版を使いたいのですが、
ユーザ登録ってどうやるんですか?
400getとか、きらい
でも、おめ
402353:02/08/10 14:37
>>397
出来ました! ありがとうございます(拝) euc-jpでOKっす。

> APIリファレンス嫁よ。FileReaderのところに書いてある。
……メクラでごめんなさい。何故か見つからなかったんだよぉ(T_T)

>>398
>>一身上の都合によりJRunなのです(^^;
>競合するものじゃないだろ。Velocityは汎用のテンプレートエンジン
了解。ちょっと腰を落ち着けて読んでみますね。

>>viでちゃんと表示できてます。
>viはShift_JISも表示できるんでは?
viってそんなに頭よかったの? ……とか言ったら怒られそうだな(^^;

> out#printlnってなんだ?System.out.println()か?
……JSPっす(^^;

どうも、「モジバケです助けて!」と叫ぶ連中は、「対症療法」と、問題の根本理由
を結びつける作業を自前では行わない、とてもプロ向きではない(リーマンにはむ
いてるかもね)性格の持ち主が多いような気がするなあ・・・
貴方と、貴方の会社の将来が心配です。エンコーディングのはなしを理解していない
人間の集まりに、Webあぷり開発はムリですよ。
そんな ご大層なシロモノかい…
405353:02/08/10 17:29
>>403
厨房でスマソ(拝) 確かに「よくわかっていない」部分はある。特にJSPは
「いつ・どこで・何が・どのエンコーディングか」を把握するのが、ちょっと
わかりずらい部分がありますよね。

……特に、半角カナとか入ってきたときとか(^^;
ファイルに書き出して、fileコマンドで調べるとか。
407デフォルトの名無しさん:02/08/10 18:33
例外発生時などに、その例外が発生したソース上の行番号が表示されますが。
その、行番号のみを取得する方法ってどうすればよいのでしょう?
自分で書いたソースに
System.out.println( ○○○ );
と書くと、この記述をした行番号が表示されるようにしてみたいのですが。
APIのソースを追いかけても行き詰まってしまって、
408383:02/08/10 18:34
誰か漢字の範囲教えてください。日本語で。
>>407
自作するのは面倒なので、IDE使いなさい。
>>408
Unicodeの仕様書みたら。
>>407
無理。スタックトレースから取れると思われがちだが、スタックトレース
のフォーマット規定なんてないし。
1.4 からなら StackTraceElement#getLineNumber() が使えるけど。
412デフォルトの名無しさん:02/08/10 21:02
教えてください。
Canvasクラスを継承して、描画のちらつきをなくすためにダブルバッファを使用しようとして
コンストラクタで
Image offScreen = createImage(100,100);
Graphics offGraphics = offScreen.getGraphics();
とすると、「offScreen == nullだからgetGraphics()できない」とエラーを返してきます。
これをpaint()メソッド中でやるとうまくいきます。

まさかとは思いますが
Canvas.createImage()はコンストラクタでは使用できないのでしょうか?
そういうこと
>>412
ダブルバッファリング自前で実装してんの?新しいバージョンの
Swingつかえばデフォルトでダブルバッファリングなんだが・・・・
415デフォルトの名無しさん:02/08/10 21:30
>>414
新しいバージョンのSwing?
JDK1.4を使ってはいますがCanvasクラスで描画させようとしています(ゲームを作っているので)
新しいSwingではCanvasではないダブルバッファリング付きクラスがあるのでしょうか?(Canvasではダブルバッファリングしないようですね)

>>413
その理由についてご存知ですか?
なぜできないのか知りたいのですが・・
416デフォルトの名無しさん:02/08/10 21:39
スレ違いかもしれませんが、どなたかワケを教えて下さい。

MIDPなんですけど、↓何でDisplayオブジェクトの参照を
格納しなくていいんでしょうか?ガーベジコレクタの回収対象にならないワケは?

Display.getDisplay(this).setCurrent(new DrawCanvas()) ;
>>416
Factoryパターン?
そもそもDisplayのインスタンスを自前で生成したっけか?
420デフォルトの名無しさん:02/08/10 21:57
>>417
ありがとう!
421デフォルトの名無しさん:02/08/10 21:58
>>418
Factoryパターンの意味が分からん初心者で恐縮です...。
↑で言いたかったのは、Display#getDisplay()で返されるDisplayオブジェクト
の参照を、変数に格納しておかないとDisplayオブジェクトが
ガーベジコレクタに回収されてしまうのではないか、って事です。

なんか、的を得ていない質問のようで...、恥ずかしいっす(笑)。

>>421
Display#getDisplay()の中で誰かがつかんでればGCされることはないかと。

Display.getDisplay(this).setCurrent(new DrawCanvas()) ;

こうした瞬間から呼び出し側は引数のオブジェクトの管理を放棄しているわけで。
423デフォルトの名無しさん:02/08/10 22:04
>>419
生成してませんね。
ありがとうございます!
単に、setCurrent()を呼ぶために、参照を得ていただけですね。

手数も掛からんつまらない質問で、ゴメンなさい。
でも、気が付かせて貰えて感謝してまっす!
424デフォルトの名無しさん:02/08/10 22:09
>>422
誤爆してすいません。>>423

> Display#getDisplay()の中で誰かがつかんでればGCされることはないかと。
なるほど、そういうことか。
重ね重ね、サンキューです。
>>415
>>417
JPanel でもなんでも JComponent のサブクラスなコンポーネントで
update(Graphics g) をオーバーライドして、そこで描画すれば
すでにダブルバッファリングされてるはず。
Canvasとかは独自のGUIコンポーネントを自作するためのもの。

…と、今の今まで思っていた漏れの理解って間違ってる?

ちなみにテンプレートなイメージが欲しい場合、BufferedImage作って
描画しておいてコピーして使ってる。
あれ?こないだ作ったソース見たら、オーバーライドすんのは
paint(Graphics g)
ダタよ...
>>415
swingならjavax.swing.JComponentを使って
paintComponent内で描画すれ
428425:02/08/10 22:59
>>427
APIソース見てみたら、そっちの方が正しそうだ・・・
先頭で super.paintComponent(g) とかやってから、好き放題すればいいのか?
ドキュメント読んだ方が早いよ
430425:02/08/10 23:22
>>429
javax.swing.JComponent#paint のAPIヘルプには
"Subclasses can just override this method, as always."
「サブクラスは、通常通りにこのメソッドをオーバーライドできます。」
とかいてあるが、javax.swing.JComponent#paint のソースを見ると
実際、コンテナとしてコンポーネントが乗っかってる場合のコード(?)とか
色々色々とやらかしてるっぽいから paintComponent(g) をオーバーライド
した方が良いような気がする。
paintComponent(g) もUI変更時(らしき)のコードが書かれてるから、頭で
実行してやったほうが、なんか良さそう。

というわけで、ソースも見たほうが良いかもしれないという罠。
とはいえ初心者はそこまですると知恵熱が出てしまうからヤメトケ。
もう初心者じゃないと感じたなら、読んで損は無い。


しかしJComponentなんて一種のアダプタだと思ってたけど、なんでこんなに
色々とやってるんだ?
>>430
基底クラスに、ついでにサブクラスでしそうなことをデフォルトで実装しておく
というのは、よくやると思うが・・・
1.JPanelのサブクラスを作成し、Swingのデフォルトダブルバッファリングプロ
 パティをOFFにしておく。
2.BufferedImageなどのインスタンスを利用してGraphicsインスタンスを作成し
 インスタンスフィールドに参照もたせておいて、バックグラウンド描画領域と
 しておく。(JDK1.4でVolatileImageとかはどうなんだろね。使ったことねえ
のでしらんが、VRAMを利用できるんだっけ?)
3.paintComponent(Graphics)をオーバーライドし、バックグラウンド描画領域
 に描画して、メソッドの最後で引数Graphicsにコピーする。
普通はこうしとけばいいんじゃないかね。

高速再描画の為には、今までどおりの「再描画は再描画が必要な部分のみ
行う」作戦が有効っす。1600×1280とかでJavaで毎回全画面再描画なんか
したひにゃ、えらいことになる環境がいっぱいあるだよ〜。
433425:02/08/11 00:09
>>431
ダテ、他から操作するメソッドではなく、Swingが呼び出すイベント処理だもの。
ならばデフォルト処理は別に用意して、そこから「通常はこちらをオーバーライド
してください」としてpaint()を用意するのがスジじゃん。
java.awt.Component#printなんかは何もしてないんだし。(当たり前だが)
自動的に入れ子に対応すべきとか思ったりする。
もしくは、スーパークラスの同メソッドを呼び出してくださいとか書いてほしい。


ちと嫌なのは、スーパークラスのデフォルトコンストラクタは自動的に呼ばれる
のに、スーパークラスのメソッドは自動的に呼ばれない事、とか言ってみるテスト。
434425:02/08/11 00:12
書き込んでから変な文だと思った・・・

>ならばデフォルト処理は別に用意して、そこから「通常はこちらをオーバーライド
>してください」としてpaint()を用意するのがスジじゃん。
ならばデフォルト処理は別に用意して、そこから呼ばれるpaint()を用意するのが
スジじゃん。 んでpaintは「通常はこちらをオーバーライド してください」としておく。
435デフォルトの名無しさん:02/08/11 01:53
これからjavaを覚えようと思うのですが
JDK1.2対応の参考書でJDK1.4を勉強しても問題ありませんか?
問題ないと思われ.
でもどうせならSDK 1.4に対応した入門書がいいね. いろんな機能が
増えてるから, >>435のレベルが上がってくれば新規能を使いたくなると思うし.
1.4 の目玉はかねてからの懸案だったアサーションの追加だと思うがどうか?
1.4の目玉はXML関連パッケージの標準搭載だと思うけど
1.4の目玉は正規表現ライブラリ標準搭載に1票。String#replaceAll()萌え
1.4の一番の目玉はNIOだろ!どうみても!
ノンブロッキングI/Oとメモリマップドファイル〜!

これが使えなかったせいで、実行時にバカな真似をしているサーバー
サイドフレームワークとやら(実行時に数百スレッド平気で起動した
り、バッファ設計がとんでもなかったり)がはいて捨てるほどある。
全部駆逐をめぜせ!
441440:02/08/11 04:05
>>437
初期のJavaにはあったんだよね。何で廃止してたんだろね。

>>438-439
それはJDKにバンドルされていなかっただけで、いままででも
方法はあったでしょ。
「標準搭載」にこそ意味がある。何も考えずに使えるのはやっぱり大きい
>>441
初期のJava...Oakの仕様にあっただけじゃん。ペーパーウェア。
今までまるきし不可能だったことが可能になった。これはでかい。
444すいません:02/08/11 04:52
String s = "てすと";

この s を標準出力でEUC_JPにしたいのですが(もちろん化ける)どうすればいいのでしょう?
またその逆(sがEUC_JP)を標準出力でSJISにするには?
System.out.write(s.getBytes("euc-jp"));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out, "euc-jp")));
out.println("あいうえお");
out.flush();

こっちの方がいいかな
447デフォルトの名無しさん:02/08/11 05:54
>>445-446
ありがとうございます。
できました。

ところで順紫~合括@などはSJISからEUC-JPにして
ファイルに書き込むと化けるのは仕様ですか?
機種依存文字だからだろ.
449デフォルトの名無しさん:02/08/11 14:45
イベントを起こさずにマウスポインタの座標を知る方法があれば教えてください
無理
イベントで取得した座標をメンバ変数に保存すれば?
???
>>452
理解できないなら質問しに来なきゃいいのに。
454デフォルトの名無しさん:02/08/11 16:11
???
455デフォルトの名無しさん:02/08/11 16:12
一定時間の間隔で座標をとりたいんです。
では、イベントを一定間隔で起こす方法はありますか?
何のイベント?
457デフォルトの名無しさん:02/08/11 16:16
Java厨馬鹿ばっかり
とスキルなし厨がほざいております。
MouseMove (だっけ?)発生してなければ
最後の値使えばよいだけのような…
って >>451 が言ってるのと同じか。
質問者は説明が足りないけど
アプリ上に限らずポインタの位置を追いたいんじゃないの?
>>460
Javaでするようなことじゃないな。
>>460
PureJava で出来たっけか?
Java使えねーな。
>>463
その作業にJavaを使おうとしたあなたが愚かなだけですよ。

金槌打つのにバナナを選択するくらいにな。
465デフォルトの名無しさん:02/08/11 18:23
FTPでClientとセッションを作ってStatusをゲットしています。
レスポンスを見るのに
dcis = new BufferedReader(new InputStreamReader(csock.getInputStream()));
とリードバッファを作成しているのですが・・・・長時間使っていると
ダメなんです。
markとresetを使ってみたのですが、使い方がわるいのかマーク位置まで戻るので
すがBufferの中身は昔バッファされたものです。
BufferedReaderにバッファされた内容を全部クリアするにはどうしたら良いので
しょうか?
>長時間使っているとダメなんです。
>Bufferの中身は昔バッファされたものです。
???

>BufferedReaderにバッファされた内容を
>全部クリアするにはどうしたら良いのでしょうか?
無理だと思うけど。
リフレクション使えば出来るかも?
でもまぁ、リフレクション使うぐらいだったら
バッファクリアできる BufferedReader 自作する方が…
でも、BufferedReader のバッファクリアできると何が楽しいのか良くわからん。
4670.5秒ごとにマウスの座標を描画:02/08/11 19:35
import java.text.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class MouseMovedDemo1 extends JFrame implements MouseMotionListener, ActionListener {
  private int px, py; //マウスのxy座標を保持する変数
  private Timer timer; //タイマー
  private DateFormat df = new SimpleDateFormat("kk:mm:ss.SSS"); //時刻表示用
  public static void main(String[] args) {
    JFrame f=new MouseMovedDemo1();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setSize(640, 480); f.setVisible(true);
  }
  public MouseMovedDemo1() {
    super();
    addMouseMotionListener(this);
    timer = new Timer(500, this); timer.start();
  }
  public void paint(Graphics g) {
    g.clearRect(0, 0, getWidth(), getHeight());
    g.drawString("(x,y)=(" + this.px + "," + this.py + ")", 50, 50);
    g.drawString("update: " + df.format(new java.util.Date()), 50, 100);
    g.setColor(Color.RED);
    g.fillArc(px, py, 20, 20, 0, 360);
  }
  public void mouseDragged(MouseEvent me){}
  public void mouseMoved(MouseEvent me){
    px = me.getX(); py = me.getY();
  }
  public void actionPerformed(ActionEvent e) {
    repaint();
  }
}
>>465
ストリームの扱いに何か勘違いがないか?
ストリームバッファ、クリアしてどうすんのよ。
469aaa:02/08/11 21:18
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class xxx extends Applet implements ActionListener{
Button b=new Button("押してちょ");
String s;
Image img;

public void init(){

s=getParameter("image");

add(b);
b.addActionListener(this);
}

public void paint(Graphics g){

img=getImage(getDocumentBase(),s);
}

public void actionPerformed(ActionEvent e){
if(e.getSource()==b)
g.drawImage(img,40,40,this);

}
}
470aaa:02/08/11 21:19
上のソースでボタンおしたら画像表示するようにactionPerformedメソッドでどーやって
画像表示のdrawImage使うの?2ちゃんがどこまで約に立つかも検証してみたいでちゅ
>>470
これコンパイル通るか?
>約に立つ
473aaa:02/08/11 21:33
おまいら世の中の約煮立つんでつか
474aaa:02/08/11 21:34
>>470
とおりません!!でも理由はわかります。g.drawImageのgをpaintクラスじゃないactionPerformedから
参照してるからです。なんとかこの書式をくすさずできませんか?
475aaa:02/08/11 21:35
↑まちがい
>>470→471
476aaa:02/08/11 21:36
っていうか473は偽者!!
俺は470と474と475だYO
477aaa:02/08/11 21:56
>>473
ボケ!!おまいが俺を装って挑発するから誰もレスしてくれんだろ!
逝ってまえ
>>469
g.drawImage と getImage の使いどころが逆なだけ。

public void paint(Graphics g){
//img=getImage(getDocumentBase(),s);
super.paint(g);
if (img!=null) g.drawImage(img,40,40,this);
}

public void actionPerformed(ActionEvent e){
//if(e.getSource()==b) g.drawImage(img,40,40,this);
if(e.getSource()==b) {
img = getImage(getDocumentBase(),s);
repaint();
}
}
あ、Image img = null; と、初期化も念のため入れてた。

あとは super.paint(g); も、念のため。
repaint(); は再描画させないと表示されないから。
480aaa:02/08/11 22:31
>>479
ありがと〜ございます!初心者な物で…
481aaa:02/08/11 22:34
>>478
…と思ったらエラー出んじゃん!!
482デフォルトの名無しさん:02/08/11 22:34
どうも
>>481
どこ?
部分コピーなんで張り足りないやもしれんし。
例外とかエラーとか張ってくれ。
は・・・もしや >>479 で追加した初期化の一文を入れなくては
paintでこけるとか。
485aaa:02/08/11 22:59
>>483
エラー無しでコンパイルできましたよ!
481は俺の偽者なんでシカトってことでお願いします。
文字列クラスにクラス名を格納しておいて、
インスタンス変数をその文字列クラスの中身にキャストするってことはできますか?
>>486
>>486









                  ま  た  V  B  厨  か  。









>>486
例えば ClassB extends ClassA で

ClassA a = new ClassB();
String classname = "ClassB";
ClassB b = (classname)a;

とかって やりたいとか?
俺は無理だと思うけど…
頑張れば出来るのかな?
490デフォルトの名無しさん:02/08/12 00:22
A class is an object in ueeeeen and what.
491デフォルトの名無しさん:02/08/12 00:25
>>486
いや、Ruby厨だろ?
>>489
リフレクション使えば・・・?
493デフォルトの名無しさん:02/08/12 00:41
なぜ方法はオブジェクトを作らずに呼ばれますか。
>>493
methodまで訳したか。さっさと出てけ、外国人。
495デフォルトの名無しさん:02/08/12 00:44
>>494
あなたの考察に感謝します。知らせてください。
496デフォルトの名無しさん:02/08/12 05:03
>>467さん
遅れましたが、ありがとうございました。
>>486
無理
そういうことをする必要がある時はインタフェースを利用しよう
498デフォルトの名無しさん:02/08/12 09:13
togetherをダウソしようと思ったのですがざっと
ホームページみてもダウンロードの仕方の勝手が
今一つかめませんでした。

control center 6は落とせたのですがそれから
どうすればいいか分りません。学生のただバージョンが
あるとtogether comunity forumで検索して
分ったのですがダウンロード先が分りません…

どなたかお分かりの方いらしたらよろしくお願い致します。
499デフォルトの名無しさん:02/08/12 09:41
javaで#ifdefや#define使いたいんだけど、Cコンパイラのプリプロセッサなんて
使いたくないッス。 いい方法ないっすか?
Java用のプリプロセッサ使うとか。
っつーか #ifdef はともかくとして #define 使いたいか?
501デフォルトの名無しさん:02/08/12 10:31
>>500
#define 使いたいね。

というかJava用のプリプロセッサってなんだ?
と書いておいて、裏でグーぐるのが最近の主流と。
ttp://denchu.jp/java/
なんかが微妙に良さそうだな。いい感じ。
ひょっとして作者の宣伝?
JavaAppletでランキング付のゲームをたまに見かけますが
ファイルの書き込みができないのに
どうやって実装しているのでしょうか?
>>504
CGI
JavaAppletについて質問します。
Frameを拡張した「拡張Frame」クラスとButtonを拡張した「拡張Button」クラスがあります。
拡張Frameクラスのコンストラクタで拡張Buttonクラスを初期化し配置しています。

Class extFrame extends Frame{
extButton button1;
extButton button2;

public extFrame(){
setBackground(Color.lightGray);

button1 = new extButton("label1");
button2 = new extButton("lable2");

add(button1);
add(button2);
}
}

Class extButton extends Button{
public extButton(){
setBackground(Color.black);
setForeground(Color.white);
}
}

上記のようにしてFrameオブジェクト上に背景色・前景色を変えたボタンを配置しているのですが
動かしてみるとボタンに配色されず通常の色で表示されてしまいます。
どのようにしたら良いかアドバイスをお願いします。
Javaを使ってOutlookExpressからメール送信したいのですが、
JavaでMAPIをコントロールするにはどうすればいいのでしょうか?
ご存知の方いらっしゃいませんか。
508 :02/08/12 14:10
これからプログラミングを勉強しようと思ってますが
VBとJava同時進行で勉強するのとJava一本に絞るのとではどちらがいいでしょうか?
>>506
extButton#extButton(String)を書けよ
510506:02/08/12 14:24
>506
extButtonクラス修正

Class extButton extends Button{
 public extButton(String label){ // 書き忘れです
  super(label);           // すいません。
  setBackground(Color.black);
  setForeground(Color.white);
 }
}
511デフォルトの名無しさん:02/08/12 14:42
ルックアンドフィールって何ですか?
何冊か本を調べてみたんですけど
知ってるものとして書かれていて
わかりません。ネットでも同様でした。
おねがいします。
Appletでデジタル時計を作成中です。
Date()で時間を受け取っているのですが、
これを平成○年○月○日amXX:XX:XX等のように設定する方法を教えてください。
Formatあたりにありそうだと思って探しているのですが、よくわかりません。


      ― 今日はJavaお休みです。 ―
自分で考えて機能作れ。
作れないものを使うな。
質問するなと。
517デフォルトの名無しさん:02/08/12 16:30
N個のPDFファイルを一つにまとめたいんですが、
何か良い方法を知りませんか?
そんなライブラリを知りませんか?
>>514
ありがとうございます。そこを見ててもいまいちうまくいかなかったので・・・。
邪道かどうかはわかりませんが、SimpleDateFormatを見つけたのでこれでやります。
言語は自力で作るしかなさそうですね。
>>518
言語→元号に訂正。
クロップ、遅いんですけど・・・
521デフォルトの名無しさん:02/08/12 17:43
java.io.FileInputStreamのavailable()ですが、
「このストーリームのメソッドの次の呼び出し側からブロックされることなく、
この入力ストリームから読み込むことができる(またはスキップできる)バイト数を返します。
とありますが、これって、ファイルサイズ分って解釈でよいのでしょうか?
一応次のようなコードでファイルをすべて
byteに書き込めているみたいなのですが、
上限とかでトラぶったりすることあったりしますか?

BufferedInputStram stream =
new BufferedInputStream(new FileInputStream("file.dat");
int capacity = stream.abailable();
Byte[] inDate = new Byte[capacity];
>>521
今その瞬間に読める分 だから
ファイルならそれでいいかもしれないけど
バカみたいにでかいファイルだと多分だめだろうね
523333まで読んだ:02/08/12 17:55
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(File)));
writer.println(pages);

としていたものを

out = new BufferedWriter(new FileWriter(todayFile));
out.write(pages);

に変えようと思っているのですが、後者は「シンボルを解釈処理できません。」とコンパイルエラーになってしまいます。

out = new BufferedWriter(new FileWriter(File));
out.write("pages");

とするとコンパイルエラーはなく、ファイルに pages と書かれることはわかっているので、(pages)が原因だと思って
いますが、writeの場合は、StringBuffer型を与えることはできないのでしょうか?String型しかできないのでしたら、
StringBuffer型をString型に変換する方法を教えて頂けませんでしょうか?
>>521
>ファイルサイズ分って解釈
それはダメでしょ…
あんたが java.io.FileInputStream のメンテナンスしてて
FileInputSteam の available がファイルサイズを返す事を
保証できるとかならともかく。

単純に RandomAccessFile 使えば?
>>523
toString() でダメだっけ?
526523 (388まで読んだ):02/08/12 19:47
>>525
調べてみるです。
527デフォルトの名無しさん:02/08/12 20:40
>524
結局FileInputStreamのavailableって「一度に読めるサイズ」って
ことなんでしょうか?
RundomAccessファイルが安全そうですね
ありがとうございました
528java:02/08/12 21:01
repaint()ッテ何?
アプレットとアプリケーションどっちを練習すればよいの??
>アプレットとアプリケーションどっちを練習すればよいの??
お好きなほうを
530デフォルトの名無しさん:02/08/12 21:41
Antの、<java>で、引数に「*.xml」のような指定をして
複数のファイルを個別に指定せずに順次処理させることってできないでしょうか。
<copy>や<javac>などはマニュアルにやり方が書いてありますが
<java>の場合は書いてないような。
531523 (388まで読んだ):02/08/12 22:06
>>525
ドキュメント読んでいたらStringが、StringBufferを読んでくれるようだったので、
String(StringBuffer) で、 String型に変換出来ることがわかりました。
そんな無駄なことしなくても、StringBuffer#toString()
>邪道かどうかはわかりませんが、SimpleDateFormatを見つけたのでこれでやります。
>言語は自力で作るしかなさそうですね。
>言語→元号に訂正。

IBMのICU4Jで元号表示できるよん。

ICU4J を使用する理由 - 2. 日本の暦のうち、サポートされているものはどれか。
http://www-6.ibm.com/jp/developerworks/opensource/000728/j_icu4j-project_faq.html#Intl_Calendars_2

だたし非常に正確だが。
だたし鬱
String str;

のあと str を解放する方法を教えてもらえますか?
536523 (388まで読んだ):02/08/12 23:06
>>532
すいません >>525 の意味がやっとわかりました。

ごめんなさい。
>>535
(゚∀゚) str = null;
>>533
大化元年も太陽暦っていーんだっけか…
でもまぁ、明治以降ならOKだし…
539デフォルトの名無しさん:02/08/12 23:36
int型(4バイト)のデータをbyte型の配列[4](byteは1バイトなので4バイト)
に入れたいのですが方法が見つかりません。ただのbyte型だったら型変換すれば
いいだけなんですがbyte[4]っていう配列になるとわかりません。
どなたか教えていただけませんでしょうか?
>>539
in val;
byte[] buf = new byte[4];

//りとる えんであん
buf[0] = (byte)val;
buf[1] = (byte)(val >>> 8);
buf[2] = (byte)(val >>> 16);
buf[3] = (byte)(val >>> 24);

//びっぐ えんであん
buf[0] = (byte)(val >>> 24);
buf[1] = (byte)(val >>> 16);
buf[2] = (byte)(val >>> 8);
buf[3] = (byte)val;
>>537の見解が正しいと下記はエラーになる?

String str = "aaa";
str = null;
System.out.println("str = " + str);
>>541
str = null
と表示されると思うけど。
>>539
(゚∀゚) 8ビットづつ区切ってシフトしてキャストしてポイ ×4回
>>539
こうか?

for (int i = 0 ; i < array.length ; i++) {
array[i] = (byte)intValue;
}

…すまん、ネタだ。

単純にシフト演算子使えばできると思うが.
>>539
簡単な質問だと、レスが多いかどうかのテストですか?
546539:02/08/12 23:49
インディアンってなんですか?
知ってて言ってるだろ>>546
えんであん -> インディアン
ってのはちと無理あるよね。
>>537
それって解放はされないです。たとえ GC が起きても。
550539:02/08/12 23:54
(´・ω・`) ショボーン
(∩∩ )
>>549
ま?です??か
どこかで誰かが捕まえてなければ勝手に開放される。気にするな。
553デフォルトの名無しさん:02/08/13 00:42
メーカー以外でJbuilderとWebSphereの違いは何ですか?
int value = 5;
ByteArrayOutputStream bout = new ByteArrayOutputStream();
bout.write(value);
byte[] array = bout.toByteArray();
とか。
エンディアンはどっちになるんだろう?
>>553
バイナリ的には全くと言っていいほど異なるはず。
>>554
じぶんでたしかめれ
だめだった。こう↓
ByteArrayOutputStream bout = new ByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream(bout);
dout.writeInt(value);
byte[] ba3 = bout.toByteArray();
エンディアンはプラットフォームに依存しそう。WinではLittle-Endianだった
558557:02/08/13 01:15
素直にシフト演算子使った方がいいな
559557:02/08/13 01:19
スマソWinでもBig-Endianだった。ってことは常にBigEndianかな
560結論:02/08/13 01:23
>>557はあまりあてにならない
562 :02/08/13 02:08
人口無能の作り方教えてください。
お願いします。
563デフォルトの名無しさん:02/08/13 03:01
>557 >559
OSではなくCPUでかんがえれ
>>562
人工知能のアルゴリズムを教えて下さい
http://pc3.2ch.net/test/read.cgi/tech/982118979/
GA  人工生命スレ  GA
http://pc3.2ch.net/test/read.cgi/tech/1027155489/
>>557
なんでJavaなのにエンディアンが表にでてくるとおもってんだ?
Javaだぞ、おい。
>>565
同意。
TCP/IPとかMIDIの様に特別に規定されてるものはともかく。。。
>>565
DataInput と DataOutput は Big Endian ですが何か?
>>567
だからCPUの差はJavaVMで吸収されるってこってしょ。
>>568
>だからCPUの差はJavaVMで吸収されるってこってしょ。
???
JavaVM は エンディアンの差を吸収してないけど…
VMでなくて 言語仕様で特定のエンディアンに依存した
書き方をさせないようにしてるだけだと思われ

nio とかだと エンディアン出てくるし…
>>552
String が null を指すと、GCが起きたときちゃんと解放されるの?
DataOutputStreamの話に限ってはライブラリレベルだよね。
実際、
public final void writeInt(int v) throws IOException {
 OutputStream out = this.out;
 out.write((v >>> 24) & 0xFF);
 out.write((v >>> 16) & 0xFF);
 out.write((v >>> 8) & 0xFF);
 out.write((v >>> 0) & 0xFF);
 incCount(4);
}
こうなってるし。
>>570
「Stringがnullを指すと」じゃなくて「Stringから指されていたものが、
どこからも指されなくなると」だね。
>>572
参照先が解放されるってことか・・・。

んじゃ、>>535の回答として>>537は正しくないですね。
>>535の回答として「strを解放することはできない。」なんですね。
str自体の寿命はスコープで管理できるでしょ。
575デフォルトの名無しさん:02/08/13 12:02
EJB呼び出しをするモジュールを作成したのですが、
テストAP(JAVA)から呼び出したときには正常に参照できるが
servletから呼び出したときに以下のメッセージが発生するのですが、
これは何がいけないのでしょうか?

javax.naming.NoInitialContextException:
Need to specify class name in environment or system property,
or as an applet parameter, or in an application resource file: java.naming.factory.initial
577デフォルトの名無しさん:02/08/13 13:36
>>576
そのモジュールは内部で以下のように行っているだけなんですよ。
で、テストAP(JAVA)では問題なく動くんですよ。
同じことで頭を悩ませたことがある人、
解決方法を教えていただけると助かります。

try {
javax.naming.Context ctx = new javax.naming.InitialContext();
Object ref = ctx.lookup("Hoge"); //ここでエラー
} catch (Exception e) {
}

578507:02/08/13 14:36
しつこいようですが、
JAVAでMAPIを扱う方法ご存知の方いらっしゃいませんか?
レスが無いということは、やっぱり無理ですか。
>>578
冷静に考えろ。
あの、プロパティファイルの生成などについて質問です。
これをうまく機能させるにはどこら辺に入れるといいんですか?
厨房みたいな質問ですけど、プロパティファイルを制作して、
どこへ置いておくといいんでしょうか?同じディレクトリ内
だったら、機能するようになるの?
>>581
JAVA でMAPI を利用できるのか
049780: "contact" <@mb.infoweb.ne.jp>
JAVA でMAPI を利用できるのか
049781: "contact" <@mb.infoweb.ne.jp>


マルチポストで放置されてないか?
>>582
マルチじゃなくて、 HTMLメールを投げて“それを謝ることもなく"、テキストメールで投げ直したっぽいね。
584507:02/08/13 15:30
>>581
ちなみにそれは私じゃないですよ。
ネット上で探してもそれくらいしか関連する話がなかったので
ここで聞いてみたのですが、本屋に逝ってJAVA関連の本で探してみることに
します。失礼いたしました。
585デフォルトの名無しさん:02/08/13 16:37
>>584
本屋で本を探して解決したら、ここで教えてねー
586507:02/08/13 16:37
>>585
冷静に考えろ。
>>586
おまえウザいな。だから放置されていたんだね。
くだらね
>>587
そのまま放置してればいいものを。アホだね。
>>589
くだらね
このスレくだらね
>>584
Javaの本にMAPIが載っているとは思えないけど。
どうしてもってんなら JNI でも使えば〜?
593507:02/08/13 17:48
>>592
冷静に考えろ。
594デフォルトの名無しさん:02/08/13 18:01
メソッドの外で例外処理をするため、throwsを設定していますが、
一部は内部で判定して自分でthrowしようと思います。

throwsで設定している例外をtry〜catchで検出することはできる
のでしょうか?

foo () throws ExceptionFoo {
try {
 } catch (ExceptionFoo e) {
  throw new ExceptionFoo(e.toString());
 }
}

>>594
できるでしょうか…って自分で試せよ.
試すべきソースコードだって自分で書いてるじゃん.
お前みたいな奴は絶対に力は付かん. 俺が保証してやる.
ヤッタネ
Servletでマルチスレッドを使いたいのですが
public class aaa extends HttpServlet{
.......
public static void main(String args[]){
new aaa(bbb).start();
}
}
と作るとエラーが出ます。
(Input.java:84: シンボルを解釈処理できません。
シンボル: メソッド start ())
なんとかServletのプログラムから
別のプログラムを動かす方法はないでしょうか?
HttpServletクラスにstartメソッドが無いって言われてるんでわ?
っていうか実際無いし.
599597:02/08/13 19:33
>>598
そうするとServletのプログラムから
別のプログラムを動かす方法はないということでしょうか。
>>597
ボケがすぎる。J2EE使うのは3ヶ月早いな。
せいぜい3ヶ月だから、J2SE勉強せい。
正直, ネタかと思った.
>>600が言うように勉強して出直してこい.

…時期的に, 次来たら冬厨だなw
602517:02/08/13 20:50
iTextで出来た>>517
603初心者:02/08/13 21:07
int型のaをString型に変えたいです。
書き方を教えてください。
即レスしてもらえるとすごくうれしいです。
>>603
C#つかいなさい(藁
>>603
なぜ必要なのかを書こうね。
606デフォルトの名無しさん:02/08/13 21:28
>>597
Servletはスタンドアロンで動くアプリケーションじゃないから、
mainメソッドがあること自体がおかしい。

>>600
禿同。507はネタか??
607507:02/08/13 21:42
>>606
冷静に考えろ。
>>607
必死だな。>>592
609デフォルトの名無しさん:02/08/13 21:57
Javaの勉強を始めたいんですけど
超初心者はまずこれを読めという本があったら教えて下さい。
付属のCD-ROMでの実戦勉強ももちろんやるつもりです。
>>609
>付属のCD-ROMでの実戦勉強ももちろんやるつもりです。

無駄。JDK取り以外に価値はない。
>>609
読んでわかりやすい奴を買えばいいと思われ。
後は書きまくればわかってくる。
612初心者:02/08/13 22:07
実はJTextFieldクラスを使ってテキストフィールドに結果を出力したいんです。
そこでsetText()メソッドを使おうと思ったんですがこれってintには対応してなかったので
int型の値を出力するにはどうしたらいいのかなと思った次第です
String#valueOf(int)
>>613
Integer#toString()じゃダメですか?
615名無しさん@Emacs:02/08/13 22:19
textField.setText( Integer.toString(hoge) );
textField.setText( String.valueOf(hoge) );
どっちでもいいじゃん.

俺は無意識にInteger#toString(int)を使うけど.
すまん, 下げ忘れた.
617初心者:02/08/13 22:20
ども即レスありがとうございました。
おかげで上手くいきました。
今度は自分でもっと調べるようにします。感謝
>>609
付録のCDを使わずに自分で打ち込もうね。 コピーじゃ覚えないから
619お願いです。:02/08/13 22:26
だれかオートでリロードするプログラム作って下さい。
「竹島」が韓国に支配される?
今、日本の領土である竹島(島根県の一部)が危機にさらされています。
歴史的に見ても日本の領土である竹島。しかし現在、韓国軍が駐屯しています。
今回韓国はさらに竹島を「国立公園に指定」する動きを見せています。
国家の基本、領土が侵されているのにマスコミは一切報道しません。
国民のほとんどはこの緊急事態を知りません。
そこでより多くの人にこの事態を知ってもらえるよう、問題提起のため、
マスコミを動かすため下のページのカウンターを増やしましょう!
竹島についてhttp://www.pref.shimane.jp/section/takesima/top.html
↓↓↓関連↓↓↓
記事:http://www.sankei.co.jp/news/020812/0812kok040.htm
実況板:http://news2.2ch.net/test/read.cgi/liveplus/1029205597/
↓↓↓カウンター本部↓↓↓ 「目標100万ヒット!田代、住基ネット祭りに続け」
祭り板:http://live.2ch.net/test/read.cgi/festival/1029231111/l50
>>619
/*
そこでより多くの人にこの事態を知ってもらえるよう、問題提起のため、
マスコミを動かすため下のページのカウンターを増やしましょう!
*/

意味わかってほざいてるのか?死ね。
>>620
相手にしないこと。
アプレットを作成してます。最初のアプレットfirstapplet.htmlで
パラメータを入力し、このパラメータを次のアプレット
secondapplet.htmlに渡したい場合どのようにして渡すのでしょうか。
ちなみに、2つのアプレットはAppletクラスを継承しているとして
最初のアプレットで、

URL baseUrl = new URL("http://***.***.ne.jp/applet/");
URL url = new URL(baseUrl,"secondapplet.html?"+"message="+
URLEncoder.encode(JTextField1.getText()) );
getAppletContext().showDocument(url,"right");

とすると、次のアプレットで
getCodeBase().toString() を使えば、?以降にあるパラメータを
取り出せます。しかし、2つのアプレットをJAppletを継承して作ると
?以降が省略されパラメータを取り出すことができません。JAppletを
継承したアプレット間で、簡単なパラメータ(英数字のみ)を次の
アプレットに渡すにはどうすれよいのでしょうか。他の方法でもかま
いません。ご存知方教えてください。

<動作確認環境>
Windows NT 4.0 SP6a
JDK 1.2.2
Internet Explorer 5.5
Netscape Communicator 4.7
623デフォルトの名無しさん:02/08/13 23:00
javaSDKでスプライトってあるんですか?
あと異型のウインドウを作りたいのですがどんなクラスがありますか?
625デフォルトの名無しさん:02/08/13 23:11
うーむー
JAVAMEとかなら見たことあるんですけど普通のJAVAであんのかなって
DirectXは使えないの?
OSに依存するからな
>>622
試してないのですが、それって url が完成してないのでは?
だれか「622」の回答も頼むよ。
Java House Mailing Listにも乗ってないんだ。
Appletって?以降にhoge=fugaとか書いてパラメータ渡せるの? 知らんかった….
>627
次に表示するアプレットはちゃんと表示できているんだが。
urlが完成してないとはどういうことでせうか。もう少し
ご説明をお願いします。
>>630
あっ url は2行あったのね。
>629
Appletの場合のサンプル

@FirstAppletJ.html

<HTML><HEAD></HEAD><BODY>
<APPLET CODE="FirstAppletJ.class"
HEIGHT=100
WIDTH=300>
</APPLET></BODY></HTML>


@FirstAppletJ.java

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;

public class FirstAppletJ extends Applet implements
ActionListener {
Button b;
TextField t;
public void init() {
add(new Label("Message to 2nd applet :"));
add(t= new TextField(20));
add(b = new Button("Load 2nd applet"));
b.addActionListener(this);
}

public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == b) {
try {
getAppletContext().showDocument
(new URL(getCodeBase(),
"SecondAppletJ.html?" + "message=" + URLEncoder.encode(t.getText())));
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}

634デフォルトの名無しさん:02/08/13 23:38
つづき・・・・・・・

@SecondAppletJ.html

<HTML><HEAD></HEAD><BODY>
<APPLET CODE="SecondAppletJ.class"
HEIGHT=100
WIDTH=400>
</APPLET></BODY></HTML>


@SecondApplet.java

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

public class SecondAppletJ extends Applet {
public void init() {
Label l = new Label("Message from 1st Applet");
add (l);
TextField tf = new TextField( 50 );
add(tf);

// complete current URL
String s = getDocumentBase().toString();

// extract the search (or query) section
String theMessage = s.substring(s.indexOf('?') + 1);

// remove message header
theMessage = theMessage.substring("message=".length());

// decode the string (incomplete)
theMessage = theMessage.replace('+',' ');

tf.setText(theMessage);
}
}

JAppletの場合、htmlファイルをAPPLETタグでなく、Java Plug-in
タグ(OBJECT または EMBED) で書いている。なんで?以降のパラメータ
が取れないんだよ!だれか教てください。
635629:02/08/13 23:40
あぁ, 自分でロジック書くのね…了解.
636sage:02/08/14 02:37
java_sun_com の鯖dj
638デフォルトの名無しさん:02/08/14 13:32
アプレットビューワーでは成功してるのに、
いざネットで公開してみると、使用する画像の読みこみが高い確率で失敗します。
何か良い解決策があるのでしょうか?
>>638
(゚∀゚)ダウンロードがッ 成功するまでッ 読むのをやめないッ!
640デフォルトの名無しさん:02/08/14 13:43
>>638
っていうか、普通リソースもクラスファイルもJarに圧縮するだろ?
おれ、まちがってる?
641デフォルトの名無しさん:02/08/14 15:42
642名無し~3.EXE:02/08/14 15:43
みなさまお疲れ様です、ここのサイトでもいって
心を和ませて、疲れを癒してください
http://www.ogaki-tv.ne.jp/~zeus/
基本的なことすみません。

XSL変換をして結果をStringに代入して、ふと気づいたのですが、
複数行をString型に入れたときは、\n で区切られているんですよね。
それを一行ずつアクセスする方法ってあるのでしょうか?

無ければ、先頭から読んでいって\nで分割するしかないのでしょうか。
BufferedReader br = new BufferedReader(new StringReader(str));
String line = br.readLine();
645デフォルトの名無しさん:02/08/14 15:59
>>640
638じゃないのですけど、
Jarに圧縮したらHTMLのタグ的には、

<applet code=*.jar width=100 height=100>

ですよね。
んで、ソースコードの中でイメージを読み込むにはどうしたら良いのでしょうか。

×Image img=Toolkit.getDefaultToolkit().getImage("img1.gif");
×Image img=getImage(getCocumentBase(),"img1.gif");

これらでは、ダメみたいで、困ってます。教えて下さいませ。
>>645
Toolkit.getDefaultToolkit().getImage(getClass().getResource("/img1.gif"));

647デフォルトの名無しさん:02/08/14 16:04
>>646
ありがとうございます。早速試してみます。
>>644
あ、BufferedReaderか!ありがとうございます。
649638:02/08/14 16:29
ありがとうございました!
なるほどJar圧縮を皆さん使ってられるんですね。
勉強してきます!
ところで Jar って先頭だけ大文字にするのが正式なんでせうか?
Jarと書いて「ジップ」と読みましょう。
ジャー
文字列中のタブ(\t)だけを除去する都合のいいメソッドなんてないですよね(´・ω・`
>>654
1.4なら、String.replaceAll("\t", "");
>>654
ありがとうです。1.4凄い!
656デフォルトの名無しさん:02/08/14 19:14
657デフォルトの名無しさん:02/08/14 20:30
サーブレットで画像ファイル(gifかjpeg)の縦横サイズをそれぞれ取得
して、<img src="xxxx.gif" width="123" height="456">といった
HTMLタグを生成したいのですが、サイズの取得はどうやったらよいの
でしょうか?
658java:02/08/14 20:34
初心者質問なんだけどイベント使うときに
class sample extends JApplet implements ActionListener{で継承して
 部品名.addActionListener(this);
でpublic void actionPerformed(ActionEvent e)
メソッドに飛ばすのと


init(){ の中に部品名.addActionListener(new ActionListner(){
public void actionPerformed(ActionEvent e){
         処理
}});って2通りの書き方があるんだけどどっちがいいのですか?
っていうか場合により使いわけるの??
>>657
ヘッダーに書いてあります。
>>658
どっちでも好きなほうを。
職場によっては無名クラス禁止だったりするから、
そーゆーとこだと後者は無理だけど。
661デフォルトの名無しさん:02/08/14 21:15
>>658
まあどちらでも同じことだが。
リスナーを別クラスとして作って管理する方が俺は好きだが。
662デフォルトの名無しさん:02/08/14 22:59
622の質問に答え下さい。
>>661
同意。レガシーな奴なんでああいう書き方は苦手っす。
>>662
氏ね
666デフォルトの名無しさん:02/08/15 00:47
>>662
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね


short型にbyte[2]を入れたいんですけどどうしてもshortのほうの
上位バイトに値を入れることができません。上位バイトをbyte[0]、
下位バイトを[1]に入れようとしているのですが・・・。
シフト演算子使ってもうまくいきません。
short tmp=byte[0];
short tmp2=byte[1];
ってやって、tmpをtmp<<8で下位バイトにあったものを上位にもってきて、
ビット論理和の「|」を使って
short s=(tmp<<8)|tmp2;
ってやってうまくいくと思ったんだけどコンパイルの時点でダメでした。
どなたか教えていただけないでしょうか?



>>667
キャストーッ!
PPC Linux用のJava1.4ってもう出ているのでしょうか?
(MacじゃなくてOpenBlockSトカのほうです)
>>669
ソースからコンパイルとか?
>>669
blackdownからは1.2.2までしか出てないっぽい
http://www.blackdown.org/java-linux/ports.html

GNUのこれが一応1.4とは言ってるはず
#試したことは無いので詳細は解らぬ・・・
http://gcc.gnu.org/java/
>>671
GCJは使ったことないが, GNUのJava用getoptにはお世話になってる.
>>ミナサン
ありがとうございます。GCJか・・・冒険するか我慢するかみたいですね。
>>667
short tmp=byte[0] & 0xFF;
short tmp2=byte[1] & 0xFF;
です。ネタだと思うけど、一応
演算結果がintなるから代入できないって話では
しまった… 忘れてた。
677デフォルトの名無しさん:02/08/15 15:17
すいません、何度やってもうまくいかないので教えてください。
簡単なソースを書いて、コマンドプロンプトを使ってコンパイルは出来たのですが、
「java」と命令して実行しようとすると
"Exception in thread "main" java.lang.NoClassDefFoundError: Sample1"
となってしまうのですが…。どんな原因が考えられますか?
>>677
java -classpath . Sample1
>>677
いやたぶん
java hoge.class ってやってるでしょ
java hoge
だよ
680デフォルトの名無しさん:02/08/15 15:47
>>679
ちゃんと拡張子は取って書いてるのにダメなんです。
パスも通してあるし、コンパイルもできてるのにどうしてなんでしょう??


>>679
エラーメッセージみればそうじゃないことはわかる。
>>680
なんでおめーーーーーーは、 679 は見ておいて、 678 は無視してんだ? 氏ねや!!
>>680
クラスパスは?
684デフォルトの名無しさん:02/08/15 16:19
クラスパスはSample1.classです。
>>684
今から数人に叩かれると思うから覚悟してね。
686コギャルとHな出会い:02/08/15 16:22
http://kado7.ug.to/net/


朝までから騒ぎ!!
   小中高生
 コギャル〜熟女まで
   メル友
  i/j/PC/対応

女性の子もたくさん来てね
  小中高生大歓迎です                 
全国デ−トスポット情報も有ります。
全国エステ&ネイル情報あります。

  激安携帯情報あります。
>>677はネタのようです。放置しましょう。
>>682

25分間お疲れ様でした。
>>688
25分って?
>>689
史ね
俺も25分間ってどうやって計算したのか知りたいんだけど?
50分を2で割ったんじゃないのだろうか

50÷2 = 25

どうよ?
685〜687の間か? けど27分間
>>692
100分を4で割ったと思っていた。
発想の転換が必要だな。

5分×5回 = 25分
俺は200を8(略
で、結局このスレに張り付いてるヤシは何人なんだ?
>>697
5人くらいで、うち3人くらいが単なる煽り厨かな。
699デフォルトの名無しさん:02/08/15 18:20
つまらない質問なんですが、お願いします。
軽くてフリーソフトの行番号がついてるエディタってありますか?
>>699
ワラタ
701699:02/08/15 18:53
>>700
え?ネタじゃないんですけど……
もしかしてメモ帳で行番号を表示ってできるのでしょうか?
>>699
メモ帳で行番号表示は聞いたことないな。

メモ帳ライクなエディタならTerapadを薦める。
http://www.vector.co.jp/soft/win95/writing/se104390.html?y
ほんとは秀丸がいいんだがシェアウェアなので。

とりあえずは、これで十分。使っていくうちに不満が出てきたら
emacs系やvi系に挑戦してください。
703699:02/08/15 19:39
>>702
親切にありがとうございます。
さっそくダウンロ〜ド〜
>>702
フリーソフトの行番号ついてる?
>>699
emacs系なら、xyzzyはどう?
ttp://www.jsdlab.co.jp/~kamei/
インデントを自動的に整えてくれるので気持ちいいよ。
>>706
フリーソフトの行番号ついてる?
708デフォルトの名無しさん:02/08/15 22:14
なんでinterfaceで、privateのメソッドを宣言できないの?
必ず実装すべきprivateのメソッドも、interfaceで強制できれば便利なのに。
>>708
それはオブジェクト指向に反する考え方だから…だと思う.
少なくとも俺はそう考えてる. interfaceは
「それさえ呼び出せば処理をしてくれるメソッドの定義(なんて適当な説明…)」
だから中でどんな実装をしてようと知ったこっちゃない. したがってinterfaceで
このprivateメソッドを使え!なんて定義するのはダメなんじゃないだろうか.

…いや, 実際使いたい時がなくもないが.
>>708
>必ず実装すべきprivateのメソッド
ってのは「実装」に関する事なんで
interface みたいに「仕様」を定義
する場合には必要ない、って事では?

うまく説明できない… マダマダダネ
>>708
っつか、private って自動的に final されたのと
同じ扱いにならなかったっけ?
privateメソッドはオーバーライドできません(藁

つうか、privateメソッドをどう書こうと、そのクラスの実装
責任者の自由じゃろ。どうせどこからも呼ばれないんだから。
アホか。

インターフェイスの役割は、外からのアクセス手段を規定する
ことなんだから、publicオンリーで十分。
(protectedがほしいと思うこともあるけど、そういう時は仕方
がないのでabstract classにしてましゅ)
このスレはインターフェースがなんたるものか分かっていない>>708を叩くスレになりますた。
>>713
上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc.2ch.net/test/read.cgi/tech/1021555964/
すいません、以下のコードで質問があります。

int i=0;
int j=5;
int k;

for (k=0;k<5;k++){
if( i++>3 | --j<2 ) continue;
}


…これでi+j+kの結果が10になるようなんですが、その経過が
よく分かりません。ド素人で申し訳ないんですが、教えてください。
>>715
>if( i++>3 | --j<2 )

||じゃなくて良いのか?
>>716
はい、ショートサーキットではないです。
考えても答えが9にしかならないんですが…
>>717
iは評価後にインクリメントされてjは評価前にデクリメントされるってのは良いよね。

つぅかbool型ってビット演算できるんすか?
>>715
> その経過がよく分かりません。

そのまま自分で追ってみればいいジャン
追うよりもっと簡単な方法があった。実際に表示させるだけジャン

i=0 j=5 k=0
i=0 j=5 k=0
i=1 j=4 k=1
i=2 j=3 k=2
i=3 j=2 k=3
i=4 j=1 k=3
i=4 j=1 k=4
i=5 j=0 k=4
i=5 j=0 k=5
721715:02/08/16 12:27
>>719

  k  i  j
----------------
  0  1  4
  1  2  3
  2  3  2
  3  4  1
  4  5  0
----------------
  4 + 5 = 9

と言う感じです。
何か勘違いしてますか、自分?
722715:02/08/16 12:30
>>720
ありがとうございます。
ちょっと自分で追ってみます。
int は int k の後
for は for の直後
if- は if文の後
if+ は if文の中(continue の前)
end は 最後


int i=0;
int j=5;
int k;

// int

  for (k=0;k<5;k++){
    //for
    if( i++>3 | --j<2 ) {
      //if+
      continue;
    }
    //if-
  }

// end

int:i=0 j=5 k=0
for:i=0 j=5 k=0
if-:i=1 j=4 k=0
for:i=1 j=4 k=1
if-:i=2 j=3 k=1
for:i=2 j=3 k=2
if-:i=3 j=2 k=2
for:i=3 j=2 k=3
if+:i=4 j=1 k=3
for:i=4 j=1 k=4
if+:i=5 j=0 k=4
end:i=5 j=0 k=5

>>721
最後に for の条件文を通ると k がインクリメントされます。
725715:02/08/16 12:49
>>723-724
あ、最後にkが5になってforループが終わると言うことですね!
すいません、ありがとうございました!
WinXPです。環境変数はC:\j2sdk1.4.0_01\bin;と設定してあります。
SDKとeclipseを使っていました。コマンドプロンプトでもeclipseでも
javaを実行できていたのですが、
いまさっき、JBuilder6personalをインストールしたところ、

C:\>javac hoge.class
C:\>java hoge
Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.3', but '1.4' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.

となるようになってしまい。同時にeclipseも使えなくなりました。
JBuilderのJDK設定のメニューで
j2sdk1.4.0_01を使用するように指定しても直りません。
これはどうしたら直るのでしょうか?
それともJBuilderだけで生きていけということなのでしょうか?
悲しいです。助けてください。
>>726
>>357 あたりに同じ質問があります。ただ、厨房に邪魔されて質問がとぎれていますけどね。

>>727
読んでみました。過去ログきちんと読んでなくてすいません。
どうもアンインストールして解決しているみたいですね。
>>364の先頭に書くってのをやってみましたが、どうもうまくいかないようです。

JBuilderでGUIのプログラム作ってみたいと思ったのですが、JBだけってのは
ちょっとつらいのです。

>JBuilderのJDK設定のメニューで
j2sdk1.4.0_01を使用するように指定しても直りません。

これはソフトやPCを再起動したわけではないので、そうしないと反映されない
ものなのかもしれないと、ちょっと試して見ます。
結局JDKの設定をj2sdk1.4.0_01を使用するように指定しても再起動しても
なにも変わりませんでした。いちおう環境変数のPATHの先頭に書いてもみた
んですけど、ダメでした。アンインストールは最強でした。
もし何かほかの解決方法あったら教えてください。
730デフォルトの名無しさん:02/08/16 15:13
JDK1.4を再インストールすればいいんでない?
JB→JDKの順でインストールすれば問題ないと思う。
731727:02/08/16 15:28
>>729
エラーを読むと

'Software\JavaSoft\Java Runtime Environment\CurrentVersion' が間違ってるって書いてあるね。
'Software\JavaSoft\Java Runtime Environment\CurrentVersion' に '1.4' と書いてあればいいんじゃない?
>>730
JDK1.4をアンインストールしました。JBuilderと共にインストールされた
JDK1.3を使うようにしたら、eclipseもコマンドプロンプトもすべてうまく
いくようになりました。JBuilderにあわせる方向にしただけですが。
わがままですね。>JBuilderクン

このあと、JDK1.4を再インストールすれば、JB,eclipse,コマンドプロンプト
でJDK1.4が使えるようになるわけですね。でもせっかくうまくいっているので、
しばらくは1.3で生きていくようにします。というか、1.3と1.4の差をあまり
理解できていないですし。

>>731
そうなんですけど、そこがわからんのです。レジストリなんていじったこと
ないので。そういうわけで、1.4は泣く泣くあぼーんされました。
>>732
自己レスですが、JDK1.4で動くようにするとマウスのホイールが使えるように
なるらしいということを知りました。疲れました。1.3は抜け出したいけど、
うまくいっているのに抜け出してうまくいかなくなるかもしれないのも鬱ですね。
734デフォルトの名無しさん:02/08/16 17:42
javaアプレtトってpng形式対応してますか?
なんだか表示しにくいんですけど……
>>734
> なんだか表示しにくいんですけど……

んじゃ対応しているじゃん
736デフォルトの名無しさん:02/08/16 17:54
>>735
すいません。正式対応かどうかです。
不安定過ぎるのはどうも。かといってGifも腹立ちますし。
737デフォルトの名無しさん:02/08/16 17:57
IIS5.0とTOMCATの連携方法を詳しく書いてある
WEBサイトを教えてください
IISでサーブレットを動かしたいと思っています
>>733
>>364 に書いてある方法じゃだめなのか?大方Win9xで再起動し忘れたんだろ。
どうしてもコンソールからコンパイルしたければ
set C:\j2sdk1.4.0_01\bin;%PATH%
javac Hello.java
java Hello
とでもやってみれば?

それからJBuilderはJBuilder自身を動かすJVMと開発ターゲットのJVMを別にできるから、
JBuilderでホイールスクロールしたかったら前者を1.4にしないとダメ。
方法はreadmeなりヘルプなりネットなりで探せばいくらでも見つかるはず。
>>737
Google
http://www.google.co.jp/search?num=100&hl=ja&ie=UTF-8&oe=UTF-8&q=IIS+tomcat+%E9%80%A3%E6%90%BA&lr=lang_ja
やら
4.0.x
http://jakarta.apache.org/tomcat/tomcat-4.0-doc/config/ajp.html
やら
4.1.x
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/jk2.html
やら
Tomcat3.x - IIS は結構あるようだけど
Tomcat4.x - IIS の情報は少ないなぁ。Tomcat4のIIS/Apacheコネクタは複数あって
評価がいろいろのようだから、可能な限りMLのログなり掲示板のログなり調べた方がいいと思う。
詳しい人いないかな?
Apacheの事例は多いんだが・・・
>>736
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/awt/Toolkit.html
>ファイル形式は GIF、JPEG、PNG のいずれかにする必要があります。
>>738

> >>364 に書いてある方法じゃだめなのか?

>>728で、だめだった。

> 大方Win9xで再起動し忘れたんだろ。

>>729で、とりあえず、それもした。ちなみにWin2K。

てな感じかな。>>732で全部うまくいくようになったので、JDK1.3で
十分かな。

>JBuilderでホイールスクロールしたかったら前者を1.4にしないとダメ。

だから、ホイールは魅力的だけど、それだけのために頑張る気に
もなれないといった感じ。>>738参照

まとめてくれてどうも。
>>738
おまえは自分のためにいちいちまとめているんだろ? けど、自我が強いだけでまわりが見えていない。
或いは初心者にありがちなスペルミスかと思ったが。
コンソールで
path
で意図した通りに設定されてた?Win2kなら、「ユーザー環境変数」と「システム環境変数」
があって、「ユーザー環境変数」の先頭に追加してしまうと、
システム環境変数の C:\WINNT\System32 にあるjava.exeが使われてしまうから、×
間違いなく「システム環境変数」の先頭に追加しないと動かない。

少なくとも俺の環境では間違いなく動いてる。切り替えも確実に動作する。
JBuilder4/6/7/EclipseR2/JDK1.3.0/1.3.1/1.4.0/1.4.1-beta全部

別に俺は>>741がどうなろうと何も困らんのだが?単なる情報提供
JBuilderでもJDKが1.3だろうが1.2だろうがマウスホイールを
使用可能にするjbWheelってツールがあるよ。
まぁこんなのガイシュツだろうけどさ。

http://czerwonykapturek.tripod.com/jbWheel/jbwheel.html
>>743は、ダレに返事しているの?

なんか空気が違うんですが、単なるバカですか?
自慢厨っていうんだよ。放置ね。
>>745
お前も良い勝負だと思うけどな。
748デフォルトの名無しさん:02/08/16 22:55
Javaオタは内紛で自滅寸前だな
ギャハハハ
Ruby Java Python Perl
って戦争するとどれが勝つんでしょう?
>>749
Javaだろうなぁ。
>Javaオタは内紛で自滅寸前だな
なんかトラウマでもあるんで?
(´ー`)y-~~ マターリ
753デフォルトの名無しさん:02/08/17 01:30
前に画面のダブルバッファのためCanvasの継承で

Image scrImage = createImage(this.getWidth(), this.getHeight());
offGraphics = this.scrImage.getGraphics();

・・とコンストラクタで実施したらscrImageがnullになるのはなぜ?
と質問したものです。

「peerが確定していないのでコンストラクタでは無理」

・・という理由で出来ないのはわかりましたが、この「peerが確定していない」の意味がどうしてもわかりません。
一応Canvas.paint()で

if (scrImage == null) {
  scrImage = createImage(this.getWidth(), this.getHeight());
  offGraphics = this.scrImage.getGraphics();
}

とする事で出来てはいるのですが、気持ち悪くてしょうがないです
というかイメージを動的に生成したいだけなのにCanvasクラスを生成しないといけない・・という理由がわからない・・

ここらへんの事情をどなたか詳しく教えていただけないでしょうか??
754デフォルトの名無しさん:02/08/17 01:31
finalize()が呼び出されていないようなんですが、↓のコードは
間違ってるでしょうか?

public class Example
{
static int i = 0 ;

public static void main(String[] args)
{
Example exa = new Example() ;

exa = null ;

System.out.println(String.valueOf(i)) ;
}

protected void finalize()
{
i = 99 ;
System.out.println("exaオブジェクトは破棄されます") ;
}
}

表示:0

finalize()というものは、こんな形では呼び出されないものなんでしょうか?
どなたか、よろしくお願いします。
根本的に間違ってるな。
入門書もういちど始めから読み直せ。
finalize って必ず呼び出される事が保証されてないんじゃなかったっけ?
757デフォルトの名無しさん:02/08/17 01:52
>>755
>>756
どうもありがとうございます。

>入門書もういちど始めから読み直せ。
「言語仕様」には、取るに足らないfinalize()は呼ばれない、
みたいな事が書いてありました。
どうしたら、呼ばれるのか知りたかったもので。

>finalize って必ず呼び出される事が保証されてないんじゃなかったっけ?
一言でもヒントが貰えてマジ良かったです。
public class Example {
  static int i = 0 ;

  public static void main(String[] args) {
    Example exa = new Example() ;
    exa = null ;

    System.gc();

    System.out.println(String.valueOf(i)) ;
  }

  protected void finalize() {
    i = 99 ;
    System.out.println("exaオブジェクトは破棄されます");
  }
}
ちなみに、ちょっと前に登場した話ですが Stringオブジェクト は破棄されません。


public class Example {
  static int i = 0 ;

  public static void main(String[] args) {
    //Example exa = new Example() ;
    String exa = new String("おはよう");
    exa = null ;

    System.gc();

    System.out.println(String.valueOf(i)) ;
  }

  protected void finalize() {
    i = 99 ;
    System.out.println("exaオブジェクトは破棄されます");
  }
}
>>759
そのコードじゃ new String("おはよう") が
破棄されたとしても判定できないような…
761デフォルトの名無しさん:02/08/17 07:39
public boolean action(Event e, Object o)
{

if(e.target instanceof Button)
{
String t1=boxa.getText();
String t2=boxb.getText();
a = Integer.parseInt(t1);
b = Integer.parseInt(t2);
repaint();
return true;
}
else return fales;
}

あまり意味がわかりません。どなたかコメント文を加えてくださいませんか?
特にbooleanメソッドの意味がよくわかりません。よろしくお願いします。
>>760
なぜ?
>>761
booleanメソッドって?
>>762
「なぜ?」って…
finalize の上書きしてんの Example だけで
String の finalize は上書きしてないじゃん。
(Stringは final class だから上書きできんけど)
java.lang.ref.* とか使って地獄の果てまで追っかけるなら話は別だけど…
765736:02/08/17 10:39
>>740
亀レスですがありがとうございました。
>>759
破棄されないってのはどういうこと?
Stringオブジェクトを作ったら最後、もう一生残るってこと?
String hoge = "hoge";
とかは確かに消えないかもしれないけど。
>>766
と、言うかあのコードでStringが破棄されたかどうかチェックするのは不可能かと。
そんなコードを堂々と書く奴を相手にしても時間の無駄だと思われ。
Stringが破棄されないってのはメモリリークが発生するってこと?
であれば、延々とStringのインスタンス作成をループさせて
メモリ消費量を観察してみたら?
>>768
String が破棄されたとしても、
>>759 のコードでは判定できないよ。
>>769
最低でもStringを継承してfinallizeをオーバーライドしたものでないとね。
771デフォルトの名無しさん:02/08/17 17:06
>>759
>>768
文字列って、システムの共有プールに格納されるので、
ユーザープログラムからは破棄できないってことなんでしょうかね?
よくわかりませんけど。
>>771
それこそあのコードを修正して自分で実験すればいいと思われ。
>>770
>Stringを継承して
デキネーヨ
>>772
無理だろ。
よって。確かめようがございませんと。
>>771
普通のVMの実装という仮定だけど、ソースコードに埋め込まれた文字列は
Constant Poolというところに定数として格納される。それ以外の動的に
生成された文字列は、通常のオブジェクトと同様のタイミング(gc)で破棄
される。

つまりあるクラスをロードしたら、そのクラスが保持する文字列は、
クラスが残っている限りメモリ内に残ることになる。

# クラスのアンロードってできたっけ?
777デフォルトの名無しさん:02/08/17 17:26
自分のクラスローダで管理するクラスに関しては、できるはずだと思う。
よくは分かりません。
>>759 は、>>758 を使ったネタだと思う。
>>777 はなにを言いたいの?
780デフォルトの名無しさん:02/08/17 17:35
>>779
うろおぼえで、変な事言っちゃったかも...、えへ。ゴメンなすわぁい。
>>780
まともなこと言おうと、いいかげんなこと言おうと、 age ちゃうヤツは変!
スマン!
これでいいかな?
public class StringGC {
  public static void main(String[] args) {
    Runtime r = Runtime.getRuntime();
    String s;
    System.out.println("UsedMemory:");
    System.gc();
    System.out.println("a " + (r.totalMemory() - r.freeMemory()));
    System.gc();
    System.out.println("b " + (r.totalMemory() - r.freeMemory()));
    s = new String();
    System.out.println("c " + (r.totalMemory() - r.freeMemory()));
    s = null;
    System.out.println("d " + (r.totalMemory() - r.freeMemory()));
    System.gc();
    System.out.println("e " + (r.totalMemory() - r.freeMemory()));
  }
}
「多分破棄されてるんだだろうなぁ」ぐらいは思えるかと。
>>783
けっこういろんな本に書いてある方法。
785初心者君.:02/08/18 00:28
ダブルクリックされた時の処理ってどーやってやるのですか?
>>785
クリックの時と概ね同じ。
787初心者君.:02/08/18 00:34
>>786
クリックとダブルクリックって分けられないのですか?
788コギャルとHな出会い:02/08/18 00:38
http://kado7.ug.to/net/


朝までから騒ぎ!!
   小中高生
 コギャル〜熟女まで
   メル友
  i/j/PC/対応

女性の子もたくさん来てね
  小中高生大歓迎です                 
全国デ−トスポット情報も有ります。
全国エステ&ネイル情報あります。

  激安携帯情報あります。
789デフォルトの名無しさん:02/08/18 00:58
Swingです。

コーヒーカップのアイコンを、自作アイコンに変更したいのですが、
どうやったらできるのでしょうか?
コーヒーカップのアイコンを愛せない奴はJavaを使う資格無し
コーヒーカップ飽きますた
JFrame#setIconImage()
Windowsでしか確認していないがサイズが16x16に自動でリサイズされちゃうんで
はじめっから 16x16でアイコン作っといたほうが(自動リサイズより)きれいだよ。
>>787
できるよ
794787:02/08/18 15:05
>>793
どーすれば出来るんですか?小1日考えましたが解りません。
教えて下さい。
>>794
考えるだけじゃなくマニュアル読もう。
SunのJava認定の試験てさ、なんでAWTの問題とかでるんだろね?
CollectionとかMapとかはどんなプログラムにも使うからわかるけどさ
AWT使ったことないーよ(;´Д`)
797デフォルトの名無しさん:02/08/18 16:44
昨日からjavaを勉強し始めたんですが、
参考にしてるサイトのプログラムに
import java.awt.*;
import java.awt.event.*;
ってあるんですが、何故java.awt.event.*も書かなくてはいけないんですか?
>>797
> 何故java.awt.event.*も書かなくてはいけないんですか?

使うからじゃない?使いたくなければ書かなくてもいいです。
>>797
*はサブ階層には無効です。
800800:02/08/18 16:58
>>798は現場においても問題の本質を掴めないDQNプログラマ
>>800
何故java.awt.event.*も書かなくてはいけないんですか? 質問に答えて下さい。
802デフォルトの名無しさん:02/08/18 17:02
>>799
java.awt.event.* をハズしても問題ないのですが?
問題ありますが?
パッケージについてちょっと勉強してくらはいな。
そしたらわかるでしょ?
java.awt.event.*
って書かなきゃjava.awt.event以下のクラスが使えないでしょ?
使わないんならいいけどさ。使うでしょ?

ネタなのか・・・
>>802
なんでこいつは回答者を煽っているんだろう・・・?
797です。ちなみに802は別人です。
自分が今見てるサイトは
http://astroheart.com/Glory/javaprogram/basic/basic002.html
です。java.awt.event.*を外してもコンパイル、実行も出来たので
上のプログラムの場合java.awt.event.*は余計って事ですね。

#この板も強制IDにしてほしい・・・
>>805
低レベル。さっさとWinか自作に帰れ。
>>http://astroheart.com/Glory/javaprogram/basic/basic002.html
俺、そこは止めといた方がいいと思う。いや、主観なんだけどさ。
コンテンツの内容が悪いとかじゃなくて、Javaを「ジャヴァ」と書いてる時点で萎える。
それだけ。けど俺が否定するには十分な理由…。
808デフォルトの名無しさん:02/08/18 17:34
本によっていろいろ書いてあることが違うのですが、
標準パス名と相対パス名って同じですか?
すいません。
さげ忘れました。
811807:02/08/18 17:45
>>810
さぁ…俺、本とSDK(つっても当時の呼名はJDKだったけど)に付いてたソースで
独学したから初心者用でお勧めのサイトってのは分からんな…。どっちかっつーと
sunsiteの方が個人的は好き。
>>811
なんとなく始めに目を付けた方からという事でastroheartの方を
やってたんですがsunsiteの方が良さげですか。
んじゃどうせ始めたばっかだし移行しちゃおかな。
813807:02/08/18 18:01
んー、両方読んでみて自分で決めなよ。
俺がsunsiteの方がいいと思ったのは
・文体が読みやすい
・TOCがすっきりしてて全体が見通しやすい
・著作件・商標の表示をキチンとしてて好感が持てる
とか、その程度の理由だから。あとジャヴァ…(笑)。
814デフォルトの名無しさん:02/08/18 18:34
>>803
> java.awt.event.*
> って書かなきゃjava.awt.event以下のクラスが使えないでしょ?

って説明は初心者が混乱しますね。

java.awt.event.* って書くと、java.awt.event.以下のクラスが、 「java.awt.event」を省略して
使うことができようになります。(java.awt.event.Class が Class だけで)
決して、import java.awt.event.*って書かない場合は、java.awt.event.Classと省略せずフルに書く
必要があるだけで、きゃjava.awt.event以下のクラスが使えないわけではありません。
815デフォルトの名無しさん:02/08/18 18:35
>>805
おまえは結局>>802と同じこと言ってるじゃん。

あほ!
816814:02/08/18 18:35
sage 忘れたごめん
>>815
天然馬鹿
818java:02/08/18 19:29
初心者ですみません。次のアプレットをアプリにしたいんですけど、JAppletを
JFrameに書き換えて
class アプリ名 {
public static void main(String[] argv){
xxx f=new xxx();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,400);
f.setVisible(true);
}
}を付け加えればいいと思うんですがエラーになります。誰か助け舟
をお願いします。


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

class sample extends JPanel implements MouseMotionListener{
int a,b=-20;

public sample(){
addMouseMotionListener(this);
}
public void paint(Graphics g){
g.fillOval(a,b,20,20);

}
public void mouseMoved(MouseEvent e){}
public void mouseDragged(MouseEvent e){
a=e.getX();
b=e.getY();
repaint();
}

}
public class xxx extends JApplet{

public void init(){
getContentPane().setLayout(new BorderLayout());
sample k=new sample();

getContentPane().add(k);

}
}
java.awt.event.Classってどこにあるの?
>>818
コンストラクタ作ってinit呼べよ
あと、エラー表示を貼って
821java:02/08/18 20:10
>820
エラーはでないです。java アプリ名で実行すると灰色のウィンドウが開く
だけっす。
  コンストラクタってpublic void アプリ名(){}ですよね、この中に
何の処理いれるの??
>>821

ビューに張らなきゃ表示されるわけねえべ。
JPanel p=...;
JFrame f=...;
f.getContentPane().add(p);
823java:02/08/18 20:53
>>822
結果的にこうなったけどどこに張る処理書くの?
JFrameを継承し, クラスsampleをオブジェクト化して張りつけたxxxってクラス
をmainの中で作成してるからこれでいいと思うんだけど

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

class sample extends JPanel implements MouseMotionListener{
int a,b=-20;

public sample(){
addMouseMotionListener(this);
}
public void paint(Graphics g){
g.fillOval(a,b,20,20);

}
public void mouseMoved(MouseEvent e){}
public void mouseDragged(MouseEvent e){
a=e.getX();
b=e.getY();
repaint();
}

}
class xxx extends JFrame{

public void init(){
getContentPane().setLayout(new BorderLayout());
sample k=new sample();

getContentPane().add(k);

}
}
class apuri{
public static void main(String[] argv){
xxx f=new xxx();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,400);
f.setVisible(true);
}

}
824デフォルトの名無しさん:02/08/18 20:55
>>823
init呼べよ。
825java:02/08/18 20:58
>>824
それの意味がよくわかんない
apuriクラスのmainの中にpublic void apuri(){}ってコンストラクタかいてその中に
処理書くってこと?
>>823
>>1 なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
>>1 置換してから投稿しましょう。

827814:02/08/18 21:12
>>825
つまりだ

> public void init(){
>   getContentPane().setLayout(new BorderLayout());
>   sample k=new sample();
>   getContentPane().add(k);
> }

は動いているのかな? って話ですね。
828java:02/08/18 21:15
>>827
xxx f=new xxx()を作成したときに動くんじゃないの?
>>828
initが動く保証はあるの?コンストラクタで呼んでるるならともかく。
830java:02/08/18 21:23
mainの中にpublic apuri(){}ってコンストラクタ書いたら式の開始が不正と
怒られました。どうよぶの??
しね
>>831
******************
現在コピペ荒らし発生中のため
マルチにも優しい対応をお願いします。
******************
833java:02/08/18 21:48
>>831
死んだ?
Applet プログラミングからJavaを始めたやつが陥りがちな罠だな。
おれの知り合いもそんな質問をしてたっけな。
コンストラクタでthis.init()を呼べばいいんじゃねーの。

Appletプログラミングでは、main()を書かないでしょ。main()を書いたコードが
別にあるんだよ。で、ブラウザとかappletviewerとかがAppletを実行するときにそれを
実行していると。実際には違うと思うが、そこではこんな風になってると思ってくれ。
public static void main(String[] args){
 Applet applet = new Applet();
 //ほんとはこう書きたいが、これじゃわかんねえだろうな。
 //String appletClassName = getAppletClassName(...);
 //Applet applet = Class.forName(appletClassName);
 applet.init();
}
これでわかったかな?
835デフォルトの名無しさん:02/08/18 22:14
板違いだろうとは思うんですが、もうここの人以外には言いたくなくて……
打ってたソースをコンパイルするために保存しようと思ったら、
パソコンがフリーズして消えちゃいました。
どなたか復元方法知ってる方いませんか:y=-( ゚д゚)・∵;; ターン
>>835
メモリー中にあったんだろうから無理。
>>836
わからんぞ。win386.swpをサルベージしたらあるいは・・・。
838835:02/08/18 22:41
>>836
お世話になりました。
   ||
 Λ||Λ
( / ⌒ヽ
 | |   |
 ∪ 亅|
  | | |
  ∪∪
   :
   :

 ‐ニ三ニ‐
>>814
「きゃ」って何?
840デフォルトの名無しさん:02/08/18 23:39
Appletからダウン元(codebase)のサーバーへソケット貼りたい時どうしたらいいんですか?
普通にソケット張ろうとするとセキュリティエラーとかなります
>>840
あげくにマルチポストですか。いい度胸です。
842java:02/08/19 01:16
>>834
うまく実行できました。ありがとうございました〜。
もう一つ単純なことだと思うんですがエラー発生しました。最初はコンパイルできて
たんですが急にできなくなっちゃった。
アプレットの下のほうに[Start:アプレットが初期化されていません。]ってでます。
エラーはないと思うんですが何かの不具合ですか?

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

public class dentaku extends JApplet implements ActionListener{

String s[];
JButton b[];
JTextField t=new JTextField("",30);
JPanel p=new JPanel(new GridLayout(4,0,10,10));

public void init(){
s=new String[11];
b=new JButton[11];

getContentPane().setLayout(new BorderLayout());

for(int i=0;i<12;i++){

s[i]=Integer.toString(i);
b[i]=new JButton(s[i]);

p.add(b[i]);
b[i].addActionListener(this);
}

getContentPane().add(t,BorderLayout.NORTH);
getContentPane().add(p,BorderLayout.SOUTH);

}
public void actionPerformed(ActionEvent e){}
}
>アプレットの下のほうに[Start:アプレットが初期化されていません。]ってでます。
自分でぐぐれ。腐るほど出てくる。
844java:02/08/19 01:25
>>843
ぐぐれって何?
Google使えってこと。

# お帰りはこちらへ→ http://www.google.co.jp
846java:02/08/19 01:35
そんなんでエラーの原因わかんないよ、教えて君でスマソ、マジお願い
>>846
>エラーはないと思うんですが何かの不具合ですか?
はっきりした。お前の頭。
849java:02/08/19 01:49
>>848
見たけど具体的な改善方法がどこにも書いてないYO!!頼むで教えて、原因は
ソースにはないってことしかわからない
850再掲:02/08/19 01:54
>しね
851java:02/08/19 01:59
>>850
死んだ?
852デフォルトの名無しさん:02/08/19 02:07
毎日、動くバッチが正しく動いているかテストするためにシステム時間を10分ごとに24時間進めるプログラムを作ろうと思っています。

システム時間を取得したり、変更したりするにはどのようにすればよいのでしょうか?
また10分経過したかどうかはどのようにして認識すればよいのですか?
>>842
アプレットを起動した環境のコンソールにエラーがでているから
みてごらん。配列の個数とかのマジックナンバーをそのまま
ソースに書き込むのはbugのもとだから避けるってのは定石。
854デフォルトの名無しさん:02/08/19 02:29
おまいらお疲れさん
855836:02/08/19 06:44
>>837
あっあるかもね。破片が出てくるかもしれない。
組み直した方が早(略

「とにかくセーブをこまめにする」という基本ができていない点をなんとかしたほうがいいな。
>>842
おまえはなぜスレを読まないの? >>1 は読んだか? >>826 は読んだか?
>>849
>> YO!!

質問している立場で YO!! かよ。 氏ねよ さっさと
>>852
java.util.Calendar
>>857
思ったことを書かなくてもいいです。じっとしていてね。
860デフォルトの名無しさん:02/08/19 08:52
すみませんがどうしてもわからなかったので質問させて下さい。
ArrayListにObjectを、ループを用いてaddしたいとおもっていますが、
なぜか同じループの最後のObjectが全ての要素に入ってしまいます。

//------------------------------------------------------------//
import java.util.ArrayList;

public class Test {

  static ArrayList list = new ArrayList();

  public static void main(String[] args) {
    Integer inte = new Integer(0);
    int counter = 5;

    for(int cnt = 0; cnt < counter; cnt++) {
      inte = new Integer(cnt);
      list.add(inte);
    }

    for(int cnt = 0; cnt < counter; cnt++) {
      System.out.println(cnt + " : " + inte.toString());
    }
  }
}
//------------------------------------------------------------//

add(Object o)は要素の最後に追加すると説明があったので、↑では
0:0, 1:1, 2:2, 3:3, 4:4となって欲しいのですが、結果は
0:4, 1:4, 2:4, 3:4, 4:4となってしまいます。

ご教授よろしくおねがいします。
861デフォルトの名無しさん:02/08/19 08:54
// なぜか同じループの最後のObjectが全ての要素に入ってしまいます。

→なぜかループ最後にnewされるObjectが全ての要素にはいってしまいます。
のまちがいです(^^;
862デフォルトの名無しさん:02/08/19 09:00
>>860
あたりまえだ。
listがArrayListオブジェクトなんだろ?
>>System.out.println(cnt + " : " + inte.toString());
System.out.println(cnt + " : " + list.get(cnt));
せめてコード見直してからPOSTせよ。
863デフォルトの名無しさん:02/08/19 09:32
>>862
すみません、寝ぼけてました。
たしかに、ご指摘通りに書き換えると結果どおりですね。
実はIntegerオブジェクトじゃなくて、二次元配列でやっていてうまくいかず、
質問用にIntegerにしたサンプルで投稿したのですが、
二次元配列でやってみた所解消されませんでした。

public class Test {

  static ArrayList list = new ArrayList();

  public static void main(String[] args) {
    int temp[][] = new int[1][2];
    int counter = 5;
    
    for(int cnt = 0; cnt < counter; cnt++) {
      temp[0][0] = cnt;
      temp[0][1] = 10;
      list.add(temp);
    }

    for(int cnt = 0; cnt < list.size(); cnt++) {
      temp = (int[][])list.get(cnt);      
      System.out.println(cnt + ":" + temp[0][0] + "," + temp[0][1]);
    }
  }
}

結果:0:4,10 1:4,10 2:4,10 3:4,10 4:4,10

また、馬鹿なことやってるでしょうか?
ご教授おねがいします。
別にコード通りの結果が出ていると思いますが。
Integerはループ内でnewしてるのに・・(以下略
>>861
// はコメントであって、引用符じゃないので、使い間違わない方が良い。
867デフォルトの名無しさん:02/08/19 11:34
>> 864
0:0,10 1:1,10 2:2,10 3:3,10 4:4,10 って出したいのですが上のではダメなのでしょうか?
addがおかしいのでしょうか。

>> 865
申し訳ありません、以後気をつけます。
868デフォルトの名無しさん:02/08/19 11:40
ループ内でtemp[][]をnewしてやると、望み通りの結果になりました><
どうして外でnewしたものを使うと、全て同じになるのでしょうか?

# 上の私のレス、>>865でなくて、>>866ですね、すみません。
869_:02/08/19 12:06
interface IA;
class A implements IA;
の時
IA inf = new A();
としたのですが、その後
A a = inf;
の様に元に戻せないのでしょうか?
>>869
キャストすれば…
871デフォルトの名無しさん:02/08/19 13:01
>>870
なるー,それは盲点。thx!
>>871
と、いうかポリモルの基礎。
Java でも crypt 使えますか?
>>872
多態性とは あんまし関係ない気もする…
875873:02/08/19 14:33
>>873の自己レス。

使う方法わかりました。Applet じゃぁ駄目なようだけど。
876デフォルトの名無しさん:02/08/19 15:52
3つのパネルのサイズと位置を設定したいんですが、setBoudsだと1つしか
その設定にならなかったのですが何か他のものを使うのでしょうか?
>876
よくわからんが
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();

p1.setBounds(20,30,10,20);
p2.setBounds(40,50,10,20);
p3.setBounds(60,70,10,20);
878876:02/08/19 16:14
レスありがとうございます。
その方法っぽくやってるのですがたとえばこのソースだとpg2がセンター全部黄色になってしまいます。
この原因はなんでしょうか?
以下がソースの一部です
class V2sampleFrame extends JFrame{
private JPanel pg1,pg2;
public V2sampleFrame(){
setSize(600,400);
setTitle("V2sample");
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
JPanel Pmenu=new JPanel();
JButton bt1=new JButton("ボタン1");
Pmenu.add(bt1);
bt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
pg1.setBackground(Color.blue);
pg1.repaint();
}
});
JButton bt2=new JButton("ボタン2");
Pmenu.add(bt2);
bt2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
pg2.setBackground(Color.yellow);
pg2.repaint();
}
});
Container c=getContentPane();
c.add(Pmenu,"North");
c.add(pg1=new JPanel());
c.add(pg2=new JPanel());
pg1.setLayout(null);
pg2.setLayout(null);
pg1.setBounds(30,40,100,50);
pg2.setBounds(30,40,100,50);
}
}
Container c=getContentPane();
cのLayoutを変えないとダメなんじゃないかな
881876:02/08/19 17:11
>>880
レスありがとございます
cのLayoutを変えるとはどのようにするのがいいんでしょうか

ちなみに上のソースを実行するとボタン1を押した時にはちゃんと設定した(30,40,100,50)に塗りつぶしてくれるのですが
ボタン2はPmenuのパネル以外の部分全部が色がついて塗りつぶされてしまい設定した場所に出てくれません
どこの書き方がおかしいのかわかりません
よろしければアドバイスお願いします
882ななしちゃん ◆xEQ8vQ62 :02/08/19 17:15
http://uramon.com/top.htm
このサイト、書き込みの文字色が少ないんだけど他の色を出す方法
ありますか?たまに、違う色で書いてる人もいるんだけど、やりかた
教えてくれない(泣 教えて下さい。お願いします!!
c.setLayout(null);
Pmenu.setBounds(適当に);

ただ同じ位置に同じ大きさのパネル置いてボタンによってそのパネルの色を変えたいなら
パネル1個置いてボタンクリック時に色だけ設定してrepaintした方がいいと思うけど
884876:02/08/19 17:26
>>883
ありがとございました!うまくいきました
Pmenuのほうもサイズ決めないといけなかったんですね、勉強になりました
あとあのソースは位置同じになってましたが実際は違う位置にしてました。書き間違えでした、すみません
みなさんありがとうございました。
>>882
お前の書いたソースは?
>>882は、宣伝カキコミだな。


887デフォルトの名無しさん:02/08/19 17:56
あとひとつ、
パネルを囲んでくれるようなものってないんでしょうか
たとえばこのスレの囲みとかのような・・
なにがあとひとつなんだ?
889デフォルトの名無しさん:02/08/19 18:13
もうひとつ
ちんちんかんでくれるような女っていないでしょうか
たとえばごまきみたいな顔してて・・
890デフォルトの名無しさん:02/08/19 18:14
さらにひとつ
ぱいぱいただで揉ましてくれる女も欲しいです。
891ななしちゃん ◆xEQ8vQ62 :02/08/19 18:21
宣伝じゃありません!私はそこのサイトの利用者なんですけど、
たまにまったく違う色で書き込みをしている人がいるんです。
そういう違う色での書き込み方法はありませんか?
892デフォルトの名無しさん:02/08/19 18:35
最近 発売したJAVAの月刊誌ってなんてヤツ?
バックナンバー頼めるかな。
>>892
JavaDeveloperのことか?
http://www.javadeveloper.jp/
>>891
>>885を無視するなら、お前も無視されます。
>>894
そんなに目頭を熱くして怒る程のことじゃないだろ
896デフォルトの名無しさん:02/08/19 22:19
初心者です。
初歩的な質問で申し訳ないのですが、どなたか御存知ないでしょうか。
アプレットでチャット(クライアント側)を作成しています。

TextFiledに文字を入力し、リターンでActionEvent→サーバへ送信
という形式をとっています。

このTextFieldが曲者で、日本語を入力しようと思うとチカチカ点滅してどうしょうもありません。
さらにスレッドの時間差なのか、何か文字を入力するとキーボードを叩いてから2、3秒後に
TextFieldに文字が書きこまれてしまいます。
点滅はするし、入力と実際の画面のタイムラグはすごいし、どうしていいか解りません。
何とかならないのでしょうか?
どなたかご存知でしたら、よろしくお願い致します。
>>896
なんか作り方から間違えているとしか言えない。
898892:02/08/19 22:25
8月号の表紙にstartって書いてあるけど、8月が創刊号なの?
6月か7月から新しく発売された本だった気がするんだけど。
>>895
ネタにマジレスかもしれんが目くじらを立ててじゃないか?

まぁ、怒涙と言う言葉もあるが・・・。
901  :02/08/19 22:47
質問です。
javaアプリケーションで外部プロセスを起動しようとしています。
外部プロセス自身は起動できているようです。しかし
prog >>outfiles
のようにリダイレクトでファイルに追加書き込みが出来ませんでした。
そこで
outlog >>outfiles
をシェルスクリプトにして、それを起動使用しましたがやはりダメでした。bash -c 'outlog >>outlog'
を起動してもダメでした。

外部プログラムを起動して結果リダイレクトするにはどうすればいいのでしょうか?

ちなみに、ProcessクラスのInputStreamを読み込むと正常に読めているようです。

外部プログラムはCやperlやシェルスクリプトです。
OSはlinux、jdk1.3
>>901
やったことないから分からんしAPIドキュメントにも書いてないけど, そういう動作が普通なのかも.
Process#getInputStream()で読み取ってファイルに書き込んだら?
>>901
> bash -c 'outlog >>outlog' を起動してもダメでした。

これは駄目だろ。
905   :02/08/19 23:32
>>903,904 thanx
Process#getInputStreamで読み取ってファイルに書き込む方法だと正常に動作しました。
しかし、いまいち納得がいきません。
|(パイプ)や>>(リダイレクト)の文字列を解析するのって、シェルですよね?
なんで、シェル経由でリダイレクトの>>を認識をさせればいいと思ったですがダメでした。
906デフォルトの名無しさん:02/08/19 23:36
今電卓作成中です。四則演算の組み合わせがうまくいきません。入力
した数値をラベルに出力してラベルからgetText()でとってきて計算させてます。
+-*/押すごとに計算結果が表示されてきます。
5+10-1など四則が2個以上になるとうまくいきません。
907903:02/08/19 23:37
>>904
俺も知りたい。なんでダメ?
>>906
自分でそうなるように書いてるんだから当り前なんじゃない?
電卓、Javaとかで検索してみたらいろいろヒットすると思うぞ。
>>906
一体どういう処理をしてるんだ?

二回目の演算で左辺に来るのは直前の計算結果だぞ。その辺はOKか?
>>909
左辺じゃないや・・・第一引数?
>>910
いや、左辺
912デフォルトの名無しさん:02/08/20 01:40
age
914デフォルトの名無しさん:02/08/20 07:46
あげ
JFrameとFrameはどう使い分けるべきなんでしょうか?
JFrame(or Frame)のメリット、デメリットとかありましたら教えて下さい。
>>915
swingとawt
917デフォルトの名無しさん:02/08/20 12:45
swingで電卓作成,textFieldを上部に1つ作成(計算過程と結果を入力するため)
JButtonを0〜9+,-,=作成(とりあえず+,-だけで),そして配置,windows付属の電卓
みたいに+,-を押すごとに合計結果がtextfieldに表示されるようにする。
イベント処理がわかりません。
 public void actionPerformed(ActionEvent e){
for(int i=0;i<10;i++){ //0〜9までボタン作成
if(e.getSource()==b[i]){
str=Integer.toString(i);
t.setText(str);       //押されたボタンを表示
}

   if(e.getSource()==b[10]){    //+が押された時
str=t.getText();
kazu=Integer.parseInt(str);  
goukei=goukei+kazu;

str=Integer.toString(goukei);   
t.setText(str);
flag++; //通常は0で初期化されていて+が二回以上おされたら増加,
}

if(e.getSource()==b[11]){   //−の処理
str=t.getText();
kazu=Integer.parseInt(str);

goukei=goukei-kazu;

str=Integer.toString(goukei);
t.setText(str);
}

if(e.getSource()==b[12]{       //イコールの処理
if(flag==0){         //+が一回押されたときだけとってくる
str=t.getText();
kazu=Integer.parseInt(str)+
}
      str=Integer.toString(goukei);
t.setText(str);
flag=0;
}
入力:処理

123:表示
+:今表示している数字を変数aに、+フラグオン
456:表示
-:変数aと今表示している数をフラグに従った演算子(ここでは+)で演算し、結果を変数aに。-フラグオン

こんな感じでしょ。
920デフォルトの名無しさん:02/08/20 13:01
>>919
ん??
>>917
まずは>>1を読め。

話はそれからだ。
もう疲れた。
しつこい。
>917
てか、これで2桁以上の数字の表示はできるのか?
>>923
それ修正しようと思ったらフルスクラッチ並みに面倒。やめとけ。
925デフォルトの名無しさん:02/08/20 15:03
パネルの枠付けは出来ないものでしょうか?
サイズ決めてもどのへんまで広がってるのかわからないので
>>925
そのためのrectです。
>925
パネルの内側に対する枠付けなら
PanelオブジェクトのpaintメソッドでdrawRectとか
J2SE v1.4の正規表現って使いにくくない?
>>928
どう?
>>929
??
931925:02/08/20 15:43
なるほど、drawRectで長方形を引くのですか
ドモサンクスです
932925:02/08/20 15:55
drawRectで囲んだらパネルの中に書いていた文字などが消えてしまいました・・
枠を先に書いてからパネルの中身を書くのでしょうか?
ソースは?
934デフォルトの名無しさん:02/08/20 17:13
JTableのセルにJSliderを貼り付けるってできますかね?
TableCellRendererだとJSliderの表示すらしてくれなくて。
>>928
使いにくいんで私はつかうのやめました。なんであんなに使いにくいんだろうか?
>>935
どう?
>>929>>936 はキチガイなので放置。
>>928=>>935=>>937

わかりやすいな。
939935:02/08/20 18:03
>>938
私は、 >>928でも>>937でもありません。

>>929>>936>>938 は、Java正規表現が大好きなのか?
>>939
話してる程度が一緒だよ。
非常に低レベル。
しょうもない愚痴ならICQとかでやってくれ。
ここは情報を交換するための物だよ。

>>935が情報だというのなら情報工学の基礎から勉強し直した方がいい。
どんなところがどんな風に使いづらくて、どんなだったらいいのか、と書けば有益な情報交換が出来ように。
煽りだけなら(・∀・)カエレ!!

ちなみに、パフォーマンスを無視していいならString#replaceAll()/replaceFirst()っていう
ユーティリティメソッドが用意されてる。
944デフォルトの名無しさん:02/08/20 22:23
>934
できます。
TableCellRenderer で。
>>942
>>935 は情報には見えない。単なる主観でしょ。
946デフォルトの名無しさん:02/08/20 22:42
>>943
どこがどう使いやすいのか教えて下さい。
>>943
Perl のような使い方をしたい。できるの?
>>947
String#replaceAll()じゃ不満ということ?
JavaはPerlじゃないんだから、「Perlのような」では広すぎると思うが・・・
org.apache.oro.text.perl.Perl5Util
>>947
a ~= s/^ahoka$/nanda dadano ahoka/g;

とかやりたかったの?
もちろん出来ないよ。こんなPerlの方言。

これだけでJavaの正規表現を否定したの?
ここまでいくと中傷だよ。

まぁ、>>939はキチガイだから放置しなよ。
952デフォルトの名無しさん:02/08/21 00:26
厨房な質問ですまそ。
Javaのメソッドやライブラリが多くて全部覚えきれないけど、
みんなどの程度覚えてるの?
また、これだけは覚えておけってところある?
>>952
気が付いたら必要な物は頭に入ってる。後各種IDEの補完機能。
とにかくリファレンス片手にプログラム書きなされ。
954952:02/08/21 00:30
>>953
やっぱりプログラム書きまくるのが一番ですね。
どうもありがd
955デフォルトの名無しさん:02/08/21 04:26
>>932
枠が書きたいの?
ふつうはjavax.swing.JComponent#setBorder()せんか?
へー あの正規表現を使うの面倒だと思っている人少ないんだな。ちょっとびっくり。
StringBuffer の delete , insert , append は使いやすいが、
Pattern と Matcher を作って、それを replaceAll かけたその結果が、また別の String に入る。
ってのが面倒だと思うよ。

StringObject.replaceALL(oldText, newText); と簡単に扱いたいものだ。

>>943
> ちなみに、パフォーマンスを無視していいならString#replaceAll()/replaceFirst()っていう
> ユーティリティメソッドが用意されてる。

プッ
Java マンセー野郎には、Javaの文句は禁止だな。全部使いやすいと思え!
>>952
とりあえず http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html に目を通しておいて、
あとは、あっあんなのあったっけなぁって思ったときに再びそこをみて使えばいいんじゃない?

全部あたまに入っている必要はないと思う。
>>956
ああ、Perlの正規表現すら使いこなせてない人か。
複数パターンが欲しい物も世の中マッチ文字列が欲しい局面もあるんだよ。
>>950
>a ~= s/^ahoka$/nanda dadano ahoka/g;
これは、
a = a.replaceAll("^ahoka$", "nanda dadano ahoka");
とは違う?普通に出来るけど。
$を行末にマッチさせたかったら、Pattern/Matcher使わないとダメのようだ。

>>956
>StringObject.replaceALL(oldText, newText); と簡単に扱いたいものだ。

StringObjectってのは何?↑が
newText = oldText.replaceAll(正規表現, 置換文字列);
に比べて大幅に使いにくい、とはどうしても思えないんだが・・・

Pattern p = Pattern.compile("^ahoka$");
a = p.matcher(a).replaceAll("nanda dadano ahoka");
これはまぁPerlに比べたら「使いにくい」という気持ちもわかるが。
それとも\\エスケープの話かな?
>>961
> StringObjectってのは何?

StringObjectくらい調べとけ
http://www.google.com/search?q=StringObject&hl=ja&lr=lang_ja

それができないならマターリしろ。
964961:02/08/21 10:39
煽りは放置で
>>964 = >>961

んじゃ質問はするなおまえ
966デフォルトの名無しさん:02/08/21 10:43

質問しといて、つっこむと放置だってさ・・・。めでたい脳みそだな。
>>966
ところでだれお前?
>>961
> Pattern p = Pattern.compile("^ahoka$");
> a = p.matcher(a).replaceAll("nanda dadano ahoka");
> これはまぁPerlに比べたら「使いにくい」という気持ちもわかるが。

使いにくい。けど、自分で正規表現を組むことを考えたら、それよりはマシ。
ってところだね。

なにがなんでもreplaceAllを使う必要もなく、StringBuffer の delete , insert ,
append と、適材適所で使えばいいだろう。

ってことだね。

>>960
> ああ、Perlの正規表現すら使いこなせてない人か。

のようなつまらない妄想で人を煽るのはやめろな。

969デフォルトの名無しさん:02/08/21 10:47
>>967
誰なのか聞かないと発言できないのか?(わら
>>967
放置しろって。
971961:02/08/21 10:51
>>956が「StringObject」ってのをどういう意味で使ったのか?っていう意味
流れを見たらわかる。
Stringクラスのオブジェクトじゃ意味が通じないだろ。
956には検索文字列も置換文字列も無いのに。
理解できないなら黙っとけよ
>>971
理解できているのはあなただけな罠。

何言ってんだかw
このまま1000まで埋まりそうだね。
もう話は解決していると思うように見えるが続くのか?>973
>>974
知らない。ほっとけばいいね。
誰か論点の違いを指摘して、この粘着を何とかしてやれよ。
>>976
>誰か論点の違いを指摘して
ここはJavaのスレッドであり揚げ足取り指摘練習場ではありません。
粘着である>>976は直ちに去るべきです。















次のご質問をどうぞ・・・・・・・・・・・・・・・・・
979961:02/08/21 11:02
>>968
>使いにくい。けど、自分で正規表現を組むことを考えたら、それよりはマシ。
>ってところだね。

これは、自分で正規表現ライブラリを作ったら、という意味?
自分で作っても同じような構成(Pattern/Matcher + ユーティリティメソッド)
になると思うんだけど。

JakartaのPerl5Util#substitute()みたいに、「Perl文法のエミュレート」でもしない限りは
一番妥当ではない?

新しい質問は次スレでおねがいします。


【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1029774594/
ちょっとした冗談だったのに・・・。
厨房な質問で申し訳ありませんが、

String は長さが長さが変更出来ない、StringBuffer は、可変長って本とかに書いてある
んですけど、 replaceAll は、String で使えるのはなぜですか?(あれ?StringBufferだけですか?)
>>982
結果を別のStringオブジェクトに差し替えてるんじゃないの?

戻り値っしょ。変換結果。
>>983
Stringをいじるのではなく、別のStringに新しい文字列を入れているんですね。

ありがとうございました。あたまがすっきりしました。
985961:02/08/21 11:16
>>979
>>使いにくい。けど、自分で正規表現を組むことを考えたら、それよりはマシ。
>>ってところだね。

>これは、自分で正規表現ライブラリを作ったら、という意味?

「もし自分で正規表現ライブラリを作ったらもっと使いやすいものが作れる。という意味?」
に訂正。

考えたらOROのPerl5Util#substitute()もユーティリティメソッドだから結局同じ構成だった。
Jakarta RegExpも同様。
シツコイな。
>>986
自分が一番偉いと言うことを周りに証明しないと自分の価値を見いだせない方でしょう。
988961:02/08/21 11:21
純粋に疑問だから聞いてるだけ。
煽りしか出来ないなら消えろよ
989次スレ案内:02/08/21 11:24
【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1029774594/l50
>>988
もう終われっていう空気になっているときに、ズルズルと話を続けるあなたにみんなが
あきれているようにみえるよ。消えるのはあなたのほうですよ。














次のご質問をどうぞ・・・・・・・・・・・・・・・・・
>>991
このスレ埋めたいのですが良いでしょうか?
>>992
なにか質問する?

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

【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1029774594/l40

996961:02/08/21 11:27
要するに十分納得のいく構成、っていうことか。
何か他に画期的な手法があるのかとオモタヨ。無いならOK



【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1029774594/l30

998
埋め立てsage。

>>990
大丈夫、時間が解決してくれるよ…新スレになればきっといなくなってくれるから。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。