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

このエントリーをはてなブックマークに追加
過去ログ、関連スレ、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

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

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc2.2ch.net/hp/ */
2うんこ
3ゲーット
4げっと
Java 2 Platform, Standard Edition, v 1.4.2 (J2SE) のダウンロード
http://java.sun.com/j2se/1.4.2/ja/download.html

Java (TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
Java 2 プラットフォーム SE v1.4.0
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
Java言語規定 目次
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
早速しつもんだ、このやろう。

10からカウントダウンするのを表示させようと思うのですが、
スレッドを使わずお手軽に処理を一時停止する方法はありますでしょうか?
Thread くらいお手軽なもんないだろ
それごときなら Timer の方がかえって面倒
>>7
当方、Eclipseを使ってますがthread.sleepはSunが推奨してないらしく
コンパイル、実行共に問題は無いのですが黄色いびっくりマークが表示されててなんか気持ち悪いんです。
他の方が書いたソースなんか見てもも.sleepを使ってるようですし。Sunが推奨してるやり方ってあるのかなーっと。
>>8
Thread.sleep
というわけで、このスレもおなじみの展開で進行いたします
教えてください
Win2000、MS-JVM、VJ++6.0という環境で
アプレット上にjava.awt.Choiceを配置して複数の選択項目から1つ選ぶ
サンプルプログラムを作っているのですが
選択項目を9個以上addItemさせると選択リストに
スクロールバーが表示されるてしまいます。
選択リストの表示項目数はどうやって指定するのでしょうか?

私の記憶が正しければ方法はない
1311:04/06/09 15:49
>>12
そうですか…
ありがとうございます。
14デフォルトの名無しさん:04/06/09 17:56
同じディレクトリ内に2つのクラスappとprinterを作りました。
appクラスからprinterクラスを呼び出すといったものです。
本来importステートメントを使わないといけないと思うのですが、
使わなくてもコンパイルできました。なぜ通ったのか気になります。
ご教授ください。
>>14
同じパッケージ内ならimport不要だよ
16デフォルトの名無しさん:04/06/09 18:04
なるほど。では、ひとつ上の階層ではimportが必要となると
いうわけですね?
上でも下でも。
18デフォルトの名無しさん:04/06/09 18:07
>>16>>15に対するレス
×ひとつ上の階層
○ふたつのクラスが違う階層にある場合

すいません。
19デフォルトの名無しさん:04/06/09 18:26
AppletでSWINGのレイアウトマネージャを使用してブラウザにコンポーネント
を貼り付ける方法はないですか?
AWTだとできないこともないみたいなんですが・・・。
MSVM だとだめ。ネスケの古いのもだめ。
できるのは 1.2 以降対応の場合。(swing は 1.2 以降だから当然)
JRE のおまけで plugin が入ってるなどすればOK。
2114:04/06/09 19:10
試しに違うディレクトリに先のクラスを設けコンパイルしてみました。
もちろんimportを使ってです。するとシンボルを解釈処理できませんと・・・
結論として違うディレクトリにあるクラスを参照する場合は必ず
CLASSPATHや-classpathを使わないといけないのですか?
>>21
アクセス指定の問題と思われ。
>>14
毎度毎度の質問ですね。
>違うディレクトリ
どこにどう? パッケージとディレクトリ階層のことはちゃんと分かってやってるんだよね?

>CLASSPATHや-classpathを使わないといけないのですか?
クラスパスは、必ず要る。指定しないときは、"." を、君が(いわば積極的に)指定したとみなされる。
どのクラスパスが有効になってて、それ+用意したディレクトリのつながりが、
用意したソースの package 宣言と合致してるかどうか、意識してコンパイルしないとダメ。
加えて、必要なら sourcepath も指定。
jarって早い話がディレクトリに放り込まれたclass群のzipだからね
importはつまりは指定したディレクトリを参照の候補にするという意味に置き換わる
importを使わない時のディレクトリはどこか、つまりはカレントと
2514:04/06/09 20:29
>>23
>パッケージとディレクトリ階層のことはちゃんと分かってやってるんだよね?
パッケージとはクラスファイルの集合のことですよね。
ディレクトリ構造も理解はしていると思います。

>どこにどう?
C:\Java\app
C:\Java\sub\printer

あとpackage宣言ですか?まだ独学初日なものですからそこまでいってないです(恥
単に二つのクラスを作り同ディレクトリ内と、そうでない場合でコンパイルして
みての疑問です。
コアパッケージの扱い方はjava.lang.*とかでC系のincludeに似ているのでわかるの
ですが、Javaの場合複雑なので(ry
>パッケージとはクラスファイルの集合のことですよね。
>ディレクトリ構造も理解はしていると思います。
>あとpackage宣言ですか?まだ独学初日なものですからそこまでいってないです(恥
理解してないっぽいな。
それぞれを個別に、断片的に理解してたってしょうがねーんだぜ? 2者の関係のことを聞いてんだぜ?

>C:\Java\app
>C:\Java\sub\printer
それをそれぞれでどう呼び合って、どうコンパイルしてるんだ?
(先回りで1つ聞いておく。君の状況に合わなくて意味が分からなかったら無視していい。
 「App のソースに Printer を使うようなことが書いてあって、
  Printer.class (.javaじゃない) がどこにあるのか、コンパイラはどうやって知ると思うんだ?
  ローカルシステムのディレクトリ構造全部探すのか?」)

それと、クラス名は大文字から始めれ。混乱の元だ。
多分 import Printer; とかやってんでしょうなぁ・・・

つまりですね、「ディレクトリを分ける」からには動機があるわけなんです。
君の動機がなんなのか知りませんけど、
普通の人は「あとで使い回しする」「違う仲間だから」ゆえに「別々に管理したい」となるわけで、
Java はそのために package ちう概念を提供して、開発時や実行時のディレクトリ構造と連携をとってるんです。

上に述べたような動機があるなら package について勉強すべきだし、
そうでもなくて今すぐ勉強するのもしんどいなら、ディレクトリ分けなんてやめなされ。
java.awt.ScrollPane#setScrollPosition(int, int) がうまく動きません。
ペーンの中にキャンバスを入れたときに、
キャンバスにおける座標 P が画面に見えるようにスクロールしてほしいんですが、
なにやら挙動不審な動作を示します(法則性はあるようなないような)。
このメソッドを使うときの注意点などありますでしょうか。
ペインと呼ぼうw
ション・ペーン
別におかしくならないよ。現象の分析が甘いんじゃない?
・右、下のスクロールバーの状態もおかしいのか?
・Canvas の PreferredSize との関係はどうか?
・paint 方法に問題はないか?
 例えば、再描画が必要な部分しか clip されないようだが・・・(ちょっと確認しただけで、うろ覚え)
3228:04/06/09 21:49
>Canvas の PreferredSize との関係はどうか

CanvasをsetSize()したあとにScrollPaneをdoLayout()したところ
とりあえず指定した座標が画面に見えるようになりました。m(_ _)m
ただ、その見えた時のスクリーン座標が一定しません(端っこの点を指定してるわけでもないのに)。
例えば必ずペインの中心に持ってくる方法はありますでしょうか。
>ただ、その見えた時のスクリーン座標が一定しません(端っこの点を指定してるわけでもないのに)。
>例えば必ずペインの中心に持ってくる方法はありますでしょうか。

いまいち意味がわからん。
きれいに絵かいてうpすれ。
おらー14じゃないけどJava習得を目指す初心者だす。
二人のやり取りを見てて混乱しちゃったんだけど、ディレクトリ分けする以上
パッケージ宣言しないといけないと思ってたけど違うのかな?
まーオラがディレクトリ分けするようなレベルのプログラムを組むのはまだ先なんだわさ。
CUIを用いてディレクトリの移動やファイルの実行をしてみると直ぐ分かるよ
自分のディレクトリからは他のファイルをそのまま実行できるけど、そうでない場合はルートから辿ることになる

じゃあそのルートって何処を指してるの?
それはクラスパスに設定されたディレクトリや圧縮ファイルを纏めた、仮想アーカイブディレクトリのこと。
パッケージと呼ばれるものは、さらにその中にあるディレクトリのことで、クラスとはファイルのこと。

だから同じディレクトリ内のものにはそのままアクセスできるけど
ex) prompt> sample.out
     > run...

ディレクトリが変わるとルートから指定(import)してあげなくちゃいけない
ex) prompt> sample2.out
     > file not found
     prompt> /mypackage/sample2.out
     > run..
あ、こっちはimportじゃ無くてルートから参照してるか
ex) prompt> /mypackage/sample2.out
     > run...

import版はこっち
ex) prompt> cd /mypackage
     prompt> sample2.out
     > run...
プロンプトとクラスパスやimportとの違いは
クラスパスは複数のディレクトリをひとつのルートと仮想できること。
importは複数のディレクトリをカレントディレクトリと仮想できること。

この点。
>>35,36,37

激しく自己満足のかほり。ww

スラッシュ区切りのUNIX的言い回しで、import されるパッケージとその階層を
ディレクトリの階層に置き換えて説明しているらしい。
out っていう拡張子はUNIXの世界の実行形式を表してるのかしら?

> プロンプトとクラスパスやimportとの違いは

プロンプト???ハァ?
自分で勝手に持ち出した用語「プロンプト(prompt)」との違いを語られてもねぇ・・・。
普通にわかりやすいけどな
>>38
なんか嫌な事でも有ったか?
少なくともプロンプトってのはおかしいだろ。シェルならわかるが。
Winユーザが無理やりLinux風にしたんじゃね?
>自分のディレクトリからは他のファイルをそのまま実行できるけど、そうでない場合はルートから辿ることになる

PATHにカレントディレクトリを含めていればな。中途半端なことを言うな。

実行ファイルはPATHからたどれるものが実行される。
クラスファイルはCLASSPATHからたどれるものが使用される。

実にわかりやすい。
誰かうまく纏めろよ
>>43
PATHって何ですか?
46デフォルトの名無しさん:04/06/09 23:29
↓↓↓↓↓まとめ↓↓↓↓↓
基本中の基本なんだからちゃんと勉強しろ
Javaの欠点がなんとなく分かってきたな
SwingだSWTだ言ってもここらへんが全然ビジュアルじゃねぇw
>>48はNetBeansやJBuilderインストールできないお子さま
50login:Penguin:04/06/10 00:16
>>48
何がビジュアルなんだ?その考えで言えば?
5128:04/06/10 00:27
jarファイルと同じディレクトリにあるテキストファイルを読み込むアプレットを作り
ブラウザで開いてみたところ、
java.security.AccessControlException: access denied (java.io.FilePermission xxx.txt read)
という例外が出て読み込めません。
同じディレクトリのファイルは読み込めると記憶していたのですが、違うのでしょうか。
あ、よそのコテつけたままでした。
>>50
jarやディレクトリをドラッグアンドドロップすれば関連付け終了とかだな
>>51
ブラウザ上で動くアプレットは、でふぉるとではソケット開くことも
ファイルシステムにアクセスすることもできません。
「サンドボックス制限」でぐぐりゃれ。
>>51
現在のカレントディレクトリから相対的に。
なんでクラスの名前が長ったらしいのかよく分かりません
#define のような置換機能が無いのは致命的欠陥だと思います
strutsで質問させてください。
ビジネスロジックのエラー(検索結果が1件もなかった、登録しようとしていたデータが既に登録されていた等)
と、FormのValidaterでのエラーの表示方法を分けるにはどうしたらよいでしょうか。

例えばFormのValidaterでのエラーはポップアップのみで表示し、
ビジネスロジックのエラーはポップアップと画面の上方に表示するなどです。
よろしくお願いいたします。
>>55
違います。*クラスパス上*からです。
アプレットだとセキュリティ上制限がありますが。
5914:04/06/10 01:08
毎度毎度すいません。
結局CLASSPATH環境設定しました。とりあえずコンパイルできましたが、
Exception in thread "main" Java.lang.NoClassDef found Error:app"
と出て実行できません。
>>56
最近はどの言語でも「何を表しているのか一目でわかる名前をつける」のが風潮です。
それこそ冗長と思えるくらいでちょうどいい。

>#define のような置換機能が無いのは致命的欠陥だと思います
CPPなり勝手に使ったらどうですか。
>>59=14
わけもわからず適当にCLASSPATH設定したんだろ。
CLASSPATHとコンパイル後のクラスファイルの生成される場所とが食い違ってる予感。
62デフォルトの名無しさん:04/06/10 01:13
>>61
mainから呼び出される側のクラスファイルの場所をCLASSPATHに設定すれ
ばいいんですよね?
>>57
どういうエラー制御をしているのかわからんが、俺なら
Validatorでのエラーはinput元に返す。
Actionのinput属性を指定しておけば済む。
ビジネスロジックで起こったエラーは別のActionにforwardさせる。
global-exceptionでもいいかも。

> 例えばFormのValidaterでのエラーはポップアップのみで表示し、
> ビジネスロジックのエラーはポップアップと画面の上方に表示するなどです。

validate属性をfalse。html:javascriptはそのまま。
ビジネスロジックで起こったエラーはActionErrorやActionMessageなりをセットして
input元へ遷移するActionを呼び出して、jspで表示させる。
ポップアップもさせたいならjspでJavaScript部分を動的に書き換える。
すまんが、そのぐらいしか思いつかない。
>mainから呼び出される側のクラスファイル
main の入ってるクラスもだよ。
呼ばれるクラスが呼んでるクラス、それが呼んでるクラス、とにかく全部。
>>51
>>54-55 に付け足してあげる。

アプレットが置いてあるサーバへの、リクエストとしてのアクセスはできる。
特に、HTTP アクセスでファイルを GET することはできる。
アプレット自体もクライアントから要求されて、サービスが応答して送ってるんだから、
おなじサービスを活用しない手はない。

もしアクセスしたいファイルが、内容の固定された読み込み専用ファイルなら、
jar 内につっこんで Class#getResource するのがおすすめ。
さもなければ http:// 〜 と URL を指定して読み込む。(ただし、ユーザがブラウザにURL指定すれば当然中身は見えちゃう)
書き込みは、書きこむ CGI を GET/POST するとか、書き込むことのできるサービスを鯖がわに用意しなければならない。
間違っても、サーバに対して File インスタンスでのアクセスはできない。

自マシンにサーバ立てないでローカルの html を直接ブラウザ開いてるなら・・・アプレットの使い方間違ってるよ。
アプレットにする意味がない。
6614:04/06/10 11:49
とりあえず思った通りの動きをしてくれました。
でもまだ疑問が残ったまま・・・
カレントディレクトリにあるクラスはCLASSPATH設定しなくても
いいはず。でも今回みたいに他のディレクトリの他のクラスを呼ぶときは
CLASSPATHが必要なのか不思議。
>>66
不思議でもなんでもない。仕様。

>>他のディレクトリの他のクラスを呼ぶときは

他のディレクトリはカレントディレクトリじゃないじゃない。
そのクラスがどこにあるかJVMは知らないし、指定されたところ(CLASSPATH)以外は探しに行かない。
6814:04/06/10 12:05
>>67
今回はカレントディレクトリにあるクラス(main側)を見て
CLASSPATH指定されたPrinter(呼び出される側)を参照したわけ。
なぜmainクラスのディレクトリにもCLASSPATH指定が必要か納得いかない。
ちょっと言葉の定義をしてみる。
クラスパス=JVMがクラスを探す範囲。デフォルトはカレントディレクトリ。
環境変数CLASSPATH=クラスパスを上書きする一手段
環境変数CLASSPATHを設定しない場合はデフォルトのクラスパスである
カレントディレクトリが検索範囲となるだけであって、クラスパスという
ものが設定されていないわけではない。
だから環境変数CLASSPATHを指定するとデフォルト値のカレントディレクトリ
が上書きされるので、上書きするCLASSPATHの値にカレントディレクトリを
含めないとカレントディレクトリがクラスの検索範囲から外れてしまう。
7214:04/06/10 12:31
>>69-70
おぉ。なるほど。理解しました。
しかし、CLASSPATHを指定しカレントディレクトリが上書きされてしまうの
であればコンパイルも通らないのでは。
>>72
javac の sourcepath と classpath は別。
つーかよ、自分が使うコマンド (javac, java) は、マニュアルくらい読んでから使ったらどう?
本は嘘や誤解を招く書き方であることもしばしばだし、
ひとまず sun が提示している内容のうち、理解できる分は理解しとかないといかんだろ。
>>72
>>69-70を100回読め
>>72
オプションをどういう風に指定したかは君しか知らんのだ。
どうしてうまくいったか、何故うまくいかないかなどを分析できるのは君だけだ。
それをろくにすることなく
>しかし、CLASSPATHを指定しカレントディレクトリが上書きされてしまうの
>であればコンパイルも通らないのでは。
と疑ってかかるような奴は成長しないし、
少なくともそういう書き方をしてる分には次第に相手にもされなくなる。
77どうすんの?:04/06/10 13:59
どうも、初心者でっす。基本的な質問ですみませんが教えてください。
携帯のアプリで3dゲームつくりたいのですが、
必要最低限用意する環境ってどんなものですか?
エミュレータとj2seはありますがそれ以外にjava3Dって必要なのですか?
また、DirectX使ったほうが良いとか言う話は聞いたことがあるのですが、
DirectXってwin専用APIなのではないのかと思うのですが?
何か認識が違うようでしたら教えてください。
Java3D は PC 用とでも思ってくれ。
Win では DirectX を使う奴を使えばそりゃ高速だな。(ここは JNI を知ってれば話は早いんだが・・)
携帯の 3D は、似てるだろうが、それとは異質のものとしてとってくれ(どっちもろくにやったことない)。
携帯のクラスライブラリをひろってきて、コンパイルが通ればそれでいいんだ。
エミュレータと一緒に手に入ってないか?
これ以上は専用のスレにでも行った方がいい。
79どうすんの?:04/06/10 14:25
>>78 わかりました、ありがとうございました。
javaって死滅するんでしょ?
なんで使ってんの?
死滅してからじゃ使えないから
javaの言語仕様が臭ってることに早く気づけよ >>all
83デフォルトの名無しさん:04/06/10 16:07
CSVのreadでご教授ください。
過去ログ等検索していたのですが
ttp://www.wakhok.ac.jp/~tomoharu/Java/csv/
こちらのサイトの「csv_1_0_1.zip (35,706 bytes) 」をそのまま利用しCSVのreadをしみたところ
1行の項目数が上手く取得できずに困っています。

test.csvの内容(実際にはセルごとに内容が区切られているので「,」は入っていません)
11,12,13
21,22,23,24
31,32

実行内容
FileReader f_read = new FileReader("test.csv");
BufferedReader b_read = new BufferedReader(f_read);
String line;
int i = 1;
int j = 0;
while((line = b_read.readLine()) != null) {
CSVTokenizer getCSVString = new CSVTokenizer(line);
//項目長チェック
System.out.println("line = " + line);
System.out.println("length = " + getCSVString.countTokens());
}
f_read.close();
8483:04/06/10 16:08
・・・すみません。改行が多いと言われてしまいました。
出力結果
line = 11,12,13
length = 4
line = 21,22,23,24
length = 4
line = 31,32
length = 4

予想としては
line = 11,12,13
length = 3
line = 21,22,23,24
length = 4
line = 31,32
length = 2
となると思っていたのですが、何故lengthが全て「4」となってしまうのでしょうか?
java使いの先輩方!どうかご教授くださいm(__)m
>(実際にはセルごとに内容が区切られているので「,」は入っていません)
どういう意味?
, が入らなきゃ CSV とは言わないんだが。
出力結果が
line = 11,12,13,
length = 4
line = 21,22,23,24
length = 4
line = 31,32,,
length = 4
なら分かるんだがなぁ。
8683:04/06/10 16:26
早速レスありがとうございます!
>(実際にはセルごとに内容が区切られているので「,」は入っていません)
はexcelで見たときはという意味です。わかり辛くて申し訳ありません。

出力結果は85さんのおっしゃるとおり
最後にカンマが入っていました。出力結果をコピペしなかったので書きもれていました。
重ね重ねすみません><
csv : Comma Separated Value
・デバッグ前に自分の手作業処理、自動処理も 1step ずつ確認しましょう
・入力・出力は必ずコピペしましょう。つかまずよく見ましょう

2点目はパソコン初心者の心得ですよホンマ
8983:04/06/10 16:38
87さん、88さん
ご指摘ありがとうございます。
たび重なる不手際申し訳ありません。
顔を洗って出直してまいります。
スレ汚し失礼いたしましたm(__)m
90デフォルトの名無しさん:04/06/10 20:12
JUnitについての質問です。
JUnitのインストールと起動確認まではできました。
そして、java -classpath d:\junit3.8.1\junit.jar junit.swingui.TestRunner "テストしたいクラス名"
を実行してみたんですが、Runボタンを押しても"Class not found "テストしたいクラス名""と表示されるだけでテストができません。。
何か設定とか必要なんでしょうか?
それじゃテストしたいクラスにクラスパスが通らないだろう。
JUnit以前に>>2あたりを勉強しな
92デフォルトの名無しさん:04/06/10 20:34
開いた瞬間にブラウザが一瞬振動させて見た人をちょっとびっくりさせるようなHPを
つくりたいんですがそういうことって出来ますか?
XP 管理者権限でログイン
JAVA 2 SDK SE v1.4.2_04をウィンドウズ上からインストール中
インストールシールド展開後、インストールに入るのですが
JAVA(TM)仮想マシンが実行中なためJAVA(TM)UPdateをこのマシンにインストールできませんと出ます
起動直後、最小限のアプリケーション構成でインストールしてみましたが上記のような状況でインストールが正常に完了しません

どなたかご教授頂けると大変助かります。
Java|←――――――銀河系の直径――――――→|JavaScript
>>93
JAVA(TM)仮想マシンが実行中なためです。
>95
ど真ん中直球的なご回答有難う御座います。
ウィンドウズ上で動作するJAVA仮想マシンを用いるプロセスをgoogleで探しまして
該当すると思われるプロセスを殺して再度インストールしてみましたが同様の症状です。
クライアントに障害があるとも予想できたので3度程再DLを試してみましたが改善されませんでした。

宜しければヒントだけでも頂ければ大変助かります。
>>96
あたまわるいんですか?
>>96
右下にコーヒーカップでも表示されてないか?
Java Plug-in1.3.1_02 だとコーヒーカップでしたっけ。<タスクトレイのアイコン

そもそもインストールが完了してないのでアイコンは表示されていません。申し訳ないです。
中途半端な状態のものがあるかもしれないので Java 関連をアンインストールし
エクスプローラーから java*.* を検索し
関係ありそうなのをかたッ端からフォルダごと削除しちまえ
もちろん at own risk で
10190:04/06/10 21:46
>>91
わかりました。
>>2に逝ってきます
早いレスありがとうございました
質問者に対するエラそうな言い回し。。
読んでてスッキリするね(w
まあジャパグラマの品質なんてそんなもんよ
104デフォルトの名無しさん:04/06/10 22:22
クラス内に日付をメンバとして持たせようとして、実験的にこんなプログラムを組みました。

import java.util.*;
import java.text.*;
class Main {
  public static void main(String[] args){
    Calendar cal = new GregorianCalendar(2004, 6, 10);
    Date date = cal.getTime();
    DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
    System.out.println(df.format(date));
  }
}

しかし実行結果は

>java Main
>2004/07/10

なんで(2004, 6, 10) が、2004/7/10 になっちゃうの?



それから、上記のように、クラスメンバにDate か Calendar で日付を保持したいのですが、

文字列(2004/6/10) → 日付(Date か Calendar ?) の変換をシンプルに出来る方法はありますか?
上記の方法だと、文字列を精すうちに分解して、Calendar のコンストラクタに渡さなければなりません。
105104:04/06/10 22:23
クラスメンバではなく、インスタンスメンバ、でした。
106デフォルトの名無しさん:04/06/10 22:24
Antのbuild.xmlで下記のように実行タスクも記述しているのですが,
実行時に引数を持たせるにはどんなタグを使ったら良いのでしょうか?
宜しくお願いします.

<target name="test" depends="compile">
 <java classname="TestClient" fork="yes" dir=".">
  <classpath refid="classpath"/>
 </java>
</target>
108106:04/06/10 22:34
申し訳ありませんでした.一つのタグにまとめて
<arg value="add 1 2" />
のように書いたのが敗因でした.以下のように書いて成功しました.

<arg value="add" />
<arg value="1" />
<arg value="2" />
>>107
それ見てるんだけど、ややこしい・・・。
>>104
Calendar では、月は0〜11だよ。
112デフォルトの名無しさん:04/06/10 22:56
IEを使用しているときに、CookieクラスでメソッドgetValueを使用しても
Cookieの情報が取得できないのですが、このときIEの設定って何か関連が
あるのでしょうか?
113104:04/06/10 22:58
>>110 >>111

うーん、やっぱ「扱いにくい」というのが結論なのかな。
ラッパクラスか、サブクラスで、使いやすくカスタマイズしないとメンドクサソウ・・・
何がどう結論なの?今時Dateクラスの月が0からってのは常識なのだが。
欧米人は月を○月といった数字で考えないから、
0からはじまるインデックス的な考え方なのでしょうね。
月を数字で言うのってすごい違和感があるみたい。
曜日を○日目と言わないのと同じ感覚らしい。
月だけ0から始まるから混乱するというのもあるかもね。
こういう感じでやりたいんだけど、自分で作るのはナンセンスなのかなと。
SimpleDateFormat も、なんかちょっとややこしい気がする。。。理解力不足かな。

import java.util.*;
import java.text.*;
public class Main {
  public static void main(String[] args){
    Calendar cal = GregorianCalendarFactory.create("2004/6/10");
    DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
    System.out.println(df.format(cal.getTime()));
  }
}

class GregorianCalendarFactory {
  public static GregorianCalendar create(String s){
    int index1, index2, y, m, d;
    y = m = d = 0;
    try{
      index1 = s.indexOf('/');
      index2 = s.indexOf('/', index1 + 1);
      y = Integer.parseInt(s.substring(0, index1).trim());
      m = Integer.parseInt(s.substring(index1 + 1, index2));
      d = Integer.parseInt(s.substring(index2 + 1).trim());
    }
    catch(Exception e){}
    return new GregorianCalendar(y, m - 1, d);
  }
}
SimpleDateFormat#parse(String)
>>118
ありがとん。それそれ。それがほしかった。
リファレンスだと parse(String text, ParsePosition pos); ってなってて、
第二引数がなんかよく分からなくてめんどくさそうに思ってた。
文字列だけで変換してくれるんだね。
>>119
JavaDocも読めないか。
やめちまえ。
あまりにも馬鹿そうだからヒント教えてやる
applyPatternだ
今時というかJavaなんかないはるか大昔からだな。
まぁ、そういわんと。
初心者大歓迎なんだから。
>>117のように、自分で自覚していない初心者がいけないんだろう
月が0からというのは月が数字を扱う言語圏じゃないのも考慮してだろ
英語でも分かりやすいだろうし、日本語だって弥生如月〜等だしな
これらのローカライズした文字列配列に当てはめて使うようにできている

あとローカル環境の日付単純に扱いたいならgetinstanceでええよ
>>125
俺もそう考えたことがあったがそれでは曜日が1〜7である説明ができない。
>>126
たぶん嫌がらせのテンプレを思い出したw
12893:04/06/11 00:46
未だ未解決・・・
もう一台の方も同じ状況なんですよねー。導入でけつまずくなんて
正規のところからDLした?
>>128
ダウンロードしたファイル名は何?
とりあえずWindowsUpdateを全部当ててからやってみ。
Cとかperlでも月は0からだしなぁ
質問というか疑問なんですが、Javaってクラスとかメソッドとかものすごく多くないでしょうか?
独習Cを一通り読み終わりまして独習Javaを読みながら勉強しているんですが、
いわゆるJavaプログラマーの方々はこれらをほとんど覚えているんでしょうか?
独習Javaも400ページぐらいまで読んで残り100ページぐらいなんですが、
最初のほうに出てきたクラスやメソッドはもう覚えていません…orz
なんか先行きが不安です。

>>132
オンラインのAPIリファレンスとか使うから、後は用途ごとに調べる程度じゃね?
>>132
>>いわゆるJavaプログラマーの方々はこれらをほとんど覚えているんでしょうか?
読むんじゃなく実際にプログラム書くと自然と覚えちゃうよ。
ただ、暗記する必要は全くないよ。
Integer .parseInt() .toString()
String .trim() startsWith() endsWith() substring() length() indexOf()
StringTokenizer .hasMoreTokens() .countTokens() .nextToken()
Thread .start() .sleep()
InputStream .read()
OutputStream .write()
System.out .println() .print()

>>132
試しにおいらが暗記してるメソッドを思い付くだけ書き出してみたw
あとは「あーあのプログラムで使ってたなー」とか思い出して
過去に作ったソースを見返して使ってたりする。そんなもん。
>>135
少なすぎだろw
すみません、質問です。
宣言しなくても使える、SystemとかIntergerとか、これはJAVAのどのような規則で
宣言されているのでしょうか?
JAVAにはグローバル変数は存在しないと聞いたのですが…
Systemとプリミティブ変換クラスをランタイムが呼んでるんじゃないのかな
>>137
それはクラス名であって変数名ではない。別にグローバル変数でSystemってのがあって,
それを参照してSystem.out.println();とかやってるわけじゃないよ。
>>138
そこんとこもう少し簡単に…
>>139
あああ、なるほど、staticな関数や変数なら呼べますもんね!
解決しました。
ランタイムがJava.lang.*をインポートしてるってことやね。
143132:04/06/11 03:45
>>133-136
レスありがとうございます。
お言葉どおり今はあまり気にしないということで、
追々、使用頻度の高いものだけ覚えていくことにします。
JTabbedPaneを使ってタブブラウザもどきを作ってるんですが、
追加したタブに自動でフォーカスを移したいのですが、
requestForcus()を使っても移ってくれません。

JTabbedPane tab = new JTabbedPane();
tab.add( component1 , "最初に開いてるページ");
tab.add( component2 , "新しく開いたページ" );
↑この時点で新しいほうにフォーカスを移したのです。
何かいい方法ありませんか?
>144
追加したあとに、
setSelectedComponent(Component c)
を呼んでやればどおさ?
それか、
tab.setSelectedIndex(tab.getTabCount()-1)
するとか。
146144:04/06/11 05:28
>145
tab.add( component2, "新しく開いたページ");
tab.setSelectedComponent(compnent2);

ご教授の通り↑の様にしたらできました。
ありがとうございます!
TextFieldやTextAreaなどで\tの空白の長さを調整するにはどうすればいいでしょうか?
148デフォルトの名無しさん:04/06/11 07:25
>>143
クラス名やメソッド名を覚えようとする必要は全くないのだが。
どこらへんのクラスを使えば何ができるかだけ知っておけばいい。
>>147
java.awt.TextField とか java.awt.TextArea は
ネイティブコンポーネントに描画を任せてて、かつ、
タブ幅変更とかのメソッドは無いので調整できないはず。

javax.swing.JTextArea だったら setTabSize(int) とかでできるけど。
12進数っていったら常識的に0〜11じゃん。
「nヶ月後を求める」なんてソースを一度書いてみれば
1〜12というのがいかに扱いにくいか判るよん。

曜日が1〜7ってのがすごくムカツク、許せん。
+-1するだけではあるが。
月っていったら常識的に1〜12じゃん。
「n月を入力する」なんてソースを一度書いてみれば
0〜11というのがいかに扱いにくいか判るよん。
>149
そうでしたか…素直にSwingにして出直します。
ありがとうでした〜
>>152
そんなこと思うのはど素人だけだ。
コンピュータの世界で0〜11ではない月なんてほとんど無いぞ
>>152
アルファベットといったら常識的にABCDEじゃん。
QWERTYというのがいかに扱いにくいかわかるよ

・・・みたいだなw
>>154
>>150にしても>>152にしても、1足したり引いたりすることを扱いにくいといってるだけで、どっちもどっち。
そもそも1足したり引いたりすることを「いかに扱いにくいか」といってるのが、素人。
>>155
かなといったら常識的にあいうえおじゃん。
ぬふあうえというのがいかに扱いにくいかわかるよ。

かな入力の人ってほとんどいないな。
>>157
お前の知らないところにたくさんいるよ。マジで。
夜道でおそわれないように気を付けろ。
一世紀は 1〜100年、ひと月は 1〜31日
一日は 1〜12時ないし0〜23時
一時間は 0〜59分、一分は0〜59秒
かつ地域ごと国ごとに扱いも違う
仮に宇宙人が見たらおまえらバカかと思うんだろうか
>>154
DOSの更新日時では月は 1〜12。
gmtime で取ってこれる構造体は月は 0〜11 だが、日は 1〜31。
>>158
かな入力の人って、切れやすいんですね。
162デフォルトの名無しさん:04/06/11 10:37
Stringクラスのオブジェクトstrがあるとします。
スレッドAがstr.length()メソッド内を実行しているときスレッドBがstr.length()を呼び出しても大丈夫でしょうか?

length()はこの場合文字列長を得るだけなので、特に問題はなさそうですが
実はlength()メソッドの中で内部変数に値を書いて、読み出しているかもしれませんよね。

これがStringBufferクラスのappend()メソッドを複数スレッドで呼んだらどうでしょう。
バッファに文字列を追加して、現在の文字列長を読み出して値を足しこみ、また文字列長を書き出す。
という操作が内部であると思うのですが。


Stringクラスのドキュメントにはスレッド共有するなとは特に書かれていないので
オブジェクトをスレッド共有で使ってもいいのでしょうか?

また、新たにクラスを作る場合はクラス内でスレッド競合が起こらないように作る必要があるのでしょうか?
新たに作るクラスがスレッド競合に対応していなければ、呼び出し元で同期を行うように明示する必要があるのでしょうか?

漠然とした質問ですみません。
プログラマにかな入力派っているのかな?ってもしや板違いか
>>162
String クラスの中身は変わらない。length() の値はコンストラクト時から変わらない。
同時にアクセスしておかしくなることなどありえない。

あとの部分は synchronized について調べれ。
×String クラスの中身
○String インスタンスの中身
>>162
>>164に加えて、Stringのソースも見ろ
> 実はlength()メソッドの中で内部変数に値を書いて、読み出しているかもしれませんよね。
そんなことしてないのはソースを読めば明白なわけだが。
SDKをインストールしていれば、src.zipがあるだろ?解凍して中を見ろ
>>162
String は不変クラスなので共有しても大丈夫。

StringBuffer は不変クラスではないが、synchronized で守られてるので
複数のスレッドで使っても壊れた状態になったりはしないが
適切な排他処理をしないと期待しない値が返る事はありうる。
この辺は java.util.Vector やら java.util.Hashtable と同じ。
ただ、ソース読めば判ることというのは実装依存である可能性も高いのだが
ソースも読まずに中身を妄想しててもしょうがない
実装依存結構、何でも確かめることは大切
でも、自分で String クラス設計しようとすれば、杞憂だとすぐ分かるけどな
172162:04/06/11 12:11
レスどうもです。

結局なにが聞きたいのかというと、

「排他をクラス内でやっている」か「自分でsynchronizedする」かを判断する材料は何か?

ということです。(String,StringBufferは例えです)

「クラス内でやっている」とも「クラス外でやれ」とも書かれていないオブジェクトをスレッド共有する場合
やはりソースを見ないと判断してはいけないのでしょうか?

排他処理していると書いてないものは信用しない
> 「排他をクラス内でやっている」か「自分でsynchronizedする」かを判断する材料は何か?
使い方。
個々のクラスが同期処理されていようがいまいが、
別途必要になることの方が多い気がする
複数のインスタンスやプリミティブ変数の状態を同期する必要があるとか
>>158
かな入力だと、全角の?とか!が入力できないね
>>172
同期をとりたいのならチェックポイントを設けてやれば良かろう
それだけだよ
org.apache.commons.logging.Logって
なんでprotected staticで使われることが多いのでしょう?
(こんなん↓)
protected static Log log = LogFactory.getLog("foo.class");

staticは静的メソッドからも参照できるようにってことなんでしょうが、
protectedてのがわからない。。。privateでええやん。
>>178
privateじゃ継承したときに使えないじゃない
>>179
staticフィールドが継承されるとでも?
>>180
継承したクラスからもアクセスできるようにって意味だろう ( ゚д゚)、
質問があります!
複数のTextFieldに数値を入力し、そこから任意の計算をするプログラムを作るにはどうしたらよいのでしょうか?
参考書では、TextFieldに入力されているのが文字列であり、数値の場合の記述がないのでどうしたらよいか分かりません。
変数の受け渡しができる関数があるのでしょうか?どなたかご教授願います。
(文章では分かりにくいので以下に図で説明します)

   ___________
X = |___________|   // Xのテキストフィールドに数値を入力
   ___________
y = |___________|   // yのテキストフィールドに数値を入力

ans = (2 * x) + (y * 3);

このような計算ができるようにしたいのです。
テキストフィールドに入力されたものが数値と認識できればいいと思うのですが・・・
>>182
String→intの勉強をしる。
檻の前の説明書き:
 コンソール入力も試さないうちから GUI に手を出すとこのようになります
いや、GUI/CUI以前の話だ。
>>182
Integer.parseInt(textField.getText())
187182:04/06/11 19:18
>>183
>>186

ご返答有難うございます。
早速やってみます。
188デフォルトの名無しさん:04/06/11 20:25
エクセルみたいにテキストボックスに文字入れる度に計算してラベルに表示されるようにしたいんですけど、
文字が入ったら計算するっていうのはどう判定させればいいのでしょうか?
ラベルに文字が入ったらイベントが起きるように作れますか?
>>188
作れます。
って、ラベルに文字かよ・・・
191デフォルトの名無しさん:04/06/11 20:39
アプレットで画像にリンク機能を付け加えるには
どうすればいいんだ?おしえて頂戴
>>191
どうやって表示した画像かによる。
193188:04/06/11 21:20
>>189
どのような裏技を使えばいいのでしょうか?
上からプログラムが実行されるので
ラベルに入った文字は変わらないと思います。
それを変えるにはやはりアクションを起こさないといけません。
そんなことができるのでしょうか?
どこから来た釣りなんだろうか・・・
>>193
ラベルに表示する処理のところでやればいいだろ。
196デフォルトの名無しさん:04/06/11 21:33
>>192

getImage(getClass().getResource("data.gif"));
こんなんだが?
>>196
それで表示されるのかと、小一時間。
198デフォルトの名無しさん:04/06/11 21:46
できましたがなにか?
getClass().getResourceAsStream(String)の間違いでは?
Class#getResource(java.net.URL)ならあるがClass#getResource(String)はないぞ。
>>196 おもしろい。
>>198
それはJavaではないので、どっかよそで聞いてください。
それがJavaだというのなら、せめて196のコードが何をしてるか把握してから出直してください。
202199:04/06/11 22:03
すみませんあります。アホだ俺…
203デフォルトの名無しさん:04/06/11 22:24
すまそ 俺も間違えてた >>191より
204デフォルトの名無しさん:04/06/11 22:25
中途半端な
205デフォルトの名無しさん:04/06/11 22:30
ArrayListにArrayListやString型配列はaddできますか。
>>205
なんで聞く前にやらない?
やってみればわかることをわざわざ聞くなよ
やってみれ〜
208デフォルトの名無しさん:04/06/11 22:34
誰にも教えられずにチンチンこすってたくせに
俺ちんちんない...
210デフォルトの名無しさん:04/06/11 22:36
じゃ、角当てか?
211205:04/06/11 23:18
検証終了。以上


212193:04/06/11 23:29
>>194
ラベルに表示って言ったらLabel("表示")
じゃないですか?
このプログラムが実行された場合、
処理は終わってしまうじゃないですか!
213193:04/06/11 23:33
ああ簡単なことだったよ!
ごめんね
>>212
釣りならほどほどにしとけ。腹がよじれて死にそうだ。
マジでわかってないんならイベント駆動についてでも調べろ。
ここの回答者性格悪ぃの多いな。南無。
ここ一ヶ月の質問者のひどさも察してやれ
現在プログラム板にはHSP関連スレに凶悪な荒らしどもが住みついています。

・HSPに関係の無い話題でスレッドを上げまくる
・HSPオフィシャルサイトの住人を名指しで誹謗中傷する
・重複スレを乱立させる

などの荒らし行為を行っています。
みんなで団結してム板のゴミどもを追い出しませんか?

【HSP関連スレ】
【皆のレイプ魔】HSP初質P25【WWEヲタ=ハゲ】
http://pc5.2ch.net/test/read.cgi/tech/1086878505/
HSP>>>>>>>>>>>>>C=糞w
http://pc5.2ch.net/test/read.cgi/tech/1071899663/
今日もどこかでHSP初心者が質問ですP19
http://pc5.2ch.net/test/read.cgi/tech/1084089079/
HSPについて
http://pc5.2ch.net/test/read.cgi/tech/1085149790/
218デフォルトの名無しさん:04/06/12 01:08
質問者は、自己解決だろうと、他人からの助言を受けての解決だろうと、
問題が解決したときには、その質問と解決法をまとめるものだ。
いやむしろ問題が解決しなかったときにこそ、
これまでにわかったことをまとめるものかもしれん。

そうすれば性格の悪い者ですら、なんらかの情報を煽りとともによせてくれる。

多くの人々が閲覧している場において、ろくな回答がただの一つも返ってこないのは、
その質問があまりに特殊すぎて誰も回答や関心をよせないものでなければ、
その質問が、あまりに、あれなものであることを疑ったほうがいい。
>>218

じゃあハナからスレタイ変とけ。こんな感じによ↓

【初心者お断り】Java質問・相談スレ47【くだらない質問はするな】


初心者の質問板なんだから厨な質問が溢れて当然だろ。

お前ら見てると【初心者大歓迎】のスレタイで無垢な初心者釣るだけ釣って
手前のウサ晴らし&くだんねー優越感を充足させんのが
目的にしか見えなくてうすら寒い。
220デフォルトの名無しさん:04/06/12 01:38
>>219
初心者の質問板はhttp://school4.2ch.net/qa/です
Javaの初心者ならいいのだが、
日本語の初心者やコミュニケーションの初心者、
質問の初心者、人にものを聞くことの初心者はお断りだな
>>219
初心者とバカは違いますよ。ここをサポートセンターか何かと勘違いしてませんか?
ちょっと調べればすぐわかることを聞いちゃうのはただの怠慢。

そもそも質問のしかたがちゃんとしてるやつはだいたいちゃんと回答されてるように思うが。
昔は初心者無視質問スレあったんだよな。
どうしてなくなったんだっけか。
>>223
javaの将来性がみえなくなったから
確かに
【初心者】【大歓迎】
してるようには見えん

JAROに電話しよう



>>220-222
オイオイ、
どっかのスレから持ってきたよーなデジャブバリバリの
テンプレめいた事ばっか言ってんじゃねーよ。
寒いな。

どーでもいいけどよ、
ようするにおれが言いたいのはこんだけだ。↓

ここは 【初心者】【大歓迎】 のスレ。
【初心者】【大歓迎】 してない回答者は消えろ。

ここは 【初心者】【大歓迎】 のスレ。
【初心者】【大歓迎】 してない回答者は消えろ。

ここは 【初心者】【大歓迎】 のスレ。
【初心者】【大歓迎】 してない回答者は消えろ。

もともとここはネタ心者歓迎なスレッドだったからなあ…。
俺にも初心者を歓迎していないひとがいるようには見えるよ。

まあでも初心者でも何度か書き込んだ>>14>>193は、
煽りもあったが、問題を解決するのに役だった回答ももらえているわけだし。

>>219
流れが早すぎて無視されただけかもしれないし、
参考になる回答が、なにも返ってこなかったのなら、
もういちど、形をかえて、まとめなおして質問してみては?
初心者は質問すらできない罠
なにが分からないのかが分からない〜w
初心者が質問するさいの、
他人に煽られないための注意事項でも誰かまとめてみない?

・なにをしたらどうなったのかを具体的に。
・「エラーがでました」「うまくできません」などではなく、
「"〜〜〜"というエラーが表示されました」のようにエラー出力をコピーする。

みたいな。
初心者は大歓迎

初 心 者 未 満 の ア ホ は 歓 迎 し な い
アホの特徴。

>>1
>既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
>質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。
を無視する。

・わかりません、動きませんとしか書かない。あるいは何度も情報を小出しにする。

・エラーメッセージやソースをコピペしない。そもそもエラーメッセージを書かない。

・アルファベットの大文字小文字の区別がつかない。

・自分は間違っていないという態度をとる。あるいは自分の中途半端な知識で
勝手に間違った類推をする。
「うまくいきません」
「設定は正しいはずです」
「本の通りにやりました」
質問の仕方等に注文が付くと「わからないなら黙ってろ」と逆ギレ
IDE環境なくてもjavaれるよね?
もちろんok
>>223
あれはジョークのつもりで立てただけなんだが。
>>235
オマエが犯人か
237235など:04/06/12 08:42
>>236
正直すまん


とは、思えない。



このスレタイはこのまま、クソ初心者とそれをいびる奴隔離のためのものにして、
(たまたま質問の体をなしてるやつはラッキーってことで)
一見全然関係なさそうなスレタイの、
「ゴスリングの作ったアレに関する質問スレ」とか「元Oak」とか「元々家電向け」とか用意して、
ちょっとでもマシな奴は >>1 をよく読むだろうからそこに誘導かけておく。
昔Unix板かソフトウェア板かにあったvi初心者スレは、
「vi」という一般にはなじみの薄い言葉のせいか、
スレタイトルの「初心者」という言葉のみが理解できた人々が、
viとはなんの関係もない質問をたびたび投稿していて見物だった。

このスレが「ネタ心者歓迎」というタイトルだったときは、
質問をしてもろくな回答が返ってこなかった初心者が、タイトルの「ネタ心者」に、ふと気がついて、
「(´・ω・`)ここ初心者歓迎ではないのか」と、しょんぼりして帰っていったのが印象的だった。
>>228
何が悪いのか分からないのが初心者
何が分からないのか分からないのが怠け者
>>239
そーいえば sun の generics のフォーラムで全然関係ない質問して叩かれた奴が、
「generics」なんだから一般的な質問をしても良いはずだ、とか逆ギレしてたな。
車だと 公道に出れるのが初心者
ここに来てうざがられてる奴には、まだ教習中とか、三輪車も乗れねーだろおめーって奴が多い
公道に出ててもうざがられる奴も普通にいるけどな
何でもかんでも何かに例えたがる俺とか
Windowsの方が良いのかもしれませんが、Javaがらみということで質問させてください。

WindowsNT4.0sp6aにIE6sp1の環境にJ2RE 1.4.2_04がインストールされていました。
Webアプリケーションの都合上1.3.1_10が必要になり1.4.2_04をアンインストール後
1.3.1_10をインストールしたのですが、目的のサイト(厚生労働省の電子申請です)
に行くと
ttp://hanyous.mhlw.go.jp/shinsei/crn/servlet/CRNTetsuzukiServlet?eventCd=EGov&tetsuzukiID=12416

Java(TM) Plug-in 1.4 致命的エラー
Java実行環境を <Default\bin\client\jvm.dll> からロードできませんでした。

というエラーが出て、どうにもならないような状況です。
java -versionではちゃんと1.3.1_10と出ます。
ブラウザはIE5.5sp2以降のみ、J2reのVerもほとんど決め打ちされています。
一時ファイルや履歴とか消したり、IE6アンインストールも試したのですが
どうにもなりません。どこかに設定が残っているのでしょうか?
SwingでGUI周りをいろいろ試していて,右クリックしたときにJPopupMenuで
右クリックメニューを出すようにしました。そこでなんですが,

UIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);
SwingUtilities.updateComponentTreeUI(this);

のようにLook&Feekを変更しますよね? このときなぜか右クリックメニューのL&Fだけは
かわらないんです。Metal→Windowsに変えても,右クリックすると依然としてMetalのL&Fで
メニューがでてきます。どなたかこうなる理由を教えていただけないでしょうか?

あとMetalって文字が日本語だと激しくにじんだようになって見にくくありませんか?
これを見やすくできないでしょうか?全部の部品に対してFont設定を一括操作するようなことをしたいのですが…。
>>243
>どこかに設定が残っているのでしょうか?
そりゃ残ってるんでしょうよ。残ってない、って言われたらどうする?
といって俺はクズだから助けてあげられない。すまんのう。
>>244
お作法的に行儀悪いかも分からないけど、俺は起動クラスでこんなことしてる。どっかで拾ってきた処理。
static {
java.util.List history = new LinkedList();
UIDefaults defaults = UIManager.getDefaults();
Enumeration it = defaults.keys();
while (it.hasMoreElements()) {
Object key = it.nextElement();
Object a = defaults.get(key);
if (a instanceof Font) {
if (history.contains(a)) continue;
Font font = new Font("MS ゴシック", Font.PLAIN, 12);
defaults.put(key, font);
history.add(font);
}
}
}
>>244
ついでにいうと、同じように起動クラスで setLookAndFeel やっちゃってる俺は、
君のような症状がおきない。(JPopupMenu はグレーのあのあんな感じになる。青にはならない)
アプリケーション全部一括で変わっちゃっていいなら、そうするとどうか。
247ys:04/06/12 20:34
こんばんは、よろしくお願いします。
JPanel から継承したクラスをJFrameを継承しているクラスに貼り付けています
class Jp extends JPanel{
public JTextField t1;
Jp(){
t1 = new JTextField("kaka");
add(t1);
}
}
class Jf extends JFrame{
Jf(){
Container cp = getCotentPane();
jp = new Jp();
cp.add(jp);
//ここでシンボルを解決できません変数t1とでます  
System.out.println(jp.t1.getText());
//以下省略

普通のpublic 変数なら収得できるのにどうして、panelからならできないのでしょうか。
よろしくおねがいいたします。
248デフォルトの名無しさん:04/06/12 20:57
>>247
>jp = new Jp();
ここでエラーにならないのが不思議
249ys:04/06/12 21:03
class Jf extends JFrame{
private Jp jp;
Jf(){
Container cp = getCotentPane();
jp = new Jp();
----------------
すみません改行が多すぎとのエラーのため
削除してるときに、一緒に、変数宣言も消していました。
>>248
Jp.java:14: シンボルを解決できません。
シンボル: メソッド getCotentPane ()
場所 : Jf の クラス
Container cp = getCotentPane();
^
エラー 1 個

こう出たよ。
251250:04/06/12 21:13
>>249
>普通のpublic 変数なら収得できるのにどうして、panelからならできないのでしょうか。
と思うなら、同様におかしくなるはずだと思われるミニマムなソースを別途作って、
エラーが起きなきゃ、じゃどうして元のソースで起こったか自分で分析、
起きて理由がわからなければソースをまるまる貼って質問、
としてもらえると >>248 が指摘、もっかい書き直し、というようなめんどくさいことにならない
>>250 も指摘してるようなことがあるとすれば、コピペも出来ないパソコン初心者なのかな?
危険な香りのするコードだが、ケアレスミスさえなければ問題なく参照できると思うが
254250:04/06/12 21:20
getCotentPaneをgetContentPaneにしたら、
エラー消えますた。
255ys:04/06/12 21:25
たびたび省略していて申し訳ありません
import java.awt.*;
import javax.swing.*;
>>251
>>254
自明
257デフォルトの名無しさん:04/06/12 21:32
SDK1.4で作成したDOMを使用するクラスをVM1.3でDOMを使ってるんですが、

java.lang.NoClassDefFoundError: org/apache/crimson/tree/ElementNode2

がでます。
このElementNode2を含んでいるjarファイルって何かありますか?
258ys:04/06/12 21:41
たくさんの書き込みがあり、自分の、ミスも見つけられず申し訳ありません。
まるまる、貼り付けます。
試してくださった方も申し訳ありません
そして、すごく初心者なので、作り方がむちゃくちゃです。
フレームのほうのクラス
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.util.*;

public class Simawari extends JFrame{
private Cpane cpane;
private JTextField t2;
public static void main(String args[]){
Simawari sima = new Simawari(30);
}
Simawari (int rowcount){
super("しまわり設定");
Container cp = getContentPane();
cp.setLayout(null);
cpane = new Cpane();
cpane.setBounds(10,10,520,60);
cpane.setLayout(null);
cp.add(cpane);
t2 = new JTextField();
t2.setBounds(10,100,25,25);
cp.add(t2);
JButton bt = new JButton("os");
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
259ys:04/06/12 21:43
>>258つづきです。
ーーーーーここでrecolorを判別できません。−−−−−−−−
//Color coo=cpane.recolor;
//t2.setBackground(coo);
}
});
bt.setBounds(10,150,25,25);
cp.add(bt);


setSize(1000,700);
setVisible(true);
addWindowListener(new WinEnd());
}

public Insets getInsets(){
return new Insets(35,10,10,10);
}

class WinEnd extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
}
260ys:04/06/12 21:45
>>259つづきです
パネルのほうのクラス。
//カラーパネルの作成
//横カラー部分252縦52
//パネルのサイズ520,60
//グラフの内容を配列で、保存。マウスクリックで、数字収得、配列データを、
//スクロールバーに反映ラベルに反映テキストに反映
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class Cpane extends JPanel{
private int i22;
private JScrollBar bar1,bar2,bar3;
public Color recolor;
private JTextField t1;
private JLabel jl1,jl2,jl3;
private int hi[][][]=new int[53][253][3];//背景色を入れておく配列
private Rectangle rc;
Cpane(){
JLabel lab1 = new JLabel("red");
lab1.setBounds(265,0,20,20);
add(lab1);
JLabel lab2 = new JLabel("green");
lab2.setBounds(265,19,35,20);
add(lab2);
JLabel lab3 =new JLabel("blue");
lab3.setBounds(265,39,25,20);
add(lab3);
261ys:04/06/12 21:46
>>260つづきです
bar1 = new JScrollBar(JScrollBar.HORIZONTAL,0,0,0,255);
bar2 = new JScrollBar(JScrollBar.HORIZONTAL,0,0,0,255);
bar3 = new JScrollBar(JScrollBar.HORIZONTAL,0,0,0,255);
bar1.setBounds(300,1,150,15);
bar2.setBounds(300,21,150,15);
bar3.setBounds(300,41,150,15);
bar1.addAdjustmentListener(new Sc());
bar2.addAdjustmentListener(new Sc());
bar3.addAdjustmentListener(new Sc());
add(bar1);
add(bar2);
add(bar3);
jl1 = new JLabel("0");
jl1.setBounds(455,1,50,15);
add(jl1);
jl2 = new JLabel("0");
jl2.setBounds(455,21,50,15);
add(jl2);
jl3 = new JLabel("0");
jl3.setBounds(455,41,50,15);
add(jl3);
t1 = new JTextField();
t1.setBounds(490,21,25,25);
add(t1);
addMouseListener(new Mc());
}
262ys:04/06/12 21:48
>>261つづきです
public void paintComponent(Graphics g){
super.paintComponent(g);
//赤色
int i2=0;
int i3 = 0;
for (int i=255;i>=100;i=i-3){
i2 = 0;
for ( int ii = 3;ii<255;ii=ii+3){
hi[i3][i2][0]=i;
hi[i3][i2][1]=ii;
hi[i3][i2][2]=ii;
g.setColor(new Color(i,ii,ii));
g.fillRect(i2,i3,1,1);
i2++;
}
i3++;
}
//緑
i3 = 0;
int i22 = i2;
for ( int i=255;i>=100;i=i-3){
i2 = i22;
for ( int ii = 3;ii<255;ii=ii+3){
hi[i3][i2][0]=ii;
hi[i3][i2][1]=i;
hi[i3][i2][2]=ii;
g.setColor(new Color(ii,i,ii));
g.fillRect(i2,i3,1,1);
i2++;
}
263ys:04/06/12 21:49
>>262つづきです。
i3++;
}//青
i3 =0;
i22 = i22+i22;
for ( int i = 255;i>=100;i=i-3){
i2=i22;
for ( int ii =3;ii<255;ii=ii+3){
hi[i3][i2][0]=ii;

hi[i3][i2][1]=ii;
hi[i3][i2][2]=i;
g.setColor(new Color(ii,ii,i));
g.fillRect(i2,i3,1,1);
i2++;
}
i3++;
}
rc = new Rectangle(0,0,i2-1,i3-1);
//System.out.println("tate"+i2+"yoko"+i3);
//g.dispose();
}
264ys:04/06/12 21:50
>>263つづきです
class Sc implements AdjustmentListener{
public void adjustmentValueChanged(AdjustmentEvent e){
if(e.getAdjustable()==bar1){
jl1.setText(Integer.toString(bar1.getValue()));
}else if(e.getAdjustable()==bar2){
jl2.setText(Integer.toString(bar2.getValue()));
}else {
jl3.setText(Integer.toString(bar3.getValue()));
}
recolor = new Color(bar1.getValue(),bar2.getValue(),bar3.getValue());
t1.setBackground(recolor);
}
}
class Mc extends MouseAdapter{
public void mouseClicked(MouseEvent e){
int xx = e.getX();
int yy = e.getY();
if (rc.contains(xx,yy)){

bar1.setValue(hi[yy][xx][0]);
bar2.setValue(hi[yy][xx][1]);
bar3.setValue(hi[yy][xx][2]);
}
}
}
}
カラーパレットをもちまわりしようとしています
265ys:04/06/12 21:58
>>264つづきです
長いと一度には無理なので、こうなりましたが、
書き込んでいる間に、これだけむちゃくちゃでは、
余計に分かりにくいですね。
私も普通にpublic なフィールドを、ほかから参照できることは、
確かめたのですが、このJPanelを継承している、クラスからは、
public なフィールドを参照できないのです。
だから、JPanelクラスは、そういうつくりになっているのかなと考えたのです。
でも、皆さんからの書き込みをよんでいると、
参照できるようですね。
もう少し、自分でも試して見ます。
いろいろありがとうございました。
>>265
無名クラスでググレ
で、該当部分と比べながら考えてみれ
267デフォルトの名無しさん:04/06/12 22:30
アプレットで
setVisible(false);でコンポーネントを隠すと
キーリスナーでのイベント取得ができなくなりました。
アプレットにフォーカスが渡ってないからだと思うのですが
アプレット自身にフォーカスを戻すにはどうしたら良いの?
268ys:04/06/12 22:53
いろいろとありがとうございました。
Cpane のインスタンスをもう一つ作り
Cpane cpane2 = cpane;
で、cpane2から、public フィールドを拾って解決いたしました。
私のたくさんの書き込みで、過去ログに言ってしまった質問者の方
もうしわけありませんでした。。
269デフォルトの名無しさん:04/06/12 23:01
ページ開くと勝手に新しいウインドウができて、
指定したURLに飛ぶってのはどーすんだ?
>>269
Java Script。
271267:04/06/12 23:38
public class G_was0 extends Applet implements Runnable, ActionListener, KeyListener, MouseListener{
Panel pn = new Panel();
TextField tx = new TextField(10);
Button bt = new Button("送信");
public void init(){
pn.add(tx, BorderLayout.CENTER);
pn.add(bt, BorderLayout.CENTER);
bt.addActionListener(this);
add(pn);
pn.setVisible(false);
この後でキーイベントが受け取れないです。
add(pn)をコメント化するとキーイベントが受け取れます。
マウスイベントは正常でした。
パネルにフォーカスが当っているみたいで、親アプレットに
フォーカスを戻したいのですがrequestFocus()じゃ駄目でした。
272267:04/06/13 00:18
先程いろいろやって解決しました。ばいばい
273デフォルトの名無しさん:04/06/13 00:59
次のソースを実行してみました。

class test003 {
public static void main (String args[]) {
System.out.println(123);
System.out.println('\\' + 100 + "もらった");
System.out.println("またあした");
}
}


出力結果は、
123
192もらった
またあした

・・・192ってなぜ・・・?
274デフォルトの名無しさん:04/06/13 00:59
3次元配列のソートの良い方法教えてください。
>>273
順番に処理してみな
charと次のintを足しているだろ?
こういう計算できる物同士は計算される可能性がある

それがいやなら意識的に文字列にすべし

String.valueOfを使ってミソ
276デフォルトの名無しさん:04/06/13 01:04
>>275
'\\' の部分を、"\\" に書きけるとうまく動きました。
別に文字だからってシングルクォーテーション使わないといけないって事ないのか・・・。

いや、java勉強し始めたばっかだから・・・
いきなり意味わからない難題だったよ。
ありがとう。
>>274
三次元配列なんか使いません。
>>274
三次元配列だからって特別特殊なソートなんて必要ないんじゃねーのか?
普通にソートすればいいじゃねーか。
>>274
どういうソートをしたいのか言え
>>279
クッキーアソートです。
コマンドプロンプトみたいに、標準出力のをどんどん取り込み表示し、
入力も同じくコマンドプロンプトみたいに入力できて、標準入力に渡すような
テキストエリア(?)はjavaで作れるのでしょうか?
入力用のTextFieldを設けたら似たものはできますが、
コマンドプロンプトみたいに入出力ができるものを作りたいのです、
どなたか助言をいただけないですか?
>281
そりゃあ、そういう挙動を作りこめば出来るだろうさ。
改行が入力されたら、そこまでをコマンドと解釈して、何か実行して、その結果を
それまでのTextFieldに追加するとか。
コマンドプロンプトにしても、Unixのシェルにしても、"そういう風に"作ったから
そう動くのであって、同じことをやればいいだけ。
283244:04/06/13 03:57
>245
Fontの設定方法ありがとうごじます。L&Fのほうですが自己解決しました。
updateComponentTreeUIを読み出すときに、

SwingUtilities.updateComponentTreeUI(this);
SwingUtilities.updateComponentTreeUI(popupMenu);

のように一緒にJPopupMenuのインスタンスに対してもupdateをかけたらできました。
import java.io.*;

class test005 {
// キーボードから入力を受け数値に変換。数値として出力するテスト
public static void main (String args[]) throws IOException {
System.out.println("数字を入力してみ。");

BufferedReader br =
new BufferedReader (new InputStreamReader(System.in));

String str = br.readLine();
int num = Integer.parseInt(str);

System.out.println(num + " を、入力したのか?");

}
}

このソース、コンパイルは通るけど実行時にエラーがでます・・・
なぜ・・・?
本の通りに作ってるのに・・・
エラーが出たらエラー内容ぐらい書け
>>285
これは失礼。

Exception in thread "main" java.lang.NoClassDefFoundError: test006

この一行を吐いて死にます。
287284&286:04/06/13 05:25
>>285
ごめん、原因わかりました。
俺の早とちりでした・・・ ○| ̄|_
>>272>>284>>287のような投稿をこのスレから
一掃する手段はないものだろうか。
原因がわかったのなら、その原因くらい書けやボケが。

>>244
デモのSwingSet2のソースを検証すれば、さらに理解が深まるかも知れない。
ちと膨大だがSwingSet2.javaのあたり等。
289284&286:04/06/13 06:30
>>288
いや・・・
原因は単純だった。

昨日からJAVAの勉強始めたんだけどね。
本見ながら、テストソース書いてる。
classの名前は、testXXXってな風に。

で、今回のソースは、test006だった。
でも、classの名前をtest005のままソースを書き換えてコンパイル。
コンパイルは通って、test005.classが生成。
実行しようと、 「java test006」
javaさん「んなファイルねーよ!」

生成されるclassファイルって、ファイル名が付くんじゃなく、
class名が付くんだね・・・。
初歩なんだろうけど、ひとつ発見したって事で・・・
すまん。 問題外の早とちりだった・・・ ○| ̄|_
>>289
>javaさん「んなファイルねーよ!」
いや、実は>>286のエラーはそんなファイルが無いと言っているのではなく、
「そんなクラス見付けられないそゴルァ」と怒っているのだな。

おなじことのように見えるが、>>14あたりとも関連してくる問題で、
初歩のうちに押えておきたい重要な箇所の一つ。
もしかしたらパッケージ等について学習するときに、
このあたりにつまづくことになるかもしれない。

まあ、そのときに理解することになるとおもうけどね。
291デフォルトの名無しさん:04/06/13 11:28
プログラマって「自分の価値観がすべて」と思い込んでる節があるよな。
なんていうか、視野が狭いというか客観的に考察する能力が欠けてるんだよね。

自分ルールはやめようよ、はづかしいからw
質問に答えてもらえませんでしょうか?
windows 2000で
J2SE v 1.4.2_04 SDK、Windows Offline Installation, Multi-language
をインストールし、JAVAで
smartdoc-1.1.zipを解凍したいのです
http://www.xmlsmartdoc.org/download/index_ja.html
java -jar smartdoc-1.1.zipを実行しても

E:\tmp>java -jar smartdoc-1.0.zip
Exception in thread "main" java.io.IOException: このボリュームは認識可能なファイ
ル システムではありません。
必要なファイル システム ドライバがすべて読み込まれているか、ボリュームが壊れてい
ないか確認してください。
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Unknown Source)
at java.io.File.getCanonicalPath(Unknown Source)
at setup.mkModel(setup.java:108)
at setup.main(setup.java:61)
上のようになるのですが、解決方法を教えてもらえませんか?
>>292
E:ドライブが何かわからんけど、
ファイルシステムの問題じゃない?
EドライブはHDDです
ファイルシステムの問題とはなんでしょうか?

J2SE v 1.4.2_04 SDK、Windows Offline Installation, Multi-language
を再ダウンロード→インストールしてもできませんでした
とりあえず、Cドライブでやってみるとか。
296デフォルトの名無しさん:04/06/13 13:37
標準入力について質問です
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
上記のコードでユーザに文字を入力させようと思うんですけど
例えば入力中訂正したくなって「back spece」キーを押すと
^H^H ←といったような文字が表示されてしまいます。

ありがとうをいう文字を修正しようとすると
[ありがた^H^H^H^H]
となるんですけど、これはなんとかなるものなんでしょうか?
色々調べてみたんですが、修正に関する記述が見当たらなかったので
宣しくお願い致します
>>294
> ファイルシステムの問題とはなんでしょうか?
ネット越しの匿名質問では「ファイルシステムの問題でしょ」としか答えよーがない。
あんたの使ってるマシンの問題なんだから。

とりあえず、zip の windows.properties 弄って installbasedir を変更すれば?
298デフォルトの名無しさん:04/06/13 13:48
>>296 
それってWindowsか?
Telnet越しで動かしてない?

まあ、キーイベントも逐一拾ってやらなきゃいけないのかな?
でもそんなはずないと思うが・・・普通のコンソールなら
>>297 そういう小難しい話じゃなくて、zipファイルを解凍
するのにjava -jarじゃ展開できんだろってだけだよ。
すなおにunzip使え。
>>296
たぶん Java 関係ない。学校の先生に聞いてね。
>>299
はいはいよいこはお外であそぼうね。
>>299
いや、それって単なる zip でなくて実は jar でインストーラになってんだが。
unzip でやるとインストーラ関連のゴミ(?)ファイルも出てくると思われ。
>>298
普通のコンソールってのが何をさすのかわからんが
ライブラリの関係だとか tty の設定だとかのせいで
^H と表示されちゃうことは別に珍しくもないけど。
303デフォルトの名無しさん:04/06/13 14:35
>>299
unzipで出来ました。
どうもありがとうございます。
304296:04/06/13 14:41
>>298
OSは Vine linux2.6 viエディタで実験してます
windowsもあるのでソチラで今試してみましたが
windowsでは全く問題なかったです
javaというよりも環境の問題だったんですね。。。

>>302
>ライブラリの関係だとか tty の設定だとかのせいで
うーむ。そういうものなんですね
ちょっと調べてきます
305sage:04/06/13 14:43
>>302
Javaは高度に抽象化されていて、開発者は低レベルなことを意識しなくてすみますね。
便利な世の中になったものです。
JTableを使っていて、モデルのデータが変化したとき、
その変化をテーブルの表示に反映させるにはどうすればいいんですか?
ファイルの内容をテーブルに表示させているのですが、
新しくファイルを読み込んでもテーブルが更新されないのです。
repaint()かと思って試しても反映されませんでした。
307デフォルトの名無しさん:04/06/13 16:07
JTableって操作に順番があったような気がしないでもない
動的に内容変化させているのであればなおさら
ソース見せれば解決するかも
実際にデータを更新しているところのコードのせてみな
310306:04/06/13 16:41
>>307-309
回答ありがとうございます。
さすがにソース丸投げするのは恐縮なので、まず>>309を読んで勉強してきます。
まだ途中までしか読んでませんが、どうやらイベント処理が必要みたいですね。
311デフォルトの名無しさん:04/06/13 16:51
>>310
JTable は TableModelListener 実装してて、
TableModel が変更されたら感知するようになってると思うが。
(TableModel自作してて、変更してもイベント通知してなかったりすると意味無いが)

っつーか、強制的に repaint() してもダメだったら更新自体が失敗してる可能性のが高いような。
ageちったよ
AbstractTableModel あたりを継承して、中に util.List かなんか持っておいて、
中身が変わったら fire〜 すればいい ただそれだけ
JComboBox も JList も同じ
つーかDefaultTableModel継承してやってればリスナにかってにとんでいくはずだが
315306:04/06/13 17:32
デキタ──────(゚∀゚)──────!!

>TableModel自作してて、変更してもイベント通知してなかったりすると意味無いが
まさにそのとおりだったみたいです。
いままでアプリケーションが持つデータを内部クラスのモデルが参照するという構造にしてたんですが、
モデル自体がデータを持つようにして、データ変更後すぐにfireTableDataChanged()を呼ぶようにしたら
うまく動きました。

みなさんどうもありがとうございました。
とても勉強になりました。
316306:04/06/13 17:33
>>314
AbstractTableModelのほうを使ってたのです。
なにを使っていたのか書いてない時点でおかしいぞ>質問者
解決した後にこれ使ってましたじゃなぁ
318デフォルトの名無しさん:04/06/13 18:13
JSPについての質問なのですがよろしくお願いします!

pageContext.forward("---.jsp");のようなページ遷移を、他のフレームに対して行うことはできるのでしょうか?

どうがんばってもpageContext.forwardの書いてあるjspのあるフレーム内しか遷移しません・・・
319デフォルトの名無しさん:04/06/13 18:21
Javaで作ったプログラムを簡単に最適化してくれる
ようなツールはないでしょうか?

Optimizeit Suite 6.0 for Java というのは持っているのですが、
使い方がよく分からないもので・・・
320デフォルトの名無しさん:04/06/13 18:28
HOTSPOTって何ですか?
豚に○○
322デフォルトの名無しさん:04/06/13 18:47
>>318
他のフレームにリクエストを返すことは出来ない
なので、それはJavaScriptとかの階層でやらないといけない
323デフォルトの名無しさん:04/06/13 18:47
一番の最適化はなぁ
勉強だ
>>323
ちがうよ、感動だよ。
325デフォルトの名無しさん:04/06/13 18:57
JTree使ってアウトラインプロセッサを作りたいんですが
どんなクラスやメソッドを使えばいいか分からない・・・
ここだけ押さえとけば簡単なアウトラインプロセッサになるよって
ご存知の方、いらっしゃいますか?
ドラッグ&ドロップの勉強とセルレンダラの勉強すればいいだけかな
>>323
だね。 人のソース見たりすると、自分のソースのバカっぽさが身にしみる・・・
>>318 jspだけじゃなくてアプレットも併用すれば
AppletContext.showDocument(URL url, String target)
使って出来ないこともないけど、まあJavascriptの
ほうがなにかとらくそう。
329デフォルトの名無しさん:04/06/13 20:10
ふー、バカばっかりだ。
330デフォルトの名無しさん:04/06/13 20:38
Servlet、JSP、Beansを使ったMVC構想で、良いソース具体例が載ったお勧めページありませんか?
import java.awt.*;
import java.awt.event.*;
public class GraphicsC7 extends Frame{
public static void main(String ar[]){
Frame f=new GraphicsC7();
f.setTitle("Buttonのレイアウト(絶対位置指定)");
f.setSize(640,400);
f.setBackground(Color.cyan);
f.setVisible(true);
}
public GraphicsC7{
setLayout(null);
Botton b1=new Button("あ");
b1.setBounds(20,50,100,30);
add(b1);

addWindowListener(new WinAdapter());
}
class WinAdapter extends WindowAdapter{
public void windowClosing(WindowEvent we) {System.exit(0);}
}
}
エラーメッセージ
C:\JAVA>javac graphicsc7.java
graphicsc7.java:11: <identifier> がありません。
public GraphicsC7{
^
graphicsc7.java:19: ';' がありません。
class WinAdapter extends WindowAdapter{
^
エラー 2 個

エラーの意味がよくわかりません、よろしくお願いします。
>>332
× public GraphicsC7{
○ public class GraphicsC7{

これを直すと2個目はたぶん直る。
>>332
お前アフォか?
コンストラクタの定義の仕方を勉強しろw
>>331
>public GraphicsC7{
public GraphicsC7(){

>Botton b1=new Button("あ");
Button b1=new Button("あ");
336331:04/06/13 21:39
何とか動きました。
ありがとうございました。
>>336
初心者向けで、最初からサンプルの画面を作る本を見ていないか?w

>332 のエラーの意味がわからないレベルなら、画面から入るのは自殺行為だぞ。
338デフォルトの名無しさん:04/06/13 22:19
>337
理由言ってみ?
>>338
俺がそのパターンだったから。 思い出すのも恥ずかしい。。。
340デフォルトの名無しさん:04/06/13 23:06
すみません。Stringクラスのコンストラクタで、new String(request.getParameter("name"),UTF-8)と
指定するとUTF-8のところでエラーになります。

エラーは以下の通りです。

Lesson06.java:18: シンボルを解決できません。
シンボル: 変数 UTF
場所 : Lesson06 の クラス
String strName = changeStr(new String(request.getParameter("name"),UTF-8));
^Lesson06.java:18: シンボルを解決できません。
シンボル: コンストラクタ String (java.lang.String,int)
場所 : java.lang.String の クラス
String strName = changeStr(new String(request.getParameter("name"),UTF-8));

どう指定したらいいんでしょうか?Javaのドキュメントを見てもUTF-8で問題ないと思うんですが。
宜しくお願いします。
>>340
Stringクラスにはそんなコンストラクタはない。
これがお望みの動作かな?
new String(request.getParameter("name").getBytes(), "UTF-8")
>>340
そのような引数を取らせることはJavaでは、文法的にまずありえないから。
"UTF-8"のようにダブルクォーティーションで囲うことでString値にするか、
String型の変数に"UTF-8"の値を代入して、引数にとらせるか。
343340:04/06/13 23:21
>>341
それみたいです。。どうもすみません。本にしっかり書いてありました。
期限に間に合わない焦りと疲れで見落としていたみたいです。

本当に助かりました。どうもありがとうございます。

>>342
どうもありがとうございます。>>341さんの方法でいけました。>>342さんの
方法は次回試してみたいとおもいます。なんしろ焦っているもので。。

おふたり様。本当にありがとうございました。非常に助かりました。
344340:04/06/13 23:27
>>341-342さん

やはりできました。UTF-8もダブルクォーテーションでくくる必要があるんですね。
>>342さんの指摘で気づきました。なかったら、まだパニックだったとおもいます。

ありがとうございました。
345デフォルトの名無しさん:04/06/13 23:40
集約の関係が
class Main {A a;}、class A {B b;}、class B {C c;}、class C {Vector v;}
となっててMainクラスからvの要素を検索したいのですが
class A {
 search(){ b.c.v.conteins(...); }
}
とするか
class A { search(){ b.search(); } }
class B { search(){ c.search(); } }
class C { search(){ v.contains(...); } }
とするかどっちが普通ですか?
346325:04/06/13 23:46
>326
自分へのレスですよね?どうもありがとうございます。
TreeCellRendererですね。分かりました。
ドラッグ&ドロップはどこかに解説が落ちてましたよね。

ところでTreeCellEditorっていうのは
アウトラインプロセッサには関係ないですか?
347デフォルトの名無しさん:04/06/13 23:51
>>345
クラス設計しなおせ。
結局見た目が勝負だからドラッグ中にどういった表示にするとか
そういうところにこだわるのでなければ無視してくれ

見出しみたいなの表示すると思うし階層によって
1・
2・
3・
と表示したり
(1)
(2)
と表示したり色かえたりアイコン化エルとかよくやるからね
>>346
もしかして、ソフ板の人…?
500 Servlet Exception
javax.servlet.ServletException: Attempted JSP page generation during application
shutdown/reload.
at com.caucho.jsp.PageManager.getPage(PageManager.java:292)
at com.caucho.jsp.PageManager.getPage(PageManager.java:206)
at com.caucho.jsp.QServlet.getPage(QServlet.java:220)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:129)
at com.caucho.server.http.Invocation.service(Invocation.java:315)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:346)
at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274)
at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
at java.lang.Thread.run(Thread.java:534)


--------------------------------------------------------------------------------
Resin 2.1.13 (built Thu Apr 1 10:57:42 PST 2004)
351325:04/06/14 00:59
>348
ではTreeCellEditorは初歩的なアウトラインプロセッサに関係なくて、
TreeCellRendereで各ノードの編集ができるんですね。
TreeCellEditorはドラッグ中の表示?を変えたりするものということで。
分かりました、ホントありがとうございます。
エディタ部はどうすればいいのでしょう?
ノードからエディタ部(JTextAreaとか?)への内容の受け渡し部分がちょっとピンと来ません。

>349
いいえ、残念ながら違います…
ソフ板のアウトラインプロセッサスレは近頃見に行ってないんです。
ああ、もしかしてJTree自体つかったことないひとか
まずは細かいことやろうと思わない方がいい
シンプルに作ってから装飾していってね
エディタ部分も最初はたんなるテキストのみにしたほうがいいね

んで見出しやら本文やらをどこに格納するか迷っているようだけど
JTreeのノードにはObject型が入る
つまり、あらゆるクラスがはいるわけ
あくまでもデフォの表示にはtoString使ってるだけで

MutableTreeNodeとか勉強してくだされ
具体的には見出しや本文をカプセル化するクラスをTreeのNodeにぶらさげていくという感じ

そして保存形式もそのままTreeのXMLにしてもいいし
DBのような表形式にして格納してもいい
353325:04/06/14 01:37
>352
お察しのとおり、JTreeを使ったことがないのです。ご迷惑おかけしました。
ものすごくためになりました。ご丁寧に答えてくださってありがとうございました。

実は今まで、あのノードにはノードの名前しか格納できないものだとばかり思ってました。
本文を格納するのはもっと別のところなんじゃないかとか…
そうじゃないんですね。胸のつかえが取れた感じです。スッキリしました。

MutableTreeNode、これから勉強します。
本当にどうもありがとうございました。
拡張(extend)と実装(implement)の違いってなんですか?
extendsはクラスを拡張
implementsはインターフェースを実装
>354
super
javaで作ったソフトの設定ファイルとして、実行しているクラスファイルと同じ場所にある
iniファイル(中身はテキストです)を読み込ませたいんですが、
実行しているクラスのパスを取得する方法は無いでしょうか?
絶対パスで指定するわけにはいかないし…
よろしくお願いします。
>>357
そのディレクトリにクラスパスを通すように設定すると、
プロパティファイルを以下の方法で読み取れる。
Properties prop = new Properties();
prop.load(getClass().getResourceAsStream("/hoge.properties");
設定ファイルなら、Javaだと、propertiesファイルかXMLファイルを使うね。

起動時のクラスパスの設定方法だけど、環境変数CLASSPATHを変更するのは
環境に優しくないので、起動オプション-classpathを使う方法がお薦め。
-classpathを指定してJavaVMを起動するようなバッチファイル、WSHスクリプトファイル、
シェルスクリプト等を書いて、そこから起動してもらうようにするとか。
Windows用のネイティブアプリなら、過去ログにいくつか載ってたはず。
JLauncherだったかな。
起動オプションの-classpathを指定してjavaを起動するのがめんどうでも、
実行可能Jarファイルにして、manifestファイルの中で指定しておけば、さらに簡単なうえに、
batファイルを使うよりも環境非依存牲がよりつよまって、さらにおすすめ。
MANIFESTファイルでjarの外のリソースを指定できたっけ?
いや、できるのなら方法教えてもらえるとうれしい。
>>360
ちゃんと日本語訳されてるマニュアルくらい読め
362359:04/06/14 11:25
>>360
いや俺の>>359で書いたのは、
ファイルなどのリソースを読み込みのさいの起点になるクラスパスを
マニフェストファイルで指定しようというだけのこと。
363359:04/06/14 11:27
-ファイルなどのリソースを読み込みのさいの起点になるクラスパスを
+ファイルなどのリソースを読み込むさいの起点になるクラスパスを

// すまそ。
春からjava初めてやさしいjava基本編は終わったんだが、
javaってGUIに向いてないこと知った。

あきらめてC++とかやったほうがいいか。
それとも無理矢理javaでGUIアプリつくるか。
どっちがいいよ?
C++ すらやったことないなら Java でやった方がまし。
どうしても楽したいなら VB でもしてオナりなさい。
>>364
そのレスをみてオマエはプログラムに向いてない事を知った。

あきらめて他の事するほうがいいか、
それともゴミとわかっててプログラム作るか。
どっちがいいよ?
>>365
まぁVBで作るか。.netはわからんが6.0ならできるし。

俺はGUIのアプリが作りたい。
javaは授業があるからやっただけ。
せっかく覚えたから組んでみようと思ったんだがな。無駄だったか
恥の上塗り
JavaってGUIコンポーネントのデザインはむちゃくちゃ出来がいいんだよな……。
プログラミング習いはじめの学生でも数日でウインドウアプリが作れるくらいに。
>>365 のGUIって、
               ┌────────┐
数字を入力してください │            │
               └────────┘

だろ?(糞
何で? バカじゃないの?
>>364>>369 の間違いじゃないの
それか >>337
VBでフォームでも貼ってろヴォケ
374名前は開発中のものです。:04/06/14 16:07
JBuilder8.0使え!
GUI思いのままだぞ!

グラフィックユーザーインターフェースともいう!
375デフォルトの名無しさん:04/06/14 16:44
超初心者です・・・・・煽り覚悟で質問です。
IBMのJavaダウンロードしたいんですけど
どうやればいいんですか?
IBMのページでダウンロードしようと思ったのに
英語がよくわからなくて・・・。
javaではこれが一番いいって聞いたもんで(´・ω・`)しょぼしょぼ。
他にお勧めのあればそれも教えてほしいです(これはあくまであれば
の話ですけど・・・)
>>375
英語読めないんだったら素直にSunの使っておくがいい。
超初心者なら違いすら気づけないから。
Sunのを使ってる間に、英語の勉強もして、初心者脱出した頃にもう一回挑戦してみてはどうか。
>javaではこれが一番いいって聞いたもんで
もし君のレベルを分かってて誰かがそう言ったなら、
そいつの言うこと聞いてると回り道ばかりで苦労しまくるだろう
>.>375
Linux用なら、ここからダウンロード。
http://www-106.ibm.com/developerworks/java/jdk/linux140/
Windows用なら、versionが1.3になってしまうが、これに付随しているらしい。
こちらはダウンロードしたことがないのでわからないが。
http://www-106.ibm.com/developerworks/webservices/wsdk/
イマイチ抽象クラスとインターフェースの使い道がわかりません。
普通に継承して、オーバーライドするなりすればいいんじゃないかと思うんですが、
どういった時に使うのでしょうか?
>>379
抽象クラス・・・一部の処理は実装済みにしておけるが、
残りの処理はなんともいえない奴
インタフェース・・・メソッド名は用意できるが、全部の処理がなんともいえない奴

本の例は勉強の役にはまったく立たない。
インタフェースなら 〜Listener や Comparable の例を見よ。
抽象クラスなら Number の例を見よ。
自分はその壁をjava.sql.*で越えました。
382379:04/06/14 18:52
>>380
どうもありがとうございます。
その例を見て勉強してみます。
>>382
抽象クラスは、わからんなら使わんければいい。
「このメソッドは直接使うな」「このメソッドをオーバーライドしろ」という、そのクラスを継承して使う人へのメッセージ。

インターフェイスはとりあえず3通り知ってる。
・クラスの外部仕様を定義する
  ex. java.util.List java.sql.ResultSet
・コールバック(何かのタイミングで呼び出されるメソッドを定義する)
  ex java.awt.event.ActionListener
・クラスに目印をつける
  ex java.io.Serializable
サーブレット内で変数に文字列を格納し、その中に「―」が含まれる場合、
jspで表示すると「?」に文字化けしてしまうことがあります。
jspの文字コードはシフトJISで、他の文字列は2バイト文字も正常に表示されます。
これはどのように対処したらいいんでしょうか?
>>384
シフトJISじゃないからです。
おまえが使ってるのは、Windows-31Jのはずだ。
386384:04/06/14 20:11
>>385
どうもありがとうございます。
jspのcharsetをWindows-31Jにしたらちゃんと表示されました。
という事は、今までShift-JISに指定していたのは間違っていたという事でしょうか?
>>386
1.4から、エンコーディングのマッピングが変わったん。
>>387
1.4.1からだ。ヴォケ
389384:04/06/14 22:07
>>387>>388
どうもありがとうございます。
自分が勉強し始めた時は1.3.1の時だったので知りませんでした。
ちゃんとリリースノートを読まないといけないですね。
必見文書
Shift_JISのエイリアスの変更について
http://www.ingrid.org/java/i18n/encoding/shift_jis.html
JAVA初心者です。
Vアプリの勉強をしているのですが、サウンドの再生でつまづいています。
どなたか教えていただけないでしょうか?
Vアプリでサウンドを再生させたいので、

import com.jblend.media.*;
import com.jblend.media.smaf.*;

上記の2行をソースファイルに記述しているのですが、
J2ME Wireless Toolkitでのビルド時にエラーになってしまいます。

エラー内容--------------------------------
c:\WTK104\apps\sample1\src\sample1.java:7: パッケージ com.jblend.media は存在しません。
import com.jblend.media.*;
^
c:\WTK104\apps\sample1\src\sample1.java:8: パッケージ com.jblend.media.smaf は存在しません。
import com.jblend.media.smaf.*;
^
エラー 2 個
com.sun.kvem.ktools.ExecutionException

ビルドに失敗しました
-------------------------------------------
開発環境は、
win2000
・Java2 SDK ,Standard Edition Version 1.3(JDK 1.3)
・J2ME Wireless Toolkit
・V-appli Emulator
です。 よろしくお願いします。
>>391
クラスパス
393デフォルトの名無しさん:04/06/15 01:26
宿題がわかりません!
140*60pixelの長方形の中に半径15の円を描き、その円を上下左右移動できるようにする。
おしえてください。お願いします。
>>393
悩め!
そして、どこまで考えたかを書け
>>393
宿題丸投げは宿題スレへ。

学校の宿題は俺にやらせて下さいver.2.0βfor Java
http://pc5.2ch.net/test/read.cgi/tech/1076054000/l50
396391:04/06/15 01:54
>>392
import com.jblend.media.*;
import com.jblend.media.smaf.*;

c:\WTK104\docs\api\com\jblend\media\
ということを指しているのですか?
397391:04/06/15 02:14
すいません。アホ過ぎました・・・逝ってきます

>>392
ありがとうございます
398 bn.;/:\]:04/06/15 02:39
 、mん
>>396
いやソースの冒頭にあなたが書いたであろうimport文は、
c:\WTK104\docs\api\com\jblend\media\を指し示しているわけではなくてね。

importはたんに、ソース文中で、クラスの正式な名前を使わなくていいようにする命令。
importを使うと、パッケージ部分を省略した短い名前でソースが書けるようになるのだね。

あなたが指定しなければならないクラスパスとは、importとはまた別物。
javacコマンドにしても、javaコマンドにしても、com.jblend.media.*のようなよそから持ってきたクラスを使用したいときには、
そのよそのクラスがどこにあるかを、「クラスパス」を使用して、javacやjavaコマンドに教えてあげなければならないわけ。

クラスパスの指定については、>>358が言うように、起動オプションをつかったほうが柔軟でいいとおもう。
私はコンパイル時にはantを使っているが。
htmlと○○.classを同じフォルダにいれたんですが
htmlを表示するとload: class ○○ not foundとでます。
どうすればいいのですか?
>>400
たぶん>>400の言う"html"というのは、
"○○.class"をアプレットとして呼び出すように書かれたhtmlファイルのことだとおもうのであるが、
>>400に書かれた情報だけでは、判断できないよ。

おそらくそのhtmlファイルを>>400が表示させたのはIEだとおもうが、
IEが使用するJavaVMがマイクロソフトのVMになっているにもかかわらず、
そのクラスファイルは、Java1.1用にコンパイルされていないのではなかろうか。
それか呼び出そうとしているclassがpublicになっていないので、ロードできないのではないだろうか。
もしくは、そのクラスがパッケージを使用したものならば、
そのクラスファイルを本来配置するべき正しいディレクトリに
配置されていないということも考えられるが。
403400:04/06/15 09:08
>>401
>IEが使用するJavaVMがマイクロソフトのVMになっているにもかかわらず、
>そのクラスファイルは、Java1.1用にコンパイルされていないのではなかろうか。

この場合はどうすればいいんですか?
>>403
java -target 1.1 ○○.java
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/javac.html

さてこれで動くようになったかい?
俺にはversionよりはデリミタの問題や、大文字・小文字や
typoなどによるURIの書き損じのような、どうでもいいような間違いにおもえるのだが。
あいやそんな俺がどうでもいような間違い。
javac -target 1.1 ○○.java
406400:04/06/15 09:33
>>404-405
できました。
どうもありがとうございました。
コンパイルされるクラスファイルのほうを古い1.1のVMにあわせてもいいんだけど、
IEが使用するVMを、新しい1.4のVMにしてもいいんだけどね。
408デフォルトの名無しさん:04/06/15 17:33
SAXParserで8192バイト以上のXMLファイルを処理すると、
8192バイト目でデータが切れてしまいます。
対策はあるでしょうか。
409デフォルトの名無しさん:04/06/15 18:52
characters メソッドに渡ってくる char[] のサイズが8192バイト
になっちゃってるみたいだな。どうすんべ。
410デフォルトの名無しさん:04/06/15 20:05
j2re 1.4.2@Windows です。

テキストファイル C:\test.txt があるとして、それを開きたいのですが、
開くプログラムは実行環境で txt に関連付けられたプログラムで開きたいのです。

どうやればいいのでしょうか。
411デフォルトの名無しさん:04/06/15 20:08
パソコンの環境を表示したりするプログラムを書きたいんですが、
パソコン全体でのCPU負荷とかメモリの使用率とか回線の利用速度
JavaVMでのCPU負荷とかメモリの使用率とか回線の利用速度
を取得したいです。JavaVMのメモリ使用量はRuntime.getRuntime().totalMemory()とかで
良いのかな?と思ったのですが他を取得する方法が見つけれらず・・・
Javaでもこういったソフトは作れるんですか?
>>410 SWTを使えば関連付けられたアプリケーションから
ファイルを開くことができるよ。
>>408
試してみたけど、情報が欠損してるわけではなさそうだね。

<root>aaaa...</root>

のデータでaaaa..が10000バイトあるとする。
この場合、
1.startElement(root)
2.characters(8192バイト)
3.characters(1808バイト)
4.endElement(/root)

#2は自分の実験では、ch.length==8193 start==48 length==8145

の順番で呼びだされるので、
2と3の結果を結合すれば望みの
出力が得られることになるはず。

で、その処理を行うにはcharactersがどの要素内で呼び出されたかを知る必要がある訳だが...。

自分が過去に似たようなことを行ったときは、スタック構造を利用して、
startElementでpush、endElementでpop、charactersで判定を行うようにしてたな。
>>411
無理。
でも JNI かなんか使ったライブラリがあればいいだけの話 (だから pure java ではない)。
そういうのがほんとにあるかどうかは知らん。
>>411
一応それらしいもののリンク張っとく

詳しく知らないから
全然無関係かもしれない。

http://www.tolstoy.com/samizdat/jconfig.html
>>411
SNMPについて調べな。
417411:04/06/15 21:28
>>414,415,416さん返答ありがとう。
特に416さんのSNMPは大学図書館で名前を見たのを覚えているので、
早速行ってきます。
>410
関連付けられたエディタではないが、たとえば
Runtime.getRuntime().exec("notepad");
とすればWindowsではメモ帳が開く。
これを使えば強引ではあるが、少なくても任意のテキストエディタでは開けるかな。
>>410
NTかXPなら
Runtime.getRuntime().exec("cmd.exe /C hoge.txt");
で、txtファイルに関連づけられたプログラムが起動する。wordやhtmlも可。
98は知らないのでパス。
420デフォルトの名無しさん:04/06/15 22:44
java swing で、ウィンドウを開いたあと、
ウィンドウの中に閉じるボタンを作りたいです。
addActionListener(btn) して、
actionPerformed(ActionEvent e)
の中で閉じる処理をしようとしているのですが、
ウィンドウを閉じる処理はどのようにすればできるのでしょうか?
よろしくお願いします。
421デフォルトの名無しさん:04/06/15 22:54
>>420
swingには安全にウインドウを閉じる方法が無かったと思います。
うそみたいな話ですが本当です。
System.exit(0);
423デフォルトの名無しさん:04/06/15 22:55
java swing で、JCheckBox を縦に上詰めで並べたいです。
このチェックボックスの数が、場合によって異なるため、
数が増えてもスクロールバーで全体が見えるようにしたいです。
JScrollPane に何かを貼り付けて、
それに JCheckBox インスタンスを貼り付けようと思ったのですが、
「何か」に適当なものが見つかりませんでした。
どのようにしたら、このようなものが作れますか?
よろしくお願いいたします
424420:04/06/15 22:58
>>421
そ、そうなんですか!?
ぐぁ〜ん。がっかりです。
調べても見つからないわけですね・・・。
ありがとうございます。
>>422
それだと、システム自体が終了してしまいますよね?
ウィンドウだけを閉じたいのです。

もし、何らかの方法をご存知の方がいたら、よろしくお願いします。
>>421
根拠かソース?

>>424
そのウィンドウが
JFrame frame;
なら
frame.setVisible( false);
frame.dispose();
では?
>>425
わからない人がわからない人に教えるのは無意味。
もう少し考えてから書き込んでは?
あれ、マジでdispose()呼ぶのってまずいとこあるの?
428420:04/06/15 23:21
>>425
setVisible(false);
は、ただ見えなくするだけですよね?
dispose()
というのは api を見ると、
「この Window、そのサブコンポーネントと、その所有されたすべての子によって使用されているすべてのネイティブスクリーンリソースを解放します。
つまり、これらの Component のリソースが破棄され、それらの消費するメモリが OS に戻ります。
Window、そのサブコンポーネントと、その所有されたすべての子は、表示不可能としてマークされます。
Window およびそのサブコンポーネントは、pack または show を呼び出してネイティブリソースを再構築すれば再び表示可能にできます。
再生された Window およびそのサブコンポーネントの状態は、Window が破棄された時点のそれらのオブジェクトの状態と同じです。
破棄と再生の間の追加変更は考慮されません。 」
だそうですが、これはコンポーネントだけを廃棄して、
window は非表示にするだけ、ということでしょうか?

429デフォルトの名無しさん:04/06/15 23:22
javaだけで時給いくらもらえますか?
>>427
ねただとは思いますがマジレスすると、かなりまずいですね。
final JFrame frame = new JFrame();
frame.setSize( new java.awt.Dimension( 100, 100));
frame.setVisible( true);
//ウィンドウが開いた後、
//閉じるボタンを加える。
JButton button = new JButton( "閉じる");
ActionListener listener = new ActionListener(){
public void actionPerformed( ActionEvent ev){
frame.setVisible( false);
frame.dispose();
}
};
button.addActionListener( listener);
frame.getContentPane().add( button);
frame.pack();

これで何の問題もなく動くんだが
>>426はどういうこと?
>>431
ほんとにわかっていないようですね・・・
問題なく動くように見えるだけです。
JDialogを使えと。
>>432
で、なんで?
>>432
危険だという根拠まだー、ちんちん。

JDKのDISPOSE_ON_CLOSEも
setVisible(false);
dispose();
してますが?
釣られ・・・たのか?(゜д゜;)
「閉じる」って処理は「見えなくする」ってことでいいんじゃないの?
なにか問題あるのかな
>>423
JPanel
>>429
おまえにはやらん。
>>423,438
Box の方がいいよ
441デフォルトの名無しさん:04/06/16 00:43
同じクラスを参照している二つのインスタンス変数があるとして、
片方が変数を通じてインスタンスの中身を変えると、もう片方の
変数も変えられた中身のインスタンスを参照するのは分かるのですが、

Stringは同じ参照型なのに、例えば
String s1 = new String("hello");
String s2 = s1;
として、s2の中身を変えても、s1には影響がないのは
なぜなのか分かりません。
知っている人がいましたら、是非教えてください。
>>441
s2の「中身(参照先)」は変更不能ですが…
s2自身は変更可能ですけれど。
443410:04/06/16 00:52
>>412,418,419
dクスコ。
>>419 の方法でやってみます。
あと、色々調べたところ、

Jakarta Ant の CovBase というクラスに、
protected java.lang.String findExecutable(java.lang.String relativePath)
というメソッドがあって、これがなんか使えるかもしれないので、調べてみます。
何度も何度も何度も何度も出ているが
そーいうのやりたきゃ不変クラス使うな
StringやめてStringBufferで試せ
もしかして、初心者とか某カス言語からの移行者って、
Immutableという概念の理解に壁があったりするのか?
同じ質問大杉だし。
>>443
JDesktop Integration Components の Filetypes API も調べてみたら?
https://jdic.dev.java.net/
>>442
レス、ありがとうございます。
ということは、s2の参照先が新しくなったという事ですね?

>>444
レス、ありがとうございます。
特に必要な訳ではないんですが、何でかなー?と思って。
既出だったんですね、失礼しました。
探しに逝ってきます。
1.5はいつ頃正規版が出そうですか?
>>441
C++を知っていると仮定して説明するが
Javaでいう参照型はC++でいう参照ではなくポインタであると考えればよろしい。
>>447
そういう疑問は重要ですよ。
大切にしてください。
>>444
あなた取り付かれたようにそればっかりいってるけど
試せ試せとわめくより実例挙げてあげたら?

私流の教え方:
インスタンス変数とはあだ名である それ以上でもそれ以下でもない
インスタンスとは本名のない何者かであり、
 何行にも渡って扱い続けるにはあだ名を必要とする
なお、2人以上に同時におなじあだなはつけない(そんなことしたら混乱する)
String usuge = new String("barcode"); // 今後 usuge は新しく作ったインスタンスのあだ名となる
String hage = usuge; // hage というのもさっき作ったインスタンスのあだ名になる
hage = new String("skinhead"); // hage というあだ名にふさわしい新たなインスタンスが今後 hage とよばれる
同時に、最初に作った奴はもはや hage とは呼ばれなくなったが依然 usuge と呼ばれ続けている
452441:04/06/16 01:25
>>449
レス、ありがとうございます!
C++はJava以上にサパーリです。申し訳ない。
ググってみたら不変オブジェクトと可変オブジェクトの説明で
それらしきことを言っていました。

>>450
涙でディスプレイが霞んでるよ…。
>>451
そういう我流の変な例えかたって、悪影響ばかりあると思うんだよね。
あだなとか、値を入れる箱とか、そういう表現がさらなる誤解を生む
usuge = null;
//usuge というあだ名で誰かを呼ぶのをやめて、usuge 不在とする
//barcode 頭は usuge 以外に呼びようがなかったため
//もはや誰にも呼んでもらえず思い出してももらえずもう世間に対してアピールできない
//(しばらくすると世間から抹消される=「ガベージコレクト」)
箱よりはましだと思うけど。
>>454
fusa = 0xFFFFFFFF;
っていうか、new String("hoge")なんてバカなことやってるのは、誰か止めないの?
別に止める必要ないし
459306:04/06/16 01:43
Javaでプログラムに直接書いた日本語を表示させようとすると
環境によっては文字化けするんですが、なにか対策はあるでしょうか。
表示する文字を別ファイルにまとめるみたいなおおげさなものでなく
g.drawString("あいうえお", 10, 20);←こういうのを正しく表示したいんですが。

すいません、よその名前が残ってました
【質問】
コンソール画面なんですがこんな感じの
#IOExceptionは省きます
try{
System.out.println("名前は?");
data.setName(input.readLine());
System.out.println("電話番号は?");
data.setTelephoneNo(input.readLine());
System.out.println("誕生日は?");
data.setBithday(input.readLine());
}catch(IllegalArgumentException iae)
System.err.println(iae.toString());
}
入力するプログラムがあります。
setNameやsetBithdayでは入力チェックが行われており
範囲外だとIllegalArgumentException(以下IAE)をthrowします。

上記のプログラムだとIAEをスローした場合、また最初から
入力し直さなくてはいけないわけで、IAEがthrowされた場合
再度入力をさせたいわけです。
で、自分は質問毎にクラスを作成して丁度、デザインパターンで言う
「chain of responsibility」のように数珠繋ぎにしようと思ったんですが
質問毎にクラスを作成するのってどうなんでしょう?
間違ってる気がするんですが他に思い浮かばないです。

ちなみにjavaの宿題スレの489の住所録を力試しにやってるんですが
この部分がどうなんだろと悩んでます。
一応、質問と相談なのでこちらでレスされてもらいました。
文字化けするのはおおよそ VM のフォント設定の問題
font.properties とかなんとか調べて
>>441
一度作ったStringオブジェクトの内容はもう絶対に変わらない(ということになってる)ので
s2の中身を変えるという表現はおかしい

例えば
s2= "OK";
として変えたということならそれは
s2=new String("OK");
としたのと同じで単にs2の参照先が変わったということだけであって
s1には何の影響もないのは当然

また
s2=s2+"OK";
この場合は足した時点でs2が指すStringの内容"Hello"と"OK"をつなげた
"HelloOK"という内容のStringオブジェクトを新たに作るので
s1には影響しない


という感じでいいのかな?
なんかぶさいくが出てるなぁとおもったら




俺の妹やん・・・orz
止める必要はないということだが
 new String("OK");
というのは
 new String(new String(new char[]{'O','K'}));
と同じだとわかって書いてる?
実際に全く同じ処理をしてるかどうかは知らないけど。
>>464
どの番組?
>質問毎にクラスを作成するのってどうなんでしょう?
どうなんでしょう?ってそこまで小難しいこと考えてあと何が分からないか分からない。
>間違ってる気がするんですが他に思い浮かばないです。
別に間違っちゃいないが、他に浮かばないって他の何?
「数珠繋ぎ」をやめるってことも含めて言ってるの?
よくあるウィザードなんかをお手本に考えりゃイメージ沸くと思うんだが。
>>466
NHK教育

誤爆すまそ
>>465
どんなバカなコンパイラだよw
465は最適化を知らないだね・・・ぷぷ
>>468
おっさんが好き勝手言う番組になっとった。
最適化されうる冗長な処理ということでしょ。
473こういう事です。:04/06/16 03:31
String s1 = "ABC";
String s2 = s1;
というのは、
String s1 = new String("ABC");
String s2 = new String(s1);
と内部で処理されます。 (JAVAでは、これは決まり事なんです。)
String s1 = "ABC";
String s2 = s1;
String s1 = "XYZ";
というのは、
String s1 = new String("ABC");
String s2 = new String(s1);
String s1 = new String("XYZ");
となります。
C言語でいう参照とか、C言語でいうポインタとか考えるといいとか言う人がいますが、
そういう風に考えると余計に混乱します。
s2 = s1 というのは、参照でもポインタでもなくて、 new String(s1) というように
新たらしいオブジェクトが生成されて、それがs2に代入されるんです。 s2はs1のメモリ
アドレスの事なんて何も知りません。
JAVAではこうなるんです。決まり事なんで覚えるしかないんです。

>>473
> String s1 = "ABC";
> String s1 = new String("ABC");
その理屈だと
String s1 = new String(new String("ABC"));
String s1 = new String(new String(new String("ABC")));
と無限に続く罠。
>>473
> C言語でいう参照とか、C言語でいうポインタとか考えるといいとか言う人がいますが、
C++の参照とJavaの参照は全く違うね。
C言語のポインタはJavaの参照に近い(C++の参照よりは)

ポインタが理解出来てりゃ決まり事というように覚えなくても理解できると思われ。
476デフォルトの名無しさん:04/06/16 04:00
Colorクラスの変数同士を互いにコピーするには
Color c2 = new Color(c1);がないようなので
Color c2 = new Color(c1.getRed(),c1.getGreen(),c1.getBlue());
とやるほか無いのでしょうか?
cloneは?
478477:04/06/16 04:10
ごめん、あほなこといった。
479477:04/06/16 04:13
new Color(c1.getRGB());
の方が楽
しかし、コピーする必要ってある?
Color.getRGB()知りませんでした。これで行きたいと思います。
ありがとうございました。
481477:04/06/16 04:24
>>480
っていうか、コピーしてなにがしたいの?
482デフォルトの名無しさん:04/06/16 05:11
ArrayListの特定の要素を別のArrayListにコピーするやり方
なにそつおねがいします!!!
ひとつ質問していいですか。

たとえば・・・
Test4 myWindow = new Test4();

・・・こういう宣言をしたとします。
これは、「Test4のオブジェクトを作る」でいいんですよね?
「newでインスタンスを作る」って言葉、ちょっとおかしいですよね?

インスタンスって、クラスに関連付けされてるメンバーを指す言葉ですよね?
うーん?
俺の読んでる本がおかしいのか、今見てる解説サイトがおかしいのか、
はたまた、俺が何か勘違いしてるのか・・・
484483:04/06/16 06:48
あ・・・
インスタンスは、オブジェクトに関連付けされてるメンバーを指すんでしたっけ。
myWindowのインスタンスメソッドとかインスタンスフィールドとか・・・

・・・でも、やっぱインスタンスを作るって言葉おかしいような・・・
インスタンス化する=実体化する

大いに悩めw
486483:04/06/16 07:01
>>485
あーなるほどなるほど。
ひとつ胸のつっかえが取れた。

ありがとうございました。
Test4[] myWindow=new Test4[10];    ←まだ実体化してない
myWindow[0]=new Test4();       ←ここで実体化
488483:04/06/16 07:57
俺が読んだ本によると・・・

実体化させた物は、オブジェクト。
そのオブジェクトに関連付けされてるメンバーをインスタンスメンバー。
実体化させなくても使えるクラス。
そんなクラスのメンバーをクラスメンバー。

そんな風に書いてた覚えが・・・
ちょっと本読み直してみます。
>実体化させた物は、オブジェクト。
別にインスタンスでもかまわん
>そのオブジェクトに関連付けされてるメンバーをインスタンスメンバー。
インスタンスと呼んだ方が考えやすかろ
>実体化させなくても使えるクラス。
クラスは常に「使え」ますがな
>そんなクラスのメンバーをクラスメンバー。
そんなもなにもない。クラスのメンバはクラスメンバ。
文字でぐだぐだ述べてもしゃぁない。ソース見たら一発。static かそうでないか。
>>488
おそらくちょっと解釈違いして君が混乱してるか、その書籍の作者が沢村並みに逝かれてるかだと思う。
491483:04/06/16 08:21
>>489
>クラスは常に「使え」ますがな
たしかに。
ちょっと言葉おかしかった。

実体化させなくても使えるクラスメンバーを、クラスメンバー。

・・・おおぉ!やっぱ言葉おかしい!
各名称をきちんと覚えないと本読んでも理解が薄い・・・
ってか、名称ばかりでずらずら書いてくれてる本もあるし。
最初のうちにキチンとね。

>>490
いや、たぶん俺が勘違いしてるっぽい。
もう一度本読んでおきます。
その前に、ウインド部品を操作するのが面白いので、
ボタン作ってラベルの文字変えて遊んでます。
492デフォルトの名無しさん:04/06/16 08:24
>>420
インスタンスを破棄しては、どうですか。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class tesuto extends JFrame{
private static boolean b = true;
private static tesuto t;
public static void main(String args[]){


t =new tesuto();
t.setVisible(true);
}
tesuto(){
setBounds(10,10,200,200);

JButton j = new JButton("cc");
Container c=getContentPane();
c.add(j);
j.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
t.setVisible(false);
b = false;
t=null;
//t.setVisible(true);

}
});
}

}
>>473
馬鹿は語るな
>>473
((((;゚Д゚)))ガクガクブルブル
495デフォルトの名無しさん:04/06/16 08:46
>>473
>String s1 = "ABC";
>String s2 = s1;
>というのは、
>String s1 = new String("ABC");
>String s2 = new String(s1);
>と内部で処理されます。 (JAVAでは、これは決まり事なんです。)

お前アフォか。頼むからもう書き込むな。もう一度Javaの勉強してこいC++厨が!
この場合の s2=s1 というはs2にs1の参照を渡す、と言う意味だろ。


もしかして、、、、俺、釣られたの?
496デフォルトの名無しさん:04/06/16 08:49
>>483
>インスタンスって、クラスに関連付けされてるメンバーを指す言葉ですよね?
ちょっと違うと思う。
クラスは単なる設計図だよ。
インスタンスは個人的には動詞的に使うものだと思うんだけど。
インスタンス生成とか、インスタンス化とか。
そいで、クラスという設計図をもとにインスタンス生成したものがオブジェクト。
newは指定されたクラス領域(配列なら要素数分)のメモリを確保してコンストラクタを実効する。
それがインスタンス生成。
だから「newでオブジェクトを作る」でも、「newでインスタン生成(化)」でもどっちでもいいと思う。
どっちにしろ、その本の言葉はあまり一般的ではないと思うんだが。
オレの勉強不足かもしれんけど、
>インスタンス生成とか、インスタンス化とか。
それのどこが動詞的なのかと
動詞的なのは「生成」と「化」だろう
>だから「newでオブジェクトを作る」でも、「newでインスタン生成(化)」でもどっちでもいいと思う。

おれも最初、二つの意味の違いが分からなかったがどっちも同じ意味なんだな。
499デフォルトの名無しさん:04/06/16 08:57
>>497
え?
だからインスタンス生成「する」とかインスタンス化「する」っていうじゃん?
インスタンス「する」とかオブジェクト「する」とは言わないしょ?そういう意味で。
どうようにオブジェクト化っていう言葉も使わないし。
>>499
だからインスタンスという語は動詞的でもなんでもないだろう。
動詞的な語とくみ合わせて使われてる名詞だろ。
国語勉強せい。
System.out.printlnでオブジェクトを出力すると出てくる数字。
あれって、アドレスだよね・・・?
違う物?
・・・乱数なのか?
>>483の間違ってる部分って、この部分だよね?
502501:04/06/16 09:11
>>483は、>>473の間違い・・・○| ̄|_
503デフォルトの名無しさん:04/06/16 09:13
>>500
だからさ、インスタンスって言う言葉は名詞だけど生成とか化って付けて動詞的に使う方が多くないか?
って言いたいわけさ。
オブジェクトとインスタンスの違いみたいな話題になってたから。
逆にオブジェクトはそのまま名詞でしか使わないだろ?
インスタンスの品詞が何かなんてオレは言ってない訳で。
インスタンスが動詞なんて言ったか?
インスタンスは名詞で、それを動詞的に使うの。
分かる?
504デフォルトの名無しさん:04/06/16 09:16
>>501
演算子のオーバライドでStringを生成するようになってなかったら
printlnでアドレス出てくる。
>>483は全然違う。
String s2=s1はそれ以外の何者でもない。
s2とs1は全く同じメモリ領域を指すことになる。
>インスタンスは名詞で、それを動詞的に使うの。
商品化 薬品生成
こういうときあなたは「商品、薬品を動詞的に使ってる」と主張するんですか。
そうだ、というならあなたはキチガイですね。
キチガイを相手にするのは賢い選択ではないので、私は反省してこれ以上の議論を放棄します。
506デフォルトの名無しさん:04/06/16 09:49
>>420
わすれてください
507デフォルトの名無しさん:04/06/16 09:52
>>506
まちがった
>>420じゃなくて
>>492です
お前ら
まず注意力を身に付けろ
509デフォルトの名無しさん:04/06/16 10:03
>>505
キチガイはあんた。
動詞ではなく動詞的にってことだろ?
商品化は明らかに名詞節(だっけ?)だが、商品化するっていうと動詞的に使ってることになる。
日本語の定義にぐちぐちしなくても、裏にある意図を読み取ることは出来ないのか?
賢人は多くは語らない。言われなきゃわからないアンタはきちがい。
見て盗めも然り。
じゃ、大団円ということで。
>>504
>演算子のオーバライドでStringを生成するようになってなかったら
>printlnでアドレス出てくる。

実装依存みたい。

通常、これはオブジェクトの内部アドレスを整数値に変換する形で実装されますが、そのような実装テクニックは JavaTM プログラミング言語では不要です。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Object.html
>>501
アドレスを出力する場合もあるが、言語仕様的にはアドレスで無くても構わない。
アドレスだと決めつけるのは危険。
Javaについて語りましょうよ喪前ら。

とりあえず、インスタンス=オブジェクトってことでFA?
微妙に違うのか?
>>511
へー。そうなんだ。
一般論 ・・・・・ インスタンスを 生成する
            (名詞)     (動詞)

503論  ・・・・ インスタンス生成を 行なう
            (名詞)      (動詞)


その話はもういいよ
あんまり煽ると血管ちぎれるから
>>514
そろそろ他所でやってくれないかなぁ……
JavaでHTMLをパースしたいのですが、
何か良いパッケージはありますか。
>>517
SAXでごりごりやるとか
>>518
XHTMLではなく、通常の(汚い?)HTMLが対象です。

>>519
javax.swing.text.html.parserのパーサでは
HTML 3.2にしか対応してないようです。
HTML 4.01仕様のHTMLを解析したいと考えてます。
質問いいでしょうか。
>>1にもググっても正確な内容が得られなかったので質問させてください。
メトリックス分析(Java Metrix Analyzer)とは何でしょうか。
これに関連するレポートを書けといわれて調べてみたんですが、
e-wordsで調べても載ってなく、関連書籍も見当たらないのです。
"Java Metrics Analyzer" なら数件出るよ
http://www.ogis-ri.co.jp/otc/hiroba/others/JavaMetricsTool/JMA.html

>ただし、このツールは基本的にあるひとつのファイル単独で解析を行い、
>他のファイルとの関係までは解析しません。
>したがって、継承の深さ、オーバーライドされたメソッドの数といった、
>複数のファイルやクラスにまたがるメトリクスは採取できません。
あんまり使えねぇなぁ。
>>521です。
わざわざありがとうございました。
分析と言うよりも解析という意味だったのですね。
診断つーるというような意味合いでしょうか。
ありがとうございました。
>>525
thx.
試してみます。
>>501
アドレスというよりもそのオブジェクトのtoStringメソッドを呼び出す
toStringはObjectクラスが持ってるのでJavaでは全てのクラスがtoStringを持っている
このtoStringをオーバーライドしていなければObjectのtoStringが呼ばれて
アドレスが出力されるということになる
528461:04/06/16 14:52
>>467
レスありがとうございます。
質問毎にクラスを作ることが妥当なのかどうかを
聞いてみたかったんです。
自分の中では質問が1つ増えるごとにクラスを1つ作成するのって
どうなんだろ?ってなったわけです。
でも、間違ってはなかったんですね。
くだらない質問して申し訳ないです。
>>527
Object.toString()の返す文字列に含まれるのはアドレス
じゃなくてハッシュ値。
>>528
質問二つ程度なら設計の手間の方が勝ってしまうけどな。
CUI, GUI それぞれ、ユーザによる入力部分の設計をどう一般化できるか、
やってみれば面白いだろう。
(抽象クラスの継承クラスが質問文、値の型、値範囲のチェックを実装できればいいと思う)

ただ、本題には関係ないけど、Chain of Responsibility てのはまた違うようだぞ?
>>528
ChanOfResponsibilityは、ぜんぜん別。
デザパタっていいたいだけ違うかと。クラスっていいたいだけ違うかと。
総合的に見た場合、今回は質問ごとにクラスを作る必要はまったくないとみた。
再入力の制御と質問ごとにクラスを作ることはまったく別の問題。
再入力の制御はただの while だな
533デフォルトの名無しさん:04/06/16 16:23
おすすめのJavaの入門書を教えてください。
技術評論社の「はじめてのJava」があるのですが、
もう数冊手元に欲しくて。
入門書ばっかり買うな。
ま、独習Javaと、Swingの本とJSP/サーぶれとの本かな。
>>533
javaの教科書はAPIドキュメントとソースだ、と言いたい
↑を読み解けるレベルに達したのなら、アルゴリズム本などに進んだほうが幸せになれる
>>535
APIドキュメントだけじゃなくて、その上のチュートリアルとかも。
537デフォルトの名無しさん:04/06/16 17:31
>>535
オレ的には仕様本も一冊置いた方がいいと思うけど。
API読めるようになるまで、入門書一冊よんだらいんでないかな。
>>534のいうように入門書何冊も読む意味はない。
>>533
ちなみに、簡単そうに書いてあったり、やさしく書いてあることが売り物の本は、簡単そうなところとかやさしく書けるとこだけを書いてあることが多いので、使い物になることは少ない。
Javaが初心紗那だけでc#やCなど他の言語知っているかどうかにもよるなぁ
他の言語知っていれば試行錯誤とAPI眺めて適当にぐぐればほとんど解決すると思うし
ソースが確かに何よりの情報源

言語自体が初めてということであればいきなりソースみろとかいうのも無理だしな
やる気さえあれば大概時間が解決するんで気長に
>>533
例題を実際組んで動かして慣れることだな。
いくつも入門書を買っても無意味。

座学でフムフム言ってるだけじゃだめだぞ
JAVAってイイね。C++に比べるときれいでイイね。
>>541
そう思えるなら、幸せだな。
フムフム言ってるだけでいいのがJavaの利点なんですがねぇ・・・
>>542
何が言いたいんだ
フムフムって懐かしいな。「はたらくひとたち」だろ?
546デフォルトの名無しさん:04/06/16 21:08
>>544
たぶん、自分にとっては充分に複雑だって言いたいんだと思うよ。
547デフォルトの名無しさん:04/06/16 21:16
awtのTextFieldにsetBackGraoundで色をせっていすると、
表示されている文字列が見えなくなってしまいます。
背景色を変更する代替方法ありますか?
>>547
java.awt.Component#setForeground(java.awt.Color)
で文字の色変えられなかったっけ?
549デフォルトの名無しさん :04/06/16 21:40
COBOLを2年半実務でやり、一度会社辞めた25歳です。
またプログラマーになりたいと思っています。
汎用機の世界ではなく、オープン系をやりたく、
自宅でJavaの勉強をしています。
勉強で使用している本が、Javaアプレットも載っているのですが
覚えていた方がいいですか?
実際に実務でJavaアプレットは使われていますか?
Javaでやれることは制限されている(出来ないことがある)ものなのでしょうか。
やっぱり俺の勉強不足でしょうか。
Frameを表示するアプリケーションがあって、表示されたウィンドウが
アクティブかどうかに関わらず画面上(ウィンドウ上ではない)の
マウスカーソルの位置を取得する方法は何かありますでしょうか?
一定時間マウスを動かしていなかったら何かをというプログラムにしたいです。
>>549
Appletはいる・いらないなんてちっちゃな事気にしないで、基礎をしっかり身に着けてさ、いざEJBなりなんなり必要とされたときでも
すぐに対応できるって言うぐらいの根性でやったらどうよ。
>>550
java.awt.MouseInfo
>>550
1.5 で java.awt.MouseInfo#getPointerInfo() 使えばできる。
綺麗というか、シンプルだな。
Cは記号だらけで中級言語って感じだ。
そのぶんできることも多いんだろうけど。
記号だらけって・・・ポインタまわりだけじゃん。
Perlに比べれば、ぜんぜんすっきりしてるし。

できること、っていうのも、そりゃ低レベルだからやろうと思えばなんでもできるだろうけど。
それは、歩きならどんな山にも登れるし川も歩けるし、どこでもいけるっていうのと一緒なんだよね。
目的が決まってて、Javaがその目的にあってるなら、Cよりも全然早く安定したプログラムが書ける。
552さん553さんありがとうございます。
1.4.2を使ってたので早速入れなおします。
これって他の人に利用してもらう為には1.5を入れてもらわないと駄目なんですよね。
すこし面倒ですね;;
しかしまだBeta2だぞ。
559デフォルトの名無しさん:04/06/16 23:37
こんばんは。

Tomcatを4.0.3から5.0.19にバージョンアップしました。

http://localhost:8080/とアクセスすると通常のTomcatのホームページが開かれます
しかし、自分でテスト用のサーブレットをつくったところ正常に動作しません。

以下のようにブラウザに表示されてしまいます。

HTTP????? 404 - /test/servlet/Test

type ?????????

????? /test/servlet/Test

?? The requested resource (/test/servlet/Test) is not available.
Apache Tomcat/5.0.19

ちなみにフォルダ構成は CATALINA_HOME/webapps/test/WEB-INF/classesです。もちろんclassesに
サーブレットのクラスファイルをおいています。

どうしてだか、さっぱりわかりません。余分なweb.xmlファイル等は一切おいてありません。

もし、分かる人がいましたら、教えてください。宜しくお願いします。
560559:04/06/16 23:39
ちなみに、OSはFedoraCore1です。関係あるかわかりませんが。。

宜しくお願いします。
うんうん、404の意味がわからないのだね
かわいそうに
>余分なweb.xmlファイル等は一切おいてありません。
初期状態で何でもかんでもすべて動くと思っていたんだね、可哀想に…
道は険しそうだね(ちゃんと勉強してる人にとっては近所のコンビニ行く程度の道のりだとしてもね)
562559:04/06/16 23:49
>>561
404の文字が化けるのは、Tomcat5.0.19に問題があることは、わかりました。
そこんとこは、どうでもいいんですが、

ひょっとして、web.xml がないと動かないんですか??

Tomcat4.0.3のときは、web.xmlなんてなくても動いたんですが。。
>>561
404の意味がわからないのは、まあ置いといて、5.0.19でエラーが文字化けするのはバグだぞ。
近所のコンビニ行くよりは、遠い。
コンビニ閉まってて、どこでゴム買えばいいんだろう?っていうくらい、ちょっと悩む。
Tomcatの再コンパイルが必要だし。
>>562
うそだろー、そうなん?
それでサーブレットをどうやて動かすつもりなんだろうか。
いつもいつもインボーカーサーブレット使うつもりなんだろうか。
ちなみに、最近のバージョンじゃ、インボーカーサーブレットは有効になっていない。
565559:04/06/16 23:54
>>564
やはり、web.xmlがいるんですか。

家の簡単なテスト環境でやっていて、Tomcatの最新事情を全然しらなかったんですが、
なんか、4.1くらいから、事情がかわったのかな??

よくしらないけど、web.xmlをかいてみます。どうもありがとうございました。
>>565
Servlet2.4からは、web.xmlのDocTypeの宣言部もちょっとかわってるぞ。
ってかDocTypeのところってなんていうんだっけ?

ツール使ってない場合の弊害だな。バージョンが変わったときの対応がやりにくい。
IDE使うのを勧める。
567559:04/06/17 00:02
>>566
まじですか?たしかに、web.xmlを書いても全然だめでした。

明日、本屋で調べて来ます。ありがとうございました。
たしかにTomcat4まではweb.xmlかかなくてもある程度デフォでうごいてたな
コマンドラインベースでjspファイルのテストするときで面倒なときは書かなかった
WEB-INFのディレクトリだけは確か必要だったが

今じゃJBuilderとかIDEで全部やってくれるから気にせんけどね

>>544
遅レスだけど、パフォーマンスを出そうとするとプーリングの嵐になるからねぇ。
何がオブジェクト指向か分からなくなる。

結局キミも使えてないんだね。
速度が欲しけりゃ最初からJavaは無しの方向だと思われ
>>557
画面サイズ大のフォームを作って非表示にしてマウスリスナで監視するっていうのは可能?

572デフォルトの名無しさん:04/06/17 06:26
*.javaファイルの内容を解析するプログラムを作ろうと思ってるんですが、
Javaキーワードかどうか判断できる既存のクラスって存在しますか。
それとも自分で作らなきゃならんのですかね?
>>558
beta3 出てるよ。
>>572
キーワードだけだったら正規表現関係使えばできないか?
>>573
え、サイトにはBeta2と書いてあるけど
Graphicと入力しようと思うと、Graphicsのようにsまで自動的に入力しちゃってるのですが、なにかの病気でしょうか?
577559:04/06/17 10:18
やっとできました。コンテキスト.xmlが必要とか、えらいTomcat5になって面倒になりましたね。
invokerサーブレット云々もわかりました。色々勉強になりました。

で、もう1つ質問があるんですが。。

SEが「mysqlとのデータソース接続を試してみてくれ」というんですが、
ネットで調べたところTomcat4.1まではserver.xmlに色々設定を書いたみたいなんですが、
Tomcat5だと、コンテキスト.xmlに書けばいいんですかね?
578デフォルトの名無しさん:04/06/17 10:39
>>571
それだと他のウィンドウが上でアクティブな時とかはマズイ気がするのですが、
試してみます。ところでMouseInfoのキーボード版みたいなのもあると便利なんですけどね。
>>577
どっちでもいいよ。好きなほう選べ。
>コンテキスト.xmlが必要
そんなことない。server.xmlに書いてもいいし、context.xmlに書いてもよい、というだけ。
String s = "hoge";

String s = new String("hoge");
が同じと言っているヤツ、痛いぞ。

String s1 = "hoge";
String s2 = "hoge";
では、s1 == s2 はtrueになるが

String s1 = new String("hoge");
String s2 = new String("hoge");
では、s1 == s2 はfalseだ。

文字列リテラルの扱いを知らないんだな
581デフォルトの名無しさん:04/06/17 10:45
ここはJavaスレ
>>580
突然あなたは何ですか
ひょっとして たった今知ったので
偉そうに講釈しに来たんですか
>>580
知らないです。
教えていただけませんか?
584577:04/06/17 11:10
>>579
どうもありがとうございます。できました。原理は同じなんですね。
ファイルが1つ増えただけで。サーバの設定とかは、あんまりしたこと
なかったんで。。助かりました。

> そんなことない。server.xmlに書いてもいいし、context.xmlに書いてもよい、というだけ。
これも勉強になりました。どうもありがとうございます。

Tomcat5になっただけで、こんなに苦戦するとは。。今回は、非常に良い勉強になりました。
みなさん、どうもありがとうございました。本当に感謝してます。
>>584
文字列リテラル、カノニカル表現、プール、intern()
あたりをキーワードにしてぐぐってみれ。
byte(符号付整数)変数に入っている値を符号なし整数として int型の
変数に代入するにはどうしたらいいんですか?

例えば byte型の変数の値が0xffの時、 -1ではなく255という数値にしたい。
byte の 0xff は値として既に -1 で、byte であるかぎり 255 にはなりえないので、
とにかくまず int キャストして int の -1 = 0xffffffff にして、
bye のビット範囲でマスクする。
int i = ((int)b) & 0xff;
588586:04/06/17 11:42
byte b;
....
int i = (int)(b & 0xff);


というのは正しいやり方?
>>584
Tomcat5ではservlet.xmlをいじることは推奨されてないので、/conf/Catalina/localhost/コンテキスト名.xmlを編集するように。
>>588
b & 0xffの時点でintになるので、キャスト演算子が無意味。
じゃあ
int i = b & 0xff;
でいいってことですね。
>>580
というか、こいつがコンストラクタString(String)の意味を知らないだけだと思うのだが。
new String(String)は、与えた文字列と同じ文字列を表す別のオブジェクトを生成する、というだけ。
文字列リテラルは直接関係ない。
>>591
ちなみに>>587のも、暗黙の型変換の対象だから、キャスト演算子の必要はないね。
594580:04/06/17 11:52
>>592
ハァ?
JSPからJavaのクラスをコールして、Javaの戻り値で
"Hello World"を表示したいのですが・・。

JSPとJavaの連携でひたすら簡単な紹介しているHomePageや例を
どなたか教えていただけませんでしょうか。
596デフォルトの名無しさん:04/06/17 11:56
>>595
またネタっぽいのがきた・・・
連携も何もJSPもJavaのうちですが・・・
>>595
Hoge.java
---
class Hoge{
}
---

hoge.jsp
---
<%=new Hoge()%>
---
599デフォルトの名無しさん:04/06/17 11:58
アプリケーションのFrame内でどこかのサーバにあるアプレットを
実行したり停止したりすることは可能ですか?
>>598
Javaの戻り値で表示したいのです。
>>594
恥の上(ry
>>600
hoge.jsp
---
<%=new Hoge().toString()%>
---
>>600

>>598みてもわからんのかい?
たしかにこのままだと肝心の回答部分隠してることになるが
>>598もかわいそうだな
まずはjsp自体の勉強してはどうか

あとStringで遊んでる奴らもかわいそうだな
遠目で見ている分には面白いが
>>604
っていうか、Stringに遊ばれてるかわいそうな奴がいるだけに見える。
>>599
そのサーバーのそのアプレットがそういうことに対応していれば、可能でしょ。
607595:04/06/17 12:10
すいません、なにぶん正真正銘のJAVA初心者なもので・・。
長文になりますが、

import javax.servlet.*;
public class Calc {
private int num1; // num1
private int num2; // num2
private int gokei; // gokei
public Calc () {
num1 = 100; num2 = 200; gokei = 0;
} // <init>
public int Calc_Keisan () {
gokei = num1 + num2; return 0;
} // Calc_Keisan
public int getGokei() {
return gokei;
} // getGokei
}

このクラスがあった場合、Calc_Keisanをコールしたあと、結果をgetGokei
により取得したいと思ってます。
コンパイル後、JSPと同一フォルダにおいて実行してみましたが、パッケージが無い
と、エラーが出力されてしまいます。
JSPの書き方が悪いと思うのですが・・。
何のサーブレットコンテナ使ってるか知らんが、それについてもっと勉強すればもうちょっと見えてくるんでないかい?
JSP/ServletはCGIとは勝手が違うぞい
>>607
(゚σ゚)
もうちょっとサーブレットJSPの勉強したら?
importも無意味だし。
610デフォルトの名無しさん:04/06/17 12:28
>>607
ホームディレクトリ\webapp\プロジェクト名\WEB-INF\classeesにおくといいとおもう。
わしも初心者なので、よくしらん。
611595:04/06/17 12:28
とりあえず、どんなサンプルでもいいから
自分の環境で動かしてみたいと思ったんですけどね。
動きさえすれば、勉強はゆっくりでも出来ますし。

知識0ですいません・・
>>611
NetBeans使え。
613デフォルトの名無しさん:04/06/17 12:32
で <%= Calc.Calc_Keisan() %>でいいんでない?

わしも初心者なので、よくしらない。戻り値が int みたいだから
String.toString(int)だったか?なんかで、Stringにすればいいとおもう。

この辺はAPIでしらべて。

くどいようだけど、わしも初心者だからしらない。
614デフォルトの名無しさん:04/06/17 12:36
ちなみにclassesディレクトリにおいたら、クラスパスかなんか通さないといかんかもしれん。

っていうか、初心者用の本1冊買えば、君の疑問はすぐとけるよ。俺も初心者だけど。
>>607
微妙にFAQ。
J2SE1.4.1以降から、パッケージ指定のないクラスをインポートできなくなりました。
だから、以下のコードはコンパイルエラーになります。

import Calc;

このCalcクラスにパッケージ宣言を追加して、classファイルを適切なディレクトリに
移動してからJSPにアクセスしてみたら動くかもよ。
これ以上は、サーブレットコンテナとかSDKのバージョンとか
JSPのソースすら提示してないので何ともいえないけどね。
>>599
可能。というかAppletViewerがまさにそれをやるそのものだからソース見れ。
>>584
server.xmlの修正をヘクるとap鯖全体が落ちるので
context.xmlに自分が関連する部分のみ切り出せるのは
とっても有り難いのだよ。

>>589を補足すると、
myapp/META-INF/context.xmlに記述してdeployすると
>>589氏が書いたファイルを自動更新する。
>>584
おとなしくAdminツールを使うべきだな。
620618:04/06/17 12:58
あ、>>615氏が指摘してるようにpackageとimportの理屈を覚えてからね。
初心者・知識0でJSP/サーブレットなんて無謀もいいとこ。
ここきて JSP の質問しに来る奴は大半がそう(最近は減ったかな?)
何かでつまづいたら、複雑すぎて暗中模索で回り道するだけだよ
622577:04/06/17 13:33
>>589
あ、そうなんですか。コンテキスト名.xmlのほうがいいわけですね。
サーバーの安全上コンテキスト名.xmlファイルができたんですか。とても勉強になりました。
そっちのほうが安全ですね。すごく。

>>617
うひゃー。自動更新してくれるんですか??すごい機能がTomcat5にはついているんですね。
すごい驚きです。ぜひ、その方法でやっていこうと思います。

>>619
Adminツールですか。。なんだかよくわかりません。私、PHPの人間なんで。。元々。。
今度また、調べてみようとおもいます。ありがとうございます。

けっこう知らないことで役に立つことを教えてもらい、感謝です。どうもありがとうございました。
>>622
それなりのサーバーは、設定ファイルを書かずにツールを使うようにしたほうがいい。
設定ファイルの記述方法を覚えても、バージョンの差で記述方法が変わることが多いし、たとえ動くとしても推奨されない設定になることもある。
バージョンが変わったときの設定ファイルの学習コストは結構高いというか、モチベーションがないから、効率が悪い。
ツールを使っておけば、そういった違いはツールが吸収してくれる。
localhost:8080/admin/にでもアクセスしてみれ。
624595:04/06/17 14:01
皆様、いろいろな情報ありがとうございます。
いろいろ試してみたのですが、やっぱり動きません・・。
JSPを示すと
<%@ page contentType="text/html; charset=Shift_JIS" %>
<jsp:useBean id="Calc" class="Calc.Calc_Keisan" />
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title> Test</title>
</head>
<body bgcolor="#aaddaa">
<%= Calc.getGokei() %></h2>
</body>
</html>

です。いろいろいじくってしまってますが・・。
Httpサーブレットを用いた動作(Form ActionでサーブレットのDoGETとか)
には成功しているので
ステップアップとして埋め込みJavaを試してみたいのです。
>>624
「埋め込みJava」とか、オレ用語を使うな。
Webのプログラムは何か操作したときに「動きません」という現象はまずありえない。
なんらかの反応を示しているはずだ。
ほんとに動かなかったのなら、何も操作していないかマウスの左ボタンが壊れているだけだ。
それか、クソブラウザがフリーズしてるだけだな。
>>624
JSP自体は問題なさそうだな。
クラスのパッケージ、クラスパス、鯖の設定とか見直してみ。
>>624
<%= Calc.getGokei() %>

とあるけど Calc クラスの getGokei() メソッドはstaticメソッドではないよね。
そういうときは、こう書く。

<% Calc calc = new Calc(); %>
<%= calc.getGokei() %>
Calcがクラスの名前でcalcが変数の名前。混同しないよう注意して。

もしくは、メソッド定義を以下のように修正して、staticメソッドにしてしまう。あまりお薦めはしないが。
public static int getGokei(){

なんにしてもJSP以前に覚えておくべきことがかなり残っているね。
一旦JSPから離れて勉強しなおしてみた方がいいよ。
JSPは、実行時にコンパイルする性質上どうしてもエラー解決が面倒になるから。
JSPから離れてしまうのでモチベーションが維持しにくいかもしれないが、
そこはめげずにがんばれ。
628627:04/06/17 14:29
と、えらそうなことを書いたが…
jsp:useBeanタグを見落としていたことに気づく。一応合ってるのね…
629デフォルトの名無しさん:04/06/17 14:29
カレントディレクトリ内のファイルを読み込む場合
FileReader(".loadfile")  ○
任意をファイルを読み込む場合、絶対パスで
FileReader("/var/log/secure")  ○

といったように読み込みは成功しているのですが
ホームディレクトリを読み込むにはどのように指定すればいいのでしょうか?
~で指定してますが認識されなくて困ってます
FileReader("~/.loadfile") ×
環境はreahatlinuxです。宜しく御願いします
System.getProperty("user.home")
かな。
試してないけど。
>>629
「~」の展開はbashなどのシェルがやってるんじゃなかったかな。
Javaなら、System.getProperty("user.home")でホームディレクトリが取れる。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/System.html#getProperties()
632629:04/06/17 14:39
>>630-631
有難う御座います^^
早速試させて頂きます
633デフォルトの名無しさん:04/06/17 15:07
メーラーを作ってます
telnetで[helo][mail from:][rcpt to:][data][.][quit]
というやり取りでメールの送信ができたので
実際socketで直接コマンドを叩いてなんとか送ることはできました。
しかし、複数のメールを指定した場合、送れる時と送れない時があります
forステートメントで作成した複数のメールを送ってるんですけど
for(){
socket s=new socket("mailserver",25);〜略
helo
mail from:
rcpt to:
data:
.
quit
s.close()
}
と指定してます。
メールを複数送信する場合、メールの数だけソケットを作成するのか
それとも一つだけで複数コマンドを叩くのか、
既存のメーラーはどういう仕様になっているんでしょうか。
>>633
JavaMail使え。
>>633
メーラの動きがどうなってるかどうかは板違い
1スレに1回は現れる、センスない奴の質問の典型だね。

>>633
君の質問は最後の3行だけで事足りるんだよ。ソースなんか要らないんだよ。
その3行だけ読んでみろよ。Java は一切関係ないんだよ。
ぼくは3人兄妹のまんなかです。
大学生の兄と高校生の妹がいます。
妹は父の再婚相手の連れ子で血がつながっていません。
この前の3人分のお年玉をあわせてパソコンを買いました。
足りなかった分は兄の貯金から出しました。
最近プログラムを勉強しようと思って、このパソコンにJavaをインストールしました。
本の通りにプログラムを打ち込んで、コンパイルしようと思ったら「操作可能なプログラムまたはバッチ ファイルとして認識されていません。」というエラーが出ました。
何が悪いんでしょうか?
>>637
お前の質問は3行目だけで事足りんるんだよ。Java の話なんか要らないんだよ。
その1行だけ読んでみろよ。そこから想像を膨らませるんだよ。
俺さ。
今の仕事場、どうしてもダメなんだよね。
合ってないんだよ。
辞めようと思ってる。
で、プログラム勉強して、そういう仕事しようと思ってる訳。
職安行ったらさ、C言語とかC++言語とかの次に
JAVAって名前が多いんじゃないかと思ったんだよ。
で、JAVAを勉強しようかと思って、このスレをよく読ませてもらってるんだよね。
>>637 それ、PATH通ってないから。
でさ。
JAVAをどこまで使えるようになったら雇ってもらえるかな。
それとさ。やっぱ今度は慎重に職場を選ん(ry
今日はバイトが休みなので家にいます。
そろそろ妹が帰ってくる時間です。
まだ一緒に住み始めて間もないので、緊張します。
兄はサークルで遅くなるみたいです。
父も最近仕事が忙しそうなので、遅くなりそうです。
父の再婚相手も・・・まだ母と呼ぶのはなれてないのですが、同じ仕事をしているので、一緒に帰ってくると思います。
だから今日の晩御飯は妹が作ります。
それまでに>>639さんが教えてくれたことを試してみます。
今、妹からメールが入ったので、スーパーまで買い物にいってきます。
今日の晩御飯は、野菜炒めです。
妹はまだそんな簡単な料理しかできないみたいです。
俺的にはこういう流れでスレが埋め尽くされても一向に構わん
とりあえずスレとしての機能は果たしてるな
スーパーからの帰りに妹と一緒になったのですが、並んで歩くのも恥ずかしかったので、お互い少し離れて歩きました。
小学校のころ母が亡くなってから、父と兄と男3人で暮らしていたので、いきなり女の人との生活が始まってとまどっています。
妹はご飯の準備を始めました。
だから、続きを始めました。
教えられたとおりPATHについてインターネットで調べて設定してコンパイルしてみました。
すると「クラス Sample は public であり、ファイル Sample.java で宣言しなければなりません。」というエラーがでました。
Sample.javaというファイルに保存してるはずなのですが、なぜでしょうか。









って、疲れるよ、おい。
>>569
かわいそうな人ですね
ていうかこの速さは一体
646デフォルトの名無しさん:04/06/17 16:55
初心者です。よろしくお願いします。

a.dat というファイルの中身が以下のようであったとします。
20.0 1.0 0.3
2.4 4.3 10.5
6.3 0.8 0.0
このとき、この9個の数値データを読み取るにはどのようにすればよいでしょうか?
一行に複数の数値データが区切られて存在する場合の読み取り方です。
最終的には読み取ったデータを変数に代入して使用する予定です。
>>646
java.util.StringTokenizer 使え。
648デフォルトの名無しさん:04/06/17 16:57
>>647

ありがとうございます。
さっそくやってみます。
649デフォルトの名無しさん:04/06/17 17:14
>>647 さんありがとうございます。
646です。
うまくいきました。
650デフォルトの名無しさん:04/06/17 17:26
000000A
000000B
000000C
000000A
000000C
.
.
.
ある1つのディレクトリからファイル名を判別して(この場合はA〜Cで可能)、
A〜Cのディレクトリにそれぞれのファイルを自動で分けたいのですが
ファイル名を判別してファイルを移動するにはどうすれば良いのでしょうか。
よろしくお願いします。
最近みんな>>636の指定したネタを実行してるねぇ。
関係ありそうであまり必要ない文を記述したあとに1〜2行で質問を書くというのは流行なのか。
653デフォルトの名無しさん:04/06/17 17:41
616さんの言う、AppletViewerのソースを見るというのは
どういった行為ですか?!
654デフォルトの名無しさん:04/06/17 18:26
>>653
AppletViewerっていうソフトのソースコードを見るっていう行為
655デフォルトの名無しさん:04/06/17 18:27
>>652
分かりやすくていんでない?
本質だけを記述すると見やすくていいけど、オレは図とか例とか添えてあったほうが見やすい。
図とか例ならいいけど
釣り文だからな
>>653
もしかしてappletviewer自体を知らない?
appletviewer http://hoge.fuga/fura/
とか打ってみ。URLはアプレットのあるとこね。
658デフォルトの名無しさん:04/06/17 21:23
失礼します。このサイトの謎が解ける方はいらっしゃいますでしょうか
http://www.ezz-lb.net/goatbed/
単なる凝ったわかりにくいつまらんサイトだと思うのだが。
>>658
すげー・・・
とうぜんスクリプト書いたんだよな?
まさか手動・・・
661デフォルトの名無しさん:04/06/17 21:59
>>658
何コレ?と思うこと数分・・・

すげぇ!!!!!ビビったよ
久々に凄いもん見せてもらった
ビットマップを読み込んで文字あたりの平均色値で変換していったと見た。
663659:04/06/17 22:05
IEで見たらちょっとまともにみえた。
そんなすごいのかねぇ。
文字とかテーブルのセルに色つけて画像にするのって、よくあると思うけど。
664デフォルトの名無しさん:04/06/17 22:08
えっとですね・・・
文字で画像作ってるのを感動しているわけではなくってですね・・・
埋め込みトリックのことなんですよ・・・
何を一生懸命 考えてんだよw
666659:04/06/17 22:12
え、なんか動くの?
>>666
お前番コテ付けるほど大したレスしてねーけど?
動くの?
>>570
じゃああんたはperlでも使ってなさいよ。
>>659
なんか、そうらしい
>>669
ぶっちゃけmod_perlは単純処理ならJavaより早いんだよな
Perlだからと言ってバカに出来たものじゃない
672659:04/06/17 22:22
>>667
で、どんなトリックがあんの?
>>671
掲示板やblogなんかだと、インタプリタは不利だろ。
PHPならZendとかあるからまだいいが
674デフォルトの名無しさん:04/06/17 23:44
お薦めのC言語の入門本を教えてください。
675デフォルトの名無しさん:04/06/17 23:45
お薦めのC言語の入門書を教えてください。
とりあえずスレ違いです。
http://itpro.nikkeibp.co.jp/free/NSW/NEWS/20040617/146001/
日本オラクルのJava開発ツール新版,定価13万円を1980円で1年間利用可能

これは買いですか?
678デフォルトの名無しさん:04/06/18 01:28
お願いします!!
log(x)はJAVAでどう書けばよいでしょう?
sqrt(3)の風にしたいです 分かりにくくて申し訳ありません
Newton法に使います
>>678
java.lang.Math#log(double)
680デフォルトの名無しさん:04/06/18 01:32
>>679
レスありがとうございます
aにlog(x)を代入とするときは、
a=java.lang.Math#log(double)
で良いのでしょうか?
>>680
ダメ。
>>680
そもそも x は何処に消えたんだ?
>>680
a=Math.log(x)
684680:04/06/18 01:36
で、ですよね
予めxを宣言したあとに、
a=log(x) では動きませんか?
最高に頭悪そうな〜で紹介されるだけのことはあるな。
686680:04/06/18 01:39
>>683
サンクス!!!!!!
知識不足で聞き方が悪くてスマソ。。
>>684
1.5 以上で import java.lang.Math.log; すれば a=log(x); できるよ。
>>686 のは知識不足とかが原因ではないよーな。
単に頭使ってないだけ。
>>687
static が抜けてるだろ
690デフォルトの名無しさん:04/06/18 06:22
>>687
あ、なんかあったなそういうの
何がうれしくてこんな機能つけたのか知らんが

ログはかせるstaticマソッドぐらいだな
恩師にあやかれるのは
恩師?にあやかる?
なぜか変換できない系ではなさそうだな・・・。
どこのテンプレスレか教えてくれ。
"恩師にあやかる"に該当するページが見つかりませんでした。
恩恵にあやかる 177件
恩恵にあずかる 2910件
>>690
ま さ か 記録するほうのログと勘違(ry
最近スタティックメソッドを知って自慢(ry
マソ(ry 
>>693 は面白くないだけでは済まされない
1.4.2で
 import java.util.Map.*;
がコンパイル通ったから「お、staticインポートできるじゃん」と思ったら、内部クラスが使えるだけだった。
696デフォルトの名無しさん:04/06/18 18:50
>>694
>>693を責めるのは筋違い。
彼は、Javaで出来ることをやっているだけ。
むしろ、煽りにしか使えないJavaに問題を感じてほしい。
>>696 には >>693 が何を書いてるのか理解できるのか…… 本人?
698デフォルトの名無しさん:04/06/18 19:01
>>697
普通に理解できますが、どこがわからないのですか?
マソって何?
700デフォルトの名無しさん:04/06/18 19:21
>>699
たぶん、お前が口癖のように使ってる言葉だと思いますよ。
わからん。やっぱ >>698 == >>696 == >>693 なのか?
702デフォルトの名無しさん:04/06/18 20:46
こんばんは、よろしくお願いします。
JTableで、特定の列の両端にのみグリッド線を引くことは、可能でしょうか。
そういうときはグリッド線非表示にして
セルのレンダリングでやったほうがいいぞ
アプリケーションの作成時に出来るタイトルが表示されてるバーは高さ何ドットでしょうか?
24か23か分からないぽ。
それは環境による
同じようにウインドウの境も変わるし
いろんなところのGUIのデフォルトのフォントサイズも様々

javaに限らず絶対座標でやるとこのへんはまるので注意
それって取得できなかったっけ、実行時に。Insetsかなんかわすれたけど。
今独習JAVAを読んでて継承のあたりを読み終えたんですがどうもピンときません
ちょっとこのまま進むとやばそうなんでここらへんしっかりやっときたいんですが
ちょうどいい練習問題とか紹介してるサイトってないですか?
FrameのGetInset()かなんかでできるんじゃない?
>>707
Canvasとかスレッドあたりをゴンゴン使えば、そのうちわかるんじゃない?
独習Javaはあんまり実用的な例が載ってないから、あれで理解できなくてもそんなに悩まなくてもいいと思う。
710708:04/06/18 21:43
大文字小文字が変だ…
なんのためのpackか
>>709
どうもです
とりあえず読み進めてみた方がいいみたいですね
713Ki-ya:04/06/18 22:14
初めて書き込むのにいきなり質問ですみません。
CGIのプログラムを作った後、そのhtmlファイルを見たのですがなぜか左上に×印が出てきてしまうのですが、何で出てきてしまうのでしょうか
お願いします。
TextField, TextArea, TextComponent の関係を見ればイメージがつかめる
APIDoc の読み方わかんないとダメかもしれないけど
>>713
そんな内容では「板違い」としか言えないな。
716Ki-ya:04/06/18 22:23
書くのを忘れてしまいましたけど、Java関係の本についていたサンプルプログラムは
ちゃんと表示されるのですが・・・
>>716
意味がわからん。
718162:04/06/18 22:48
がんばれ



                     きーや
ちゃんと学校に行って友達を作って
コミュニケーションをとるって、ことを十分しとけば
言いたいことを伝えられるようになるよ
イベントリスナーを自分で作りたいんですが、どうやっていいか良く分かりません。

一つのオブジェクトで起こったイベントを他のオブジェクトに通知するのってどうやるの?
おれはやり方分からないから、スレッドの無限ループで定期的にイベントの変化を監視するポーリングみたいな手法しか思いつかない。
イベントが起きたら、そいつが直接他のオブジェクトのリスナーに伝えたいんだよ。なんかいいほむぺとかないですか?
あ、GUIの話じゃないですよ。
>>720
ほむぺっていう言葉がきらいだから教えない。
722デフォルトの名無しさん:04/06/19 00:09
>>702です
>>703さんありがとうございました。
いろいろ試行錯誤の末下記のような感じでしてみましたが、
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class tesuto33 extends DefaultTableCellRenderer implements Icon{
public tesuto33(){
super();
}
public void paintIcon(Component c,Graphics g,int x, int y){
g.drawLine(0,0,0,25);
}
public int getIconHeight(){
return 0;
}
public int getIconWidth(){
return 0;
}
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
JLabel cell = new JLabel();
cell.setIcon(this);
return cell;
}


}
これで、setCellRendereにわたしてます。
こんなのでいいのでしょうか。
723721:04/06/19 00:14
>>720
1.5の文法のところは適当に変換せろ。
interface Listener{
 performed();
}

class Observer{
 List<Listener> listeners = new ArrayList();
 void addListener(Listener listener){
  listeners.add(listener);
 }
 void fire(){
  for(Listener listener : listeners){
   listener.performed();
  }
 }
}
>>721,720
java.util.EventListener と java.util.EventObject 使うのが作法だよ。
725721:04/06/19 00:59
>>724
そんなんあるんだね。
EventListenerはマーカーインターフェイスだからいいとして、EventObjectはクラスだから使いにくいね。
限定された用途だと、sourceの型は保証できたほうがいいし。
726デフォルトの名無しさん:04/06/19 02:51
jar圧縮してダブルクリックしても、「Counld not file the main class. Program will exit.」ダイアログが出てアプリが実行できないのですが、考えられる原因を教えてください。
1.META-INFにMANIFEST.MFにてMain-Classを指定しています。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3
Created-By: 1.4.2_03-b02 (Sun Microsystems Inc.)
Main-Class: com.hogehoge.java.app.Appli
2.もちろん com/hogehoge/java.app.Appli.classはありますし、そのクラスにはmain()があります。
なんでー!?
はじめまして。新人さんのJava担当しています。無能なのに。。

一つ質問です。 WEBアプリでDB2に対してSQLを発行して結果を受けるプログラムで
お約束として、最後にPreparedStatement と、ResultSet をcloseするのはなぜですか?と質問を受けました。

恥ずかしながら、そこまで考えず使ってました。理由を聞かれて明確な答えが出ないので 皆様の知恵を貸してください

少し調べて考えた結果、closeする理由は
1.サーバーのキャッシュ上に照会結果を残しておくのはセキュリティ上良くない
2.キャッシュからデータを取得すると レスポンスはあがるが
  実際のWEBアプリでは、データ数が数百万件になるのでキャッシュ容量を確保するため。
  また、リブートするとメモリはクリアされるが、24時間稼動のWEBアプリでは不可能なため
3.即時性を求める場合(メンテナンスフラグとか)の場合は、毎回closeして破棄し毎回データを取得すべきだ

うーん、いまいちです。 どうかご教授願います。

以下はサンプルプログラムです。
//会員テーブルにIDを引数として名前を取得するSQL
String sql = "SELECT NAME FROM MEMBER WHERE MEMBER_ID = ?";
PreparedStatement ps = conn.prepareStatement(sql);
for ( int number_ = 0 ; number_ < 10000 ; number_++ ) {
ps.setString(1,number_);
ResultSet rs = ps.executeQuery();
while ( rs.next() ) {
Beanとかに格納
}
rs.close(); ←ここ
ps.close();
>>726
最後のMain-Classの行で改行してないとか。
>>726
最終行に改行がないんじゃない?

>>727
仕様ではResultSetもStatementも明示的にクローズしなくてよかったような気がするけど
DBMSによっては明示的にクローズしないとリソースリークを起こしてしまうものがある。
730デフォルトの名無しさん:04/06/19 03:00
すごい以前の内容なんですが、AppletViewerのソースは
どこにあるものなんですか?教えてください。
>>727
使わんリソースいつまでも持っておくと、メモリを余分に使うから。
732726:04/06/19 03:12
>>728
>>729
Main-Classも最終行も改行あります。
Antのmanifestタグで作ってるから、間違いないと思います。

これまでもこんな事何回もやってきたんだけど今回は何故かNGなんだよなぁ・・
うーん、なぜだ!?
733730:04/06/19 03:15
ごめんなさい。Googleでとうとう見つけました
ttp://www.wifo.uni-mannheim.de/Java/loesungen/kapitel13/10/AppletViewer.java
>>732
とりあえず、コマンドラインで実行して、エラーメッセージを見る。
> 2.もちろん com/hogehoge/java.app.Appli.classはありますし

記述方法が悪いだけかも知れんけど、なんか怪しい。
>> Main-Class: com.hogehoge.java.app.Appli
>> 2.もちろん com/hogehoge/java.app.Appli.classはありますし、そのクラスにはmain()があります。
クラス名に"."が入ってる?
きーやはCGIとJAVAを混同するという神間違いを起こしている。
739デフォルトの名無しさん:04/06/19 14:10
Java初心者なのですが、メソッドの引数にクラスを渡して
メソッド内部で値を変更してもらう(戻り値なし)Cのポインタ渡し
みたいのって、あまりやらないほうがいいんでしょうか?
>>739
普通にやる。
あ、必要であれば、ね。
>>739
Javaではプリミティブ型(intとかcharとか)以外では
C言語で言うところのポインタ渡ししかできない
>>742
baka-
>>743
解説ヨロ。
>>744
Javaではすべて値渡し。
Object型でも参照値の値渡し。
>>745
お前がバカだとはっきりした
745 で合ってるじゃん。
それとも Java にもポインタがあると主張したい人?
>>742>>744>>746

わかんないんあら偉ソに講釈たれんな。な?
初心者に間違った知識植え付けちゃうからさ。
>>747
ポインタは参照値だろ
主張も何もありまくりですが?
それより、>>739の質問が参照渡しをしないほうがいいかどうかじゃなくて、参照を渡したオブジェクトの内部表現を変更しない方がいいのか、という質問に対する的外れな回答に>>743のレスがついたのかと思った。
>>749
ポインタと参照値の違いは、ポインタにはアドレスの演算ができること・任意の値が設定できることです。
Javaにはそのようなポインタはありません。
>>751
> ポインタと参照値の違いは
この時点でお前の言ってる事は矛盾してる
>>752
ばか?
ぬるぽの存在がポインタの存在を証明しているという議論で決着は付いてるはずなのだが・・・
Java FAQ: よくある質問とその回答集
http://www.gimlay.org/~javafaq/javafaq.html
>>753
うん、お前がな
整理しよう。
Java言語にはポインタはない。
JavaVMではポインタを使っている。

ここでは言語の話をしていると思われ。
>>739
ちょっと複雑なプログラム組むようになれば、
「アホなこと考えてたなー」と思うはず。
君の考えてるとおりにすると、インスタンスの内部情報を変えられるのは、
そのインスタンスを生成したメソッド内でだけ、ということになりかねない。
759デフォルトの名無しさん:04/06/19 15:01
じゃあおまえらに質問だ

String s1="abc";
String s2="abc";

さてこの場合の
s1.equals(s2)の結果はどうなる?

@false
Atrue
B大抵の場合、falseになるがtrueになる場合もある
C大抵の場合、trueになるがfalseになる場合がある
D両方とも半分ぐらいの確率
それがだめなら

new Canvas(){
 public void paint(Graphics g){
  g.setColor(Color.blue);
 }
}

もダメってなことになるよなぁ。
その話はもう飽きたよ
中途半端に知識かじった奴ウザイ
762デフォルトの名無しさん:04/06/19 15:03
同じ問題で
s1==s2の結果はどうなる?
「自称・脱初心者」の馬鹿はこれでも嫁
ttp://www.gimlay.org/~javafaq/S012.html#S012-21
>>759
なぞなぞ好きの小学生みたいだな。
ひっかけ問題思いついて出題しまくるヤツいるよね。
>>762
true、っつかStringはいろいろ特殊だからこういう話題には適さないんだよ
なんで C みたいなクソ危ないポインタを、ポインタの定義にしちゃうわけ?
>>764
文字列リテラルの扱いは言語仕様で決まってる。
>>763
「自称・脱初心者」の馬鹿はそれを読んでも理解できません。
>>766
ほかに、「ポインタ」という用語を使うメジャーな言語がないから。
770デフォルトの名無しさん:04/06/19 15:07
で、結局言葉で議論すると後でいかようにもごまかせるが
こうして問われると自分から「勇気をもって」答えることができる奴って
いないんだよね

軽くあしらうだけなら答え言ってから「ウザイ」なリ言った方が説得力あるのに
それができないということは、やっぱ確信をもってない証拠
「Java にポインタはない」と言ってる奴の大半は、
「Java のポインタ(と勘違いされてるそれ)は C のポインタ(と呼ばれてるあれ) とは違う」
という程度のことしか言ってない
>>765
「true」は違うと思う・・・
>>767
あの問題は、単なるひっかけで、そこまで高尚な意味はないよ。
言語仕様で文字列リテラルがどう扱われようが、VMの実装がどうなってようが、最適化がどうなってようが、同じ結果になる。
メモリアドレス調べてるものは全部ポインタだと思われw
>>771
そもそもメインの話題は「Java のポインタ(と勘違いされてるそれ)は C のポインタ(と呼ばれてるあれ) とは違う」であって
「ポインタはない」と言ってるんじゃないだろ。
>>772
お前頭悪いな
そうではなくて
Javaではポインタが操作できない
ということを
うまくごまかして
「ぬるぽがあるからポインタが無いなんていうのは間違いだ」的に
ごまかしているだけだと思う
言葉で議論してもうまく切り抜けられるだけ
はっきりコードを晒して例を挙げないと議論は終わらない
>>771
屁理屈好きやね。
確かに「JavaのリファレンスはCのポインタとは違う」という話をしてるだけだけど。
>>777
VMと言語を混ぜるな、と。
trueとは限らないよね
781ケツ毛 ◆BOuBoU.SVg :04/06/19 15:13
おっ!ポインタの話題になると急ににぎやかになりますねッ!
大抵は「NullPointerExceptionがあるということはポインタあるんだよ派」と
「参照値はポインタじゃないしポインタという言葉を捨てろ派」の対決となりますが
今回はいかにッ!いかにッ!!!

ここで一区
「俺の尻 ケツ毛ぼうぼう 自宅にもウォシュレット常備したいけどアパート暮らし」
字余り
>>779
そういうことです

Javaではポインタ操作のプログラミングが出来ないだけで
内部では利用しています
>>777
そっちが「Java にはポインタがある」派の主張の大半やな。
>>778
>確かに「JavaのリファレンスはCのポインタとは違う」という話をしてるだけだけど。
それは本題ではない。本題ではないものを持ち出すなちゅうとる。
本題は「ポインタとは何か」「Java のリファレンスはポインタの定義を満たすか」だろう
>>765
tureが大半だがfalseの場合もあるが正解じゃないのか?
>>780
カギルヨ
intern()と同じになるんじゃなかったか
メモリアドレス=ポインタだろ?
>String s1="abc";
>String s2="abc";
          ←ここに別参照する処理が入ればどっちともいえない。
>さてこの場合の
>s1.equals(s2)の結果はどうなる?
>>786
あほが出てきました
>>783
ポインタとは何か・・・「Cのポインタ」
Javaのリファレンスはポインタの定義を満たすか・・・「満たさない」
>>783
>>777
>そっちが「Java にはポインタがある」派の主張の大半やな。

ちょいまち
おれは、第3者的立場で
2者間の問題点の違いを洗い出しただけなんだが・・・
791ケツ毛 ◆BOuBoU.SVg :04/06/19 15:17
最初の質問なんかどうだっていい感とでもいいましょうか、
みなさん楽しそうですね!僕も混ぜてくださいよ!
どうせならボタバラっぽくもっと陰惨にいきましょうよッ!

ここでものまねをひとつ
マイコーもマネをします
「ポウッ」

ひとつよしなに!!
Javaにポインタはないっていってるのは、「Java言語にポインタはない」って言ってるのに対して
Javaにポインタはあるっていってるのは、「JavaVMにポインタはある」って言ってるだけの話。
さて、ここで問題です

1.true
2.false
3.

どれでしょうか。
参照値を弄れるかどうかの違いなだけでポインタはある
おいおまえら、もっとやれ
未来神話ジャーヴァス
>>785

え、そうなのか?
s1.equals(s2)は間違いなくtrueだが
s1==s2はCが正解だと思うが?
話の対象が違うだけだから、面白くもなんともないな。
あいかわらず。
うーん、ポインタって演算子だろ。
参照(リファレンス)は、演算子じゃないだろ・・・

同じメモリアドレスを示す物だが、
それを操作できるかできないかの違いで名前が違うんじゃない?
インデックス代わりに使えるようポインタ演算ができるのを条件として、
実行時範囲外を指そうとしたとき
1) 監視しておいて、例外を発生する
2) コストも馬鹿にならないから監視しない。だから予測できない動きをしかねない
3) どっちもしない。演算機能は諦める。

3) を選んだ Java にポインタはないとしてもいいが、
果たして 2) を選んだものを、ポインタと呼んでいいのか。
>>792
そういうこと
だからどっちの立場の人間も逃げ道の存在する議論になるので
終了しない
>>799
演算子はコレ→「*」
おまえはコレ→「バカ」
>>802
ま・・・とにかく。
ポインタは直接操作ができる。
参照は直接操作ができない。

俺はそう理解した。
>>801
あと、「ポインタ」っていうのは「Cのポインタと同じ働きのもの」という暗黙の了解をみとめないヤツの存在が話をかき混ぜているだけ。
805ケツ毛 ◆BOuBoU.SVg :04/06/19 15:24
アスタリスクはこれ→*
俺の肛門もこれ→*
ケツ毛の永久脱毛→priceless
>>803
その理解は間違ってない。
メモリアドレスがどうとか言ってる時点で
「言語」の範囲を大きく外れてることに気がつかない奴はどうしようもないね
これは C の罪だな
trueとは限らないよね・・・
「pointer」という語の原義には適ってる。
>>805はfalse
>>807
言語はそれらをラップしてるだけだからCのせいにされてもな
>>820 で結論が出ます。
>>807
そうか?
Cの場合、配列を作ると連続したアドレスに書き込んでくれると保障してくれる。
これは言語仕様だろ?
一気に湧き出たが
けっきょく2〜3人でやってたりして・・・

trueとは限らないよね
Cだよね
>>813
連続してることに意味があるだけであって、
「CPU が扱ってるメモリアドレスと同じである」という意識は必要ない。
ヒャッホオウウゥゥゥイ
>>814
まぁ多分そうだな。俺、ある派もない派も馬鹿発言も書いてる。

どこまで話し掘り下げて議論してるんだか・・
>>817
ヒャッホオウウゥゥゥイ
は誰が書いたんだ?
821ケツ毛 ◆BOuBoU.SVg :04/06/19 15:32
俺の肛門は掘らないでください
>>820 が結論でした。みなさんお疲れ様でした
>>820
俺俺
ヒャッホオウウゥゥゥイとは限らないよね
なんて言うか。
こういう議論の始まりってすごいよな。
誰かの間違いを指摘するのに、
「バカ」やの、「あほ」やの・・・
自分はJAVAの仕様すべてを知ってるかの如くの罵倒。

無知の知を知れってヤツだな。
人間は自分を含め愚かよのぉ〜。
>>825
ヒャッホオウウゥゥゥイ
>>805
おまえの肛門は、おれが広げたのでコレ→「❂ฺ」
>>827
ヒャッホオウウゥゥゥイ
>>824
キャッフォォォォォゥゥウイの場合もある。
肛門の話はニュー速でどうぞ
"abc".equals("abc") は必ず true になる。
これは言語仕様によって定められている。

http://www.y-adagio.com/public/standards/tr_javalang2/lexical.doc.html#101083
> 各文字列リテラルは,クラスString(4.3.3)のインスタンス(4.3.1,12.5)への参照(4.3)とする。
> Stringオブジェクトは,定数値をもつ。文字列リテラル(より一般的には,定数式(15.28)の値となる文字列)は,
> メソッドString.internを使用して,一意なインスタンスを共有するために"intern"される。
>>827
それはトンプソン機関銃
>>831
古い話題を引っ張ってるのはもうあなただけですよ
>>824
ごくまれに
「キシャラッポーィィィ」がある

笑わせるつもりで書いたが
なんか自分で書いててつまらないと思ってしまった
>>832
トンプソン機関銃とは限らないよね
ごくまれにシンプソンズになる可能性もある。
>>834
「ヒャッホオウウゥゥゥイ」は言語仕様できまってるんだよ。
>>827

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

うげぇきもちわりぃーwww
なんかリアルだ
どうやって書いたのか教えてくれマジ頼む
ほんとごめんなさいごめんなさいおしえてください
Javaに於いてはこれをこう呼びませんという明確な定義をしとかないからこうなるw
>>739
//C風 -- もし、想定しているCのコードがこういうやつのことなら
WindowStruct* frame = createWindow();
SetWindowSize(window, 640, 480);

//Java風 -- それに対応するのはこっちで
Window window = new Window();
window.SetWindowSize(640, 480);

//だめぽJava風 -- こういうのはだめぽ
Window window = new Window();
WindowConfigurator.SetWindowSize(window, 640, 480);

そのオブジェクトの性質を変化させるような操作はそのオブジェクトのメソッドとするべきものであって、
オブジェクト外部から変化させたいときは、オブジェクトの性質を現す変数を直接いじるのではなくて、
オブジェクト自身が持ってる、自身の性質を変化させるためのメソッドを呼ぶ。
お前らの頭は蒸気機関の状態。
でも話は永久機関。
>>841
かっこいいって言うな!
>>831

ちょいまち
s1==s2はCだよねという事を俺は言っている

762、765の書き込みを見なさい そこから始まっている
>>835
VMの仕様で決まってます。
>>843
ヒャッホオウウゥゥゥイ
参照は、ポインタのスーパークラスっていう理解ではダメか?
847ケツ毛 ◆BOuBoU.SVg :04/06/19 15:40
>>846
ところd
❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
❂❂❂
もう、一分間に三回も四回も書き込むのには秋田ョ!!!!!
>>846
だめ。
継承関係にはない。言うのであれば
参照 have a ポインタ
>>848
マッホイ
>>843
>>831 は間違い。 "abc" == "abc" が true になるのは言語仕様で保証されてる。
詳細は >>831 のリンク先読んでくれ。

水浴びして頭冷やしてこよ。
>>846
ああ、面白いかも知れんなw
>>852
逆逆!
    〃〃∩  _, ,_      ヤダ
     ⊂⌒( `Д´)       ヤダ
       `ヽ_つ ⊂ノ          ヤダ
              ジタバタ
         _, ,_
     〃〃(`Д´ ∩ < JAVAもCみたいにアドレス触れなきゃヤダ!
        ⊂   (
          ヽ∩ つ  ジタバタ

    〃〃∩  _, ,_
     ⊂⌒( つД´) < せめて参照値がアドレスと保障してくれなきゃヤダー
       `ヽ_ ノ ⊂ノ
              ジタバタ
       ∩
     ⊂⌒(  _, ,_) < おいらの将来も保障してほすぃ・・・
       `ヽ_つ ⊂ノ
              ヒック...ヒック..

     ⊂⌒(  _, ,_) 
       `ヽ_つ ⊂ノ  zzz…
>>852
逆って何が?
>同一パッケージ(7)中の同一クラス(8)に存在するリテラル文字列は,同一Stringオブジェクト(4.3.1)への参照を表現する。
>計算された文字列を明示的にinternした結果は,同じ内容をもつ既存のリテラル文字列と同じ文字列になる。

>> "abc" == "abc" が true になるのは言語仕様で保証されてる。
なんか微妙だな
それってs1==s2と同じ意味になるのか?
混乱させようとしてるの?
一応リンク先見てくるわ
そんなもん>>785ですでに出てる
つうか
>>787の発言が意外にも重要になってきそうだな
>>858
キミは言語仕様を全部読んだ方がよさげ。
>>855
D言語があるじゃないか
こんな話題もうとっくに終わってるんだからヒャッホオウウゥゥゥイ
履歴見たら俺40回以上書き込んでたわ
>>857
今回の場合、二行目って必要なんか?
そんなもん>>785ですでに出てる
日本語のクラス名のクラスを利用したいのですが
どうすればいいのか教えてください

UTF−8えんコーディングでソース書いて
public class テスト{

public static void main(String[] arg){
System.out.println("TEST");
}}
コンパイルして
テスト.classができたんですが
>java テストてやっても
/?s・?クラスが見つかりません
みたいに文字化けして出てきます
どうやってやればいいでしょうか?
結構面白かったな
後半マターリしてて
ちょっとしぼんできた。俺の肛門。❁ฺ
>>867
日本語のクラス名、使うな。
>>869
お、微妙に形変ってるw
参照渡しという意味では正解。
正しCのポインタと同じ機構を持たないのでポインタとは呼ばない。
そういうことだな。
❀❁❂❃
>>867
ああ考えもしなかったな。
VBAですら英語ばっかりだったし。
その内できるようになるさ。





























>>867
jar で固めれば使えると思われ。
ありえないほどの駄スレだな。
>>872
Java には C++ の参照渡しに相当するものはないぞ。
>>878
ええぇ!また戦争が始まるの?
✮✸❂❌❖❠
✯✹❃❍❗❡
✰✺❄❎❘❢
✱✻❅❏❙❣
✲✼❆❐❚❤
✳✽❇❑❛❥
✴✾❈❒❜❦
✵✿❉❓❝❧
✶❀❊❔❞❨
✷❁❋❕❟❩
>>867,870,874
多分シェルとファイルシステムのエンコーディングの問題。
以前のスレで日本語クラス名でも問題なく動くという報告があった。
>>881
ええ、動くでしょうね
クラス名の命名に厳しいEclipseでも
クラス作成のときに何も言われなかったのでOKなんでしょう
あとは>>881の問題っぽい
>>881
javaが内部でエンコードしてればいいわけだ。
Hoge a, b;
a = b;
のとき、C者だとオブジェクトaの値がオブジェクトbと等値になることを連想する。
しかしJavaでは変数aがオブジェクトbを指すようになり、これはCではポインタの挙動。
Javaにないのはポインタじゃなくて、C的な意味での代入だと思う(プリミティブ型は別ね)。
>>880
そういうテストはハソセソスレみたいな、再利用のやりようがないスレでやれ。
>>883
WindowsXP だったら java -Dfile.encoding=UTF-8 テスト とかやれば動かないか?
>>886
ファイルの中身のエンコーディングじゃなく
ファイルの名前のエンコーディングが重要。
(そのOSではファイル名はUTF-8で管理されているのか?)
>>887
> ファイルの中身のエンコーディングじゃなく
> ファイルの名前のエンコーディングが重要。
多分両方一緒だと思われ。

> (そのOSではファイル名はUTF-8で管理されているのか?)
たしかUTF-16LEだったと思われ。
で、ClassLoader は UTF-8 でクラスの検索するんだったような。
889デフォルトの名無しさん:04/06/19 16:21
議論はいいからとにかく
どうすればいいのかこれまでのを参考に
なんパターンかためしてみます
ありがとうございました❂
>>884
なにをいまさら・・・・
クローネを使えよど素人ども
>>745
だとするとC言語のポインタ渡しもアドレスの値を渡してるから値渡しという解釈でいいのかな?

と言ってもう一度盛り上げてみるテストw
893デフォルトの名無しさん:04/06/19 16:46
すいません
JavaCardっていうのがあるんですけど
どこに利用するんでしょうか?
感覚的にはPCカードで動くJavaみたいな気がするんですが・・・
>>892
実際そうだよ
745の説明の胡散臭さはあれる素だからスルーしたほうがいい
896デフォルトの名無しさん:04/06/19 17:00
いや、質問後すぐに開発キットインストールしたんですが
どうもデモがうまく動かないのです
動きました
すいません
>>894
じゃあなんでわざわざポインタ渡しなんて言葉使って区別してるのよ?

・・・ってそうきたら反論するつもりだったのがやっぱり胡散臭いよなw
値の参照渡しと参照値の値渡しは区別せんと。
>>897
Javaしか使わん漏れには、どうでもいい。
901900:04/06/19 17:56
>>897
は関係ないっす。
902デフォルトの名無しさん:04/06/19 19:31
これだけは言わせてほしい、値渡しを選べない言語は実用的じゃない。
こんなとこで言っても無駄
904デフォルトの名無しさん:04/06/19 19:49
どこで言えばいいですか?
木のウロにコソーリ
906デフォルトの名無しさん:04/06/19 23:06
以前も書き込みましたが、Frame上でサイト上のアプレットを表示することを
頑張っている者です。appletviewerのソースを参考にやってきて、
class SubAppletViewerFactory implements AppletViewerFactory{
public AppletViewer createAppletViewer(int x,int y,URL doc,Hashtable atts){
return new AppletViewer(x,y,doc,atts,System.out,this);
}
public MenuBar getBaseMenuBar(){return new MenuBar();}
public boolean isStandalone(){return true;}
}を用意し、
new SubAppletViewerFactory().createAppletViewer(0,0,address,atts);
addressはURLでアプレット表示用のHTML
attsはHashtableであらかじめHTMLから取得したheight,width,codeを入れる
これで別フレームにアプレットを表示するところまでは行ったのですが、
907デフォルトの名無しさん:04/06/19 23:07
その後、AppletViewerインスタンスの処理を参考と、AppletViewerPanelのソースを持ってきて
this.add(panel = new AppletViewerPanel(address, atts));
panel.init();
this.setVisible(true);

panel.sendEvent(AppletPanel.APPLET_LOAD);
panel.sendEvent(AppletPanel.APPLET_INIT);
panel.sendEvent(AppletPanel.APPLET_START);
(thisは表示したいFrameオブジェクトです)
上を行うことで良いのかと考えたのですが、(イベント系はあとで追加予定)
panel.sendEvent(AppletPanel.APPLET_LOAD);の部分がエラーで
Exception in thread "Thread-3" java.lang.ClassCastException: Distribute
at AppletViewerPanel.getAppletContext(AppletViewerPanel.java:75)
at sun.applet.AppletPanel.showAppletStatus(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
となってしまいました。AppletViewerPanelがコピーの同じフォルダ内のものを
利用していることが原因な気がするのですが、解決策がわかりません。
ちなみにオリジナルのsun.applet.AppletViewerPanelは利用不可なようなのでコピーしました。

ソースを書いたため長くなってしまい申し訳ありません。
>> ちなみにオリジナルのsun.applet.AppletViewerPanelは利用不可なようなのでコピーしました。
ここがよく分からない。何から何にコピーした?
ソースのコピーはなくてもコンパイルできるでしょ?
>>906 それって絶対自分が用意したFrame内でアプレットが
実行できなきゃだめなの?
たとえば「今動いているVM上でappletviewerが動けばよい」程度の
ゆるい条件だったら楽にできるんだけど。
>>902 >>904
ぜひ値渡しも選べるJavaより実用的な言語をお願いしますw
>>884
>変数aがオブジェクトbを指すようになり
aもbも変数ですよ

>>893>>894>>898
>>763
>> ちなみにオリジナルのsun.applet.AppletViewerPanelは利用不可なようなのでコピーしました。
は〜なるほど、なんとなく見えてきた
そのソースを自分のパッケージ内のクラスとしてコピーしたのかな?
それで、全体的に内部で使っているクラスが
sun.*.*パッケージのクラスだと思って実行したら
mypac.*.*クラスだったのでクラスキャストエクセプションが出たと・・・
そこまでやるんなら
自分の環境に
sun.appletとかのパッケージ作って実行すればうごくのかな?
パッケージスコープのクラスとかも普通に使えるようになる
ただそういう使い方すると外には公開できないだろうな
913デフォルトの名無しさん:04/06/20 00:43
>>909
それは別フレームにアプレットを表示出来たという段階とあまり変わらないような…
どういったことでしょうか?
>>912
そうです。まさにその通りのことをしようとしています。
どこか不可視ではないところに食い込む感じしかないのかなぁと思いつつ・・・
>>913
だったら、関連するクラスを洗い出し
全部自分のパッケージ環境にコピーすればいいのでは・・・
かなりの量になるかもしれんが・・・
staticメソッドて実行時に一度だけメモリ上にロードされるじゃないですか。
てことはVectorとかHashtableとかStringのような動的にメモリを割り当てるクラス、
つまりメモリロード時にはサイズが分からないような
クラスのインスタンスをnewするような場合はstaticを使うべきではないのでしょうか?
>>915
別に構わんよ(Stringは説明ややこしいから厳密には・・・)

staticってすぐに消える場所に置くか
ずっと消えない場所に置くかの指定だけ
サイズは関係ない


という認識です俺は
間違いあったら指摘ヨロ
>>915-916
インスタンスとは無関係のメソッドという感じだと思ってるんだけど
感覚ではなんとなくわかってるのに文章で説明できないのはマズいかなやっぱり
ひょっとしたらまた荒れる原因になるかもしれませんが・・・

Stringの変数に何かしら代入し、それを引数としてメソッドに送り、受け取った変数に代入などの操作を行った場合、
その時点で参照されるアドレスが変わってしまうという認識で合ってますか?
ということは、Stringに関してはアドレスがどうとか気にする必要が無い気がするんですが・・・

また、StringBufferで同様にメソッドに送りappendした場合、ちゃんと元の変数にも影響がありました。
となると、2、3行目に書いた事が間違っている事になってしまいます。
もうわけがわかりません・・・
>>913 そういや、Swingの範疇になってすまんが、HTMLEditorKitの説明
見ると、「今のところ <applet> タグはサポートされていませんが、
<object> タグの一部分はサポートされています。」ってあるんだよね。
<applet>タグ書いたhtmlファイルをhtmlコンバータで<object>タグ
使ったhtmlファイルに変換させて、JEditorPaneで読むとか試してみてもいいかも。

俺自身はSWT派だからこういう目的にはきっとBrowserウィジット使っちゃうけどね.
>また、StringBufferで同様にメソッドに送りappendした場合、ちゃんと元の変数にも影響がありました。
じゃあこれはどうなる?

class ThreadA extends Thread{
private StringBuffer buff=null;
public ThreadA(StringBuffer buff){this.buff=buff;}
public void run(){
try{for(int i=0;i<100;i++){
buff.append("A"+i);
Thread.sleep(100);}}
catch(InterruptedException e){}}}
class ThreadB extends Thread{
private StringBuffer buff=null;
public ThreadB(StringBuffer buff){this.buff=buff;}
public void run(){
try{for(int i=0;i<100;i++){
buff.append("B"+i);
Thread.sleep(100);}}
catch(InterruptedException e){}}}

public class Main{
public static void main(String[] args)throws Exception{
StringBuffer buff=new StringBuffer();
Thread a=new ThreadA(buff);
Thread b=new ThreadB(buff);
a.start();
b.start();
a.join();
b.join();
System.out.println(buff.toString());
}
}
>>918
引数に対してメソッドを呼んだ場合は元の変数に影響が出る。
でも引数に対して代入を行っても元の変数には影響が出ない。

void hoge(StringBuffer sb) {
  sb.append("abc");
}

void fuga(StringBuffer sb) {
  sb = new StringBuffer("abc");
}

StringBuffer sb = ...;
hoge(sb); // sb の中身は変更される。
fuga(sb); // sb の中身は変更されない。
>>921
わかりやすいせつめいだ

俺も一から勉強しなおすよ
初心者にわかりやすく教えることが出来ない人は
結局自分が理解できていないってことだからな
>>913,914
たぶんパッケージがシールされてるからそのままでは動かないはず。

シールされたパッケージ(sealed)とは同名パッケージにしても
別クラスローダによって読み込まれた場合はアクセスを不可にする仕組み。
>>906
それってhtmlの解釈まで要求してる?
単にAppletのインスタンス生成して、start()とinit()呼んで
Frameなりなんなりに追加とかそういうレベルじゃだめなの?
>>923
いやだから全部もってこいと、使ってるもの全部
どっかで途切れればいいが
途切れなくJDKに入ってるクラス全部ということになったら
さすがに・・・・
926918:04/06/20 01:49
>>920
恐らくbuffにA1からA100とB1からB100までが大体交互に入ると思います。

>>921
どうもありがとうございました。
物凄くわかりやすかったです。
927918:04/06/20 01:50
あ、1から100じゃなくて0から99ですね
>>925
どっちかというとどっかで途切れてる方が工夫がいるって話なんだけど。
そうか、すまん
public class Test
{
public static void main(String[] argv)
{
String aaa = "aaa";
StringBuffer bbb = new StringBuffer("bbb");

aaa.concat("xyz");
bbb.append("xyz");
System.out.println(aaa);
System.out.println(bbb);
}
}
上記のプログラムを実行した場合、
aaaは"aaa"のままで、bbbは"bbbxyz"になりました。
また、
aaa = aaa.concat("xyz");
とすれば"aaaxyz"となりました。
結果はもちろん分かっていましたが、なぜこうなるのかが分かりません。
どちらも文字列の連結をするものであるのに、なぜこのような違いが出るのでしょうか?
仕様だと言ってしまえばそれまでですが、
APIリファレンスを見たら両方とも戻り値があるので、StringBufferも
bbb = bbb.append("xyz");
のようにしなければいけないと思うのですが・・・
String は 不変
StirngBuffer は 可変

aaa = aaa.concat("xyz");
でもしとけ
>結果はもちろん分かっていましたが、なぜこうなるのかが分かりません。

( ゜,_ゝ゜)
String#concatは内部に持ってる文字配列同士を結合した新しい文字列を返す。

StringBuffer#appendは内部に持っている文字配列自体が新しくなる。
返値はthis。bbb = bbb.append("xyz");でも別に間違いではない。
日本語できたよ。1.4.1辺りから問題なくなったはず。

C:\s>type 日本語.java
public class 日本語 {
public static void main(String[] args) { System.out.println("表示"); }
}

C:\s>javac 日本語.java

C:\s>java 日本語
表示

-----------------------
*もし* UTF-8でソースを書いたのなら、 javac -encoding=utf-8 日本語.java
>>934
なんか面白そうやね。
class化された場合はどうなるの?
日本語なんてクラスに文字コード非依存でアクセスできる?
すげー!
日本語でクラス名か・・・

わかりやすいよな。日本語にした方が。
でも、何かいけない事してる気がする・・・
長めのスパンのループスレですか?
>>936
>>でも、何かいけない事してる気がする・・・

なんでよw
10年後にはPC全部UTF-8だと思われ
939デフォルトの名無しさん:04/06/20 14:04

JavaWorld6月号で日本語でメソッド名書いてあるのを推奨していたような気がする
よーわからんので途中で読むの止めたので 誤解があったらすまん
940881ゲトー:04/06/20 14:07
JAVAとJavaScriptは日本語と韓国語ぐらい血が今〜ス。
で?
941デフォルトの名無しさん:04/06/20 14:17
「あまりパソコンばっかいじってると身体に障るよ」なんて僕が注意すると、

「ごめんね。でもね、これ見てよ。この4のひと、3げっとぉ!なんて言っちゃってさぁ、ふふ」

僕は黙っていた。君がすごく楽しそうで、僕は何も言えなかった。

「ほらみて、この4のひと、変な絵文字使ってくやしぃ〜!だって。かわいいねえ。 ふふ。」

僕はまだ黙っていた。笑う君を見て、悲しくなった。

「憶えててくれるかなあ」 君がふと言った。

「…この3のひと、私がいなくなっても、あの時変な奴に2をとられたんだよなーなんて、

憶えててくれないかなあ……無理かな……憶えてて、ほしいなぁ……」

それから数ヶ月後、君は家族と僕に見守れながら息を引き取った。

君はもうこの世に居ない、なのに僕は今F5を連続でクリックしている。

君の事を、3のひとが忘れないように、いつまでも、いつまでも忘れないように。


天国にいる君と一緒に、今ここに刻み込む 

941 ゲ ッ ト
942デフォルトの名無しさん:04/06/20 14:30
JFrameを継承してるクラスの中で,Graphicsのdrawingメソッドで絵を書いている
のですが,ここで新たにJframeを作るとその下に隠れた絵が全て消えてしまいます


Jframeの下に隠れた絵が消えないようにするにはどうすればよいのでしょうか?
そもそもJFrameのなかでGraphicsのdrawingメソッドを使って絵を書くこと自体
あまり良いやり方ではないのでしょうか?
Graphicsのdrawingメソッドってなんだ?
944942:04/06/20 16:35
>>943
間違えました。
Grapjicsクラスのメソッドです。
drawlineとかdrawpolygonとかです
JComponent を継承したクラスの
paintComponent でやりなさい
946デフォルトの名無しさん:04/06/20 17:44
>>924
Appletのインスタンス生成して、start()とinit()呼んでってのでも良いのですが、
この場合、web上のアプレットをロードしてくる手段はどうすれば良いのですか?
そこがわからなくてAppletviewerのほうを利用していたもので。
>>942
重なると消えるってことは現在はpaintのイベントで描画してないってこと?
描画タイミングは自分で好きなようにバックバッファに書いたとしても
それを描画させるにはpaintのタイミングが必要だよ
JFrameならjava.awt.ContainerのPaintとupdateみとけ


ゲームのように有無言わさず定期的にウインドウ内をすべて描画するのなら
BufferStrategy使ったほうがいいかな
948デフォルトの名無しさん:04/06/20 20:01
今すごく困ってるんで教えてください。

Java2 sdkをインストールするとブラウザでソースが見れないってことは
ないですよね?なんかどのページに行っても見れないし、オフライン
で過去の履歴も見れないのです。
どなたかお願いします。
>>948
ソースってのがなにかわからんが
そんなことはないから安心しる
950デフォルトの名無しさん:04/06/20 20:16
>>949
サンキュです、普通そんなことないですよね。
ソースはHTMLですよ、これまた普通の。
IEがおかしいのかな?
>ブラウザでソースが見れない
当然だけど。
952デフォルトの名無しさん:04/06/20 20:29
>>951
変な言い方でした。
それは、メモ帳とかテキストエディタのことですか?
そのエディタのウインドウが開いてくれないのです。
単独ではきちんと起動するのに・・・
>>952
ますますわからないんだけど。
>それは、メモ帳とかテキストエディタのことですか?

違うだろ
955デフォルトの名無しさん:04/06/20 20:47
利用できるFontの列挙をしたいのですが、どうやるの?
>>952
IEのキャッシュを一度クリアしてみ。
ツール->インターネットオプション->全般->インターネット一時ファイル・ファイルの削除
957955:04/06/20 20:57
すいません、自己解決出来そうです。GraphicsEnvironment使うんですね。
>>946
java.net.URLClassLoaderを調べれ。
959デフォルトの名無しさん:04/06/20 21:18
>>956
ありがとう
解決いたしました。クッキーファイル?が山ほどでてきました。
Napのクライアント (チャット指向) のソフトを作りたいと思ってるんですが
仕様書見てもどうやって作ればいいかわかりません
サンプルとかないでしょうか?
XNapとかだとわかりにくいのでチャット機能だけとかのサンプルがほしいのですが
知ってるかた居ましたら教えてください
>>960
仕様書見ても分からないってことはjavaと関係ないんじゃない?
言語レベルでの話ではないと思われ

つまりスレ違い
>>960
いままでの開発経験でそういうことやったことないのなら
ちょっとレベル高いんでないの?
もう少し頑張ってみよう
1っか月ぐらい悩もう
仕様書見なくてもどうやって作ればいいか
大体想像つくようでないと
こりゃ当たり前のこってすよ
>>963
好き勝手作れるならそうなんだろうけどな。
規格モノはそうはいかん。
1000!!
hogeというpackageがありその中にfoo.javaがあります。
hoge\foo.java
で、このfoo.javaからprop\a.propertiesを読み込みたいのですが
public static final String FILE_NAME = "prop/a.properties";
とかやるとファイルが見つからないと怒られますが
どうしたらいいんでしょうか?
ちなみにhogeディレクトリとpropディレクトリは同階層にあります。
だってお前何一つわかってないんだもん