Java相談室
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG0002さっぱり分からん
NGNG0004さっぱり分からん
NGNGありがとうございます。
またまた質問してすいませんが、appletviewerを使って自分で作った
.javaファイルを実行させるのってどうすればいいんでしょうか?
JAVAを勉強しようと思って今日BlackBookのJAVAプログラミングって
いうのを買ったんですが、この本では<applet>タグを.javaファイル
のコードに埋め込んだ例題ばっかりで、appletviewerを使って実行
するらしいんですが、どうすればいいのかさっぱり分かりません。
0005名無しさん@お腹いっぱい。
NGNG0006名無しさん@お腹いっぱい。
NGNG0007>2
NGNG/*<applet〜></applet>*/・・って埋め込んでるんでしょ?
コンパイルは通ーってるんだよね。
だったらDOS窓で続けて・・・
>appletviewer クラス名.java
で「Enter」押してみー、ウインドウズ以外は知らん。
0008名無しさん@お腹いっぱい。
NGNG0009名無しさん@お腹いっぱい。
NGNGhttp://java-house.etl.go.jp/ml/
とかに相談したほうがいいかもしれません。
ひろみちゅ@Jハウス
0010>9
NGNG0011名無しさん@お腹いっぱい。
NGNG>appletviewerってどうやって使うんでしょうか?
http://java-house.etl.go.jp/ml/topics/dhtml/
トピック
+質問のしかたについて
をご覧ください。
0012名無しさん@お腹いっぱい。
NGNGそのページはIE専用なので、
ネスケとかの場合はここ
http://java-house.etl.go.jp/ml/topics/
のほうがいいかもしれません。
つーかネタスレ化禁止。
0013名無しさん@お腹いっぱい。
NGNGこの複数のCanvasの表示優先順位を後から変更する方法はあるんでしょうか?
↓こんな感じで。
+-----------------+
| +-----------------+
| | +-----------------+
| | | |
+-| | CanvasA |
+-| |
+-----------------+
+-----------------+
| +-----------------+
| | |-+
| | CanvasB | |
+-| | |
+------------------+ |
+-----------------+
+-----------------+
| |-+
| CanvasC |---+
| | |
+-----------------+ |
+-| |
+-----------------+
0014名無しさん@お腹いっぱい。
NGNG0015名無しさん@お腹いっぱい。
NGNG00161
NGNGここかな?
http://www.ibm.com/java/jdk/linux130/
違ってたら失礼。
>>15
すみません、精進します。
0017>13
NGNGとかで出来ない?
001813
NGNGそれも考えましたが、それでは「コンポーネント同士が一部重なり合う」場合には
対応できないですよね……?
思い違いだったらすみません。
>>14
どうやら無いみたいですね。今回のところは諦めます。
java.awt.Frame「hogeFrame」に
お互い重なり合ったjava.awt.Canvas「hogeFrame1」「hogeFrame2」を順に
貼り付けた場合の動作がOSによって変わることがあるので
(hogeCanvas1が前に来る場合とhogeCanvas2が前に来る場合がある)、
統一出来ないかと思って色々試していたんです。
どうやら「Canvasは重ねるな」と言うのが結論だったようですね。(笑)
0019>6
NGNG0020名無しさん@お腹いっぱい。
NGNGDBのエンジンって何になるんでしょ?
ORACLEならORACLEのDBエンジンなんでしょうけど、MDBはだれが検索かけてるの??
0021MEとかつかってねえだろな?
NGNGjavax.swingでJFrameとJPanelかなんかでやればできるはず〜。
awtのCanvasだとできませーん。
0022>18
NGNG"Write Once@` Debug Anywhere"の世界にようこそ(笑)。
0023名無しさん@お腹いっぱい。
NGNGJava -> JDBC -> ODBC -> JET -> .mdb
0024>13
NGNGframe.add(canvas@`0)
でできませんか?
0025PG
NGNGremove して add し直す。
独自の layout クラスを作る。
0026>24@`25
NGNGAWTでは「不定」なんだから
「汎用性(移植性)がある」という条件がついたとたんどれもダメジャン
つか、SolarisのCDEでコンポーネントが一部重なったら
かたっぽが完全に消え去ったことがある
0027名無しさん@お腹いっぱい。
NGNGがんばってJavaアプリを普及させましょう。
0028名無しさん@お腹いっぱい。
NGNGJava使う意味がない気がするが…
0029名無しさん@お腹いっぱい。
NGNGモジュールが機種依存しないというのはメリットにはならない?
確かにユーザーに対するメリットにはならないかも知れないけど。
ネスケ6が普及してくれれば、JREもそれに伴って普及するんだけどな……。
頑張れNetscape。
003013
NGNG「機種依存せずにCanvasの表示優先順位を変える」のは、
22さんの方法と24@`25さんの方法を組み合わせれば「一応」出来なくはない、
と言ったところのようですね。
ただ、26さんの指摘した問題はありますが。
で、特に今回はWindowsとJBrendでの動作の違いが問題になってたので、
Swingは使えなかったんです。
皆様、ありがとうございました。
0031名無しさん@お腹いっぱい。
NGNG具体的に何がどう遅いんですか?
003224
NGNGグラフィックJava2 Vol.2 Swing編<上>の64ページにZオーダーの記述が有ったから、
てっきりどっかで規定されてると思ってたい。
ありがとう。勉強になったよ。
0033名無しさん@お腹いっぱい。
NGNGJavaのプログラムの実行速度が,ネイティブコードのプログラム(Windowsならexeファイル)と
「比較すると」遅いんです。
ただJavaをJavaの不得意な用途に使うから処理速度(というよりスループット)
が問題になるわけで,
ちょっと遅くても構わない用途に使うなら,何の問題もありません。
0034名無しさん@お腹いっぱい。
NGNG(問題になるほどと言う意味で)変わんない気がする。
問題はイニシャライズ時のバイトコードロード
→コンパイル→実行までのスピード。
あと、GUI関係ってすっげー遅い気がする。
マシンの性能によっては、GUIアプリは立ち上げまで
5分10分掛かるのとかあるぞ。某IDEとか。
…でもそんなのって、マシンの性能上がっていったら
どうでも良くなっていくんだろね…
0035名無しさん@お腹いっぱい。
NGNGならない。むしろVMのロード時間とGUIの表示系の遅さの方が気になるね。
003635
NGNGでもPen3の800MHzとかでもまだ「おっせー」といらいらする速度だからねぇ。
「どうでもいい」レベルになるのはいつになる事やら。
0037名無しさん@お腹いっぱい。
NGNG数年後に10GHzオーダのマシンが出る頃には、
問題ではなくなってるんじゃないだろか。
その頃にはブロードバンド化が進んで、一般家庭で
10Mbpsとかの通信環境あるだろうし。
Applet(の類似技術)が再び日の目を見る時がくるはず。
分散環境3・4層アプリのクライアントでAppletためしに
使ってみるという仕事も最近だんだん増えてきてるみたい
だし。
と言うことで、数年後を見越してJavaやっとくのが吉。
つーか、例え実践で役立たずだとしてもOOPの勉強にJava
やっとくのは吉だと思う。
0038名無しさん@お腹いっぱい。
NGNGHTTPプロトコルを標準でサポートしてくれてるし。
あ、でもそれだけだと手軽さとFTPでRubyにまけるな。(藁
0039名無しさん@お腹いっぱい。
NGNG言ってなかった?今じゃパソコンで Linux 入れてサクサク
だからな。スピードなんて数年後には全然気にならなく
なるんじゃねえの?
0040>39
NGNG問題はそれを口実にして無駄な処理を平気でさせる
厨房プログラマーです。
0041名無しさん@お腹いっぱい。
NGNG0042名無しさん@お腹いっぱい。
NGNG少ないんじゃないかな。
たぶん厨房だと速いマシンがないから、Java じゃなくて
C++ とかよく使うのでは?
0043名無しさん@お腹いっぱい。
NGNGThanks!
JETなのかぁー
なんかなぁ
0044名無しさん@お腹いっぱい。
NGNG案外近いかも。
0045名無しさん@お腹いっぱい。
NGNGJAVASERVLETって本を買ったんですけど、
ちょっとサーブレット初心者にはむずかいしかった・・・
0046名無しさん@お腹いっぱい。
NGNGWindows のシェアが大きい限り無理なんじゃない?
0047名無しさん@お腹いっぱい。
NGNG延びてくる
というのが理想的かな?
0048名無しさん@お腹いっぱい。
NGNGさっきのNHKの番組見た?
中国でLinuxばらまいてるから
そのうちトップシェアになるかもね
0049名無しさん@お腹いっぱい。
NGNG本当に「サーブレット初心者」ですか?
Java初心者とかプログラミング初心者とかじゃなくて?
そのへんははっきりといっておかないと多分求めているのとは違う
答えがつくことを予言しましょう。
Javaのプログラム経験がある人なら、init()がどういうタイミング
でよばれるのかとかインスタンスの寿命が...とかそういう具体的な
疑問がでそうなもんなんだけど。
005024
NGNGいまさらだが、同一コンテナ上のコンポーネントの重なり規定は、
AWT1.1からだそうだ。(JDK1.2だっけ?)
コンテナ上に最初にaddされてるのが手前に来るとあったぞ。
from グラフィックJava2 Vol.1 AWT編@立ち読み
0051名無しさん@お腹いっぱい。
NGNG0052名無しさん@お腹いっぱい。
NGNGブラウザ(JavaPlug-inはインストール済み)で表示すると
「読み込み中-Javaアプレット...」と表示されたまま
返ってきません。
無料版は「配布ウィザード」というのが使えないので
これが問題なのでしょうか?
0053覚え書き
NGNGされませんので、JIT は開発中はオフにするのが良いです。
オフのやり方。
JDK1.1.7 くらいは
> java -nojit Test
JDK1.2 は
> java -Djava.compiler= Test
0054名無しさん@お腹いっぱい。
NGNGという本買ったけれど最低。
サンプルコードの改行やインデントすらまともに出来てない始末。
翻訳も直訳的で意味不明。
例えば以下の記述はあるパターンの概要を説明したものなんだけれ
ど、どのパターンのことだか分かりますか?(P56より抜粋)
「データとインタフェースを介してそれらのインスタンスにアクセス
することになるクラスとは独立している他のクラスのインスタンス
によって提供されるサービスを使用するクラスを保持する」
0055るぶら
NGNGhashCodeでもらったハッシュキーから対応するオブジェクトを引いてくるには
どうしたらいいのでしょうか
0056名無しさん@お腹いっぱい。
NGNGその質問をするに到った動機を今後の参考の為に教えて下さい。
0057るぶら
NGNGために、レジストリ(mapを用いた簡単なもの)を用いているんですが、
そのときにJAVA側はハッシュキーを使っているので、
C++オブジェクトから対応するJAVAオブジェクトを引いてくるのに
ハッシュキーに対応するオブジェクトをもらうにはどうしたらいいのかな
と思ったわけです。
0058名無しさん@お腹いっぱい。
NGNGHashtableじゃダメなの?
0059るぶら
NGNGマップするってことですか
そうするしかないのかな
0060名無しさん@お腹いっぱい。
NGNGでも、ハッシュ関数は通常一方向で衝突するし、
リンク先でStringの実装を見たけど、ハッシュ値だけからの逆引きは不可能。
ハッシュ値と、対応するオブジェクトを識別できるもの(アドレス)を
対にして、リストかなんかで管理するのが普通の使い方じゃないの?
006160
NGNGjava知らないんでごめんね。
0062名無しさん@お腹いっぱい。
NGNG>>オブジェクトのハッシュ値を返すものですよね?
そうとは限りません。例えば
String s1 = "ABC";
String s2 = "ABC";
ならば
s1.hashCode() == s2.hashCode() です。
0063るぶら
NGNGやはりマップをつくろうと思います。
0064名無しさん@お腹いっぱい。
NGNG006564
NGNG鬱だ氏のう
0066PG
NGNG日本語的に何の事やら。あーさっぱりだ。
0067名無しさん@お腹いっぱい。
NGNG0068名無しさん@お腹いっぱい。
NGNG基本的にハッシュ値は配列の添え字として使うという点は
わかっているのだろうか。
0069名無しさん@お腹いっぱい。
NGNGお勧めがあったら教えて下さい。
0070るぶら
NGNGJAVAのオブジェクトとC++のオブジェクトを対応させるために
JAVAのオブジェクトのhashCodeをキーとしてC++のオブジェクトのマップを
C++の方に持ってて、JAVAの方からは対応するC++のオブジェクトが持ってこれるんですが。
C++のオブジェクトから対応するJAVAのオブジェクトを引いてきたいというわけです。
それで逆にC++のオブジェクトをキーとしてhashCodeのマップを作って
対応するJAVAのオブジェクトのhashCodeを持ってくるとこまではいいんですが
hashCodeから対応するJAVAのオブジェクトを取ってくるときに
hashCodeと対応するJAVAオブジェクトのHashtableを作るのいいのかなということです。
そもそもJAVA側のオブジェクトの決定にhashCodeを使っているのがいいのかどうか
わかりません。
0071名無しさん@お腹いっぱい。
NGNGあんた、SEには向いてないな。
0072名無しさん@お腹いっぱい。
NGNG0073名無しさん@お腹いっぱい。
NGNG0074名無しさん@お腹いっぱい。
NGNG0075名無しさん@お腹いっぱい。
NGNG0076名無しさん@お腹いっぱい。
NGNG○:SE
0077名無しさん@お腹いっぱい。
NGNG+アルファベットは全角で
0078名無しさん@お腹いっぱい。
NGNG「ハッシュコードはそもそも対象となるキーを一意に識別するための物ではない」
って事をまだ理解してないんでない? ~~~~~~
詳しくはその辺のアルゴリズムの本を見てみれ。
0079名無しさん@お腹いっぱい。
NGNGエラーメッセージが返ってくるのですが・・・どうしてなんでしょうか?
Win98SE特有のエラーなのか、ハードウェアの相性問題なのか分からないんです。
0080名無しさん@お腹いっぱい。
NGNG他のマシンで動かしてみれば?
0081名無しさん@お腹いっぱい。
NGNG0082るぶら
NGNG確かにそうなんですが、C++のほうでJAVAのオブジェクトとC++の
オブジェクトの対応を管理しようと思ったら、JAVAのオブジェクトを決定する
なにかいい方法ありますか
008379.81
NGNG「JAVA VMのプログラムカウンタの〜」だったと思います。プログラムカウンタって
何でしょうか?
0084名無しさん@お腹いっぱい。
NGNGあなたの場合、ここ
http://java-house.etl.go.jp/ml/archive/j-h-b/022601.html#body
とかを見た方がよいかもしれません。
ひりみちゅ@初心者をJハウスに送り込む会
0085名無しさん@お腹いっぱい。
NGNGやってるって人います?実際に効果ありますか?
勉強初めてみよっかと思ってるんですが、ちょっと見た
ところだと、メソッド単位のチューニングくらいしか
出来ないような気がするんですが、それが癌だったって
ことは多いんですか?
0086名無しさん@お腹いっぱい。
NGNG0087出張Jハウス
NGNGどの程度ちょっと見たのでしょうか。あいまいでは困りますね。
まず自分がどこまで調べたのかを示すべきでしょう。
0088名無しさん@お腹いっぱい。
NGNG>87
バイトコードを逆アセンブルしてアセンブラコード
読んでるところです。
もしかしてそんな事やってるくらいならクラス設計の勉強
先にした方がいいのかとか思って。
0089出張Jハウス
NGNGhttp://www.ingrid.org/java/vm/
別スレでぼろくそにいわれている(私も言っている一人藁)ひろみちゅの
底力が見れます。
009088
NGNGおお、ありがとうございますです。なんせJavaはじめて半年の
しろーとなので、ひろみちゅ殿の底力とやらがわかるのは随分
先になりそうですけど。。。
今のところは、オーム(オライリー)のJavaVM本で推薦してる
D-Javaで逆アセンブルしたJasminソースみてるんですが、もっと
お勧めパターンとかあります?
それにしても、なんでJDKにはjavap程度のものしかないんで
しょう?
0091出張Jハウス
NGNGkaffe(フリーの)VMを解析してみては?
ただこのあたりは、研究にはよいですが、実用(=仕事)にはあまり役
に立ちませんよ。(VMを作るのでなければ)
0092名無しさん@お腹いっぱい。
NGNG知っているような気がするが...ま、がんばれや
0093名無しさん@お腹いっぱい。
NGNG邪婆じゃあんまりだし
0094名無しさん@お腹いっぱい。
NGNGJeNnYちゃんハウスby株式会社タカラ?
0095名無しさん@お腹いっぱい。
NGNG009688
NGNG別にVM自体を勉強するつもりはないですー。
VM作るなんて、そんな根性無いですし。
ただこれからJavaでお仕事するに当たって、バイトコード
読めるようになる事や、チューニングかませるようになる事が
役に立つ事あるかなあと思って。
考えたら、classファイル読めるのは便利な気がする。
挙動不審なカスソースが他者からjarでclassファイルだけ提供
されるなんてのは、これから日常茶飯事になってくだろうし。
チューニングで高速化なんてのは、Javaで今更そんな事
する意味がないような。そんなのが必要ならはじめからJavaなんか
で組むな、って気がするなあ。(但しこれから数年に限っては、
実行スピードがちょっとでも上がるなら有益かな)
0097名無しさん@お腹いっぱい。
NGNG009888
NGNG知りませんでした。
あーそうですよね。このレベルでディスアセンブルできる
くらいならデコンパイル簡単ですよね。89のページいけば
あるかな。
0099名無しさん@お腹いっぱい。
NGNG有難うございました。
0100名無しさん@お腹いっぱい。
NGNGただし完全にはソースを生成できないケースもあります。
(mochaは今となってはいまいちかも)
0101名無しさん@お腹いっぱい。
NGNG「ジャワカレー」はハウス食品(株)の登録商標(第2084565号)ですが、本メイリングリストとは関係ございません。
0102名無しさん@お腹いっぱい。
NGNG0103>102
NGNG凹まされたことを思い出して書かずにはいられないのだよ。
基本的に独り善がりの病人だからこっちに実害がない限り無視しておくのが1番だ。
つーか、JHネタをチラッとでも書くとその、怨念君が寄ってきてこのスレ
壊そうとするから無視しておいてくれ。
010479.81
NGNG探したんですが、ハード面ばかりに目がいってて・・・ありがとうございました。
0105名無しさん@お腹いっぱい。
NGNGスペシャルトピックにあるんですが…Jハウスで質問しなくてよかったですね。
ところで、なぜスペシャルトピックを読まなかったのか今後の参考のために
教えてください。藁藁藁)ひろみちゅ@Jハウス代理人
0106名無しさん@お腹いっぱい。
NGNG0107初心者
NGNG質問ですが、WinとMac共に動作するJAVAアプレットを
作りたいんですが、その場合文字フォントは何を指定すればよいのでしょうか?
すみませんがどなたか教えてくださいませ。
0108名無しさん@お腹いっぱい。
NGNG文字フォントは指定する必要ないよ。
デフォルトでおっけー
0109名無しさん@お腹いっぱい。
NGNGAPIドキュメントとどう違うのか教えてください。
煽りじゃないです、買おうかどうしようか、結構悩んでます。
サンプルコードの豊富さは、ちょっと立ち読みしただけでも十分分かったんですが。
0110名無しさん@お腹いっぱい。
NGNGなんかどきどきする
0111名無しさん@お腹いっぱい。
NGNGスレ間違い。こっちだった。すまそ。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=971642568
0112名無しさん@厨房って言わないで
NGNGインストールは完了したんですがクラスパスを通すところで困ってます。
方法としては
jdkTool -classpath path1;path2...
って方でやりたいんですけど、 java -classpath path1 って書きたいんですけど
肝心の path1 の部分をどう書いていいのか分かりません。
マニュアルみたいなのをDLして読んだら .class の名前って書いてあったけど
それすら意味不明です。一応それっぽい物を書いたけど上手く動きません。
インストールは C:\jdk1.2.2\ 以下にしてあります。
なんて書くのか教えてください。
0113名無しさん@お腹いっぱい。
NGNGかな
ちゅうか環境設定て面倒なのに、いまいち記憶に残ってない
0114名無しさん@お腹いっぱい。
NGNG環境変数CLASSPATHは本当に必要なとき以外は設定する必要ないよ。
>>112
もしパッケージの指定してなければ、hogehoge.classのファイルが
おいてあるディレクトリをpath1に指定すればおーけー。あとの
必要なAPIが入っているclassは指定しなくても勝手にjavaが探してくれる。
0115112
NGNGHDをサーチしたけどありませんでした。
>環境変数CLASSPATHは本当に必要なとき以外は設定する必要ないよ。
ってことはクラスパスじゃないかも具体的に困ってることを書いてみます。
java インタープリタで実行した場合こんなエラーが出ます。
Exception in tread "main" java.lang.NoClassDefFoundError:
てっきりクラスパスをセットしてないからだと思っていたんですけど、これってどうしたらいいんですか?
それまで作ってたアプレットのプログラムは動きます。
アプレットじゃない奴(普通のプログラム)を作ったら全然動きません。
このプログラムもプログラム的にはあってるはずです。
Javaの解説してるサイトで拾ってきたのもなので・・・
教えてください。
0116>115
NGNGをよくよむべし。
ついでに下記でドキュメント全部ダウンしてこい。
http://java.sun.com/j2se/1.3/ja/docs.html
具体的になにが見つからないと言っているのかはそのエラーメッセージの
後ろに出ているはずだ。
もまえのエラーのこぴぺには肝心のところが抜けている。
0117名無しさん@お腹いっぱい。
NGNGここにある
http://java-house.etl.go.jp/ml/
これを読むべし
http://java-house.etl.go.jp/ml/archive/j-h-b/021880.html#body
ちなみに"hogehoge"というのは"ウンヌンカンヌン"とか"何々"とか"あれそれ"
とかの意味で良く使われる言葉。
詳しくはココを参照
http://www.selab.tutkie.tut.ac.jp/~yoshida/hoge.html
0118名無しさん@お腹いっぱい。
NGNGhttp://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/win32/classpath.html#Understanding
0119112
NGNG動きました。
基本的にクラスパスの意味を間違ってました。
てっきりJavaをインストールしたフォルダか何かを指定するものだと思ってました。
実行するプログラムのパスを指定するんですね。
hogehogeの意味も分かりました。
どう間違っていたかも書いておきます。
Javaインストール先:C:\JDK1.2.2\
プログラム:C:\hogehoge_folder\hogehoge.class
修正前: java -classpath C:\JDK1.2.2 C:\hogehoge_folder\hogehoge.class
修正後: java -classpath C:\hogehoge_folder hogehoge
0120満忠
NGNG0121名無しさん@お腹いっぱい。
NGNG0122名無しさん@お腹いっぱい。
NGNGこわっ
0123名無しさん@お腹いっぱい。
NGNG1からJAVAを勉強するのにおすすめの本を教えてください。
当方プログラム初心者・WEBデザイナーです。
最近はWEBデザイン・JAVA・CGIできる人という求人が多くて困ってます。
CGIはちょっとだけわかるんですが、JAVAは全くお手上げです。
よろしくお願いします。
0124名無しさん@お腹いっぱい。
NGNGhttp://java.sun.com/docs/books/tutorial/?frontpage-spotlight
0125>123
NGNG最近はWEBデザイン・JAVA・CGIできる人という求人が多くて困ってます。
自称Webデザイナー?
>WEBデザイン・JAVA・CGI
これって完全にWebプログラマーの領域でしょ?
デザイナーに求める事じゃないと思うけど・・・。
まさか、JavaAppletアニメ−ションのスキルを求めてるの?
0126123
NGNGうん、そうなんだけど、当方SOHOなんよ。
んで、SOHOだとそんな求人が多いんだな。
でも、前に某制作会社に面接に行ったら、
今からはWebデザインができるだけじゃあね〜、
HPだけだったら誰でもできるようになるから
プログラムできないと仕事ないよ、って
言われたよ。
そんで勉強する気になった。
0127123
NGNGデザインだけやってられるなんていい環境だね。
小さな会社はなんでもやらんといかんのよ。
>124
英語やんけー。日本語の本お願いします。
0128名無しさん@お腹いっぱい。
NGNGJDBCドライバは何使いました?
0129飲む打つ買うさん
NGNGそれでも未来は明るいのですかね。
アプリは見たこと無いし。
0130名無しさん || die
NGNGServletでXMLでウェブアプリってのが流行ってるよ。
XML対応度はJavaは一歩先んじてる。
0131名無しさん@お腹いっぱい。
NGNGProjectKySSの人たちが書いている本や連載はXMLの勉強にはなりそうだ。
0133125
NGNGまぁ、今までHTML知ってるってだけでWebデザイナーとして
食っていけてたのが不思議(奇跡)だったんだよ。
これからは余程のセンスを持った人以外は厳しいだろうね、
Webアーティスト(笑)みたいな感じかな、残るのって。
ハッキリ言って、デザイナーとプログラマは全然別物ですよ。
もう一度、白紙に戻して仕事を選択してみた方がイイのでは?
0134>125@`132
NGNG123は現実にWebのデザインとJavaの能力を要求されてるんでしょ。
何にこだわってるのか知らないけど、それくらい別に不可能なことではないよ。
0135>123
NGNG間違える人って本当に多いからねぇ。
うちの上司なんて何度指摘しても間違える。
0136134
NGNG0137名無しさん@お腹いっぱい。
NGNG「BruceEckelのJAVAプログラミングマスターコース上・下」
はお勧め。
でも、全くの初心者なら2冊目以降に読んだようがいいかも。
0138125
NGNG別にこだわってないし、不可能な事だなんて一言もいってない。
ただ向き、不向きを見極めた方がいいのではと思っただけ。
まぁ、Sunの日本語ホームページ見つけられないのが
SOHOで(Javaの)仕事受けるのは厳しいんじゃないの?
0139109
NGNG0140名無しさん@お腹いっぱい。
NGNGSwingについて書かれてるんだろ?
0141123
NGNGすんません、日本語ページがあったんですね。
ありがとうございました。
よければ、いい本を・・・。
0142123
NGNG0143123
NGNGでもね、この世界でフリーであっていくには
今後はプログラマーはデザイン、デザイナーはプログラムを
勉強していかないとやってけないんじゃないかなーと
思うけど、どうかな?
0144>143
NGNG0145名無しさん@お腹いっぱい。
NGNG0146名無しさん@お腹いっぱい。
NGNG0147146
NGNGstaticなインナークラスでやる事にしてます。
public class Hoge{
private int f(){
return 1000;
}
static class HogeTest{
public static void main(String[] args){
System.out.println(new Hoge().f());
}
}
0148146
NGNGあ、}が1つ抜けてた。
逝ってきまーす。
0149名無しさん@お見送り
NGNG>逝ってきまーす。
逝ってこい。(泣)
0150名無しさん@お腹いっぱい。
NGNGFote :が何故か入力できなかった
Jbuilder :とろい
VAJ :英語はいいとして、使い方がさっぱり。コンパイルすらできない
ちゅうわけで、おさるはエディタに帰って逝きました
0151名無しさん@お腹いっぱい。
NGNGどこぞでWin環境でUNIXコマンドとかWin用Emacsとかを
インストールして無理やり使う事を宣伝してるみたい
だけど。
0152ガイシュツさん
NGNG0153名無しさん@お腹いっぱい。
NGNG0154名無しさん@お腹いっぱい。
NGNG0155???????????????B
NGNG0156名無しさん@お腹いっぱい。
NGNG0157>152
NGNGおしーえてーおじいさーん
おしーえてーおばあーさん
0158名無しさん@お腹いっぱい。
NGNGJavaは辞めとけ。
時代遅れ。C#に負ける。
それよりもC#に対抗してJavaScriptってのが新しく出たんでそれを覚えろ。
特にJavaScriptはWinMEに最適化されているのでJavaよりも速いらしいよ。
組み方次第ではCより速い?!
0159>158
NGNGあのJavaScriptとは違うの??
0160名無しさん@お腹いっぱい。
NGNGWin98で使いやすいシェルない?
bashきぼーんぬ
0161名無しさん@お腹いっぱい。
NGNGプログラム書く人がWin98使ってちゃいけません。
素直にNT系(NT4.0,2000)使うように。
0162名無しさん@お腹いっぱい。
NGNGCygwinでもいれとけ
0163>160
NGNGbashがついてるよ
http://sources.redhat.com/cygwin/
0164>158
NGNG騙りにしたところで余りに痛いよ。
0165名無しさん@お腹いっぱい。
NGNG何を言ってる?ネイティブコードで動くJavaScriptが先週発表されたのを知らないのか?
0166名無しさん@お腹いっぱい。
NGNGNT+Cygwinがよろしいかと。
0167名無しさん@お腹いっぱい。
NGNGネイティブコードの奴ってXMLだろ?
CSSってのは機械語コードらしいよ。
0168名無しさん@お腹いっぱい。
NGNGいやぁ、ホントに板井(ヤオ
0169名無しさん@1回転
NGNG煽りなら煽り、で
そのマユツバな情報の出所を貼り付けてくれ…
もしかしてJScript.NET(だったっけ、違ったらゴメン(^^;)
のことをおっしゃってるのかしら?
0170名無しさん@1回転
NGNG0171名無しさん@お腹いっぱい。
NGNG165のmailto:を見よ。
0172名無しさん@1回転
NGNG見落としてた、どうもすいません。
158がJavaとJavaScriptを混同してたのはわかるが、
こんなのを前に見てたんで。
http://www.microsoft.com/JAPAN/developer/workshop/languages/clinic/scripting07142000.asp
0173名無しさん@お腹いっぱい。
NGNGinterfaceってpublicメソッドしか定義できませんが、その理由はなんなんでしょうか?
protectedメソッドくらい定義できて良さそうの思えるんですけど。
隠蔽したいメソッドがpublicになってしまってとてもキモチワルイ……。
1、publicメソッド以外を定義する必要がない
2、publicメソッド以外を定義できたら問題が生じる
3、その他
……お判りの方、おられましたらご教授ください。
0174名無しさん@お腹いっぱい。
NGNG文法上の決まりです。
素直に受け止めましょう。
0175名無しさん@お腹いっぱい。
NGNG0176名無しさん@お腹いっぱい。
NGNGpublic interface Hoge {
public void methodA();
protected void methodB();
}
とかなってた場合、パッケージ外からのインプリメントで矛盾が生じるからでは?
(protectedメソッドを実装できない)
確かに、
protected interface Hoge {
protected void methodA();
protected void methodB();
}
くらいのコードなら許してくれても良さそうな気はしますが。
(見当外れのこと逝ってるかも知れないがご容赦)
0177名無しさん@お腹いっぱい。
NGNG逆に、隠蔽したいメソッドをinterfaceに定義しなければならない必要性
って、例えばどういうのがあると御考えですか?
それともひょっとして、interfaceに定義していないメソッドを実装する
ことは出来ないなんて誤解をされてませんか?
0178名無しさん@お腹いっぱい。
NGNGということなのかな。でもそれなら頭のクラスで普通にprotected
メソッドにしておけばいいじゃん。
0179名無しさん@お腹いっぱい。
NGNG「相手による」と言う意外に無い。
0180名無しさん@お腹いっぱい。
NGNG0181173
NGNGお答えありがとうございます。
なんか設計ミスのような気がしてきました……。
私がやりたかったのは、同じinterfaceを継承する複数の関連しあったクラスを
別のクラスで一括コントロールするという場合です。
で、外からはコントロール用クラスをいじるだけで複数のクラスを
操作できるという。
喩えて言いますと、
・「指」インタフェースを継承する「親指クラス」を初めとする複数の「指実装」クラスをコントロールしたい。
・「どれか指を動かすとそれにつれて別の指も動いてしまう」のを実現したいので、
指を全て管理する「手」クラスを用意し、指の動きは全て「手」クラスを通じて操作したい。
・そのため、「指」インタフェース継承クラスは同パッケージの「手」クラスからのみ操作できるようにしたい
……ってな感じです。
やっぱなんか勘違いしてますか?
0182177
NGNG>>……ってな感じです。
それならば、「指」インターフェイスを実装するクラスを無修飾(publicの付かない)
クラスにすればいいではないかな?
それならば該当クラスは他のパッケージからはアクセスできないので、当然publicな
メソッドにも他のパッケージからはアクセスできません。
0183173
NGNGなるほど、ありがとうございます。試してみます。
でもやっぱ他のパッケージからアクセスできないメソッドに
「public」修飾子が付くのはキモチワルイですが……。
0184名無しさん@お腹いっぱい。
NGNG参考までに。
0185名無しさん@お腹いっぱい。
NGNGどっかに落ちてるよ。
0186名無しさん@お腹いっぱい。
NGNGJAVAチャットって、アプリ? CGI経由のアプレット?
アプリだったらサンプル見るまでもなく簡単に作れるっしょ。
アプレットはどこかにあったのを試してみたことあります。
どこか思い出したらまた書きますわ。
0187健作君
NGNG0188初学者
NGNG"Parent" という結果が返ってきました。jdk1.1.7です。
class Parent {
String str="Parent";
public String getStr(){ return str;}
}
class Child {
String str="Child";
}
class Main {
public void main(String[] args){
Child ch = new Child();
System.out.println(ch.getStr());
}
str はオーバーライド(?)されるのに、スーパークラス
の値("Parent")が帰ってくるのが不思議です。
どのように考えたらよいのでしょうか。
教えてください。
0189名無しのエリー
NGNGString str="Child";
}
って書かないとマズイのでは?
0190名無しさん@お腹いっぱい。
NGNGいろいろ実験をしてみました。
まず、188のParent#getStr()をChildに移して見た所、
"Child"が表示されました。
また、クラスの階層を親、子、孫の3階層にし、
親と孫にstrフィールドを宣言し、真中の子にgetStr()
を付けてみたところ、親クラスのstrが表示されました。
どうやら最初にgetStr()が定義されているクラスのstrを
探しに行き、見つからない場合にはsuperクラスの中を捜し
に行くようです。
0191190
NGNGイメージ的には以下のような物だと思う。
class Test{
public static void main(String[] args){
{
String str = "Parent";
System.out.println(str);
}
{
String str = "Child";
}
}
}
0192190
NGNGclass Parent{
String str="Parent";
String getStr(){
return str;
}
}
class Child extends Parent{
Child(){
str = "Child";
}
}
public class Main{
public static void main(String[] args){
Child ch = new Child();
System.out.println(ch.getStr());
}
}
0193りかぴょん
NGNGアプレットならここ
http://www.freewarejava.com/
スクリプトが豊富なのはここ
http://www.dynamicdrive.com/
0194184
NGNGモノそのものではなく。
なんでもいいのでコード公開してるサイトないかなぁ
0195名無しさん@お腹いっぱい。
NGNGあっそう。
もう、人間やめれば?
0196184
NGNGかなりセンスないとお見受けできるんで他板でカルマ積んで来い。>195
0197名無したん@お腹おっぱい。
NGNG0198195
NGNGhttp://www.os.rim.or.jp/~sunagay/misc/chat/
http://www.hako.is.uec.ac.jp/sasaki/java/chat/kadai.htm
http://www.spc.gr.jp/pchat/
http://www2.airnet.ne.jp/pak04955/dl-java.htm#chat
http://www.daifukuya.com/chat/index.html
↑Appletが起動します。
0199名無しさん@お腹いっぱい。
NGNG良くありますよね。↓こんな感じで。
public interface Week{
String SUNDAY = "日曜日";
String MONDAY = "月曜日";
String TUESDAY = "火曜日";
・
・
・
}
これを使用するのに、以下の様にされるのは嫌いなんだけど、どうだろ?
public class MySchedule implements Week{
String holiday = MONDAY;
・
・
・
}
↓こうした方が良いよね?
public class MySchedule{
String holiday = Week.MONDAY;
・
・
・
}
0200>199
NGNG0201初心者
NGNG**
* *
* *
*****
↑入力した数と底辺が同じ数になり、中が空洞(↑は5を入力)。
こんなのできる人いるの?
0202↑
NGNG0203名無しさん@お腹いっぱい。
NGNG文字列で書くんじゃない?
0204名無しさん@お腹いっぱい。
NGNG0205名無しさん@お腹いっぱい。
NGNG自分で考えナって。
0206名無しさん@お腹いっぱい。
NGNG質問には答えてあげないと
出来る人はいっぱいいます
0207初心者
NGNG0208初心者
NGNGclass Triangle{
public static void main(String args[]){
if(args.length>=1){
int x=Integer.parseInt(args[0]);
for(int i=0;i<x;i++){
for(int j=0;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}else
System.out.println("Please input number");
}
}
0209名無しさん@お腹いっぱい。
NGNGではなんでインターフェイスに定数が定義出来るのでしょうか?
定数も実装であり、これを許しているということは
holiday = MONDAY;
のような使い方を想定しているとしか思われません。
0210俺も201に答えちゃる
NGNGいます。
0211名無しさん@お腹いっぱい。
NGNGかいてください
0212名無しさん@お腹いっぱい。
NGNG0213名無しさん@お腹いっぱい。
NGNG208に書いてあるだろう
0214名無しさん@お腹いっぱい。
NGNG>holiday = MONDAY;
>のような使い方を想定しているとしか思われません。
その通りなんだろうけれど、他人が作ったソースをメンテナンス
している時に、定数の定義先を探すのが大変なんだよね。複数の
interfaceをimplementsしている時なんかは特に。
とりあずツールの検索機能とかに頼っちゃうんだけれど、これは
可読性が低下している証拠だと思う。
この例に限らず、委譲で済ませられる部分は委譲にすべきだと思
うので200言うとおり、定数のみならばfinalなclassが良いだろ
うね。
0215名無しさん@お腹いっぱい。
NGNGは間違ってるじゃん。
三角形の中身が埋まってしまう。
0216名無しさん@お腹いっぱい。
NGNGベースクラスで定義されたものを探すのは常に大変でしょ?
あなたの論法だとベースクラスで定義された関数を使うのは
可読性が低下しているということになりますけど
#それはそれで事実だけど
0217>215
NGNGいわなきゃ201も気づかなかったろうに
0218初心者
NGNG*
**
* *
* *
*****
↑入力した数と底辺が同じ数になり、中が空洞(↑は5を入力)。
こんなのできる人いるの?
0219初心者
NGNG0220名無しさん@お腹いっぱい。
NGNG0221初心者
NGNG2チャンネラーはこの問題は絶対無理だから、
賢い友人に聞きナ!
0222214
NGNG>あなたの論法だとベースクラスで定義された関数を使うのは
>可読性が低下しているということになりますけど
関数の場合はクラスでしか実装できず、又クラスは多重継承
出来ないない為、親クラスを一本道で辿ればいつかはその関数
の定義部分に辿りつけますけれど、interfaceは多重にimplements
出きる為、一本道で探せないという難点があります。
また、implementsしているinterefaceに対して別なクラスから
アクセスする事は無いでしょう。
(つまり、"class A implements B"の場合、 Bが定数のみのintereface
ならば、"B b = new A();"という使い方はまずしない。ならばimplements
する必要性は無い)
つまり、定数のみを定義したinterfaceをimplementsする一番の理由は
そのクラスをタイピングしているコーダーがタイピングの手間を省く為
だけであり、これはinterefaceの乱用なのではないかと思うわけです。
0223214
NGNGどうも前にコードを書いてた人は定数をinterefaceにまとめるのが
好きだったようで、そういうinterefaceを2つ3つimplements
してたりして、ソースを読むのが非常に苦痛です。
0224名無しさん@お腹いっぱい。
NGNG一本道で探せるかどうかは関係ないでしょ。インターフェイスは
継承できないんだから、ちょっと枝が増えるだけ。
タイピングの手間を省くだけではありません。
その定数がどのクラス(インターフェイス)で定義されているかと
いうのは実装詳細で、いちいち指定するのはベースクラスの関数
を呼び出すときに
BaseClass.foo()
とするようなものです。
インターフェイスに実装が出来る以上これは正当な利用法であって
それでもいやなら、JAVAの設計が腐っているということです。
0225214
NGNG224さんの説明には"implementsしなければならない|したほうが良い"
理由が抜けてますね。なぜimplementsした方が良いのですか?
果物ナイフを使用した犯罪がこの世に存在するのは果物ナイフの設計が
腐っているからではなく、犯罪者の頭が腐っているからですよね。
intereface名.定数名でもアクセスできるのに、可読性の低下を招いてま
でimplementsしなければならない理由を教えて下さい。
0226名無しさん@お腹いっぱい。
NGNG一本道で探せないのは別に定数に限った話じゃないし、ctagsとか
使ってツールに探させればいいだけの話では?
0227214
NGNG214で書いたとおり、僕もツールで検索しています。
そしてそれは本来不必要な作業であるとも思っています。
また、ツールの検索機能だと、別なクラスで定義されてい
る同じ名前の定数を複数引っ張って来る為に、その中から
更に人力で探し出さなければなりません。
226さんは"implementsする"派のようですが、その理由は
なんですか?
なぜintereface名.定数名でのアクセスをしないのですか?
もしその理由が"コーディングが簡易だから"というものならば
それは可読性の低下とトレードオフするのに割に合う理由だと
御考えですか?
0228名無しさん@お腹いっぱい。
NGNGJAVADOC用のコメントとかなにも打たなくても、コメントの
全くないライブラリドキュメントはできるよ。
SunのAPIライブラリドキュメントになれてる人なら、
クラスツリー辿って親クラスやインタフェイスの定義まで
辿るの楽だよ。
0229名無しさん@お腹いっぱい。
NGNGJAVAからUNIXのshellを起動する方法を教えて下さい。
JAVAアプリから"ls -a"とかやって、結果をJAVAアプリに出力
させるようにしたいのですが、やり方が分かりません。
C言語を使って"exec"とか書かなくてはいけないのでしょうか。
できればJAVAオンリーでやってみたいのですが。
お願いします。
0230229
NGNGjavax.telephonyというpackageがあるみたいだけど、これでいいのかな。
0231名無しさん@お腹いっぱい。
NGNGProcess p = Runtime.getRuntime().exec( com );
DataInputStream in = new DataInputStream( p.getInputStream() );
try {
String out;
while( ( out = in.readLine() != null )
System.out.println( out );
} catch (IOException ex ){}
0232名無しさん@お腹いっぱい。
NGNG1
Stringオブジェクトからcharの文字の値を得る方法は
toCharArray
しかないのでしょうか?
2
文字列の比較の場合はswitchよりも
if elseをつかって、
Stringクラスのequalメゾットで比較してのがスマート?
3
Stringオブジェクトの文字列をint型にした場合は、
文字コードになるのでしょうか?
とするとcharも中身は文字コードみたいだから、
違いが良く分からないです
class SwitchTest{
public static void main(String args[]){
String temp = new String("a");
char a[] = a.toCharArray();
switch(a[0]){
case 'a' : System.out.println("It's a~);
break;
case 'b' : System.out.println("It's b");
break;
default : System.out.println("I don't know);
break;
}
}
}
0233229
NGNG>>231
どうもありがとうございます。さっそくやってみます。
javax.telephonyというのは標準のパッケージじゃないみたいでした。
http://java.sun.com/products/jtapi/#JTAPI%201.2
0234初心者
NGNG**
* *
* *
*****
↑入力した数と底辺が同じ数になり、中が空洞(↑は5を入力)。
こんなのできる人いるの?
0235名無しさん@お腹いっぱい。
NGNGしつこいなあ。それ元ネタのコピペでしょ。つまんね。
4列目間違ってるんだから、宿題教えて君本人だったら
直して貼ってるよ。
0236名無しさん@お腹いっぱい。
NGNG何でわざわざchar[]に変換する必要あるんだか分からん。
StringクラスのAPI調べてみそ。
0237名無しさん@お腹いっぱい。
NGNG>SunのAPIライブラリドキュメントになれてる人なら、
慣れてない人なんてJavaの初心者以外にいるのですか?
ていうか、それも"implements有りき"という前提で思考停止
しているね。
0238名無しさん@お腹いっぱい。
NGNGJTAPIって具体的に何するんだか知らんが、必要なのか?
他モジュール実行と入出力ストリーム取得命令はコア中のコアだよ…
231が使ってるjava.lang.Runtime&Processクラス。
とりあえずリモート起動がやりたいのなら、ソケット作ってTELNET
ログインすれば良いんじゃない?相手にはデーモンあがってるよね?
java.netパッケージと、TELNETプロトコル(などというほどのもん
でもないだろうが)調べなされ。
業務システムとかでってんなら、CORBAとかRMIやってみるのも良いかもね。
0239名無しさん@お腹いっぱい。
NGNGswitch()のカッコの中はbyte@`short@`int@`charのいずれか
じゃないといけないようで、stringオブジェクトを
入れられないようです
んでAPIドキュメントみたらtoCharArray()
があったので使ってみたんだけど、
もうちょといいやりかたないかなと思って
0240名無しさん@お腹いっぱい。
NGNG2 の「if elseをつかって‥‥」
が読みやすさの観点では無難なのではないかと。
02416流SE
NGNGcharAt でいいんじゃない?
0242224
NGNGちゃんと読んだ?
intereface名.定数名
ってアクセスするのは実装詳細に立ち入ってるから駄目なのよ。
定数の定義されているインターフェースの名前が変更されたり、
ほかのインターフェイスに移ったときや、あるクラスだけMONDAYの値を
変更したくなったらどうするの?
>果物ナイフを使用した犯罪がこの世に存在するのは果物ナイフの設計が
>腐っているからではなく、犯罪者の頭が腐っているからですよね。
だから、インターフェイスで定数が定義出来る仕様には、ほかに使い道はあ
るのですか?
唯一の使い道を気に入らないというならJAVAの仕様が腐ってるんでしょ。
>また、ツールの検索機能だと、別なクラスで定義されてい
>る同じ名前の定数を複数引っ張って来る為に
だから関数でも同じこと。同じ名前の関数を複数引いて困るこ
とはないの?
定数の定義を頻繁に調べなくてはならないのは、何かほかの理由
でそのプラグラムの可読性が低いからじゃない?
ひどい目に合っているのには同情するけど、それだけの理由でこ
の機能を否定するのは止めてぷりーず。
0243名無しさん@お腹いっぱい。
NGNGだからStringオブジェクトをintに変換(?)して使うってこと??
0244名無しさん@お腹いっぱい。
NGNGStringオブジェクト.charAt(index:int):char
です。#:に続く文字列は,変数またはメソッドが返す型を便宜上表記したもの
Stringオブジェクトをint型に変換できる‥‥わけなくて,
「文字列のindex番目の文字を返す。」という意味です。
Cの
int index = 3;
char *str = "abcdefg";
char c = str[index];
のような動作に似ている。この場合 'd' が返されます。
0245名無しさん@お腹いっぱい。
NGNG0246名無しさん@お腹いっぱい。
NGNGswitch文で文字列の判定はできません
if elseをつかいましょう
0247225にあらず
NGNG>だから、インターフェイスで定数が定義出来る仕様には、ほかに使い道はあ
るのですか?
>唯一の使い道を気に入らないというならJAVAの仕様が腐ってるんでしょ。
横槍すまんが…。
interface hoge {
int ON = 1;
int OFF = 2;
void hogeSwitch(int dx@`);
}
みたいにInterfaceの中で定義されてる抽象メッソドの引数に使われる定数を定義するために使うっつーのが使い道の一つとしてある様な気がするんだけど…。
まぁ、おいらは汎用関数として使うのも別に構わないと思うけど。
0248225にあらず
NGNG>まぁ、おいらは汎用関数として使うのも別に構わないと思うけど。
げげっ!!汎用関数じゃなくて汎用定数だった…。
まっ、いっか。
0249名無しさん@お腹いっぱい。
NGNGそれは正しいやり方な気がするじょ。インタフェースの
定義の場所で、インタフェースのパラメータまで絞って
るっていうのは、クライアントから見て非常に分かり
やすそうじゃ。
0250224
NGNGそのとおりだ、認めます。
enumの代わりに使う場合(つまり値に意味がなく定数名に意味が
ある場合)がありますね。
しかしこの場合でも実装側はON(名前悪いけど)でアクセスする
のは自然だと思う。
0251225にあらず
NGNGなんだか良くわからなくなってきたぞ?
まぁ、とりあえず>>199の問題については、
1.定数だけのInterfaceってのは…。
→キショイ。final classを使え。
2.interfaceをimplementsしてそのinterface内の定数に直にアクセスする。
→そのinterfaceの中で宣言されてる
抽象メッソドの関連の値として使うなら問題なし。
…って事でみんな意見が一致してる様な気がするんだけどなぁ。
誰か意見モトム。
0252名無しさん@お腹いっぱい。
NGNG**
* *
* *
*****
↑入力した数と底辺が同じ数になり、中が空洞(↑は5を入力)。
こんなのできる人いるの?
0253名無しさん@お腹いっぱい。
NGNG0254名無しさん@お腹いっぱい。
NGNG違う。FinalClass.MODAYみたいにはアクセスしたくないんだ(少なくとも
そういう場合がある)。
public interface WeekStringGetable{
String SUNDAY = "日曜日";
}
って考えればこれがデフォルト実装を持ったインターフェイスである
ことが良く分かると思う。
実装があるのにインターフェイスというのはおかしいがそれはJAVAが(以下略)
0255名無しさん@お腹いっぱい。
NGNGpublic class Triangle {
private int num = 0;
private final String blankStr = " ";
private final String astaStr = "*";
public static void main(String args[]){
Triangle test = null;
int num = 5;
if (args.length == 1){
try {
num = Integer.parseInt(args[ 0 ]);
} catch (Exception e){
System.out.println("parameter error.");
}
}
test = new Triangle(num);
test.draw();
}
public Triangle(int num){
this.num = num;
}
public void draw(){
System.out.println(astaStr);
for (int lp=0; lp<num-1; lp++){
System.out.print(astaStr);
for (int lp2=0; lp2<lp; lp2++){
String str = blankStr;
if ( lp == (num-1)-1 ){
str = astaStr;
}
System.out.print(str);
}
System.out.println(astaStr);
}
}
}
0256名無しさん@お腹いっぱい。
NGNGdrawメソッドはこの方がいいと思う↓
public void draw(){
for (int lp=0; lp<num; lp++){
System.out.print(astaStr);
for (int lp2=0;lp2<lp;lp2++){
String str = blankStr;
if( lp2 == lp-1 || lp == (num-1) ){
str = astaStr;
}
System.out.print(str);
}
System.out.println();
}
}
0257225にあらず
NGNG>違う。FinalClass.MODAYみたいにはアクセスしたくないんだ(少なくとも
>そういう場合がある)。
言いたい事と違う。
それはstatic classを使う場合のアクセスの仕方だろ?
おいらが言ってるのは次みたいなやり方。↓
public final class Week{
String SUNDAY = "さんでー";
・
・
・
}
public class Hoge{
Week Hage = new Week();
・・・・
・・・・
…Hage.SUNDAY;
・・・・
}
よーするに
フィールドに組みこんで、
クラス名.フィールド名
じゃなくて
インスタンス名.フィールド名
でアクセスする様にするということ。
これで実装詳細(?)に触れなくて済むでしょ?
だいたいの場合、定数実装「のみ」のインターフェースはだいたいの場合、
そのインターフェース(にしようとしてるクラス)と
imprimentsしようとしてるクラスとはhas_a関係なんだから
クラス化してフィールドに埋め込むほうが自然だと思う。
>実装があるのにインターフェイスというのはおかしいがそれはJAVAが(以下略)
定数実装がおかしいわけじゃないんだって。
定数「しか」実装されてないのがおかしいって言ってるの。
後は夜〜♪
0258名無しさん@お腹いっぱい。
NGNGそれは考え着かなかった。有名なテクニックなの?
でも残念だけどこれでも実装詳細に触れているよ。これはインターフェイス
名が変更された場合には対応できるけど、複数のインターフェイスがあって
定義場所が移動した場合、そのクラスだけ一時的に定数の値を替えたい場合
に対応できないじゃない。
利用側がMONDAYという抽象的な値を使いたいのなら、やっぱ無修飾のMONDAY
と記述するしかないと思うのだけど。
>imprimentsしようとしてるクラスとはhas_a関係なんだから
imprimentsしようとしてるクラスは本当はWeekStringGetableから派生さ
せたいんだよ。でも多重継承できないからな…と思ってたところに定数だけの
クラスは多重継承できるって言うから利用しているだけだよ。
0259名無しさん@お腹いっぱい。
NGNG{
public static void main(String args[])
{
if(args.length >= 1)
{
int x = Integer.parseInt(args[0]);
for(int i = 0;i < x-1;i++)
{
for(int j = 0;j <= i;j++)
{
if(j == 0 || j == i)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
for(int i = 0;i < x;i++)
System.out.print("*");
}
else
System.out.println("Please input number");
}
}
0260259
NGNG0261名無しさん@お腹いっぱい。
NGNGそれなら↓こうするのが一番シンプルじゃないかな。
アルゴリズム的には256+259という感じ。
これ以上短くなる?
class Triangle {
public static void main(String args[]) {
if(args.length >= 1) {
int x = Integer.parseInt(args[0]);
for(int i = 0;i < x;i++) {
for(int j = 0;j <= i;j++) {
if(j == 0 || j == i || i == x-1)
System.out.print("*");
else
System.out.print(" ");
}
System.out.println();
}
}
else
System.out.println("Please input number");
}
}
0262名無しさん@お腹いっぱい。
NGNG次の行の**の真ん中に来ないといけない時点で
不可能だというのにはだれも気が付かないのか?
0263259
NGNGふむふむ、勉強になります。
0264名無しさん@お腹いっぱい。
NGNGオブジェクト.static_method() とか オブジェクト.static_variable
という表記の仕方は,推奨されないそうです。詳しくは
http://java.sun.com/docs/codeconv/html/CodeConventions.doc9.html
の10.2をみてね。
>Avoid using an object to access a class (static) variable or method. Use a class name instead. For example:
《いい加減な訳》
あるオブジェクトの静的な変数,およびメソッドにアクセスすることはよくないです。
そうするよりもクラス名を使いなさい。例えばこんな例だよ。
>classMethod(); //OK
>AClass.classMethod(); //OK
>anObject.classMethod(); //AVOID!(だめ)
0265名無しさん@お腹いっぱい。
NGNG026611月13日
NGNGというものがあれば教えてください。
0267名無しさん@お腹いっぱい。
NGNGNaoto's Script SUPER MASAO
http://www.t3.rim.or.jp/~naoto/j_ma/e_main.html
0268JSDK2.0〜
NGNGJSDK2.0〜はどこでDL出来るんでしょうか?
SUNのページに行っても無いのですが。。。
どうかこの3日間探し回っている厨房にお教えください。
0269名無しさん@お腹いっぱい。
NGNGJava(TM) Servlet Technology - Implementations & Specifications
http://java.sun.com/products/servlet/download.html
から最新版をダウンロードできるはずなんだけど,
旧バージョンを配布しているページはいま開けないです。
0270名無しさん@お腹いっぱい。
NGNGヤフーで探したのですが、本の紹介ばかりでした。
本を買うお金がちょっと今月はないので
0271225にあらず
NGNG>それは考え着かなかった。有名なテクニックなの?
Delegation。…と言っていいかどうかは少し疑問。
でも使う目的としてはそういう事。
安易な継承を控えるため。
>でも残念だけどこれでも実装詳細に触れているよ。これはインターフェイス
>名が変更された場合には対応できるけど、複数のインターフェイスがあって
>定義場所が移動した場合、そのクラスだけ一時的に定数の値を替えたい場合
>に対応できないじゃない。
逆にいえば「この定数ってどこで定義すれば良いかわかんないし、定数の値もこれで良いのかわかんな〜い♪」って事か?
というか、そもそもどこで定義されるかが変わっちゃうような(あやふやな?)定数があるんだったら設計自体からまず練りなおすべきでしょ。定数値を局所的に変えたい時ってのも同じ。設計した時の定数のドメイニングが甘いからそーなるの。(まぁ、仕様変更があったって言う悲しい事情かも知らんが…。)
そーいうインターフェースの使い方って書く方からすれば便利かも知らんけど
手直ししたり再利用したりする側にとっちゃすげー迷惑だと思うんだが。
なんせどこで定数定義されてるかが不明瞭なわけだし。
まぁ、最も「共同作業じゃないしServlet使うからJava使ってるだけでオブジェクト指向なんかあぼ〜ん♪」って感じの時にはそーいうコーディングでも問題は無いとは思うけどね。
>>264
今回はクラス変数の話しじゃなくて定数の話しなんでかんけーないと思うけど?
0272225にあらず
NGNGうげ〜、熱が38度もある…。
0273264
NGNG言語仕様を把握してますか?
Javaに定数(const)なんてものはありませんよ。
final修飾された変数は,あくまで「一度だけ代入できる変数」ですよ。
0274名無しさん@お腹いっぱい。
NGNGデザインパターン with JAVA
http://www.ff.iij4u.or.jp/~ahirusan/Java/patterns/patternIndex.html
0275225にあらず
NGNG>Javaに定数(const)なんてものはありませんよ。
>final修飾された変数は,あくまで「一度だけ代入できる変数」ですよ。
あー、そーだった。
なんか君の参照先の下に思いっきりConstantと化書いてあったから思わず書いちまった。(w
でもどの道static宣言なんてどこでもしてないよ。(w
#
0276225にあらず
NGNGホンネじゃMath.PIみたいstaticクラスにして
クラスの外で定数定義したいし。
でも224氏が何であそこまで実装詳細に
こだわるのがおいらニャ謎なもんで…。
0277Jova
NGNG初心者です。よろしくです。ぺこーり。。
0278224
NGNGそう仕様変更よ。本当に変わる場合もあるけど仕様のバグも
あるし、デバック目的で一時的に替える場合もある。
MAX_XXXX_NUMとかXXXXX_SERVER_NAMEとか想像してみそ
設計時に決定して替えちゃ行けないのはenum的に使う場合だけ。
>なんせどこで定数定義されてるかが不明瞭なわけだし。
これって225の主張と同じになってないか?
繰り返すけど、どこで定義されているか不明瞭で困るなら、
普通のメソッドだって不明瞭でしょ、困るの?
>でも224氏が何であそこまで実装詳細に
俺は「読みにくくなる」という主張はおかしく、逆にメリットと
して(少なくとも)実装詳細に触れないという点を上げて、この
テクニックを弁護しているだけ。
0279225にあらず
NGNG>普通のメソッドだって不明瞭でしょ、困るの?
うにゃ?
普通のメッソドもどこにあるのかしっかり指定するっつーの。
それとも、あんちゃんはSystem.out.println()を使うのにSystem.Outを(できないけど)継承するの?Math.abs()を使うのに(これまたできなさそーだけど)継承するの?しないよねぇ?
おいらの主張は継承は基本的にSuperClass SC = new ExtendedClass();っちゅー事ができる必要がない限りやらない様にすべきって事よ。
#だからこの点では225と一緒だよ。(w
振るまいが似てるけどis_a_kind_of関係にない時は継承を使わないでDelegationで対処する。外部クラスからアクセスするために使わない定数や変数は全部Private宣言する。で、JavaDocに通した時に外のクラスからアクセスするのに要らん物がドキュメントの中に出ない様にしっかりコードしようって事をいってんの。
確かにあんちゃんの使い方はコード書いてる方からは便利かも知らんけどそれを使うほうからは要らん物が大量に外から見える嫌なコードになってるの。
わかる?
…といっても、おいらもたまにそーいう事するけどね。(w
0280名無しさん@お腹いっぱい。
NGNGベースクラスのメソッドを使うときどこで定義されているかはっきり
させる様には書か/書けないでしょ?
>System.Outを(できないけど)継承するの?
出来るならするよ。Eiffelでもやってるように実装のための継承ってやつ
#本当はimportで持ってきたいんだけど。
>is_a_kind_of関係にない時は継承を使わないで
だからis_a_kind_of WeekStringReadable でしょ?
これはもはや主観の問題だぞ。
俺は利点とデメリットを比べて、問題がなければいいじゃんという
論旨で説明したんだ。それであなたが言っている「どこで定義され
ているか不明瞭」というのはおかしいと説明した。
これについては異論ないよね?
279から判断できるデメリットは「実装のための継承なのにpublic
だから外に見えちゃう」だよね。これは納得。気付かなかった。
で、訂正。メリットとデメリットがある以上、これを天秤に掛けな
くちゃいけないけどこの場合はプロジェクトの規模や性質、考え方、
開発環境で変わってしまう。
だからこれ以上一般的には議論できない。
0281225
NGNG>intereface名.定数名
>ってアクセスするのは実装詳細に立ち入ってるから駄目なのよ。
そのinterefaceをimplementsしてからアクセスしても実装詳細に
立入ってるじゃないですか?
>>定数の定義されているインターフェースの名前が変更されたり、
>>ほかのインターフェイスに移ったときや、あるクラスだけMONDAYの値を
>>変更したくなったらどうするの?
これもimplementsする方法でも解決できないよね。
>>だから、インターフェイスで定数が定義出来る仕様には、ほかに使い道はあ
>>るのですか?
>>唯一の使い道を気に入らないというならJAVAの仕様が腐ってるんでしょ。
interefaceに定数を定義する事自体よりも、それをimplementsするのが気に
入らないのです。
>だから関数でも同じこと。同じ名前の関数を複数引いて困るこ
>とはないの?
ありますよ。ただこのケースではintereface名.定数名で使用さえ
していれば検索など無用だということです。
>定数の定義を頻繁に調べなくてはならないのは、何かほかの理由
>でそのプラグラムの可読性が低いからじゃない?
ゴミのようなプログラムだと言う事は同意だけれど、むやみなimplements
のせいでより一層読みにくいんです。
>ひどい目に合っているのには同情するけど、それだけの理由でこ
>の機能を否定するのは止めてぷりーず。
否定しているのは機能ではなく設計方法です。
0282名無しさん@お腹いっぱい。
NGNGありがとー!!
0283225
NGNGにふれない事になるのかが全然理解できない。
もちろんintereface名.フィールド名でも実装詳細にふれますが、
可読性という点でimplementsするよりはマシじゃないですか?
0284名無しさん@お腹いっぱい。
NGNG個人レベルでの開発のスタイルってどんな感じですか?
僕のばあい
1 UMLのツールを使って設計
2 エディタを使ってコーディング
3 コンパイル&デバック
4 Webブラウザで結果を確認
って感じです
1と2と4が別々の環境なので、ちょっと面倒な感じです
最近xemacsでJDEを使うようになって、
コーディングしてコンパイルが大部楽になりました
全部一つの環境でできないものかな
0285225
NGNG>おいらの主張は継承は基本的にSuperClass SC = new ExtendedClass();っちゅー事が
>できる必要がない限りやらない様にすべきって事よ。
ポリモルフィズムに利用する事が無く、また継承が一番エレガントな設計
手法になりえないならば、継承は極力さけて委譲を利用します。
このケースについては継承がエレガントだとはとても思えません。
0286名無しさん@お腹いっぱい。
NGNGjavacじゃ不満?
(なんて詠むの?ジャヴァック?)
0287225にあらず
NGNG>ポリモルフィズムに利用する事が無く、また継承が一番エレガントな設計
>手法になりえないならば、継承は極力さけて委譲を利用します。
つーか、
そーいう事が言いたかったんだけど、どー読めた?(謎)
0288224
NGNG>立入ってるじゃないですか?
>これもimplementsする方法でも解決できないよね。
説明不足だったかな?
定数名でアクセスしてればその部分のコードは定数名と言う抽象的なインター
フェースを使ってるけど、XXXX.定数名だとXXXXの部分が実装されている場所
を示しているから実装詳細、実装依存でしょ。
>>定数の定義されているインターフェースの名前が変更されたり、
>>ほかのインターフェイスに移ったときや
>これもimplementsする方法でも解決できないよね。
implemnts XXXXのところだけ変えればすむでしょ、と言う話。
>>あるクラスだけMONDAYの値を変更したくなったらどうするの?
自分のクラスでMONDAYを再定義すればいいでしょ。
>ありますよ。ただこのケースではintereface名.定数名で使用さえ
>していれば検索など無用だということです。
そうなんだけど、だったら関数の場合(BaseClass)this.foo()を使わないのはなぜ?
ついでに言えばimport XXX.*も使わないの?
メンバ変数にアクセスするときthis.変数名とかClassName.変数名とかする?
自分のネームスペースに識別子をインポートするのは抽象化する上で重要な方法
だと思うんだけど。
0289225
NGNG>>251
には僕も同意見
僕なりに考えてみたんだけれど、定数だけのclassとかがどうしても必要
ならば
1. final public class に private static finalフィールドとして定義し、
2. public staticなアクセサメソッドを用意する。
と言うのが一番良い気がする。
これならフィールドの値を変更したとしても、使用側のclassをリコンパイル
しなくて良いと思うし。
0290225
NGNG225にあらずさんの意見に付け加えて、
「継承が一番エレガントでさえあるならば」
たとえポリモルフィズムに使用しなくとも、継承を使用するということを言いたかったのです。
0291225
NGNG224さんの意見には全く同意できません。
>定数名でアクセスしてればその部分のコードは定数名と言う抽象的なインター
>フェースを使ってるけど、XXXX.定数名だとXXXXの部分が実装されている場所
>を示しているから実装詳細、実装依存でしょ。
フィールド名が抽象的であるというのがまず謎です。
スーパークラスのフィールド名を名指しして、
その指し示す場所が動的に変更される事が有り得るのですか?
>implemnts XXXXのところだけ変えればすむでしょ、と言う話
それは僕が前から言っている「コーダーの便宜の為」ではないんですか?
まさか抽象的というのはこの事ですか??
僕が理想とするのは「可読性が高く、ひいては保守性の高いコード」
なんですが、もし224さんの目指すところが「保守性よりコーダの都合」
ならばココは理解し合えない場所かもしれませんね。
>自分のクラスでMONDAYを再定義すればいいでしょ。
それだけは勘弁して下さい。同じ名前のついてるフィールドを
クラス名の定義なしに2重管理する気ですか?
>>そうなんだけど、だったら関数の場合(BaseClass)this.foo()を使わないのはなぜ?
thisは基本的に使用しませんが、superは好んで使用します。僕のコードを後から見る
人がすぐに親クラスのメソッドを探しに行けるようにする為です。
>>ついでに言えばimport XXX.*も使わないの?
使いません、バグの原因となります。
また保守性も低下します。
>>メンバ変数にアクセスするときthis.変数名とかClassName.変数名とかする?
しません。無意味です。クラス指定されてないならば、大抵のひとはまず今読んでいる
クラスの中を捜すからです。つまりはあなたのやり方だと、読む人に「今のクラスの中
を捜す」という無駄な作業をさせる事になります。
0292224
NGNG>可読性という点でimplementsするよりはマシじゃないですか?
勝手な想像だけど、225さんは定数を変数の一種として捉えてるんじゃない?
俺は(この場合)関数の一種として捉えてるのよ。
だから重要なのは定義場所や内容でなくて名前なんだわ。
0293名無しさん@お腹いっぱい。
NGNG読み方はお好みでどうぞ。
ただ javac というのは Java Compiler を省略したものだから,
「じゃう゛ぁしー」あたりが無難なのでは。
0294225にあらず
NGNG>「継承が一番エレガントでさえあるならば」
>たとえポリモルフィズムに使用しなくとも、継承を使用するということを言い>たかったのです。
あー、なるほどねぇ…。でもどんな場合だろ…。
そーいう時って、やっぱポリモフィズムしてもおかしくない様になる気がするんだけどなぁ…。
つーか、デザインパターン用のスレ立てる?
0295225
NGNG>勝手な想像だけど、225さんは定数を変数の一種として捉えてるんじゃない?
>俺は(この場合)関数の一種として捉えてるのよ。
>だから重要なのは定義場所や内容でなくて名前なんだわ。
ごめん、理解できない。詳細キボン。
0296225
NGNG次にコメントするのは数日後になる可能性もありますので
あしからず。
0297224
NGNGだからMONDAYっちゅーのは
String getStringOfMONDAY(){
return "げつよび":
}
の省略形と捉えてるのよ。
そしてWeekStringGetableの派生クラスとして使いたいのよ。
#この辺オブジェクト指向用語に翻訳してるけど。
だからこいつが何を返してくるかはわからないけど、MONDAY
という抽象的な値が使いたいわけ。
値の内容は実装詳細だからいつ変わるかわからないし、それが
どこで定義されてるかは知りたくない。そしてそれを使うコードは
何か変更があったときになるべく影響を受けたくないわけ。
「コーダーの便宜の為」というのはおかしい。最初にコーディングす
る人間の便宜ではなく、それを保守する人間の便宜だ。
super使ったって、継承元のどこだか特定できないじゃん。
>「今のクラスの中を捜す」という無駄な作業をさせる事になります。
ローカル変数と区別するのに有用だよ。って意味。
ベースクラスで定義されてるなら(BaseClass)this.変数名だ。
あと可読性と言うのをどう考えてるの?文字通り読みやすさ?
俺はバグが入りにくいこと、変更しやすいこと、バグがあったとき
原因を特定しやすいこと、とかひっくるめてなんだけど。
0298225にあらず
NGNGうーん、実装のための継承かぁ…。
なんかアンチパターンの様な気がするんだけどなぁ…。
#実はEiffel読んだ事ない人(^^;
むぅ、明日調べてくるべし。
つーことでおいらもこの事に関しては明日回しじゃっ。
0299225にあらず
NGNGEiffel読むってなんだよ…。>自分
0300225にあらず
NGNGあー、わかったぞっ!
実装詳細に触れたくないんだったらこーすりゃいいんだ。
#なんか今更。(^^;
static final class week{
String FRIDAY ="きんよー";
・
・
・
}
public class Calender{
private final String Holiday;
・
・
・
Calender(String _Holiday){
Holiday = _Holiday;
・
・
・
}
・
・
・
}
で、Calenderのオブジェクトを生成する段階になって、
Calender Cal = new Calender(week.FRIDAY);
0301225にあらず
NGNGでもこーすりゃ実装詳細に触れないし、
224さんの目標も達成できそうなんだけどどうよ?
…基本中の基本ではあるんだが…。(大汗)
って言うか一睡もできなかった…。
0302名無しさん@お腹いっぱい。
NGNGやべっ、これじゃコンパイルエラーだ。
って事で便宜上ソース代える。
ポイントはコンストラクタを使うって事ね。
static final class week{
String FRIDAY ="きんよー";
}
public class Calender{
private final String Holiday;
Calender(String _Holiday){
Holiday = _Holiday;
}
・
・
・
}
で、Calenderのオブジェクトを生成する段階になって、
Calender Cal = new Calender(week.FRIDAY);
0303名無しさん@お腹いっぱい。
NGNG本筋から離れるかも知れんが、コンストラクタ引数がString
だと、Stringなら何でもインスタンス生成できてしまうって
ことだよね?今のはなしだと、クラス設計者が意図する引数
以外入れられないようにしとかんといかんと思うが。。。
別クラス切った方が良いかも。引数候補オブジェクトの
FlyweightパターンかPrototypeパターンかな?
0304224
NGNGこれほんとに使いたいか?
どうしても継承するのが嫌なら
class Foo{
private final String FRIDAY = Week.FRIDAY;
void HogeFunc(){
String tmp = FRIDAY;
}
}
import XXX.* はいやだけど
import XXX.YYY で列挙すればOKというのと同じ考え方。
もちろんこれにも問題がある。最初はFRIDAYの値を使っていたが、
時が経ち使わなくなったときにプライベート変数FRIDAYを削除し
なくてはならない点。
もちろんほっといてもいいのだが、使ってもいない変数がどんどん
増えていく。もちろんimport XXXX.YYYY のときも同じ問題が起きる。
0305asdddsdf
NGNG0306asdddsdf
NGNG0307asdddsdf
NGNG0308asdddsdf
NGNG0309asdddsdf
NGNG0310asdddsdf
NGNGわからないです。みささんこんにちわ、さよオナラ(あはは)
糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞糞
0311名無しさん@お腹いっぱい。
NGNG0312名無しさん@お腹いっぱい。
NGNG最小は何倍ですか?
0313225にあらず
NGNG>今のはなしだと、クラス設計者が意図する引数
>以外入れられないようにしとかんといかんと思うが。。。
そうなのかもしれませんが、
String型が選択されてること自体が便宜的なもんなんで…。
>別クラス切った方が良いかも。引数候補オブジェクトの
>FlyweightパターンかPrototypeパターンかな?
この場合はMarker Interfaceパターンが一番適切ではないかと思われます。
上記の2パターンはもう少し大きな枠組で使われるべきだと思うんですが…。
>>304
>>302のソースを見てそーいうソースを書くという事はあなたコンストラクタの役割を理解していませんね?ついでに今までの議論を見る限りポリモーフィズムについても理解されていませんね?
少なくとも、あなたがInterfaceにやらせようとしていた事はコンストラクタを使えば保守性・可読性・安定性などの点において今より優れた設計がかけるようになるはずです。
どーなんでしょう?
>>312
0倍じゃないか?(藁
0314名無しさん@お腹いっぱい。
NGNG0315224
NGNGうむ。302については俺の勘違いみたいだ。
Calenderって言うクラスがString Holydayだけを保持していて
FRIDAY とアクセスする代わりに cal.getString()とするのかと思った。
そうじゃなくて利用側のクラスのこと(俺のソースでFooにあたる)をCalender
って呼んでたわけね?
#名前から判断しろよ俺…
でもこれは余計ひどいでしょ。new Calenderする側がなんでWeek.FRIDAY
とか指定しなくちゃいけないの?
いやもっと根本的に元の文脈では"FRIDAY"の値が欲しかったんだけど、なんで
Holydayになってるの?
CalenderクラスでWeekの中の定数値がどう使われるか調べてそれぞれについて
BunkanoHi@`KenkokuKinenbi とか作るってこと?そして全部コンストラクタで
指定するの?
0316225にあらず
NGNG>224さん
>そうじゃなくて利用側のクラスのこと(俺のソースでFooにあたる)をCalender
>って呼んでたわけね?
だべ。これからは見にくいからCalenderとWeekで統一するべ。
つーことでご協力を〜〜〜〜。
>いやもっと根本的に元の文脈では"FRIDAY"の値が欲しかったんだけど、なんで
>Holydayになってるの?
あー、これは単なるミス。(汗)
てー事で、さらに訂正するわ。
コンストラクタに関しては適当だから。
public final class Week {//static宣言しない
String SUNDAY = "日曜日";
String MONDAY = "月曜日";
・
・
・
}
public class Calender{
private String SUNDAY;
private String MONDAY;
・
・
・
Calender(Week WK){
SUN = WK.SUNDAY;
MON = WK.MONDAY;
}
}
要はWeekの部分の定数とCalender部分の定数を
「同じ名前でも別の定数としてしっかり管理する」って事よ。
それで、これがあなたの
>でもこれは余計ひどいでしょ。new Calenderする側がなんでWeek.FRIDAY
>とか指定しなくちゃいけないの?
という問いの答えです。
あなたの定数Interfaceの使い方だとデバッグのためと称してCalender.MONDAYの値をWeek.MONDAYから変える事があっていいわけでしょ?そう言う事をして良いって事は結局、Calender.MONDAYとWeek.MONDAYがまったく別物「だから」でしょ。
だったらこうやってまったく別物として管理するべきじゃないの?
#とりあえず実装詳細云々の話は後回しね。
0317224
NGNGなんと言うか、304で俺が書いたソースのほうがよくないか?
なんでコンストラクタにWeekを渡すんだ?引数なしのコンストラクタで
初期化すればいいじゃない。
まあどちらにせよ304ですでにこの方法のデメリットを書いてある。
|時が経ち使わなくなったときにプライベート変数FRIDAYを削除し
|なくてはならない点。
|もちろんほっといてもいいのだが、使ってもいない変数がどんどん
|増えていく。もちろんimport XXXX.YYYY のときも同じ問題が起きる。
>だったらこうやってまったく別物として管理するべきじゃないの?
class A extends B
とあったら A.foo()とB.foo()はまったく別物だけど、いちいち再定義しないよね?
#こう書くとポリモフィズムがわかってないって言われるのか。
前にも書いたけど俺は定数ってのは一種の関数だと捉えてる。関数をベースク
ラスから継承するのが自然なように、定数をベースクラス(この場合はインタ
ーフェイスだけど)から継承して使ったっていいじゃん、何か困るのか?
と言う意見なんだわ
0318225にあらず
NGNG>初期化すればいいじゃない。
だから、コンストラクタはてきとーにしか作ってないんだっつーのっ!!
ただし、これは余談。
0319225にあらず
NGNGやっぱり考え方の違いかもしれないなぁ…。
おいらからするとクラスを設計する時ってのは
「そのクラス(またはそのインスタンス)が他のオブジェクトから予期しないような操作を受けないように設計する」
ってーのを優先するのに対して224さんのは
「そのクラスのコードの手入れのしやすさ」
っつーのが優先されてるんじゃないかなぁ・・・。とか思った。
どうよ?
0320225にあらず
NGNG0321225にあらず
NGNG>ラスから継承するのが自然なように、定数をベースクラス(この場合はインタ
>ーフェイスだけど)から継承して使ったっていいじゃん、何か困るのか?
>と言う意見なんだわ
わかった。だから、そもそも、あなたのその「関数をスーパークラスから継承するのが自然だ」って言うのがそもそも間違ってるんだっつー意見なんだわ。
>class A extends B
>とあったら A.foo()とB.foo()はまったく別物だけど、いちいち再定義しないよね?
とあるけど、それはたまたまA.foo()とB.foo()の機能が全く同じだったからでそれが違うんだったら当然オーバーライドするはずでしょ。オーバーライドしたらもうB.foo()にはfoo()ではアクセスできなくなっちまうの。よーするにB.foo()にfoo()でアクセスできたのは「たまたま」なわけ。
スーパークラスから自然に継承されるのはB.foo()の機能じゃなくてメッソドっちゅー外側に対する振る舞いだけなんだって。わかってる?
0322名無しさん@お腹いっぱい。
NGNGまぁ、最近は「メソッド」の定義が変ってきてるみたいだが…
0323名無しさん@お腹いっぱい。
NGNG>「メソッド」は継承できないだろ、ふつー。
なんて言語のはなしよ?
0324名無しさん@お腹いっぱい。
NGNG>とあったら A.foo()とB.foo()はまったく別物だけど、いちいち再定義しないよね?
要するに、
インターフェースの継承のためのその名もずばりinterfaceを、
実装の継承感覚で使ってるんだよ俺は、と言っているわけね。
0325224
NGNG間違ってるというのは主観的な基準によるものなのか?(なら好きにしてくれ)
それとも具体的に何か困るのか?(ならそれを示してくれ)
>とあるけど、それはたまたまA.foo()とB.foo()の機能が全く同じだったからでそれが違うんだ
>ったら当然オーバーライドするはずでしょ。オーバーライドしたらもうB.foo()にはfoo()では
>アクセス>できなくなっちまうの。よーするにB.foo()にfoo()でアクセスできたのは「たまた
>ま」なわけ。
だからFRIDAYでWeek.FRIDAYにアクセスできるのは「たまたま」だよ。もしCalender.FRIDAYが定
義されてたらそっちを見に行くんでしょ。
|要はWeekの部分の定数とCalender部分の定数を
|「同じ名前でも別の定数としてしっかり管理する」って事よ。
ってあなたが言うからA.foo()とB.foo()の例を持ち出したんだけど、
>スーパークラスから自然に継承されるのはB.foo()の機能じゃなくてメッソドっちゅー外側に
>対する振る舞いだけなんだって。わかってる?
なんて言われたら、
「Weekから自然に継承されるのはWeek.FRIDAYの値ではなくて定数名(FRIDAY)っちゅー外側に
対する振る舞いだけなんだって。わかってよ」
と返すしかないのだが。
0326225にあらず
NGNGオブジェクト指向と名乗ってるJavaの言語仕様に照らし合わせてっつー事よ。
あなたそのクラスを外から参照する人の事考えてクラス設計してるか?
あなたのやってる事は継承にしろ実装にしろ全部クラスの外側に剥き出しなの。
アンタの今作ってるクラスを使って他の奴がプログラムする時にあなたのクラスが予期しない動作を起こす可能性は極力減らすべきだと言ってるんの。
あんたが外側のクラスからは使われないと思って継承してきたメッソドやpublic値が他のクラスから使われてしまった時に予期しない動作が起こる可能性があるの。わかる?
>だからFRIDAYでWeek.FRIDAYにアクセスできるのは「たまたま」だよ。もしCalender.FRIDAYが定 義されてたらそっちを見に行くんでしょ。
この場合はCalender.FRYDAYを見に行くの「も」たまたまになっちゃうのよ。
CalenderのインスタンスMyCalがWeek型にキャストされたらMycal.Foo()はCalender.Foo()を見に行くけどMycal.FRYDAYはCalender.FRIDAYを見には行かないよ?Week型を継承したって事はそう言う使われ方もされ得るって事だと言いたいの。
0327224
NGNG>オブジェクト指向と名乗ってるJavaの言語仕様に照らし合わせてっ
#言語仕様にはちゃんとのっとってるぞ。
それが主観的な基準というものだ。具体的な不利益・利益だけを問題
にしている。
publicになっちゃうってのは欠点だねって認めてるんだけど。
それが問題になるなら使わなければいいし、デメリットより利点が上
なら使うだけだよ。でそれはプロジェクトによって何を重視するかが
違うんだから、一般的には議論できないって書いたよね?
>この場合はCalender.FRYDAYを見に行くの「も」たまたまにな…
publicになっちゃうから駄目ってことで、上と同じね。
0328しとりごと
NGNGメンバ関数やメッセージの「名前」を親からもらって、自分自身で
実装されていないときに親の定義が使えるのが、「継承」ってもん
だろ。)
0329名無しさん@お腹いっぱい。
NGNGこれを改造して自分だけのfont.propertiesを作って、実行時に使いたいのですが。
自分専用のマシン(そして配布とかを考えない)なら、/jre/libの中をいじっても
かまわないけど、共有のマシンでやっているので、個人レベルでなんとかしたい
です。
java -Dfont.properties=font.properties
とかってやればいいのかと思ったけどだめでした。
0330名無しさん@お腹いっぱい。
NGNGこれ↓
http://percolat.csa.iisc.ernet.in/Resources/portio/
それから、Javaでttyとやり取りする方法を教えて下さい。
コマンドライン環境をエミュレートしたいと思っています。
0332225
NGNGどうも224さんは勘違いをしている気がします。
>だからこいつが何を返してくるかはわからないけど、MONDAY
>という抽象的な値が使いたいわけ。
>値の内容は実装詳細だからいつ変わるかわからないし、それが
>どこで定義されてるかは知りたくない。
MONDAYという名のフィールドを持つinterefaceを継承しなおして
再コンパイルすれば「MONDAYの値が動的(?)に変更される」と
224さんは言いたいんですよね、たぶん。
しかしなあ、結局コードを書きなおすわけでしょ?人間が。
だったらimplemensするinterefaceを書き直すのも
A.MONDAYをB.MONDAYに書きなおすのも全く変わらないよなあ。
そもそも人間がコーディング時に親interefaceを明示しておき
ながら「知りたくない」というのも解釈が難しいね。
0333225
NGNG>俺はバグが入りにくいこと、変更しやすいこと、バグがあったとき
>原因を特定しやすいこと、とかひっくるめてなんだけど。
全くもって同感なんだけれど、無意味なimplementsをした方が
保守が難しくなると考える方が当然だと思うんだけれどなあ。
あと、
import XXX.*;
とかやる人が保守性とかについて語るのもどうかなと思うぞ^^;
0334名無しさん@お腹いっぱい。
NGNGimport XXX.YYY
だと、そのクラスが使われなくなったらきちんと削除できる?
そうしないと可読性は下がると思うけど。
>保守が難しくなると考える方が当然だと思うんだけれどなあ
思うのは勝手だけど、根拠はあるのかとしつこく聞いてるのです。
#publicになっちゃうというのはがいしゅつ
0336225
NGNG>だと、そのクラスが使われなくなったらきちんと削除できる?
それも、パッケージを丸ごと取り込んでる人が言うべき事ではないぞ^^;
あなたは不要なクラスを何十個もまとめて取り込んでおきながら、
1つ2つの余計な取り込みを気にするのですか?
かなり矛盾してないかい?
なぜimportでのワイルドカードの使用がまずいかというと
1.可読性の低下
コード中に出てくるクラス名がどのパッケージに属するのかが、コードを
読む人にはわからなくなってしまう。
2.importできるクラス数の限界
importできるクラス数には限界があるようで、それを超えると不具合が生じ
る可能性がある。むやみやたらにワイルドカードを使用した場合、その制限
を超える可能性が高くなってしまう。
3.クラス名の重複によるバグ
importした複数のパッケージに同じ名前のクラスが存在したばあい、そのクラ
スを自クラスで使用しようとしたばあい、「クラスがあいまい」になってしま
う。(パッケージ名を明示しないかぎりコンパイル不可)
さらに、自クラスのパッケージにも存在した場合にはコンパイルエラーにすら
ならず、意図したクラスとは全く別なクラスを使用する事になってしまう。
これは発見が困難なバグの原因となる。
0337225
NGNG>思うのは勝手だけど、根拠はあるのかとしつこく聞いてるのです。
1.可読性の低下
そのフィールドがどこに定義されているのかがコードを読む人には
わかりにくくなってしまう。
2.値の重複
自クラスにも同じフィールド名が存在したばあい、そちらが優先
されてしまい、意図した値が使用されなくなる。
3.不要なデータの取り込み
implementsするinterefaceにある自クラス側から使用するつもりの
無い(コーダーが意識すらしてないかもしれない)フィールドまで
取り込んでしまう。2と合わせて危険。
これらを無視して、224さんのいう動的(?)なimplementsが優先
しなければならない理由は無いと思う。
0338224
NGNG>1つ2つの余計な取り込みを気にするのですか?
import XXX.* のならそのいパッケージが使いたいと読める。
import XXX.YYY だと何か理由があってほかのクラスを使っていないと読めるので
可読性が低下すると書いた
importにはドキュメントとしての意味はないというなら別にいいが。
>1.可読性の低下
>コード中に出てくるクラス名がどのパッケージに属するのかが、コードを
>読む人にはわからなくなってしまう。
???読むときにはどの道わからないんじゃない?
調べやすいってならわかるけど。(それはデバッカーの便宜?)
>2.importできるクラス数の限界
それは知らんかった。でもそうなったら考えるとするよ。
>3.クラス名の重複によるバグ
これはよく言われることだけど、おかしい。
XXX.FooClass を使いたいのに自パッケージの FooClass をみてしまうのは
import XXX.FooClassを忘れれば同じことでしょ。
#複数パッケージの場合はコンパイルできないんだから問題ないよね?
0339224
NGNG>1.可読性の低下
>そのフィールドがどこに定義されているのかがコードを読む人には
前にも書いたけど、なんで読むときに定義されている場所を知らなく
ちゃいけないの?
デバックしてるときには便利だが、それをいったら実際にどのメソッ
ドが呼ばれているかなんてますますわからないぞ。
そのためにデバッガがあるんでしょ?
読んでるときにはどこで定義されるか知る必要ないんだって。
>2.値の重複
>されてしまい、意図した値が使用されなくなる。
意図した値がどうしてもClass.変数名じゃないとあかんのなら
Class.定数名でいいと思うが。(俺はClass.変数名をやめろといってる
わけじゃないぞ)
>3.不要なデータの取り込み
>implementsするinterefaceにある自クラス側から使用するつもりの
>無い(コーダーが意識すらしてないかもしれない)フィールドまで
>取り込んでしまう。2と合わせて危険。
2を否定したから別にいいんだよね?
0340225
NGNG>???読むときにはどの道わからないんじゃない?
>調べやすいってならわかるけど。(それはデバッカーの便宜?)
package aaa;
import bbb.*;
import ccc.*;
import ddd.*;
import eee.*;
public class Foo{
Hoge h = new Hoge();
・
・
・
}
コードを読んでる人にとってHogeクラスが未知の場合、
まずどこのパッケージから探せばよいのですか?教えて下さい。
とりあえずaaaの中から総当りで探します?
0341225
NGNG>import XXX.YYY だと何か理由があってほかのクラスを使っていないと読めるので
>可読性が低下すると書いた
使っていない理由は、それを使わないからです。(それ以外にあるのか?)
使用しないクラスを明示する必要があるのか教えて下さい。
そもそも使用しなくなったimport文は削除するのが常識なんだけれど。
0342225
NGNG>XXX.FooClass を使いたいのに自パッケージの FooClass をみてしまうのは
>import XXX.FooClassを忘れれば同じことでしょ。
そんな事すら忘れる人はimport XXX.*すら忘れるのではないか?
0343225
NGNG>デバックしてるときには便利だが、それをいったら実際にどのメソッ
>ドが呼ばれているかなんてますますわからないぞ。
>そのためにデバッガがあるんでしょ?
>読んでるときにはどこで定義されるか知る必要ないんだって。
確かにそうだ。
でも、コンパイル時に明らかに決定している「固定値」をワザワザ
どこで定義されているのかわからなくする必要性が何故あると思う
のか教えて下さい。
0344225
NGNGなってきました^^;
0345225
NGNGあるのかを教えて下さい。
再コンパイル時に、それまで使用していたinterefaceと全く同じ
フィールドを持つinterefaceを新たにimplemensしなおせば、そ
れで元通り使えるからですか?
それはA.MONDAYをB.MONDAYと書きかえるのに比べてどれほど
楽だというのですか?
そんな、コンパイル時にたった一度だけしか行わない単純作業が、
これから他の複数の人間が複数の機会に何度も読むかもしれない
コードをあえて無意味に複雑化するデメリットよりも優先されま
すか?
0346外野
NGNGJava初心者なんで素直に読んでます
import数に制限があるなんて初めて聞いたぞ
0349224
NGNGHoge h = new Hoge();
が出てきたらいちいちファイルの上の方のimportを検索するんでしょ?
同じようになにか検索機能使えばいいじゃん。だから調べやすいってのには
同意してるよ。
>使用しないクラスを明示する必要があるのか教えて下さい。
パッケージのすべての機能を利用するのか、一部だけを利用するのかを
明示しておいたほうが、読むときに楽だと思うが。
>そもそも使用しなくなったimport文は削除するのが常識なんだけれど。
それを維持するのが非常に大変なのを知ってるの?
もしかしてコーディングはしたことないのでしょうか?
>そんな事すら忘れる人はimport XXX.*すら忘れるのではないか?
JTableを使っているコードがJTableHeaderを使うようになったときにimportを
増やさなくてはいけないのは忘れがちでしょ?
>でも、コンパイル時に明らかに決定している「固定値」をワザワザ...
おいおい、コンパイル時に決定しているかどうかは関係ないだろ。
そんなこといったらメンバ変数にthis.変数名でアクセスしろってことだけど。
#高木さんも時々自分の説を正当化するためにめちゃくちゃな論理
#を使うけど、その点では似てますね。
>あと、そもそも何故それほどまでにimplementsにこだわる必要性が
>あるのかを教えて下さい。
TokyoDataBases.CUSTOMER_SERVER_NAME
OsakaDataBases.CUSTOMER_SERVER_NAME
があったときにコードの抽象度を高めるためにはクラス名を明示した
くないでしょ。
>それはA.MONDAYをB.MONDAYと書きかえるのに比べてどれほど
すべてのA.XXXをB.XXXに変えればいいのなら簡単だけど、そうとは仮定
できないでしょ。
>コードをあえて無意味に複雑化するデメリットよりも優先されま
複雑化じゃない、抽象化だ。
0350名無しさん@お腹いっぱい。
NGNG>同じようになにか検索機能使えばいいじゃん。
もう、滅茶苦茶だよ。
じゃあなにか?例えばviとかでそのコードを読んでたときは自力で全ての
パッケージの中を順番にしらみつぶしに探せといっているの?
import文で明示してあげればそんな無駄な作業は全く発生しないんだよ?
相手にそんな完璧に無駄な作業をさせておいてまで何故import文に*を使用
しなければならないのか?
どうも224さんは自分が楽をする事しか頭にないようですね。
>パッケージのすべての機能を利用するのか、一部だけを利用するのかを
>明示しておいたほうが、読むときに楽だと思うが。
あなたのことだから、多分import java.util.*;とかする事も当然あるか
と思いますが、そのパッケージ内の全てのクラスを使用するクラスを毎回
作っているとでもいうのですか?
そして、具体的にどういう場合に楽になるの???
import java.util.Vector;とか有ったら、「なぜHashtableやその他のクラス
は使用しないんだ??」とか疑問に思ったりする人がいるのか?
>それを維持するのが非常に大変なのを知ってるの?
>もしかしてコーディングはしたことないのでしょうか?
import文に*つかう人や、imterefaceの本来の目的から違ったimplementsを
使用する人に言われたく有りません。もちろん仕事でjavaは使用してます。
逆にあなたは他人のコードを保守したことがあるのですか?
>おいおい、コンパイル時に決定しているかどうかは関係ないだろ。
>そんなこといったらメンバ変数にthis.変数名でアクセスしろってことだけど。
だから、どうして明確であるフィールドの宣言場所をワザワザ無意味なimport
を用いて読みづらくする必要があるのか教えて下さいよ。
>TokyoDataBases.CUSTOMER_SERVER_NAME
>OsakaDataBases.CUSTOMER_SERVER_NAME
>があったときにコードの抽象度を高めるためにはクラス名を明示した
>くないでしょ。
だから、なんで明示しているものを抽象化しければならないのか甚だ
疑問なんだけれど。そこを詳しく教えて下さい。
コードにCUSTOMER_SERVER_NAMEとだけあるせいで、
TokyoDataBases.CUSTOMER_SERVER_NAMEと
OsakaDataBases.CUSTOMER_SERVER_NAMEをうっかり勘違いしてしまう人が
居たとしても良いわけだ?
>複雑化じゃない、抽象化だ。
なぜ明示可能なものを抽象化(ですらないけれど。import文でコンパイル時に
明示してるし)しなければならないのか教えて下さい。
0351225
NGNGしかし224さんは抽象化の意味をかなり誤解していると見た。
0352名無しさん@お腹いっぱい。
NGNG0353傍滑マ者
NGNGなんとなく厨房臭い気がするが…
0354名無しさん@お腹いっぱい。
NGNGいつのまにか225も同じレベルに降りてしまっているような気もする。
0355名無しさん@お腹いっぱい。
NGNG224さんは、誤解しているというより実装詳細という言葉に縛られすぎ
なのではと思います。
224さんへ。
定義と実装を分離して“ひとつ”のinterface定義を使いたおすことに
意味があるのに、定数という実装そのものを使って、
それが全然別のinterface間で“たまたま”名前が同じだったから
実装に依存していない、抽象性がある、というのはちがうと思いました。
少なくともJavaにはそんなことはわからないでしょうね。
例えば、私の作ったinterfaceにCUSTOMER_SERVER_NAMEって定数があったら
私と224さんのinterfaceには意図しないプログラミング上の抽象的な関係が
あるのでしょうか?あったら私が困るし(interfaceの独立性が・・・)、
でも無いと224さんが困りそうだし。
CUSTOMER_SERVER_NAMEって言葉の意味を掴んで名前をつけるのでしょうが、
それだと抽象性って言うのはネーミングセンスに依存しちゃう。
たしかに名前が同じというのもある種の抽象性といえると思います。
でもそれは、人間が見たら抽象性が感じられる、というものです。
コンパイラは「なんか違うinterfaceに同じ名前があるなあ」ということ
すら考えないと思いますよ。
ああ、そうそう、同じ名前の定数があるinterfaceを2つ
implementsしたいときはどうします?
実装詳細というなら、それこそgetCustomerNameメソッドのある
interfaceを作って、それを実装したTokyoDatabasesクラスと
OsakaDatabasesクラスを作ってinterface宣言に代入して
getCustomerNameメソッドを呼び出すべきです。
面倒だけど、それが今のJavaにもわかるレベルの抽象性です。
interfaceにできることはせいぜいプログラムレベルの話で
オブジェクト指向もプログラミングの域を出るような万能のものではないと
思います。224さんのような高度な抽象性は、少なくともjavaのinterfaceの
身に余ることでしょう。
でも、テクニックとしては定数interfaceをimplementsすることはあります。
定義する定数などが多い場合は、すべてにTokyoDatabases.とつけるよりは
implementsするほうを選ぶ場合があります。だからimplementsの部分を
書き換えるだけですべて直せるテクニックとして有用だと思います。
また、人間には抽象的に見えるということもとても意味があると思います。
コーディング規約やプログラミング論に属する内容ではないでしょうか。
(最初からそのレベルの話をされていたのならごめんなさいですが。)
考えさせられるところの多い議論でついつい長文になってしまいましたが
以上です。
勘違いがあったり話の腰を折っているようだったらすいません。
0356名無しさん@躁だ銭湯にいこう
NGNG224のいうのは抽象化ではなく、厨笑化だな。
224はプロパティー使ったほうが幸せにならんか?
0357名無しさん@お腹いっぱい。
NGNG0358名無しさん@お腹いっぱい。
NGNGやりとりをしたいのですが、うまくできません。
基礎的なところですいませんがヒントを頂けたらと
思います
import java.applet.Applet;
import java.awt.Graphics;
このクラスをapplet/
において
public class Applet0 extends Applet{
public void paint(Graphics g){
Applet1 a = new Applet1();
g.drawString(a.getData()@` 50@` 50);
}
}
でこのクラスを
applet/test/
においてます
public class Applet1{
Applet1(){
}
public String getData(){
String a = "hello";
return a;
}
}
で
cd (略)/applet
javac Applet0.java
javac -classpath test/ Applet1.java
でコンパイルして
ブラウザでApplet0を表示させたのですが、
なにも文字が表示されません
Applet1をApplet0と同じ階層においてコンパイルした
場合はうまく表示できました
0359名無しさん@お腹いっぱい。
NGNGコンパイル時にCLASSPATH指定してるのに実行時に指定してないから。
0360名無しさん@お腹いっぱい。
NGNG0361IBMの研修のテスト問題
NGNG**
* *
* *
*****
↑入力した数と底辺が同じ数になり、中が空洞(↑は5を入力)。
こんなのできる人いるの?
これが出来なくて落ちた人多いでしょ?
0362224
NGNG>パッケージの中を順番にしらみつぶしに探せといっているの?
findで一発じゃんもしくは、すべてのクラスを列挙した(lsなりdir)した
ファイルを作っておけばいいんじゃないの?(俺はfindだけど)
>import文で明示してあげればそんな無駄な作業は全く発生しないんだよ?
コンパイル時のクラスパスが複数あったら結局全部探すんだよ。
あなた本当にimport.*使わないの?
>パッケージのすべての機能を利用するのか、一部だけを利用するのかを
>明示しておいたほうが、読むときに楽だと思うが。
まあこれは忘れてくれ。俺がそう思ってるだけだ。
>>それを維持するのが非常に大変なのを知ってるの?
>もちろん仕事でjavaは使用してます。
結局それを維持するのが非常に大変なのを知ってるの?
#importについてはこれ以上やると話がややこしくなるからやめない?
>だから、どうして明確であるフィールドの宣言場所をワザワザ無意味なimport
interfaceの間違いだよね。だから変更のときに楽だから。
>だから、なんで明示しているものを抽象化しければならないのか甚だ
>疑問なんだけれど。そこを詳しく教えて下さい。
抽象化の利点は主に、変更のときにコストが減ること。
>OsakaDataBases.CUSTOMER_SERVER_NAMEをうっかり勘違いしてしまう人が
>居たとしても良いわけだ?
勘違いも何もどっちでもいいんだよ。CUSTOMER_SERVER_NAMEにアクセスし
たいのであってそれが何なのかは知らない、そういう場合に使うんだ。
そうじゃなくて何かはっきりさせたかったら明示するよ。
>なぜ明示可能なものを抽象化(ですらないけれど。import文でコンパイル時に
>明示してるし)しなければならないのか教えて下さい。
import???
0363224
NGNG>224さんは、誤解しているというより実装詳細という言葉に縛られす
imterfaceで定数を実装する方法の利点を、説明するのにこの言葉が
一番説明しやすかっただけです。
>定義と実装を分離して“ひとつ”のinterface定義を使いたおすことに
>意味があるのに、定数という実装そのものを使って、
>それが全然別のinterface間で“たまたま”名前が同じだったから
もちろん「たまたま」じゃありません。意図して名をつけるのです。
しかしこの例は悪かったかも。
TokyoDataBases.CUSTOMER_SERVER_NAMEが
PrimeDataBases.CUSTOMER_SERVER_NAMEに変わったらのほうがいいか。
>少なくともJavaにはそんなことはわからないでしょうね。
そのとおりです。コンパイラの助けは借りられないでしょう。
>例えば、私の作ったinterfaceにCUSTOMER_SERVER_NAMEって定数があったら
>私と224さんのinterfaceには意図しないプログラミング上の抽象的な関係が
>あるのでしょうか?あったら私が困るし(interfaceの独立性が・・・)、
>でも無いと224さんが困りそうだし。
別になくても困りませんよ。
>CUSTOMER_SERVER_NAMEって言葉の意味を掴んで名前をつけるのでしょうが、
>それだと抽象性って言うのはネーミングセンスに依存しちゃう。
そういう意味で抽象化という言葉を使ったのですが。なぜ言語がサ
ポートしない抽象化は駄目なの?
>ああ、そうそう、同じ名前の定数があるinterfaceを2つ
明示します。必要になったことはありませんが。
0364355です
NGNG掲出文が長文で申し訳ないですが全文お読みくださいましたか?
>言語がサポートしない抽象化は駄目なの?
後半部分に、そのような抽象化も存在し、より高度だと思うと書いてあります。
でも、これでだいぶ整理できました。
「意図して同じ名前を付けるという行為は
名づけた人の内部における抽象性の現れであり
その主な利点は変更のときにコストが減ることである」
横レス失礼しました。抽象化という深い議論だったのでついでしゃばりました。
私の意見はこれでおしまいです。
0366225
NGNG>>findで一発じゃんもしくは、すべてのクラスを列挙した(lsなりdir)した
>>ファイルを作っておけばいいんじゃないの?(俺はfindだけど)
繰り返しになるけれど、なぜ相手にそんな余計な作業をさせてまでimport文に
ワイルドカードを使う必要性があると考えるのですか?
コーディング時に一度だけプログラマが苦労するのと、今後複数の他人が複数の
機会に渡ってコードを読む時に苦労するのとでは前者の方がコストが低いと思う
のですが、それは貴方にとってはとるに足らない事なのですか?
>>コンパイル時のクラスパスが複数あったら結局全部探すんだよ。
>>あなた本当にimport.*使わないの?
探すといっても、僕の経験では多くてもimport分は2、30行くらいだよ。
その中から探すのは、全てのパッケージの中から探すよりも随分楽だよね。
あと、import文にワイルドカードを使用した事は、僕は断じて一度たり
とも無い。仕事で他人に見せる物はね。
実を言うと、一番最初に仕事でJavaを使用した時のコーディング規約が、
ワイルドカードの仕様を禁じていて、僕もその時は「めんどくさい」とか
思ってたんだけれど、他人のバグ改修とかしているうちにその正しさが
骨身にしみてわかったよ。
>>結局それを維持するのが非常に大変なのを知ってるの?
そんな事言われたって、仕事で実際にやってるんだもん。
繰り返すけれど、あなたは他人のコードを保守したりする仕事をした事はあるの
かな?
僕はそういう仕事で苦労するたびに「僕は絶対こんないいかげんなコード
は書かないぞ」と心に誓っちゃうんだけれど。
>>#importについてはこれ以上やると話がややこしくなるからやめない?
上の質問に答えて欲しいです。
貴方が間違いを見とめるか、もしくは「だって自分が楽したいんだもん」と
言うのなら止めましょう。
0367225
NGNG>>interfaceの間違いだよね。だから変更のときに楽だから。
なるほど、楽なのですか。でも、interface名.フィールド名
がコードを読む人にとって楽であることも貴方は見とめてま
したよね。
じゃあ、どちらがより重要でしょう?
コーディングする時だけ楽なのと、コーディングの後で他人が
読むときに何度も楽できるのと。
>>抽象化の利点は主に、変更のときにコストが減ること。
この場合のコストってさ、implementsするinterface名を変更
する事が、複数のinterface名.フィールド名の名を変更する
事よりも楽だって事だよね。
でもさ、まず第一にinterface名をそんなに頻繁に変えるなんて
事が現実にあるのかな?もちろんタマには変えるけれどさ、その時に
A.MONDAYをB.MONDAYに変えるのってそんなに大変な事なのかな?
例えばWindowsに標準でついているメモ帳ですら文字列の検索機能は
付いているよね。その時に"A."で検索してあげれば良いと思うよ。
コーダーがそうやって一度だけ検索してあげたらさ、今後他の人が
この定数の値はどこで定義されてるんだ?って検索する必要がなくな
るんだしね。
その一方で、フィールドのみ定義したinterfaceをimplementsしてる
クラスを保守した事は何回かあるんだけれど(正に今も)、
僕がそれで苦労した事は沢山経験があるわけで、貴方の言うメリット
が僕の言うデメリットより頻繁に発生する事例だとは到底思えないんだ
よね。
0368225
NGNG>>勘違いも何もどっちでもいいんだよ。CUSTOMER_SERVER_NAMEにアクセスし
>>たいのであってそれが何なのかは知らない、そういう場合に使うんだ。
public class Hoge implements TokyoDataBases{
public String getCustomerServerName(){
return CUSTOMER_SERVER_NAME;
}
}
貴方の例を使用するけれど、良く考えてみて。
この場合、CUSTOMER_SERVER_NAMEは明らかにTokyoDataBaseのフィールドを
指してるよね。コーダーも当然それを認識しているわけだよね。
明示しているのに抽象化というのはおかしくないかな?
抽象化というのはさ、コードを書きなおしたりしなくても汎用的につかえる
時にこそメリットを発揮するものではないのかな?
だって書きなおすんだったら別に抽象化してなくたって良いわけじゃない?
0369225
NGNG0370225にあらず
NGNGなんか225さんの言う事がいちいちもっとも過ぎて
口はさめないっす。うげげ。
という事で224さんも225さんとの議論に終始きぼん。
#かなり厨房だな、俺も…。
0371名無しさん@お腹いっぱい。
NGNG0372名無しさん@お腹いっぱい。
NGNG理想と現実な感じ
224はばけつでどばどばするタイプなのか?(古
0373名無しさん@お腹いっぱい。
NGNGそれほどでもないでしょう。
せいぜい、まともといびつ、
って程度の違い。
いびつなのはもち偶数の方ね。
0374224
NGNG>ワイルドカードを使う必要性があると考えるのですか?
相手にとってそんな余計な作業と考えていないから。
>>コンパイル時のクラスパスが複数あったら結局全部探すんだよ。
についてはどう思うの?
>コーディング時に一度だけプログラマが苦労するのと、今後複数の他人が複数の
>機会に渡ってコードを読む時に苦労するのとでは前者の方がコストが低いと思う
>のですが、それは貴方にとってはとるに足らない事なのですか?
要らなくなったimportを削除しないなら(少なくとも強制しないなら)あなたの
言う通りだ。
でも俺はimportしてたのが要らなくなったら削除したいから、頻繁に
使うクラスが変わるパッケージは*で、そうでないやつはXXX.YYYを使うのよ。
>>結局それを維持するのが非常に大変なのを知ってるの?
>そんな事言われたって、仕事で実際にやってるんだもん。
大変だよね。これは十分に使わない理由になると思うぞ。
>繰り返すけれど、あなたは他人のコードを保守したりする仕事をした事はあるの
最近はほとんど保守だよ。ほとんど毎日変更。だから変更のコストを押さ
えるのは重要なことなんだよ。
>貴方が間違いを見とめるか、もしくは「だって自分が楽したいんだもん」と
自分が楽したいのではない。プロジェクト全体で楽したいのだ。
あなたのプロジェクトでは、import.*は禁止なのは良く分かった。その点で「どん
なプロジェクトでもimport *に利点がある」と読める表現をしたのは間違いだった。
でもそれはプロジェクト依存だ。変更容易性より厳密性が重視されているとかプロ
ジェクトに関わる人間が非常に多いかとか。
ちなみにimplementsのほうは最初から「どんな場合でも使うべき」とはいってないぞ。
0375224
NGNG>がコードを読む人にとって楽であることも貴方は見とめてま
いつ認めたの?
楽になるのは読むときじゃなくてそれが実際に何を示してい
るのか知りたいとき(大体デバック時でしょう)だよ
>この場合のコストってさ、implementsするinterface名を変更
>...
>この定数の値はどこで定義されてるんだ?って検索する必要がなくな
だから全てのA.XXXXをB.XXXXに替えれば済むなら問題ないと前にも
書いたじゃない。問題はA.MONDAYのみB.MONDAYに変わるとかコードの中で
"デフォルトの"CUSTOMER_SERVER_NAMEにアクセスしてる部分と
TokyoDatabases.CUSTOMER_SERVER_NAMEにアクセスしてる部分が混在してる
ときなのよ。
>その一方で、フィールドのみ定義したinterfaceをimplementsしてる
>...
>が僕の言うデメリットより頻繁に発生する事例だとは到底思えないんだ
逆に俺はメリットを感じた経験が多くあるのよ。
>public class Hoge implements TokyoDataBases{
> public String getCustomerServerName(){
> return CUSTOMER_SERVER_NAME;
> }
>}
この場合はTokyoDataBase.CUSTOMER_SERVER_NAMEって書くぞ。そうじゃなくて
public XXX getCustomerByID( int id ){
openDatabae( CUSTOMER_SERVER_NAME );
...
}
みたいなときに使うんだよ。
0376名無しさん@躁だ銭湯にいこう
NGNG>この場合はTokyoDataBase.CUSTOMER_SERVER_NAMEって書くぞ。そうじゃなくて
>public XXX getCustomerByID( int id ){
> openDatabae( CUSTOMER_SERVER_NAME );
> ...
>}
>みたいなときに使うんだよ。
やっぱ、プロパティーで十分じゃん。
0377224
NGNG>書いたじゃない。
訂正。やっぱ少しでもソースコードを変更するのは恐い。変更箇所が少な
いほうが、バグの入り込む余地は少ないと思う。
さらにベースクラスでimplementsしている場合なら派生クラスはリコンパ
イルだけで済む。
0378名無しさん@お腹いっぱい。
NGNG>についてはどう思うの?
「全部探す」というのが少しだけ解らないけれど、
とりあえず、コード読んでるうちに未知なクラス名が出てきたら、
確かにそれを探すよね。
IDEとか使ってる人とかは、さらっとクラスの検索機能を使っちゃ
うんだろうけれど、そういうツールを使ってない人や、使ってたと
しても幾つも候補が上がってしまってよく解らない場合には次に
import文を見に行じゃない? そんな時に
import xxx.xxx.Yaa;
import yyy.yyy.Foo;
import zzz.zzz.Hoge;
とか書いてあれば、「ああ、Hogeはzzz.zzz配下にあるんだな」と
即座にHogeクラスの調査に掛かれるけれど、
import xxx.xxx.*;
import yyy.yyy.*;
import zzz.zzz.*;
と書いてあれば、「Hogeの調査の前にHogeの有りかをまず探す」と
いう余計なステップが入るんだよね。
それでも224さんだったらサラッと探せちゃうのかもしれないし、
それ専用に簡単なツールを作るのも厭わないのかもしれないけれど、
僕が見たところでは、そうでない人のほうが多いような気がする。
JavaHouseとか他者のグループを見ててもimportはフルパスで書かれて
た方が好まれる傾向にあるみたいだし、実際に僕の同僚達も怠け者ばか
りだからね。
だから、もしも224さんの周りで*の方が好まれてるとしたら、それは特別に
凄い集団なのかもしれないよ。
確かに僕みたいに全部フルパスっていうのは逆に極端なのかもしれないから
取りあえずjava.utilみたいな、広く用いられているパッケージとか、
またはimport文が一つしか無いようなコードだったら*を使う事も考えて
みようかなとも感じてます。
0379255
NGNG>>要らなくなったimportを削除しないなら(少なくとも強制しないなら)あなたの
>>言う通りだ。
>>でも俺はimportしてたのが要らなくなったら削除したいから、頻繁に
>>使うクラスが変わるパッケージは*で、そうでないやつはXXX.YYYを使うのよ。
確かにうっかりimport文を付け忘れたり、消し忘れたりする事はありがちかも知れ
ないね。だから、自分が書いているコードのimport文に*を使うのは確かに有効な
手段かも。
それと同時に、importをフルパスで書いてあげると読みやすいのも又事実で、
特にプロジェクト独自の普通の人には知られてないようなパッケージとかだと
その有難味は大きく増すよね。
だから、コードの変更が少なくなって来る時を見計らってimport文を見やすく修正
してあげれば、他人にも見やすくなって一番良いと思いました。
0380255
NGNG実を言うと、崩壊しちゃったプロジェクトとかにも僕は参加した事が
あるんですよね。僕が参加したせいで崩壊しちゃったとは思いたく
無いですけれど。
で、崩壊した後で「何故崩壊しちゃったのか」について僕なりに色々
考えてみたんですけれど、その中の一つに「とりあえず動けばいい」
というキーワードが浮かんだんです。
綺麗なコード書くのに時間掛けるなら、汚くても良いから動くものを
つくれって事だよね。
でも、少し前に読んだ本に良い事が書いてあった。マネージャーに対
して「遅いように見えても、美しいコードを書くのが実は一番早いん
ですよ」(たしかこんな感じ)と言ってやりなさいと書いてあったん
です。
僕は結構本とかに影響されやすい人だからかも知れないけれども、
import文に*を使わない事とか、定数のみのinterfaceをimplementし
ているクラスを見つけたら直接interface名.フィールド名を指すよう
に変更しちゃう事は、じつは面倒なように見えるけれど、トータルと
して考えればそれが一番最速な手段であり、楽をできる手段ではない
かと考えるわけです。
0381名無しさん@お腹いっぱい。
NGNG0382255
NGNG>TokyoDatabases.CUSTOMER_SERVER_NAMEにアクセスしてる部分が混在してる
>ときなのよ。
例えばこういう場合はどうするのかな?
複数つかっている定数のうち、その幾つかを別なinterfaceなりclassなりに
変える事って、多分interface名を変える事以上に発生しやすい事だと思うんですよ。
結果として、例えばコンな感じなんだけれど
public class BaseBall extends Sports implements Player@` Stadium@` Rule{
public void playBall(){
System.out.println(XXX + "さんこんにちは");
System.out.println(YYY + "球場にようこそ");
System.out.println(ZZZ + "を守って楽しみましょう");
}
}
こんな時は
public class BaseBall extends Sports{
public void playBall(){
System.out.println(Player.XXX + "さんこんにちは");
System.out.println(Stadium.YYY + "球場にようこそ");
System.out.println(Rule.ZZZ + "を守って楽しみましょう");
}
}
のほうがスっきりしてて良いと思うけれど
こういう場合は(複数implemetsする必要が出てくる場合)
224さんはどうするのでしょう?
0383225
NGNG0384224
NGNGこの場合はコンパイルできないんだからありえないよね。
>「全部探す」というのが少しだけ解らないけれど、
クラスパスが/opt/javaと/homeだとしてimport XXX.YYYとあったら
/opt/java/XXX/YYY.javaと/home/XXX/YYY.javaを探さないといけないでしょ?
俺はこのときのために結局find(正確にはfindを使うスクリプト)を使って
るんだけど、だったらクラス名を指定しても変わらない。
#findは標準のツールだよ。Windowsならエクスプローラーの検索とか
>僕が見たところでは、そうでない人のほうが多いような気がする。
確かにこれは気づかなかった。findを知らない人やコードを見るのに
viや(viマスターってのもいるんだろうけど)そのほかへぼいエディタ
で読む人もいるのかもしれない。
#ちなみに俺のEmacsはF11キーで先のスクリプトを呼び出して自動的に
#そのファイルを開く
そういう人たちと仕事をしなくちゃいけなくなったらいろいろ制限が
かかるのだろう。
>System.out.println(Player.XXX + "さんこんにちは");
>System.out.println(Stadium.YYY + "球場にようこそ");
>System.out.println(Rule.ZZZ + "を守って楽しみましょう");
System.out.println(YB_TANISHIGE + "さんこんにちは");
System.out.println(STADIUM_YOKOHAMA + "球場にようこそ");
System.out.println(DONOT_THROW_CAN + "を守って楽しみましょう");
のほうがすっきりしてると思う。要は定数名のつけ方で、定数名だけでは
曖昧になる場合それの属するクラスを明記することによって曖昧さを取り
除く。
だから最初からこういう使い方を想定しないで定数名をつけているのなら
ClassName.定数名のほうがわかりやすいだろう。
#ついでに言っておくとfind grepを使えばその定数がどこで定義されてい
#るかは一発で見つかる。特にTagsファイルを作ってないときやIDEがない
#時とかには有効だ。
0385224
NGNG訂正。ありうるね。多分こういう場合にはXXX.YYYを使うと思う。
03862年目PG
NGNGjdk1.1.8で開発しています。jdk1.2.*は都合で使えない状況下にあります。
たとえば、ブラウザから要求があり、その内容によって、サーバー側であらかじめ用意されている
画像(JPEG)に対し、たとえば文字や別の画像を合成、新たにJPEGを生成し、ブラウザに返すようなものを考えています。
Java2Dなるものを使えば可能なようでしたが、Java2でなければいけないようです。
SUNのWebSiteにこうした画像処理をするためのライブラリがあったのですが、
私用しているOS環境(MacOS X Server使ってます。これも都合で他のOSへ
切り替えることができません...)で実験した結果、どうもエラーが出てしまいます。
この他に画像処理を扱うライブラリはありますでしょうか。ご存知の方がおられましたら教えていただけるとありがたいです。
(オープンソースのものですと助かります)
長々とすいませんでした。
0387名無しさん@お腹いっぱい。
NGNG例外発生:使おうとすると、ClassNotFoundException。
そこで、
解決方法1: % jar xvf hoge.jarで解凍(?)して使う。
解決方法2:CLASSPATHに<mypath>/hoge.jarと完全指定する。
で解決するのはいいけど、CLASSPATHを通してるところに*.jarを放り込むだけで
使えるようにはできないもんですなんですか?一般ユーザなので、<jdk>/jre/lib/ext
なんてところにはインストールできないです。
0388ほんとかな?
NGNGできません。
CLASSPATHはjarを直指定しなければ駄目。
そのかわりjarがディレクトリ構造を固めてあったら、その
ルートにCLASSPATHとおしたのと同じになるんじゃないかな?
だから、なんかライブラリ作ったらその都度そのjarに追加
すりゃ良い。zipも可。
0389名無しさん@お腹いっぱい。
NGNGとあるstaticメソッド内部で、幾つかの変数の値をif文で決定して
使用していたのですが、メソッド本来の目的とは関連のないif文を
わずらわしく感じて
private static class Hoge{
int x@` y@` z;
Hoge(XXX){
if(XXX){
x = XXX;
y = XXX;
z = XXX;
}else{
x = XXX;
y = XXX;
z = XXX;
}
}
みたいなinner classを作っておいて、あとは
Hoge h = new Hoge(XXX);
x = h.getX();
という感じでif文の代わりにして見ました。
でも、配列とかベクタとかを返すprivate static なメソッドで
やった方が良いのだろうか?
前に参加したプロジェクトは何故かinner class禁止だったし。
static inner classとかは他人のコードで見たことすら無い。
0390名無しさん@お腹いっぱい。
NGNGクラスローダ自作すれば良いらしい
(でも自分で作ったこと無いスマン)
tomcatがまさにそんなことやってるね。
0391名無しさん@お腹いっぱい。
NGNG↓みたいにアプリケーションから実装したいクラスが、
条件によって変わって来る場合、使うってのはありなのでしょうか?
使い方のサンプルとか、どういうときに使うか教えて頂ければ
と思います
class app {
public static void main(String args[]){
Aisatu a = hantei(args[0]);
a.print();
}
static Aisatu hantei(String s){
if (s.equals("Asa")){
return(new Asa());
} else if (s.equals("Hiru")) {
return(new Hiru());
}
else {
return (new Itsuyanenn());
}
}
}
interface Aisatu {
public void print();
}
class Asa implements Aisatu {
public void print(){
System.out.println("ottuha-!");
}
}
class Hiru implements Aisatu {
public void print(){
System.out.println("konchiwa!");
}
}
class Itsuyanenn implements Aisatu {
public void print(){
System.out.println("Itsuyanen");
}
}
0392名無しさん@お腹いっぱい。
NGNG私はこれまでC++をやっていたのですが、Javaをすることになって
さっそくJDK1.3をDLしてきてインストールしたのですが、
その過程で、PATHの設定というのはできたと思うのですが、CLASSPATH変数の
更新というのが具体的にどうするのか良く分かりません。
そのため、それをしないでHELLO WORLDを書いて実行してみたところ、
コンパイルはできるのですが、いざ実行しようとすると
F:\jdk1.3\Programs>java Example1
Exception in thread "main" java.lang.NoClassDefFoundError: Example1
このようにエラーが出ます。単純な打ち間違いは無いと思うのですが、
どうすればいいのでしょうか?
なにしろ、独習JAVAの最初の最初でして、手も足も出ません・・・。
0393名無しさん@お腹いっぱい。
NGNGとりあえず
>java -cp . Example1
でもやってみて。
CLASSPATHの設定は
Win9xならautoexec.batに 「set CLASSPATH=.」 を追加。
NT/2Kならコンパネの[システム]-[環境変数]で
CLASSPATHを追加、値を . に。
ところでC++をどのくらいやっていたのか聞いてもいいですか?
とか言ってみたり。
0394名無しさん@お腹いっぱい。
NGNG>ところでC++をどのくらいやっていたのか聞いてもいいですか?
たぶん「答え」はあなたの想像どおりだと思う。(ヲ
0395392
NGNGなぜに〜?インストールガイドにはデフォルトで.になってるって書いてるのに・・・。
それでWin2Kですので環境変数にCLASSPASSを追加したのですが、
その後java Example1とやっても同じエラーが出ます・・・。???
他になにかしておくべきことがあるのでしょうか?
あ、C++の方は察しのとおり別にがりがりやってたわけではなくて
趣味みたいなもんです。なぜかフリーウェア公開してたりするんですが。
0397392
NGNGああ、その点は単にこっち側だけのうっかりミスでした。
環境変数の方はTHに。ただ、ユーザ環境変数の方には新規に登録したのですが、
システム環境変数の方にはすでに、%QTjava%なるものがあったため特に手を
つけなかったのですが、こちら側も;で区切ってつけたしてしまうのでしょうか?
0398名無しさん@お腹いっぱい。
NGNGそれ、実際にプロンプトからecho %CLASSPATH%してみて確認した??
0399392
NGNG原因が分かりました!!
というのも、翔泳社のHPを念のためチェックしに行ったところ、
よくある質問として、
Q.コンパイルしてクラスファイルの生成まではできるのですが、実行しようとすると、
「Exception in thread "main"java.lang.NoClass DefFoundError:Example1」
というエラーが表示されます。
A.CLASSPATHステートメントがあると、Javaの実行時に不具合が発生することがあります。
次のように行頭にREMを追加してコメントアウトしてください。
REM SET CLASSPATH=C:\Progra~1\LIB\CLASS.ZIP
というQ&Aがありました。意味はよく分かりませんがこれを実行すると
みごとに解決しました。なお、あらかじめ付け足したCLASSPATHは消しておきました。
まあ、出版社のHPをチェックするというのは基本でしたね。すいません。
しかし、こんなことSUNのHPのインストールガイドには書いてなかったなあ。
翔泳社様々といったところです。
このコマンドの意味分かります?
0400392
NGNG0401393
NGNG自分で書いてるが。
>REMを追加してコメントアウトしてください
SET CLASSPATH=%QTJava%;.
にしないとQuickTimeが動かなくなると思う。
それ以前にそれはどこでどう実行したんだ?
もしやautoexec.bat?
0402392
NGNG0403392
NGNGそもそもこれはどこのファイルのどの行をコメントアウトしたんだろう??
ただ、正常になったから文句はないんだけど・・・。不思議だ。
0404392
NGNGどうしてあの時は通ったんだ???
ますます不可解だ。どうすればいいんだろう?
0405393
NGNG誰か解説きぼん・・・
環境変数は、システム環境変数->ユーザ環境変数の順に設定されるため、
同じ名前の環境変数がある場合にはユーザ環境変数で書き換えられる、はずだ。
何か自信なくなってきたが。
一番手っ取り早いのはシステム環境変数のCLASSPATHの最後に
;.
を付け足すこと。
0406393
NGNGそしてユーザ環境変数のCLASSPATH は %CLASSPATH% としてくれ。
0407392
NGNGやはりそれだけで良かったみたいです。
う〜ん、翔泳社・・・。食わせ物だ・・・。
何はともあれ、おそらくこれで解決したと思います。
ありがとうございました!!!
(本当に本当かな?ちょい不安)
0408398
NGNG>次のように行頭にREMを追加してコメントアウトしてください。
>REM SET CLASSPATH=C:\Progra~1\LIB\CLASS.ZIP
これ解説になってないなぁ。昔class.zipに含まれていたクラスはJava1.1以降は
環境変数CLASSPATHの記述にかかわらず検索されるから、環境変数CLASSPATHに
含めちゃうと複数のバージョンが存在するときにはまるって定番パターンを避けるため
のものだよね。だから必ずしもCLASSPATHを設定してはいけないわけではない。
で、java -cp オプションは環境変数CLASSPATHを上書きするから、-cp .を
指定すると、結果として実際のjava.class.pathにはJavaAPIとカレントディレクトリ
を合わせたものになる。当初、392の環境でjava -cp . で実行できるように
なったということは、どこかで環境変数CLASSPATHが妙な形で設定されて
いたんだろうな。で、こういう設定を繰り返すときには、なにか変えたら
echo %CLASSPATH%していちいち確認していくことが結局は近道なんだけど
392に理解してもらえてたのだろうか...
0409398
NGNG「昔class.zipに含まれていたクラスはJava1.1以降は環境変数CLASSPATHの記述にかかわらず
検索されるから、環境変数CLASSPATHに含める必要はない。むしろ含めちゃうと複数の
バージョンが存在するときにはまる。だからコメントアウトしているのは読者の環境
が想定できないのでJavaAPIとカレントディレクトリしか使わない最低限の実行環境を作るためだよね。」
だね。で、392の失敗は、
http://java-house.etl.go.jp/ml/archive/j-h-b/021880.html#body
の「ありがちな失敗」に見事に解説されているのではないだろうか。
ってecho %CLASSPATH%してみないと実際のとこはわかんないけどね。
0410名無しさん@お腹いっぱい。
NGNG>Java1.1以降は環境変数CLASSPATHの記述にかかわらず
JDK1.2以降ね。
>echo %CLASSPATH%してみないと実際のとこはわかんないけどね
完全じゃないね。ま、やらんよりはマシか。
0412名無しさん@お腹いっぱい。
NGNGimport java.awt.event.*;
import javax.swing.*;
class FrameTest extends JFrame {
public static void main(String args[]){
new FrameTest();
}
FrameTest() {
getContentPane().add( new PaintTest() );
setSize( 300@` 300 );
setVisible( true );
}
}
class PaintTest extends JComponent implements KeyListener {
PaintTest() {
addKeyListener( this );
}
public void paintComponent( Graphics g ) {
g.drawString( "2ch"@` 100@` 100 );
}
public void keyPressed( KeyEvent ke ) {
System.out.println( "pressed" );
}
public void keyReleased( KeyEvent ke ) {
System.out.println( "released" );
}
public void keyTyped( KeyEvent ke ) {
System.out.println( "typed" );
}
}
JComponentを継承したPaintTestクラス内でKeyListenerが使いたいけどうまくいきません。
FrameTestクラスでimplements KeyListener...と書くとできるけど、PaintTestクラスでやりたい.
JComponentをJPanelにしても同様の結果です。できません。
0413千宇房
NGNG0414名無しさん@お腹いっぱい。
NGNGとりあえず下記参照。
http://www02.so-net.ne.jp/~kawasaky/jtojs/jtojs.html
ネスケが対象の話だけどIEも一応互換性のために
netscape.javascript.JSObjectクラスはあるみたいです。
ただどこまで互換性が有るかはやってみなけりゃわからない。
基本的に下記のようにすれば何でも呼び出せるよ。
netscape.javascript.JSObject.eval("ジャバスクリプト");
0415名無しさん@お腹いっぱい。
NGNGごめん嘘付いた
netscape.javascript.JSObject.getWindow(applet).eval("ジャバスクリプト");
ね。
で上記のappletは呼び出し元のAppletオブジェクト。
で、getWindwowでジャバスクリプトのアプレットのおかれたウィンドウオブジェクトを取得するわけ。
0416名無しさん@お腹いっぱい。
NGNG>>Java1.1以降は環境変数CLASSPATHの記述にかかわらず
>JDK1.2以降ね。
ちがうね。JavaAPIの探索がCLASSPATHの記述に係わらないのは確かにJava1.1からだよ。
ただし、java.exeのコマンドラインからの明示的なクラスパスの指定で上書きされる。
Java2から変わったのはこのコマンドラインでのクラスパスによっても上書き
されず、かならずJavaAPIは探索されるということ。あ、あとlib/extにある
クラスファイルの探索も追加されたか。
0417セクース大好き
NGNGぼうや、そんなこと10秒で結果がでるんだよ。
JDK1.1.?で、java -classpath . なんでもいいよなー
ってうってみろや。
日本はもうおしまいだな、べつにオレはいいけどよ。(ぷ
0418416
NGNG[d:/javalib/src]%c:/java11/bin/java -classpath . sample
Unable to initialize threads: cannot find class java/lang/Thread
-classpath . で上書きされるからJavaAPIは実行できないんだよ。5秒
[d:/javalib/src]%CLASSPATH=. c:/java11/bin/java sample
Hello World!
CLASSPATHに . しか指定してないがJavaAPIを実行できる。10秒。
確かに日本は終わりだな。
終了
0419名無しさん@お腹いっぱい。
NGNGおれの負けだ。すまそ。ズラとるからゆるしてくれよ。
0420名無しさん@お腹いっぱい。
NGNGWindows版ってちゃんと動きます?
C:>java
Error occurred during initialization of VM
java/lang/ClassNotFoundException: sun/io/ByteToCharMS932
C:>
って怒られるわ、
(ライブラリ覗いてもsun\io\ByteToCharMS932.classなんぞ見つからん)
コントロールパネルのDUKEは何もせずに終了するわ、
Mozilla nightlyのディレクトリにプラグイン入れてくれたのはいいけど
そのせいでMozillaが立ちあがらなくなるわ、散々なんですけども。
0421420
NGNGなんかMSのjava.exe起動してました。初歩的ミスやなあ。てへへ。
残りの2つは分からん。どうなってるんだろう。
0422質問君ミレニアム
NGNGヘルプファイルがHTML形式になっていて、ヘルプを起動すると
http://localhost:49213/cgi-bin/vahw〜を参照しています。
が、開けません。
localhost→127.0.0.1の名前解決はできてるんですが、ポート
49213が開いていない模様です。関連ページはほぼ調べたんです
が。
0423名無しさん@お腹いっぱい。
NGNGVAJにICSのサブセットが付いてきますが、それは起動されている状態ですか?
実行ファイル名はhttpdl.exeだったと思うけど。
0424質問君ミレニアム
NGNGなるほど、IBM独自のHTTPサーバーの設定周りを調べれば
いいんですね。
まだ、Internal Server Errorですけど、どうにかなりそ
うです。ありがとうございました。
PS 説明があまりに雑だよ。あんまりだよ。>IBM
0425423
NGNGいや、本当はインストールするだけでいいはずなので説明はいらないんです。
ただ、どうかすると起動してくれないんですよね。VAC++のヘルプシステム
と共有なので、VAC++のヘルプメニューから起動すると動いたり、挙動が
よくわからんです。
0426Javasyoniti
NGNGKuku.java:16: 型がありません。
System.out.println("");
^
0427Java初日
NGNGD:\Java\レッスン\list3-7>javac Kuku.java
Kuku.java:16: 型がありません。
System.out.println("");
^
こんなエラーが出て、前に進めません。誰か助けて下さい!
0428Java初日
NGNG0429名無しさん@お腹いっぱい。
NGNGjava.lang.ClassLoaderとか
java.security.PermissionDomainとか
この辺を使って証明書付きクラスの動的ローディングとか
について説明の載ってるWebページ知りませんか?
JDK1.2っす。
0430名無しさん@お腹いっぱい。
NGNG小さなプログラム(&著作権上の問題がないの)なら全文を掲載してください。
| Kuku.java:16: 型がありません。
だけでは実際に何が原因なのかわかりません。
0431名無しさん@お腹いっぱい。
NGNG前の行の最後のセミコロンが抜けてるか、括弧の閉じ過ぎでしょう。
前のほうをもっとよくみるべし。
0432Java初日
NGNGどうもありがとうございました。
確かに前の行のセミコロンが抜けていました。
私はVBのIDEに慣れすぎたせいか、エラーが多くて情けないです。しかも
くだないエラー。メモ帳でソースを書くのはシビアですね。
0433名無しさん@お腹いっぱい。
NGNG一つのオブジェクトを同時に複数のTimerで操作する時にも、
Threadを用いたときのように、同期をとる必要がありますか?
ある場合その方法は、Threadの時と同じ方法(synchronized)ですか?
0434名無しさん@お腹いっぱい。
NGNG↑の問題については、解決しました。
0435名無しさん@お腹いっぱい。
NGNG本とかのサンプルはインターネットのアドレスみたいに
jp.org.xxx.xxx.xxx
って感じでつけてるのが多いんだけど?
それと僕はソースファイルの管理が下手みたいで、
気が付くとフォルダーの中にバージョンとか内容が不明な
ファイルがごろごろしています
ソースファイルの管理のコツとか気を付けてることがあったら
御教授願います
0436名無しさん@お腹いっぱい。
NGNG>jp.org.xxx.xxx.xxx
>って感じでつけてるのが多いんだけど?
多いというかそう決まっています。もしそのような識別子を用意できない人のために
http://www.java-conf.gr.jp/wg_bof/package/
では世界でただ一つのパッケージ名を提供するサービスを行っています。
>ソースファイルの管理のコツとか気を付けてることがあったら
>御教授願います
なんでもいいから方針を決めて、例外を認めずそれに従う。例えば、
「バージョン番号や枝番の付け方」とか「ソースのアーカイブの作り方」
とか「バージョンを記録するファイルを作ってソース中のコメントを
抽出してまとめておくやりかた」とか「ディレクトリツリーの構造」とか。
で、次はmakeやdiffやgrepやCVSなどで先に定めた方針を楽に行えるような環境を整える。
このような環境がそろえられないと実行が難しい方針はあきらめる。楽をした
い場合はバージョン管理機構を備えた統合環境を使うというのも手。うちではJDK
を使わないプロジェクトにはVisualAge for Java3.02を使ってます。3.5はこのスレ
の上の方でめためたにけなしていたようなきがするがよくわからん。いちお、あるけど。
0437千宇房
NGNG0438名無しさん@お腹いっぱい。
NGNGありがとうございました!
早速パッケージ登録してきました
ソースコードの管理はとりあえず以下の方法でやってみます。
他に気を付けるべき点とかありますか?
多分このあたりのノウハウはネットにありそうなんで探してみます
ソースコードの旧バージョンのファイルにバージョンを付ける
(例 現在使ってるファイル - aaaa.java
世代前のファイル aaaa_ver1_0.java
名前の規則は クラス名_メジャー番号_マイナー番号.java)
ソースを置くディレクトリは、パッケージと同じディレクトリに
例外として
テスト用のディレクトリにtest
後で参照用に使いたいソース用にsample
を使用する
0439>>438
NGNGバージョン番号ムキになってつける必要もないよ。
Javaのファイル名は(publicな)クラス名と同一でないといけないから
ちょっと昔のバージョンでコンパイルしたくなったときにも
コピーやらリネームやら面倒でない?
0440名無しさん@お腹いっぱい。
NGNGやっぱり文明の利器は利用すべきなんですね
といてもIDEは重いし・・
0441436
NGNGCVSとかIDEじゃないバージョン管理ソフトありますよ。
http://piza.2ch.net/test/read.cgi?imode=true&key=972745920&bbs=tech
これだとWinCVSになっちゃうけど、Linuxとかだと
標準で入っているのが普通。
0442名無しさん@お腹いっぱい。
NGNGLinux(TLWS6.0)です。
しかし・・難しそうですね
時間があるときにトライしてみます
0443田中角栄
NGNG0444名無しさん@お腹いっぱい。
NGNG基本文法を押さえているのなら、次はちょっと古いけど、
Javaプログラムクイックリファレンス: David Flanagan@` オライリージャパン
かなぁ。
Javaプログラムデザイン: 戸松豊和@` ソフトバンク
も読み物的に読むのは面白かったですね。
0445age
NGNG0446名無しさん@お腹いっぱい。
NGNGメールの保存をDBにするかXMLにするか、ファイルにしてフォルダに保存にするか
悩んでいます。
コーディングの楽さは
DB>XML
構築の楽さは
XML>DB
速度的には??
規模的には、おいおいグループウエア的にマルチユーザーで使えるものを
作りたいとおもってます
0448名無しさん@お腹いっぱい。
NGNGどちらかと言うと自分の勉強のために作るって感じです。
イメージとしては個人グループでつかう、
dosule見たいなものを目指してます。
クライアントのインターフェースは、ブラウザ。
HTMLかアプレットで書こうと思います。
クライアントのOSはブラウザが動くもの、
もしくはJava2の動く環境。
WebアプリケーションサーバはJRUN3.0
DBは未定です。
0449名無しさん@お腹いっぱい。
NGNGあんま深く考えてないのでアレなんですが、
勉強目的ならXMLが妥当でわ?
とにかくメールデータはサーバ側に持たせるってことですよね。
あとどうでも良いんだけど、
>クライアントのOSはブラウザが動くもの、
>もしくはJava2の動く環境。
これって「どっちかの環境をターゲットとして作る」って意味?
それとも「どっちかの環境があれば動くように作る」って意味?
後者だったら何かヘンだなと思いました。
いや、ホントにどうでも良いんですが。
0450名無しさん@お腹いっぱい。
NGNG(クライアントの世話に手間をかけたくないので)
最低限ブラウザがあれば動作できるいうことで。
さらにJavaが動くクライアントなら、
ユーザーインターフェースをアプレットにして、
操作性を稼ごうかと
(両方選択できる仕組みにしたい)
こういうのって、やっぱりへんかな〜
0451名無しさん@お腹いっぱい。
NGNG0452名無しさん@お腹いっぱい。
NGNGベータ版はもう出ていたような気が。
0453名無しさん@お腹いっぱい。
NGNGこんなエラーがいろんなプログラムを実行するたびにでるんですが、
なんなんでしょう??
環境はTurboLinuxでxemacsでjdk1.3です
実行したのはなんの変哲もないプログラムなんだけど
import java.awt.Frame;
public class Cal extends Frame {
public static void main(String args[]){
AppFrame frame = new AppFrame();
frame.setSize(200@` 200);
frame.show();
}
}
class AppFrame extends Frame {
}
0454ジャヴァとら
NGNGそれからJavaクイックリファレンス第3版(トラ本)が
今月の25日にでるそうですが、買ってもいいですか?
0455名無しさん@お腹いっぱい。
NGNG>javaコンパイラってなにがいいのでしょうか?
これは私も知りたい。
雰囲気的に最適化の良し悪しはどのコンパイラもだいたい一緒で,
JVM(Java仮想マシン)の違いで性能に開きが出る気がします。
>それからJavaクイックリファレンス第3版(トラ本)が
買っても損はしないと思うけど,
こればっかりは読んでみないと分りません。
ちなみに,JAVAプログラムクイック・リファレンス(ワニ本)は
内容が広く浅すぎて,どちらかというとダメ本でした。
http://www.oreilly.co.jp/BOOK/jexample/
0456名無しさん@お腹いっぱい。
NGNGJava開発ツールとしてトップに 」
http://www.inprise.co.jp/news/jbuilder_no1.html
でも本当に一番多いのはテキストエディタ+JDK(藁
0457名無しさん@お腹いっぱい。
NGNG研修で習ったこと自分のPCではできないんです。
検索してもそれらしいファイルがないんで、ないような気もします。
それと、JDBCはどうやってダウンロードしたら良いでしょう?
sunのHPでDocumentはダウンロードできたんですけど、
肝心のモノがどれなのかわかりませんでした。
どなたか親切な方教えてくださいませんか?
超初心者でごめんなさい。
0458名無しさん@お腹いっぱい。
NGNGDBはなに?
0459457
NGNG研修の時先生に聞いた時もそう言ってたんで
おかしいとは思ったんです。
DBはとりあえずAccess使おうと思ってます。
Oracleでもいいんですけど。試しにやってみたいだけなんで。
コケるところは、最初にJDBC用ドライバのクラスが存在するか
調べるところです。
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
これでいいんですよね?
これってinport文でも指定できて、あるかどうかわからないから
この形にしてるんですよね?(と研修で習った)
そう思って、試しに"import sun."ってやってみても、
何もでないんで(普通、使えるクラスがリストのように出てくるのに)、
「ないんだ〜」と思ったんですけど。
クラスがあるかどうかってどうやって調べたらいいんですか?
またまた初心者な質問でごめんなさい。
0460名無しさん@お腹いっぱい。
NGNGおそらく君のPCにはいってるJDKが1.2以上(Java2 SDKってやっちゃーな)なのが原因じゃ。
Java2SDK以降ではsun.*パッケージはほとんどjavax.*に移行してる。
詳しくはドキュメントを見れ。
0461ジャヴァとら
NGNG情報をありがとう。 >ワニ本
僕はCを始めて2週間足らずのP見習い師です。
本格的にJavaについて勉強したいのでとりあえず買っときますね。>トラ本
これからもよろしくどーぞ。。
0462名無しさん@新人王
NGNGアプレットですか?
参考書でJAppletをやたら継承させているんですが
実際の仕事でも使っているんでしょうか?
だったらやっぱりアプレットビューワ使っているんでしょうか?
ちょっと疑問です。
0463名無しさん@お腹いっぱい。
NGNGでプロバイダのpop3からメールを取ってくる方法なんですが、
セッションのつくりかたでつまずいてます
Nosuchprovider exceptionがでてしまいます。
セッションは接続先を指定してつくるのかと思いきや、
サンプルを2つほどみても自分を指定してるみたいです。
それとstoreの考えかた今一つぴんとこないのですが、
自分のフォルダにメールを取り込むからstoreクラスってことなのでしょうか?
Folderもメールサーバのフォルダなのか、自分のフォルダなのか
訳が分からなくなりつつあります
Properties sysProperties = System.getProperties();
Session session = Session.getDefaultInstance(sysProperties@` null);
session.setDebug(debugOn);
System.out.println(POP_MAIL);
Store store = session.getStore("pop3");
store.connect(pop3Host@` -1@` _user@` _password);
0464名無しさん@お腹いっぱい。
NGNGno such provierExceptio :No provider pop3
がでるのは
Strore store = session.getStrore("pop3");
のところです
0465名無しさん@お腹いっぱい。
NGNG0466>>462
NGNGサーブレット&JSPで業務画面作ってるよ
JavaアプレットOFFでもOKだし
クライアントから見ればブラウザでCGIやってるのと変わらない
最近はたいていの人はブラウザの操作には慣れてるから客受けもいいよ。
DBもJDBC経由でアクセスできるしね。
あと自分はまだ仕事で使ってないけどXML関係はJavaが強いみたいね。
0467ちゅーぼー
NGNGブレークポイントやスッテプイン等の操作は
できるのでしょうか?
0468名無しさん@お腹いっぱい。
NGNGString str = br.readLine();
とキー入力を待っている状態で、別スレッドから割り込みかけるとかして
readLine()から脱出させる方法ってありますか?
BufferedReader#readLine()がInterruptedExceptionとかInterruptedIOException
とか投げてくれないので、Thread#interrupt()しても反応無いっす。
というか、Win32のWaitForMultipleObjects()みたいのがあるとうれしいん
だけど。
0469>>467
NGNGdbxに似てる
http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/solaris/jdb.html
つかドキュメントくらい見ろ
0470名無しさん@お腹いっぱい。
NGNGbrをclose()してしまえ(わらい)
0471468
NGNGそれでも変化なし。例外も起きない。
BufferedReader extendsしたクラス作ってやるしかないんかな。
0473名無しさん@お腹いっぱい。
NGNGpop3には古いjavax.mailは対応してないよ
新しいバージョン使うべし
それからj2eeのjavax.mailもpop3対応してないかも
0474名無しさん@お腹いっぱい。
NGNGいます。ここにJava2SDK(JDK1.3)をインストールしてHello!Worldをコンパイルし
ようとした時点でいきなり詰まってしまいました。
PATH、CLASSPATHを設定して
javac hello.java
とやると延々と反応が戻ってきません。ctrl+Cで止めるまで何時間でも何日でもずっと考え
てます。エラーメッセージも出ません。HDDにアクセスもしていません。
swap領域(200MB確保)が足らないのか?classpathが間違ってるのか?RAM64MBじゃ足らない?
1週間くらい試行錯誤&WEB検索でヒント探して10回以上再インストールしてもこれで止まってて
マジへこんでます。
なんかいいアイデアないでしょか?
0475474
NGNG…/java/jdk1.3/jre/lib/rt.jar:.
に設定してます。
0476名無しさん@お腹いっぱい。
NGNG0477>474
NGNG何をどうやっても無駄。
JDK1.2.2をダウンロードして使いな。あっちは
きちんと使えるから。
0478名無しさん@お腹いっぱい。
NGNGhttp://sedap.sun.com/JPN/certification/javamain.html
0479名無しさん@お腹いっぱい。
NGNGそのクラスパスって違うんじゃない・・・
....../java/jdk1.3/bin だと思うんだけど・・・
それと、そのパスを .bashrc かなんかに書いてる?
0480名無しさん@お腹いっぱい。
NGNG普通にやればできるのかな?
これって実際にどれくらいつかわれるんだろ?
(sunのAPI DOC以外あまり見たこと無いような)
0481名無しさん@お腹いっぱい。
NGNG(お試し番)
60日は登録してからなのかな?
もったいないので時間があるときに登録します
0482名無しさん@お腹いっぱい。
NGNG一太郎ArkのAPIドキュメントはjavadocだったような気が。
ソースに埋め込んだコメントがそのままAPIドキュメントになるという
発想はすばらしいのだが,コードの可読性が悪くなるのが難点ではないかと。
なぜならドキュメントの分量が多くなると,プログラムが隅に追いやられるような
雰囲気になるので。
よいツールはないものでしょうか。
0483名無しさん@お腹いっぱい。
NGNGArkのソースってそうなの?
JDKのソースはべつにあんなもんだと思うが。
0484名無しさん@お腹いっぱい。
NGNGちょっとコメントが長くなりがちだよね
0485483
NGNGでかいコメントが有るくらいいいんじゃないかな
コード自体は別に普通でしょ>>482@`>>483
仕事だとプロジェクトによっては
それくらいのコメント書かされるのは珍しくないよ
ソースのコメントとその「よいツール」の両方に
説明を書かなきゃいけないんだったら片方だけで済むほうが俺はいいな。
0486名無しさん@お腹いっぱい。
NGNGおいおい。俺は使えてるぞ。
0487名無しさん@お腹いっぱい。
NGNG自分の場合は
/home/hoge/java/source/jp/gr/java_conf/hoge/
って感じなんですが、
サーブレットのコードはwebサーバに置いてしまってるので、
ソースが2箇所になってます
0488名無しさん@お腹いっぱい。
NGNGダブルクリックで直接起動させる為には、
どうしたらよいのでしょうか?
どなたか教えてくださいませ。
0489名無しさん@お腹いっぱい。
NGNG0490名無しさん@お腹いっぱい。
NGNGjarにする。
0491名無しさん@お腹いっぱい。
NGNG>Windowsのエキスプローラ
ちょっとだけワラタ
0492名無しさん@お腹いっぱい。
NGNG0493>492
NGNG0494488
NGNG0495名無しさん@お腹いっぱい。
NGNGどうですか?
0496PG
NGNG以下のコードでは2回目をはじくことができるのですが、
var submitFlg = false;
function canSubmit() {
if (submitFlg) return false;
submitFlg = true;
return true;
}
function foo2() {
if (!canSubmit()) return;
location.replace('http://www.vector.co.jp');
}
<input type="button" name="Test" value="ダブルクリックテスト" onclick="foo2()">
これだと上手く行きません。A タグでのダブルクリック対応って無理?
<A href=JavaScript:foo2()><B>テスト</B></A>
0497↑
NGNG(Mac板でハンバーガーの質問するくらい)
0498名無しさん@お腹いっぱい。
NGNG誰かこれのtestsuiteの実行を成功される方法を教えて。
0499496
NGNG失礼。無視してくれ。
0500496
NGNG連打されるとサーバの負荷がつらくないか。
0501JAVA初心者
NGNG誰か間違っているところを教えて下さい@`お願いします。m(_ _)mimport java.applet.Applet;
import java.awt.*;
import java.util.*;
import java.math.*;
import java.awt.event.*;
public class jyanken extends java.applet.Applet{
Button[] myBtn;
Label myLbl;
int r;
Random ran;
public void init(){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("ジャンケンゲーム");
myBtn = new Button[3];
add(myBtn[0] = new Button("グー"));
add(myBtn[1] = new Button("チョキ"));
add(myBtn[2] = new Button("パー"));
ran=new Random();
r =(int)(Math.random()*2);
//グー
myBtn[0].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(r==0){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("グー!あいこです。");
}
else if(r==1){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("パー!あなたの負けです。");
}
else if(r==2){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("チョキ!あなたの勝ちです。");
}
}
});
//チョキ
myBtn[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(r==0){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("チョキ!あいこです。");
}
else if(r==1){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("グー!あなたの負けです。");
}
else if(r==2){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("パー!あなたの勝ちです。");
}
}
});
//パー
myBtn[2].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(r==0){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("パー!あいこです。");
}
else if(r==1){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("チョキ!あなたの負けです。");
}
else if(r==2){
myLbl = new Label(""@`Label.CENTER);
add("Center"@`myLbl);
myLbl.setText("グー!あなたの勝ちです。");
}
}
});
}
}
0502名無しさん@お腹いっぱい。
NGNG画面初期化してやればいいと思う。
あとなんか押す前に勝負の結果が決まってて萎えました
0503JAVA初心者
NGNG画面を初期化ってHTMLをリロードですか?
0504名無しさん@お腹いっぱい。
NGNGadd("Center"@`myLbl);
myLbl.setText("グー!あいこです。");
ここが貴方の意図している動きとは違うようです
initの中ですでにオブジェクトとして存在しているのですから、
newしないでそのままsetTextでオブジェクトに
メッセージを送ってやればOK
// myLbl = new Label(""@`Label.CENTER);
// add("Center"@`myLbl);
myLbl.setText("グー!あいこです。");
イベントを処理しているメソッドのなかで、Appletに対して
addしても、なにもしてくれないと思います。
init()のなかでaddすべき?
それとクラスの名前は大文字から始めましょう
メゾット名とクラス名の区別がつけやすいです
0505名無しさん@お腹いっぱい。
NGNG0506名無しさん@お腹いっぱい。
NGNG0507名無しさん@お腹いっぱい。
NGNGmyae=new Label(""@`Label.CENTER);
0508名無しさん@お腹いっぱい。
NGNGJDBC経由でMySQLに接続したいのですが
mm.mysql.jdbc-1.2のmysql_comp.jar mysql_uncomp.jarを
どこにおいたらいいのですか?
Tomcat3.1のlibとかにおいているんですけど、No such driverいわれます。
どこにいれたらいいですか?
0509508
NGNGgetConnection の URLをjdbc:mysql:///hogehoge
にしたらできました。すいませんでした。
0510名無しさん@お腹いっぱい。
NGNG簡単で良いですね。
ところでJavaで作ったプログラム(jarファイル)を配布した場合、ユーザーのPC(JDKがインストールされてない環境)でそのまま動くものなんですか?
アプレットが動くくらいだからブラウザがインストールされていれば大丈夫なんですか?
0511名無しさん@お腹いっぱい。
NGNG動かないよ〜ん
0512名無しさん@お腹いっぱい。
NGNG何かランライムみたいなのが必要?
0513名無しさん@お腹いっぱい。
NGNGSDKかRuntime Environmentっていうやつ。配布できるかどうかは知らない
0514名無しさん@お腹いっぱい。
NGNG0516名無しさん@お腹いっぱい。
NGNGjarのマニフェストに
Main-Class: [mainメソッドのあるクラスのパッケージ&クラス名]
って一行いれとけばダブルクリックで起動するよ
マックは知らない
0517名無しさん@お腹いっぱい。
NGNG「マニフェスト追加するのはどうするの?」
と言う質問をしてくるのに100クルゼーロ
0518512
NGNGjar cmf hoge.mf hoge.jar hoge.class *.gif
ていうかそんな素人じゃないって。
マニフェストの設定くらい知ってるもん。
結論:Javaプログラムはそこら辺の一般人のPCでは JRE ってのが無いと動かない。
ってことだよね?
0519名無しさん@お腹いっぱい。
NGNG0520名無しさん@お腹いっぱい。
NGNG結論が自力で想像できないという事実がすでに素人
0521名無しさん@お腹いっぱい。
NGNG0522初心者女子
NGNG今アプレットを作っていて質問があります。
1.二つの文字列s1@`s2を比べてs2がs1に含まれているか調べる
メソッドってありますか。cのstrstrの機能です。
2.Labelクラスで文字列をアプレットに表示したいのですが、
Labelで二列にわたる文字列を指定することはできないのでしょうか・
Label l1=new Label("ここで \n 改行")とやっても文字化けしてしまって。
よろしくお願いします。
0523名無しさん@お腹いっぱい。
NGNG0524名無しさん@お腹いっぱい。
NGNGJLabel label1 = new JLabel("<HTML><BODY>line.1<BR>line.2</BODY></HTML>");
って、やってみな。
0525名無しさん@お腹いっぱい。
NGNG後者はともかく、前者は調べればすぐにわかりそうだが。
そんなこといちいち聞いてると学習効率悪いぞ。
0526名無しさん@お腹いっぱい。
NGNGGridLayoutかなんかでコンポーネントに縦二段の
レイアウトを設定してそれぞれにLabel貼ってくだされ。
0527>>518
NGNG(最近はIE入っててもJavaがデフォルトでインストールされないこともあるらしい)
jview /cp [実行したいjar@`zipファイルを含むクラスパス] [メインクラス]
でも一応動く。(さすがにダブルクリック起動はショートカット作らない限り無理)
ただしJDK1.1相当だしAWTの挙動がかなり違う(テスト工数が、、)
(まあ、IEのアプレットと同じなんだけど)
0528初心者女子
NGNG524のやりかたもあったんですね。目から鱗です。
>526
gridlayoutつかうと、g.drawImageで貼ったイメージが後ろに
隠れてしまうのでできなかったんです。かくれないやりかたも
あるのでしょうが。
0529名無しさん@お腹いっぱい。
NGNGこれ最近よく聞くんですけど、実態はどんな感じなんでしょうね。
IEのアップデートにMSVMのチェックがデフォルトで入ってないのは見たけど
WinMeやWin2kを標準でインストールしたら
どっちも入ったから、安心していいのかな。
MSVM入ってないIEでアプレットのあるページ行ったら
どういう挙動するんでしょ? 今HDDがギチギチで実験できなくて。
0530赤外線通信>>519
NGNGhttp://www.dmz.hitachi-sk.co.jp/Java/Tech/api/jcomm.html
0531名無しさん@お腹いっぱい。
NGNGMacでJavaを触ってみたいとおもっているんですけど
まず最初にすることは何ですか?
どこから何を落としたらいいんでしょうか?
0532名無しさん
NGNG0533名無しさん@お腹いっぱい。
NGNG最近のは始めっから入ってるんじゃないの?
0534名無しさん@お腹いっぱい。
NGNG拡張子が .exe だよ。
完全に Windows アプリじゃん。
JDK1.2.2 をインストールしてるPCで実行できないし。
.Net でもやろうかな〜。
Javaの中級くらいのレベルのサンプルコード公開してるページってない?
from VC++プログラマ
0535名無しさん@お腹いっぱい。
NGNGjexegen
ただ単にクラスファイルを固めただけ。
VM無いと動かない。
>Javaの中級くらいのレベルのサンプルコード公開してるページってない?
このあたりか?ケッジヤル。
http://www.javasourcecode.com/
0536名無しさん@お腹いっぱい。
NGNG毛子覆おうあるめん
0537534
NGNGどうもありがとう。
英語か・・・。
Java覚える前に英語覚えようかな・・・
0538初心者
NGNG質問です。
g.drawImage(x@`y@`width@`height)で画像を貼り付けているのですが、JDKのアプレットビュー和
ではちゃんとみえるのですが、実際アップしてみて、ブラウザで
見ると上の方4分の一くらいしか見えないんです。これは
どうしてでしょうか??
0539名無しさん@お腹いっぱい。
NGNGImageObserver周りの仕組みは理解してるかい?
このあたりはたぶん誰もがつまずくところなので
一度JavaHouseのトピックスやクラスライブラリのソースで
徹底的に調べてみるといいよ。
0540初心者
NGNGしくみ、理解していませんjavaHouseとはいったい??
検索して行ってみます。
0541名無しさん@お腹いっぱい。
NGNGここは?
http://www.javacats.com/JP/search/
「アドバンストモード」で"ソース付き"でフィルタリングすればいいよ。
0542名無しさん@お腹いっぱい。
NGNGあ、JavaHouseは見つけても迂闊に質問はしないようにね。
まずトピックスを徹底的に探しましょう。
なければ「過去の記事の検索」で調べてみましょう。
0543名無しさん@お腹いっぱい。
NGNGそんなあなたに、
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=973215809
0544名無しさん@お腹いっぱい。
NGNGサンキュー。
0545デフォルトの名無しさん
NGNGHTMLの方のAppletタグ(Object使ってるかもしらんが)のタテヨコの指定はしっかり調節してある?
0546デフォルトの名無しさん
NGNGって,どこから調達しているんですか?>皆さん
どこか,お奨めのものってあります?
0547デフォルトの名無しさん
NGNGそれJavaではどうやってやるんですか?
0548デフォルトの名無しさん
NGNG>JavaScriptでopen()とすることによって新しいブラウザを出せますが、
>それJavaではどうやってやるんですか?
getAppletContext().showDocument( "http://xxx/xxx.xx"@` "_blank" );
・トピックス
+ブラウザとの連携
+Appletから指定したURLのページをブラウザに表示させる
※Jハウス風レス
0549548
NGNGgetAppletContext().showDocument(new URL("http://xxx/xxx.xx")@` "_blank");
ですな。
0550初心者
NGNGURLからソースを一度バッファに読み込んでから書き出したいのですが、
下のようにするとどうしても日本語ノブ分が文字化けしてしまいます。
OutputStream out=System.outとしてバッファに入れないで書き出すと
文字化けしません。bufはStringBufferです。どうしたら文字化けしないように
なるでしょうか?
while((c=in.read())!=-1){
buf.append((char)c);
//out.write(c);
0551名無しさん@お腹いっぱい。
NGNGStreamそのまま使わないでWriter、Readerクラスで
デコレートしてください。
0552初心者
NGNGwiterクラスのインスタンスを生成しなくてはならないの
でしょうか、そうするとこれはabstructなのでimplementが
必要なのでしょうか、ああ、分からない。
ついでに質問すると上の例ではcはintで宣言されていますが
writeするとちゃんとcharになっているのはなぜでしょう?
0553>>552
NGNGJavaHouse質問しなくてもトピックスの検索でいくらでもでてくるだろ
http://java-house.etl.go.jp/ml/archive/j-h-b/014931.html#body
0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNGVC++に大量についてきたような。
あとは自分でドットエディタでも使って描くんちゃう?
0556初心者
NGNGImageオブジェクトにPNGとかの画像ファイルをロードする時,みなさん
どうしてるんですか?
アプレットではgetImage()が使えて楽だったんですけど自力でデコード
するしかないんでしょうか?
0557名無しさん@お腹へった
NGNGhttp://developer.java.sun.com/developer/techDocs/hi/repository/
のことかな?
0558こちらも初心者
NGNGアプレット:
Applet.getImage()
アプリ:
Toolkit.getImage()・・・・java.awt.Toolkitのメゾット
ききたいのってこれ?
0559名無しさん@お腹いっぱい。
NGNG0560デフォルトの名無しさん
NGNG0561名無しさん@お腹いっぱい。
NGNGそうなんだ。
俺は1.2.2使ってる。
PNGの保存もできる?
0562デフォルトの名無しさん
NGNG0563名無しさん@お腹いっぱい。
NGNGSunが勝手に作ってる奴。(com.sun.image.codec.jpeg)
PNGもあるのかな〜と思って。
0564名無しさん@お腹いっぱい。
NGNG今までDOS窓でコンパイルしてたんだけど。
どっちが便利?
Forte for Java 使ってる人いる?
0565デフォルトの名無しさん
NGNG使ってないけど、使うとしたらJBuilderのほうがマシかなって感じ。
あたしはファイラーで擬似統合環境作ってます。
0566名無しさん@お腹いっぱい。
NGNGForte for Java は辞めとこう。
JBuilder ってタダじゃないよね?
やっぱ自分でなんか作ろうかな。
コマンドラインは流石に面倒だ。
0567名無しさん@お腹いっぱい
NGNGいまのままではJDKやJREがインストールされていないと
使えないんです。なんとかすべてのファイルをexe形式にしたり
することはできないんですかね?
0568デフォルトの名無しさん
NGNGVisual Cafe
×Java SDK(MS) bin\jexegen.exe
0569デフォルトの名無しさん
NGNGJBiuilder4.0 Foundation はフリーだぞ。
(っていうか知っててきいてるんやろ?)
http://www.inprise.co.jp/jbuilder/foundation/index.html
0570デフォルトの名無しさん
NGNGSymantecだったような記憶があるのでSymantecのサイトを
見たのですが、見あたりません。
どなたか御存知ないでしょうか?
0572デフォルトの名無しさん
NGNG有り難う御座います。
(しかしいつの間に...)
0573デフォルトの名無しさん
NGNG>コマンドラインは流石に面倒だ。
そんな貴方に「Emacs+JDE」(笑)
0574デフォルトの名無しさん
NGNGttp://www.okweb.ne.jp/kotaeru.php3?q=21979
(w
しっかし、JAVAプログラマって
年末ヒマなん?
0575名無しさん@お腹いっぱい
NGNGありがとうございます。
体験版でも324メガあるんですね・・・・・・・・
0576名無しさん@お腹いっぱい
NGNGVisualJではできないんですか?
0577名無しさん@お腹いっぱい。
NGNGttp://www.okweb.ne.jp/kotaeru.php3?q=21979
Javaは初めて学ぶ言語として非常に理想的。
もっとも賢明な選択といえます。
今後C++に移行するにせよ、また、JavaScriptを
記述するにせよ。Javaの考え方を知っているか知っていないかでは、大きな差が出ます。
Cから始めてC++に移行する人よりも、JavaからはじめてC++など他の言語をマスターする人の方が、はるかに美しいソース(美しい設計)を記述する傾向が高いからです。
皆さんがおっしゃるように、はじめのうちはJDKで開発をすすめるのがよいと思います。とりあえず、2@`3ヶ月程度はJDKで開発をすすめて、Javaの言語としての側面のみならず、その全体的な仕組みや環境の構築も身につけておいたほうが、後々のためです。
地盤がしっかいしていない土地に高い建物を建てようとすると、失敗します。まずは地盤を固めましょう。
ツールについてですが、個人として使用するのであれば、JBuilderがお勧めですが、将来キャリアにしたいということであれば、やはりVisualJ++ということになります。
これは単体の言語開発環境としては、JBuilderを選択してもVisualJ++を選択してもたいして違いはありませんが、
(現在少々違いがあっても将来的には埋まってしまうものです)
企業が使用しているヒット率というてんで、C++BuilderよりもVisualC++の方が圧倒的に確率が高く、当然、アプリケーションの連携という観点から、単体としてすぐれているかもしれないJBuilderよりも既存のVisualC++との相性が良いVisualJ++を採用する可能性が高いためです。
というわけで、趣味の範囲をでることはまずない!!
ということであれば、JBuilderを
のちのちは本格的にビジネスまでも見据えて…
ということであれば、VisualJ++を
を使用してみるのがよいのではないでしょうか。
0578初心者
NGNGgetImage()と書いたらコンパイラ通りませんでしたが,
Toolkit.getDefaultToolkit().getImage();
としたら通りました.
ちなみに俺はforte使ってます.
ただですし,使いやすいですよ.
起動は物凄い時間かかりますが,他は普通だと思うっす.
LinuxでJBuilderちょっと使った事ありますが,あんまり変わらないっすよ.
0579デフォルトの名無しさん
NGNG投稿日00-12-25?良回答?VisualJ++?
0580こちらも初心者
NGNGどういたしまして。
0581デフォルトの名無しさん
NGNGデザイナとかはあまり使わないな。
GridBagLayout使おうとしたら収集のつかんことになったし。
(pro以上のVerticalLayoutなんて意味あるのか?)
0582禁断の名無しさん
NGNGVJ++から乗り換えた人の情報求む
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNGすごく格好悪いなあ、と思うのは私だけでしょうかねえ。
特にボタン周り
0585デフォルトの名無しさん
NGNG正解ですがタブーです。
0586デフォルトの名無しさん
NGNG大いに賛成します。
まだしもWidowsの方がましです。
0588584
NGNGなして?
0589デフォルトの名無しさん
NGNG配列のコピーは System.arraycopy を使えばできるけど
配列の初期化(塗りつぶし)はどうやるの?
Cでいうところの memset みたいなやつ。
ループで回せばできないこともないけどJavaだと遅いから・・・
教えてください。
とりあえず、
ハッピー
if(イヤー != null) delete イヤー
new イヤー
0590名無しやん
NGNG「?」とかのアイコンの画像はいったいどこから取得しているんでしょう?
0591589
NGNG調べたら Arrays.fill ってのがあった。
おやすみなさ〜い。
0592デフォルトの名無しさん
NGNGループのほうが速いことも往々にしてあるので要注意だ。
0593うちう
NGNGButtonコンポーネントに(ラベル的に)横向きの三角形の図形を書きたいんですが、以下のコードをどう組み込めばよいのか分かりません。
int x1[] = {41@`41@`58};
int y1[] = { 3@`23@`13};
g.fillPolygon(x1@`y1@`3);
良かったら教えてくださいな。
0594名無しさん@お腹いっぱい。
NGNG矢印を画像にしてボタンに貼るのが一番楽。
0595無党派さん
NGNGJOptionPaneのソース見れ。
0596奥さん、名無しです
NGNGAWTならButtonを継承してComponent.paint()を、
SwingならJButtonを継承してJCopmonent.paintComponent()を
その処理でオーバーライドかければいいかな。
小さい書き込みなら画像張るほうが早そうだけど。
0597593
NGNG0598デフォルトの名無しさん
NGNGimport java.awt.*;
import java.awt.color.*;
import java.awt.datatransfer.*;
import java.awt.dnd.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.im.*;
import java.awt.im.spi.*;
import java.awt.image.*;
import java.awt.image.renderable.*;
import java.awt.print.*;
import java.beans.*;
import java.beans.beancontext.*;
import java.io.*;
import java.lang.ref.*;
import java.lang.reflect.*;
import java.math.*;
import java.net.*;
import java.rmi.*;
import java.rmi.activation.*;
import java.rmi.dgc.*;
import java.rmi.registry.*;
import java.rmi.server.*;
import java.security.*;
import java.security.acl.*;
import java.security.cert.*;
import java.security.interfaces.*;
import java.security.spec.*;
import java.sql.*;
import java.text.*;
import java.util.*;
import java.util.jar.*;
import java.util.zip.*;
import javax.accessibility.*;
import javax.naming.*;
import javax.naming.directory.*;
import javax.naming.event.*;
import javax.naming.ldap.*;
import javax.naming.spi.*;
import javax.rmi.*;
import javax.rmi.CORBA.*;
import javax.sound.midi.*;
import javax.sound.midi.spi.*;
import javax.sound.sampled.*;
import javax.sound.sampled.spi.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.colorchooser.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
import javax.swing.plaf.*;
import javax.swing.plaf.basic.*;
import javax.swing.plaf.metal.*;
import javax.swing.plaf.multi.*;
import javax.swing.table.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;
import javax.swing.text.rtf.*;
import javax.swing.tree.*;
import javax.swing.undo.*;
import javax.transaction.*;
class IMPORT {}
0599デフォルトの名無しさん
NGNGで一度に表示できる項目を2つにしたいのですが、
↓のコードだと全て表示されてしまいます。
なぜなんでしょうか??
import java.awt.List;
import java.awt.Frame;
public class ListTest extends Frame {
ListTest() {
List list = new List(2);
list.add("ho");
list.add("ge");
list.add("ho");
list.add("ge");
add(list);
setSize(100@`100);
setVisible(true);
show();
}
public static void main(String args[]) {
ListTest listTest = new ListTest();
}
}
0600600>599
NGNG>list.add("ho");
>list.add("ge");
>list.add("ho");
>list.add("ge");
これが原因だろが
0601デフォルトの名無しさん
NGNGだから一度に表示されるのは2つで、
4ついれたばあいはスクロールになると思うけど?
0602奥さん、名無しです
NGNG初期化するだけで、最大値を設定してるわけじゃないぞ。
APIドキュメントちゃんとよめ。
0603デフォルトの名無しさん
NGNGpublic List(int rows)
指定された数の表示行を持つように初期化された新しいスクロールリストを作成します。デフォルトでは、複数の選択はでき
ません。
パラメータ:
rows - 表示される項目の数
でも、setMaxRow(int rows)
とかないじゃん・・・。
0604奥さん、名無しです
NGNGだから、最大値は設定できないんだってばさ。
表示したくなければremove()せい。
0605奥さん、名無しです
NGNG0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNGやってるとき固まった
もっとさくさく動くと使いやすいんだろけど
結局エディータ+JDKに逆戻り
0610デフォルトの名無しさん
NGNGだと、起動に五分、デザイナの起動に2@`3分かかる。
その間なんとなく本でも読んでる。(他のは動かないし)
0611デフォルトの名無しさん
NGNGで運が悪いと止まる。
0612デフォルトの名無しさん
NGNG(それでもかなり重いんだけど)のスピードになったよ。HotSpotうんぬんと、Swing
の高速化が進んでるのね。(P3-450+192MB)
JBuilderはJDK換えてみるとどうなるでしょか?
0613デフォルトの名無しさん
NGNG使い勝手どう?
0614@
NGNG0615>>614
NGNGつか、このスレの質問のほとんどは
JDKのドキュメントとJavaHouseの検索使えばたいていのことは解決
すると思うのは俺だけではあるまい。
http://java-house.etl.go.jp/ml/archive/j-h-b/004169.html#body
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/awt/image/ImageObserver.html
0616デフォルトの名無しさん
NGNG>>JDKのドキュメントとJavaHouseの検索使えばたいていのことは解決
>>すると思うのは俺だけではあるまい。
鋭どすぎ。天才だね。
0617デフォルトの名無しさん
NGNGそう、JBuilder4Foundationはヘルプ使うと危険だよ。
0618デフォルトの名無しさん
NGNG何でこう腐ってるんだ?
0619デフォルトの名無しさん
NGNGマウスでD&Dで配置するより、手で書いた方が早いし、
精神的にも良いよ。
0620デフォルトの名無しさん
NGNG実際両方つかってる人はどっちが早くて、メンテが楽?
プロの現場はどんなツールを使ってるのか興味あります。
HTMLも職人さんになると、FRONTPAGEとかHOMEPAGEBUILDER使わないで、
手書きって話を聞いたことがあります
0621デフォルトの名無しさん
NGNGそれでも、RADツールで、コンポーネントを作りながら使うのが一番と思いますが・・・
0622デフォルトの名無しさん
NGNGthrows IOExceptionを書くとコンパイル時に以下のエラーが
でてしまいます。
例外をだす処理を消して、throws IOExceptionを消して
コンパイルするとOKです
無名クラスで例外処理を加える場合はどう書けばいいのでしょうか?
JavaHouseを検索したのですが、良く分かりませんでした
MailGui.java:101: ';' がありません。
ActionListener buttonAction = new ActionListener() throws IOException {
^
MailGui.java:101: java.awt.event.ActionListener は abstract です。インスタンスを生成することはできません。
ActionListener buttonAction = new ActionListener() throws IOException {
ActionListener buttonAction = new ActionListener()
thorws IOException {
public void actionPerformed(ActionEvent actionEvent) {
}
例外(IOException)を出す処理
};
0623デフォルトの名無しさん
NGNGtryとcatch
0624お前名無しだろ
NGNGclassファイルを逆アセンブラしたいのですが
ソフトを知りませんか?
j2cなんかはclassファイルからCのソースを出力するらしいですが
どこにあるか知りませんか?
0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNG>>624
み
>>85-99
0627デフォルトの名無しさん
NGNG何をされたいのかよく分らないのですが。
>new ActionListener() thorws IOException {
これは
class MyActionListener implements ActionListener thorws IOException {
...<省略>...
}
というクラス定義と等価になると思うので,当然文法エラーです。
例外を投げるのはメソッドです。クラスが例外を投げるということはありえません。
それから,try catchをどこにどのように書くおつもりなのか
教えてください。
0628初心者
NGNG0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNGちなみに私は、メモ帳・・・
0631デフォルトの名無しさん
NGNG0632奥さん、名無しです
NGNG特定語句強調表示機能つきエディタならなんでも。
コレだけで十分だと、個人的には思う。
0633デフォルトの名無しさん
NGNGMIFES最高!
0634デフォルトの名無しさん
NGNG0635Java厨房その位置
NGNGするには、どうすればよいのでしょうか?
0636Java厨房その位置
NGNGparent =null;
child = null;
なんてされているので
0637630
NGNG「「ATOK12」で日本語処理能力を高めた」っていう一文で萎えた・・・
CPad for Java2 SDKっていうのはどうです?
使っている人いますか?
Vectorのダウンロードランキングで結構良い順位。
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG個人的にはGTK+風のが欲しいなあ
0641640
NGNGhttp://www.marwin.ch/download.html
0642デフォルトの名無しさん
NGNGありがと>>641
0643デフォルトの名無しさん
NGNG0644こちらも初心者
NGNG最高!!
いい誕生日プレゼントもらった。
0645こちらも初心者
NGNG0646デフォルトの名無しさん
NGNGどうしてます
mainが最後コンストラクタが最初であとは、処理が関連しているのを
ならべてって感じでしょうか?
0647デフォルトの名無しさん
NGNGGUIつくるのが楽
コード補間はちょっと嬉しい
嫌いなところ
起動が遅い
使い方を覚えるのが面倒(厨房)
JDKが新しくなったとき使えなくなる。
なんとなく閉じ込められた感じがいやーん
0648デフォルトの名無しさん
NGNGemacs+JDEマンセー
自由度が高い(気がする)
嫌いなところ
classが増えたとき管理がしんどい
コード補完できんもんかの?
windowsのデフォルトシェル(dos)じゃきついっす
0649デフォルトの名無しさん
NGNGなぜないんでしょ?
argoUMLってのを使ってます。
クラス図を指定して中にコードを書くこともできるみたいですが、
ちょっとコーディングには機能的に辛い。
(強調機能とか無いみたいだし)
スケルトンを吐いてくれるんで、そこそこ便利
0650デフォルトの名無しさん
NGNG(探すの疲れました...)
0651デフォルトの名無しさん
NGNG『Java ネットワーキング&コミュニケーション』ピアソン
って、酷い日本語だな。
かわんでよかった
0652デフォルトの名無しさん
NGNGjava.io.net
じゃだめなん?
0653デフォルトの名無しさん
NGNGていうか、sun.net.* はだいぶ前に廃止されたから最近のJDKでは使えないよ。
0654デフォルトの名無しさん
NGNGjava.net
ね
はずかしー
java.net APIのマニュアル
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/net/package-summary.html
何でsun.*パッケージはつかっちゃあかんの?
http://java.sun.com/products/jdk/faq/faq-sun-packages.html
0655デフォルトの名無しさん
NGNGJavaで、ファイルの保存、読み込み、書き込みも出来るんでしょうか?
0656ね、ね、それっぽい?それっぽい?ねぇ
NGNGなぜ出来ないと思われたのかその前提情報と判断の過程をお聞かせください。
0657デフォルトの名無しさん
NGNG652@`653@`654さん、ありがとう御座います。
いや、ただ単にFTPクライアントを作成しようと思ったのですが、
APIドキュメントにはHttpURLConnectionというのは有ってもFTPについては
ほとんど記述がなかったので、大丈夫かいな?と思い、
そう言えばsun.net.ftpというのがあったなあ、と思いだして探したところ、
どうしても見つからなかった、というわけです。ハイ
Ftpについては、http://www.geocities.com/SiliconValley/Code/9129/javabean/ftpbean/
(ソース付き)でライブラリを見つけましたので、これを改造して使うことにします。
>ていうか、sun.net.* はだいぶ前に廃止されたから最近のJDKでは使えないよ。
いや、知りませんでした(あほだ.....)
0658デフォルトの名無しさん
NGNGTCP/IP Javaネットワークプログラミング
ってほんがとってもお勧め。
俺はこれ参考にメールクライアント作ってます
0659657
NGNG『TCP/IP Javaネットワークプログラミング』オーム社 小高知宏著
ですね。
あ、小生も持ってます。
この本はとても参考になります〜
趣味でいろいろやってみたい人間にはとても有り難いです。ハイ
2400円
0660質問厨房
NGNGどうやったらプロクシを経由できますか?
例えば、
URLConnection uc = new URLConnection(new URL("http://java.sun.com/index.html"));
これでURLConnectionオブジェクトを生成し、
getInputStreamメソッドをつかって
ファイルを読みこむ事が可能ですが、
プロクシを経由してませんよね?
プロクシサーバーを経由してWEB上のファイルにアクセスする方法を
教えてください、お願いします。
0661デフォルトの名無しさん
NGNG他のクラスから値の参照に使いたいクラスがあるとします。
この場合でも、他のクラスからフィールドにアクセスするのは
よろしくないですか?
メゾット経由にすると、価ごとにset getのメゾットをつくるのは
まどろっこしいんですが
import.java.io.*;
import.java.util.*;
public class A_class {
String a;
String b;
Properties property;
public void A_class() {
property = new Properties();
property.load(new FileInputStream("hoge.ini"));
/* read Properties */
a = property.getProperty("a");
b = propetry.getProperty("b");
}
}
class B_class{
A_class a_class = new A_class();
void hoge(){
a_class.a;
}
hoge.ini
a= a
b= b
0662>661
NGNGそれは俺も使ったことがないから、
いちいち経由しなくてもいいぞ!!!
(きっと、誰も使ったことがないと思うぞ)
(でも、setterやgetterは作法だと思ってやっとけ)
0663奥さん、名無しです
NGNGシステムプロパティで
http://java-house.etl.go.jp/ml/archive/j-h-b/004521.html#body
URLオブジェクト生成時の指定で
http://java-house.etl.go.jp/ml/archive/j-h-b/039244.html#body
0664初心者
NGNG結果を取得することはできますか?
0665デフォルトの名無しさん
NGNG「できますか」
とのことですので、できます、と答えておきます。
0667>665
NGNGうざいからやめてほしい。
0668( ´〜`)さん
NGNG0670名無しさん@お腹いっぱい。
NGNG教えてください。
0671デフォルトの名無しさん
NGNG「JAVA」の「関数」って……。まあいいけど。
APIドキュメントのことかしら?
http://java.sun.com/products/jdk/1.2/ja/docs/ja/api/index.html
0672名無しさん@お腹いっぱい。
NGNGおお、ありがとう。
「関数」じゃなくて「クラス」とかいうんだっけ?
Cしか知らないもので…(しかもC++じゃないC)
これからJAVAを勉強するつもりです。
0673671
NGNGあ、ネタじゃなかったんだ。(失礼)
ちなみにCからJavaをやるのなら「クラス」と「メソッド」の概念は最低理解しましょう。
でないとハマるよ。
ちなみにドキュメントはダウンロードもできるので、
高速な常時接続回線がないのならダウンロードしてローカルで参照するのがおすすめ。
http://java.sun.com/j2se/1.3/ja/docs.html
頑張ってね。
0674デフォルトの名無しさん
NGNG加えて「インスタンス」もね。
そしてその次の段階は「継承」と「多態」だ
がむばれよ〜
0675小僧、Java食っとけ!
NGNG買った人いる? ためになる? 感想聞かせてよ。
僕、初心者だから、あんまムズくなくても平気。
つーか、初級者から上級者まで使えるリファレンスなんですか?
早急に教えて〜。ほ。し。い。
0676Raguna
NGNG0677デフォルトの名無しさん
NGNGhttp://java.sun.com/j2se/1.3/ja/docs/ja/
http://java.sun.com/j2se/1.3/ja/docs.html
0678奥さん、名無しです
NGNGってないのかな?
0679デフォルトの名無しさん
NGNGいや、でも紙は画面と比べて断然読みやすいよ…
0680_gunzip
NGNGうちの教授はメールをプリントアウトして読んでるぞ。
「ふむ、こちらの方が読みやすい」って。
まあ、人に依るんだろうな。
俺も
>>677
>リファレンスに金使うヤツはアホ
これには賛成なんだが....
0681_gunzip
NGNGここ
http://java-house.etl.go.jp/ml/topics/topics.html#core-runtime
あと、ここに記事の載ってる、Jperlって、使っている人いるのかな?
http://www.ddj.com/articles/1999/9902/9902f/9902f.htm?topic=perl
(大本http://www.angelfire.com/in/sbm/)
0682名無しさん@お腹いっぱい。
NGNGGifアニメを表示させたんですけど、異様にちらつきます。
検索したところダブルバッファリングを使えばちらつきが解消するらしいですけど、
ImagePanel.javaをどういじればよいのか分かりません。
どうすればよろしいのでしょうか?
0683名無しさん@お腹いっぱい。
NGNG一番簡単なのは、ダブルバッファリングを標準で実装してる
SwingのJPanelつかうこと。
AWTならJHouseとかでダブルバッファリングのやり方説明
してたような。
0684682
NGNGレスありがとうございます。
ダブルバッファリングを実装していることを知りませんでした。
JPanelに画像を表示させる方法は良く分かりませんでしたが、
JLabelでダブルバッファOnにして、ImageIconを使ったらうまくできました。
ありがとうございました。
ところで、Win32Awtアプリケーションで、ImageIconを使おうとすると、実行時に
プロシージャエントリポイントがダイナミックリンクライブラリからみつかりませんでしたと
エラーが出るのですが、ネイティブアプリケーションでSwingが使えないことと関係があるのですか?
JTextLabelやJPanelだけだったら、実行できるのですが・・・。
0685初心者
NGNGありがとうございます。Runtimeというものが
あるんですね。早速ためしてみまして、
Javaから外部コマンドが起動できるようになりました。
(perlじゃなくて、exeファイルですけど。)
めでたしめでたし、と思っていたのですが、
今度はServletから外部コマンドを動かさないといけなくなりました。
Servletからだと、なぜか動きませんでした。
JavaHouseの過去ログに、原田さんの本に載っているとの
情報がありましたので、これからためしてみます。
それでは、ごきげんよう。
0686小僧、Java食っとけ!
NGNG今日届いてた。一生懸命使い回します。それじゃ!!
0687デフォルトの名無しさん
NGNGちなみにimode用のレファレンス2部計で250ぐらいのやつ印刷したら
大学の情報センターからお叱りを受けた
0688デフォルトの名無しさん
NGNGお前か今日「紙使いランキング」で張り出されてたやつうぁ !!
0689デフォルトの名無しさん
NGNGでいきなりアメリカ東部時間を出されても困る。
0690デフォルトの名無しさん
NGNGつーかそろそろJDK1.2/1.3対応に書き直して欲しい感じ。
0691デフォルトの名無しさん
NGNGsetOpaque(boolean);
では無理ですし....
0692デフォルトの名無しさん
NGNGちなみに1つ目のテーブルのデータはいじれるけど2つ目のテーブルがいじれない。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("org.iwatsuki.jec.JdbcEncodingConverter");
java.util.Properties info = new java.util.Properties();
info.put("user"@`"guest");
info.put("password"@`"guest");
info.put("charSet"@`"8859_1");
conn = DriverManager.getConnection(":jdbc:odbc:sati"@`info);
ちなみにこんなの使ってるんだけど。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNGログの表示にJTextArea使っているんですが、行末に来たとき、
自動的にスクロールさせるにはどうすればよろしいのでしょうか?
0696デフォルトの名無しさん
NGNGtextArea.append(text + "\n");
textArea.setCaretPosition( textArea.getText().length() );
0697デフォルトの名無しさん
NGNGめっちゃわかんないので教えてくださいませ〜!!
1、TextAreaにソケットから受け取った文字情報を記すとき。
TextArea(t2)に表示させるには、そのままt2.setText(getString)で
いいのでしょうか?
ちなみにgetStringの内容はBufferdReaderのreadLine()で読み取り済みです。
それともまたPrintWriterを設定して繋げないといけないでしょうか?
2、チャットで複数情報を渡す時
別のテキストフィールドからの情報を区別する方法ってありますか?
文字の送信の他に、名前とかも送りたかったんですが、どうやって送れば
いいのか……。
最初のソケットを繋ぐ時点で引数として渡して、それ以後はテキストの
送受信に専念させるのが無難でしょうか?
ちなみにサーバ側は、単に受け取った情報を全員に送り返すだけの仕様
にしています。
3、文章を追加する方法。
setTextだと次の文章を受け取ると前の分が消えてしまうのですが、
できれば通常のチャットのようにどんどん意見が追加されていく形に
したいのです。
どうすれば実現できるのでしょう? API仕様書とにらめっこしてText
Firldクラスとかio関係のクラスを読んでみるも、さっぱり発見できず。
addTextのようなメソッドってないものでしょうか? そもそもsetText
って本当に合ってるのでしょうか? (printlnが使えるならそっちを使い
たかったり)
ちなみに現時点では、setTextにしてて、一行ごとにリフレッシュされて
ます(泣)
ど、どうか教えてください〜(泣)
サイトか書籍でも助かります(書籍を探すもよくわからず)
0698デフォルトの名無しさん
NGNGざっと読んだだけで外してるかもしれんけど。
>1
試してみた?
>2
意味わからんかった。
CGIから受信したメッセージデータが、自分が送信したデータかどうかをチェックすると言うこと?
だとしたら、自分が送信したデータも送信時じゃなく受信してから表示するようにしてみ。
>3
TextArea#append(String)じゃ駄目?
0699697
NGNG>1
いえ、これからです(すみません)。
さんざん失敗しまくってて、どこが失敗の原因か自体わからず、
「根本的に間違ってるんじゃないか僕は?」と不安だったので
試すまえに書いてしまいました。
試してみます。(該当部分は、今日読んでた参考書の方法から推測
してみた方法ものです)
>2
いえいえ、ふつーに「名前とかってどうやって認識するん?」っていう
根本的な部分で引っ掛かってるだけです。
テキスト送る方法しかわからず。。。
>3
おお、なるほど!
さっそく試します。気づきませんでした。ありがとうございます!
0700697
NGNG「サーバーはそれを一字づつ返す」「使うのはreadメソッドとprintメソッド。
あとInputStreamとOutputStream」っていう原始的なアプリケーション(授業の
教材)を拡張してチャットを作ろうとしてて、途方にくれてる状態なのです。
「Systym.out.print()で表示してたモンを、どーやってGUIに表示するのさ!?」
「うがー! クライアントの読み取りだけBufferdReaderのreadLineに変えると読み
取りで不可解な動きが!? けどStrin以外をTextAreaに表示する方法はわからんし、
他にバイトストリームからStringを生成する方法は知らないし。。。やむをえぬ。
サーバーとクライアント双方をBufferdReaderとPrintWriterクラスを作って対応
しよう」
「。。。名前入力なんてどうやって処理するんだろ」
「新しい行を読むと前のが消えるよー(泣)」
こんな感じです。
ネットでも探したのですが、当時はソース見ても意味がわかんなかったので、
API仕様書とか参考書を読んで概念とか調べつつ。
(そのものズバリは見つけられず、意味を分析して、応用を試して...の段階です)
助言ありがとうございました! すごく助かります!!
また頑張ってソースと格闘してきます!!
0701697
NGNG「クライアントはDOS窓に打ちこまれた情報(文字)をサーバーに送り、サーバー
から返信された情報(文字)をそのまま表示する」です。
System.in.read() - out.write() - in.read() - System.out.print()
な流れなのが元プログラムです。
0702デフォルトの名無しさん
NGNG>原始的なアプリケーション(授業の教材)を拡張してチャットを作ろうとしてて
お、前向きだね。いいぞいいぞ。
サーバはCGIだと思ってたけど、Javaアプリケーションなのかしら?
だとしたら、汎用性のある(チャット以外の通信にも再利用可能な)方法として、
オブジェクト送信用キャリアークラスを作って通信する方法があるぞ。
で、オブジェクトには利用者名と会話データを入れておくのだ。
これだったら「お絵かきチャット」みたいなのも実現可能だ。
……ちょっといまやろうとしてることからは外れるかな?(w
0703698
NGNG>>699
>ふつーに「名前とかってどうやって認識するん?」っていう
>根本的な部分で引っ掛かってるだけです。
>テキスト送る方法しかわからず。。。
送るのがストリング型だけなんだったら、
「名前+セパレータ+本文」として送ってStringTokenizerで切り分けるのが
簡単では?
それから書き忘れてたけど、702も698ね。
0704697
NGNGおお、即レス!
はい、サーバーに使ってるのはJAVAアプリです。
(CGIでもできるのですか? CGIもパケットも初めてです)
>オブジェクト送信用キャリアークラス
うおう、面白そうです!
キャリアークラスの意味がよくわからないのですが、それってObjectStreamとかを
使ってオブジェクトを配列で送る方法でしょうか? (今慌てて調べました)
なるほど、そうやって描画データと送信者名と会話データを送れば「お絵かき
チャット」とかも実現できるわけですね。
(このオブジェクトの切り分けるのでしょうか?)
>送るのがストリング型だけなんだったら、
>「名前+セパレータ+本文」として送ってStringTokenizerで切り分けるのが
>簡単では?
おお、なるほど!
そっかー、StringTokenizerなんてものがあったんですね。そのときは意味わかり
ませんでした。こういうのに使うんですね。
ありがとうございますっっ♪
0705697
NGNGなるべく本文で使われない文字がいいと思うのですが(空白や*は多用されそう
なので)、「お約束」「一般にはこの文字を指定する」などがあれば、ぜひ。
0706奥さん、名無しです
NGNG0707695
NGNGレスありがとうございます。キャレットを使う方法ですね。
試してみましたが、うまく動きませんでした。
他の方法を探してみます。
>>697
私も以前Telnetアプリケーションを作っていたときに、バイトストリーム
をString型に変換する方法で躓きました。
型変換の方法は、String str = new String(buff@` "eucjp");でございまする。
0708695
NGNG0709デフォルトの名無しさん
NGNGJFCアプリケーションにJTextAreaを配置して、実行してみました。
Win2kのタスクマネージャを開いていて気付いたのですが、JTextAreaにキャレット
があるとき、java.exeのメモリ使用量が減ることなくどんどん増えていっています。
現在、メモリ使用量が50MBを突破。どーなってんの?
これは何か、プログラム的にメモリの開放が必要なのでしょうか。
それとも、JAVAの仕様なので仕方がないのでしょうか?
0710696
NGNGJTextArea textArea = new JTextArea(8@` 40);
JPanel panel = new JPanel();
JScrollPane textAreaScrPane = new JScrollPane(textArea);
panel.add(textAreaScrPane);
という風に JScrollPane を textArea に張り付けてから、
textArea.append(text + "\n");
textArea.setCaretPosition( textArea.getText().length() );
でもダメかな?
↑のコードは自作チャットアプリ ( swing使用 ) のコードから
抜粋してるからイクはずだよ。
もし良かったら、あなたのソースを一部書き込んでみてちょ。
ミスがあったら添削するよ。
0711質問厨房
NGNGOutputStream系のクラスにある
flush()メソッドって何の意味があるんですか?
別に使わなくても正しく処理されるような気がするんですが。
0712デフォルトの名無しさん
NGNGなくちゃ駄目だ!
確かにStreamはcloseすれば勝手にflushしてくれるので
必要性に疑問を抱くかも知れないが、
例えばSocket通信を行ったときとかにその必要性を痛感する。(ハズだ)
0713695
NGNGあ、なるほど。JScrollPaneというものがあったんですね。
バッチリ動きました。感謝感謝です。
ありがとうございました。
0714デフォルトの名無しさん
NGNGflush()もclose()も必要。確かに使わなくても動くかもしれない。
しかし、その辺のストリームは入れ子にして使う場合が多く、途中
のストリームに712の言うソケットや、バッファが使う可能性もあ
るから。自分でInputStream/OutputStreamのサブクラスを作る場合
も考慮。
0715デフォルトの名無しさん
NGNG(正確にいうと逆アセンブルされてメソッド名とか見られたくない)
なにか方法ありますでしょうか
0716名無しさん@お腹いっぱい。
NGNG暗号化しておいて、使う時は復号してからClassLoaderで
動的ローディングとかはだめ?
0717714
NGNGオブファスケータ obfuscator というプログラムは、jarファイルの
中にあるクラスのクラス名やメソッド名HogeHogeを aとかbといった
意味不明の短い記号に置き換えます。
逆アセンブルされてもどこでどのような処理がされているのかわかりま
せん。jarのサイズも小さくなります。しかし、例外が発生した際、ど
こでどのような例外が発生したのかわからなくなります。
0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNGg.fillRect(x@`y@`w@`h);
のように、ColorクラスのsRGBをアプレット内で使ったものを
appletviewerで動かすと問題無く、半透明になるのですが、
ブラウザ上(IE5)で実行するとNoSuchMethodErrorが出て止まってしまいます。
ブラウザ上で半透明を実現する方法は、あるのでしょうか?
0721デフォルトの名無しさん
NGNGinstanceof?
0722718
NGNGアリガトー。
0723719
NGNG720さんありがとうございますー。
なるほど、するとこれはブラウザ側の未対応なようですね。
おそらくJREというのを入れれば見れるようになる。ということでしょうか。
でも、JREプラグインを入れてまで見てくれるほどの、
気合の入った閲覧者はあまりいないと思うので、使わないのが無難ですね。(HP展示用としては)
ところで、質問のついでに聞きたいのですが、APIのバージョンは調べる方法はあるのでしょうか?
半透明については、ちょっと調べたのですが、フィルタを使うという方法があるようですね。
それでなんとかブラウザでも、表示できましたが、
遅い事この上無いし、いまいち網掛けっぽくなっていけないですね。
0724714
NGNGjava.lang.System#getProperty("java.version")
じゃないかな。
1.1ベースでも、自前のフィルタ使えば、半透明でも網掛けでも可能
でしょう。ここ数年アプレット作ってないから覚えてないけど。
0725デフォルトの名無しさん
NGNGhttp://developer.java.sun.com/developer/bugParade/bugs/4098505.html
↑こういう色化けバグが存在するので知らないとハマルかもよ。
1.1.7以降なら直ってるらしいが、現バージョンのNC4.x、IE4.x、5.0では再現することを確認。
(IE5.5については未確認)
気をつけられたし。(←かつてハマッた奴)
0727715
NGNG早速検索して RetroGuard なるものをDLしました
実行したところ a.class b.class ・・・となり、
結果は上々です^^、
0728デフォルトの名無しさん
NGNGhttp://www.bulldog.co.jp/とかで、ソースを探しましたが、ありませんでした。
0729デフォルトの名無しさん
NGNGそれくらい自分で組め!
0730デフォルトの名無しさん
NGNGディゾルブのアルゴリズムってどんなん?
0731714
NGNGる奴?
0732デフォルトの名無しさん
NGNG0733714
NGNG(2)配列の要素に、インデックスと同じ数値ををセットする a[i] = i;
(3)ランダムに選んだ二つの配列の値を入れ替える。適当回数繰り返す。
v = a[r1]; a[r1]= a[r2]; a[r2] = v;
(4)a[0]から順番に、配列の要素が指し示す位置のドットを、次の画面の色に
塗り替える。
あ、通じた?ごめんもう眠い。
0734デフォルトの名無しさん
NGNG0735715
NGNGすいません、せっかくレス頂いたのに気づきませんでした、、
ありがとうございました。
0736デフォルトの名無しさん
NGNG0737でふぉるとのななしさん
NGNGと、独習java(p9)に書いてあるんですが。
”クラスそのものに関連付けられている。”の意味がいまいち不明。
どのような意味なんでしょう?
0738デフォルトの名無しさん
NGNGクラスファイルは、メモリ上のクラスファイルロード領域にロードされ、
その後インスタンス生成要求が有るたびにそのロードされている
クラスファイルのデータを元にメモリのヒープ領域にクラス
インスタンスが生成されるっすよ。
で、インスタンスメソッド、インスタンスフィールド(非static)は、
インスタンスの領域の中に作成されるけど、
クラスメソッドやフィールドと呼ばれるstaticメソッド、フィールドは
インスタンスの中には作成されず、唯一一個だけクラスファイルロード
領域内の、該当するクラスファイルデータ領域の中にあるっすよ。
分かる?
0739デフォルトの名無しさん
NGNG沢山生成されると考えるといいかも。
0740デフォルトの名無しさん
NGNGこれって何のためにあるんですか?
クラスパスに目的のクラスが入ってたら、特になにもしなくても
そのクラスを利用できるわけじゃないんですか?
0741デフォルトの名無しさん
NGNG視点をダイナミックに持とう。
0742デフォルトの名無しさん
NGNGクラスパスに入ってなくても呼べる。ネット越しにでも呼べる。
共有サーバから呼べる。
0743でふぉるとのななしさん
NGNG>staticメソッド、フィールドは
>インスタンスの中には作成されず、唯一一個だけクラスファイルロード
>領域内の、該当するクラスファイルデータ領域の中にあるっすよ。
って言うのが、クラスオブジェクトって事ですか?
作られる領域が違うって事はわかるんですが・・・・
>staticメソッド、フィールドは
>インスタンスの中には作成されず、唯一一個だけクラスファイルロード
>領域内の、該当するクラスファイルデータ領域の中にあるっすよ。
唯一一個とは、static宣言されているmainの事ですか?
0744740
NGNG存在意義はなんとなくわかったのですが、
try
{
Class.forName("org.postgresql.Driver");
}
catch(ClassNotFoundException ex)
{}
この場合、Class.forName("org.postgresql.Driver");
を実行したことによって、具体的にVM上で何が変化するのでしょうか?
0745743
NGNG申し訳ないですが、宜しくお願いします。
0746デフォルトの名無しさん
NGNG自作のソフトでプラグイン対応させたいと思いねえ。
将来作成されるであろうプラグインのクラス名(&パッケージ名)を
すべてあらかじめソースに記述しておくことは出来ないっしょ?
あと、JBuilderとかJavaでできたRADツールもユーザーが作ったHogeだの
Fooだのいろんな名前のクラスにアクセスしなきゃ
いけないだろうし。
実行時にロードするクラス名を動的に決められるといろんなことが
できるなり。
0747デフォルトの名無しさん
NGNG引数で指定したクラスファイルがメモリ上のクラスファイルロード領域
にロードされる。
そうなればインスタンス生成もstaticメソッドアクセスもやりたい放題。
0748デフォルトの名無しさん
NGNG言葉の意味としては、インスタンス=オブジェクトが普通なので、
その言い方は変な気がするけど、そういうことでOK。
0749名無し
NGNGimport java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Othello4 extends Applet implements MouseListener{
int width=50;
int height=50;
int i@`j@`i1@`j1;
int x@`y;
int turn=1;
int piece[][];
public void init(){
setBackground(Color.green);
addMouseListener(this);
piece=new int[8][8];
for(i=0;i<=7;i++){
for(j=0;j<=7;j++){
piece[i][j]=2;
System.out.println(piece[i][j]+"("+i+j+")");
}
}
}
0750名無し
NGNGfor(i=0;i<=8;i++)
for(j=0;j<=8;j++){
g.setColor(Color.black);
g.drawLine(i*width@`0@`i*width@`400);
g.drawLine(0@`j*height@`400@`j*height);
}
piece[3][3]=piece[4][4]=0;
g.setColor(Color.black);
g.fillOval(50*3+5@`50*3+5@`40@`40);
g.fillOval(50*4+5@`50*4+5@`40@`40);
piece[3][4]=piece[4][3]=1;
g.setColor(Color.white);
g.fillOval(50*3+5@`50*4+5@`40@`40);
g.fillOval(50*4+5@`50*3+5@`40@`40);
}
0751名無し
NGNGGraphics g=this.getGraphics();
//
if(y!=0)
if(piece[x][y-1]==1){
for(j=y-1;j>=0;j--){
if(piece[x][j]==0||piece[x][j]==2)break;
}
System.out.println(x+"("+j);
if(piece[x][j]==0){
for(j1=j+1;j1<=y;j1++){
piece[x][j1]=0;
g.setColor(Color.black);
g.fillOval(50*x+5@`50*j1+5@`40@`40);
}
}
}
0752名無し
NGNGif(piece[x+1][y]==1){
for(i=x+1;i<=7;i++){
if(piece[i][y]==0||piece[i][y]==2)break;
}
System.out.println(i+"@`"+y);
if(piece[i][y]==0){
for(i1=x;i1<=i-1;i1++){
piece[i1][y]=0;
g.setColor(Color.black);
g.fillOval(50*i1+5@`50*y+5@`40@`40);
}
}
}
0753むぎ茶
NGNG0754名無し
NGNG....................................................................
if(x!=0&&y!=0)
if(piece[x-1][y-1]==0){
for(i=x-1@`j=y-1;i>=0&&j>=0;i--@`j--){
if(piece[i][j]==1||piece[i][j]==2)break;
}
System.out.println(i+"@`"+j);
if(piece[i][j]==1){
for(i1=x@`j1=y;i1>=i+1&&j1>=j+1;i1--@`j1--){
piece[i1][j1]=1;
g.setColor(Color.white);
g.fillOval(50*i1+5@`50*j1+5@`40@`40);
}
}
}
}
0755名無し
NGNGx=e.getX();
y=e.getY();
x=(int)(x/50);
y=(int)(y/50);
int Bsum=0;
int Wsum=0;
System.out.println("("+x+"@`"+y+")");
System.out.println("turn="+turn);
if(turn%2==1){
System.out.println("NOW Black!");
BValid(x@`y);
}
else if(turn%2==0){
System.out.println("NOW White!");
WValid(x@`y);
}
for(int i=0;i<=7;i++){
for(int j=0;j<=7;j++){
if(piece[i][j]==0){
Bsum=Bsum+1;
System.out.println("Bsum="+Bsum);
}
else if(piece[i][j]==1){
Wsum=Wsum+1;
System.out.println("Wsum="+Wsum);
}
}
}
turn++;
}
public void mouseReleased(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
}
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNGついでに言うと、設計最悪。OOPちっとは勉強しろ。
0759728
NGNGディゾルブのアルゴリズム解説ありがとうございました。
ぼんやりとイメージができてきました。
ランダムに1枚目の画像と2枚目の画像のピクセルを入れ替えていけばいいんですよね?
試してみます。
ただ、アニメーションGifの画像をディゾルブ処理をするとどうなるのか疑問です。
0760デフォルトの名無しさん
NGNG私も、JAVAでチャットを作っているんですが、皆さんはメモリの処理はどうしていますか?
何もしなくてもメモリの使用量が増えるだけで一向に減る気配がありません。
System.gc();コマンドでテキストの送信のたびにガべージコレクションを行っているんですが
あまり効果が出ませんです。(400KBくらい減って、一瞬でまた増える)
OSがW2Kなので落ちたことはありませんが、JAVAではメモリを気にする必要は本当にないんでしょうか?
0761714
NGNGポイントは、
(1)開いたストリームをclose()で閉じているか。
(2)閉じたFrame@`Dialog@`Windowをdispose()しているか。
(3)取得したImageをflush()しているか。
こんなところをチェックしてみてください。(1)-(3)はJavaから見ると外部のリソ
ースですから、ガベージコレクションで勝手に捨てられることはありません。
0762714
NGNG>疑問です。
え?これはアニメーションを再生中にということ?アニメーションを
再生しているのはJavaじゃないよね?ごめん僕もよくわからないや。
0763でふぉるとのななしさん
NGNGゆっくり考えをまとめてみたら、理解できました。
有り難うございます。
738@`739@`748さん。
ありがとぅ!!
0764デフォルトの名無しさん
NGNGその作業をしているのですが、使われてないメソッドとかクラスとかを
削除していくには人力によるテスト以外ないのでしょうか。
実行中に一回も使われないメソッドやクラスを調べる方法
ありませんか?
0765デフォルトの名無しさん
NGNGコンパイラの警告レベル上げてみれば?
JAVAコンパイラはリンカで未使用ルーチンを弾いたりしないの?
gccは使ってないって警告してくれるので便利なんだけど。
0766デフォルトの名無しさん
NGNGつーか、プログラマなら参照元を調べるツールぐらい作れよ。
0767デフォルトの名無しさん
NGNGいわゆるObfuscatorと呼ばれる製品群を試してみましょう。
0768デフォルトの名無しさん
NGNGていうか、そもそもJavaにはリンクなんて概念がないしぃ。
0769714
NGNG764は、ソースレベルでの最適化を求めているのではないかな。
それは多分コードのメンテナンスやテストのため。
0770デフォルトの名無しさん
NGNG0771>764
NGNG0772デフォルトの名無しさん
NGNGint age;
Person(int age) {
this.age = age;
}
}
class Javatest {
public static void main(String args[]) {
String s1 = "p1";
Person p1 = new Person(44);
System.out.println(s1.age);
}
}
s1にp1という文字列を代入しておいて変数展開をして
p1クラスのメソッドを使用しようと思ったのですがうまくいきません。
どうやったら変数展開をしようできるようになりますか?
0773_gunzip@Java初心者
NGNGSystem.out.println(s1.age);
ぢゃなくて、
System.out.println(p1.age);
ぢゃないの?
....という問題ではなくて、こういう場合、HashMap使うんでないの?
#ageを「あげ」と読んでしまう.....鬱だ
0774_gunzip@Java初心者
NGNG取り消し。(恥ずかしいなあ)
0775772
NGNGこのs1にp1が代入してあるのでperlみたいに$s1 って感じで
変数展開できないかとおもったのでこれであってます
0776>>772
NGNGムーリー(;´Д`)
コンパイラに無茶さすなや
0777名無しさんダーバード
NGNG出来ると思うよ。java.lang.Classや、java.lang.reflect.Field
あたりを見よう。
0778名無しさんダーバード
NGNGpublic int age;
Person(int age) {
this.age = age;
}
}
public class Javatest {
public Person p1;
public static void main(String args[]) {
Javatest test = new Javatest();
try {
test.doTest();
} catch (Exception ex) {
ex.printStackTrace();
}
}
Javatest() {
p1 = new Person(44);
}
private void doTest() throws Exception {
//String s1 = "p1";
//System.out.println(s1.age);
Class clazz = this.getClass();
Field f = clazz.getField("p1");
Person p2 = (Person)f.get(this);
System.out.println(p2.age);
}
}
0779デフォルトの名無しさん
NGNGC/C++ならcflowとかcxref、cscopeなど色々あるようだけど。
多分JAVAも探せば見つかるでしょう。
なければcflowとかを改造すれば良いでしょ。
0780デフォルトの名無しさん
NGNGなんかJDKがちゃんとリコンパイルしてくれません。
それで一旦クラスファイルを消してから、
再びコンパイルすると、うまくいきました。
これっていうのはJDKのバグなんでしょうか?
環境:
JDK1.3.0
Win98SEのDOSプロンプトよりJAVACでコンパイル
0781デフォルトの名無しさん
NGNG0782780
NGNG予想:
JDKは変更点だけをコンパイルするが、何らかの原因で、
変更した事に気付かなかった?
追記:
あ、あと、このクラスはメインの関数から呼び出されたクラスの中から、
さらに呼び出されるクラスです。
0783デフォルトの名無しさん
NGNGリファレンスより引用。
>>検索結果にソースファイルとクラスファイルの両方がある場合、javac は、クラスファイルが古くなっているかどうかを調べます。クラスファイルが古くなっている場合は、ソースファイルを再コンパイルし、更新後のクラスファイルを使用します。それ以外の場合は、見つかったクラスファイルを使用します。
つまり、class A@`B@`Cとあって、AがBを参照し、BがCを参照するような構造の場合、Cが変更されてもそのCを参照してるBのクラスファイルが古くなっていない(つまりBのソースが更新されていない)場合、クラスCはリコンパイルされない。
っちゅー事だ。素直に*.javaをコンパイルしたまへ。(藁
0784780
NGNGなるほど。謎が全てとけました。ありがとうございます。
コンパイル関連でもう一つ質問したいのですが、
コンパイル時のエラーメッセージを読む事はできますか?
普通のDOSコマンドなら「command > log.txt」でリダイレクトできますが、
javacは何故か出来ないので。
0785デフォルトの名無しさん
NGNGjavacはstdoutじゃなくてstderrにメッセージ吐いてんじゃないの?
だから其の辺を何とかすれば。
0786783
NGNGjavac -J-Djavac.pipe.output=true TestString.java > cm.log
つーか、一回リファレンスと
JavaHouseのトピックスに目を通したほうがいいよ…。
0788>764
NGNGWindows2000にしましょう。
スクロールバーつき、コピー&ペースト可能の
素晴らしいコマンドプロンプトがアナタを待っています。
レジストリいじればTABキーのファイル名補完もできるよ!
0789デフォルトの名無しさん
NGNGDOS全部は無理でもアリプの実行と標準入出力の制御くらいは作れるぞ!
0790デフォルトの名無しさん
NGNGそれJDK1.3から使えない
oldjavac使えばできるけど
0791デフォルトの名無しさん
NGNG出力先を変更する話は既出(きしゅつ)です。
cmd.exe(WindowsNT/2000のシェル)なら,入出力ストリームのリダイレクションが
できるのでそれを使います。具体的にはコマンドの末尾に 2>&1 というおまじないをする。
(と,Windowsのオンラインヘルプに書いてある。)
例えば
javac filename >log 2>&1
とします。
あるいは Javaコンパイラに oldjavac を使うのなら -Xstdout オプション
が使えます。このオプションを指定すると,stdout にエラーメッセージ
が出力されます。
つまり
oldjavac -Xstdout filename
など。
0792783
NGNGうわっ、ホントだ、気付かなかった…。(汗)
フォローサンクスです。
それじゃCygwinかなんかで他のシェルを使うか、
それともSystem.setErr(System.out);を使うか…?
うわっ、もしかしてこっちも駄目になってるって事は無いよなぁ…。(汗)
0793>791
NGNG0794デフォルトの名無しさん
NGNG0795Java原理主義者
NGNG-logfile <file>でファイルにログ取れる
-emacsでタグジャンプもOK
http://www.ingrid.org/jajakarta/ant/ant-1.2/docs-ja/
Javaマンセー
0796デフォルトの名無しさん
NGNGでいいと思ふ。
0797>796
NGNG0798デフォルトの名無しさん
NGNG一番困るのがこの辺なんだよな。
0799デフォルトの名無しさん
NGNGJBuilderFoundationとかのツールも
一緒に紹介すれば問題ないでしょう。
0800760
NGNGレスありがとうございます。返事が遅くなってすみません。
(1)〜(3)のこと、知りませんでした。おかげさまで大分改善したみたいです。
ところで、flushはImageのキャッシュを開放する命令ですよね?
JLabelにImageIconでImageを表示している場合に、flushをする方法について調べてみたのですが、
よく分かりませんでした。
JAVAハウスで、メモリ開放関連の記事でこうありましたが、
「JInternalFrameを使って、どんどんFrameを作成していたわけですが、
前画面にもどる際にdisposeすると同時に、親のJDesktopPaneから
removeしていなかった為に、
レイヤーのインデックスがどんどん増えていってしまっていたみたいです。」
removeという命令は必要なものなのでしょうか?内容がいまいちよく理解できません。
0801デフォルトの名無しさん
NGNGgetEncoding()までは分かったのですが・・・
0802714
NGNGInputStreamReader#getEncoding()のことですか?これはInputStreamReader
オブジェクトが変換の際に利用する文字コードの取得ですよね。
私が知る限り、文字コードが未知のファイルのエンコーディング名
を取得するAPIはない。私も知りたい。
エンコーディング名を指定する箇所にJISAutoDetectと指定するこ
とで自動的に判別してエンコードしてくれるが、入力によって間違
う可能性がある。従って、私は自前で判別クラス(日本語限定)を
書いて使っています。
間違っているかもしれない。私は新しいJDKで仕事してないので。
未だに業務は1.1なので鬱氏。
0803714
NGNGJInternalFrameは使ったことがないので間違っているかもしれないけれ
ども、これは、java.awt.Windowクラスのサブクラスではない。だから
peerに依存してないので、disposeしていないからといってメモリが開
放されないということはないと思う。
Imageのflushは、僕の説明が間違っていて、さらに足りなかったん
だけれども、flush()する必要のあるImageオブジェクトは自分で取
得したイメージであって、他の誰かが取得したリソースに関しては
知る必要はないんじゃないかな。使った奴が捨てろ。
ここまで書いて、私はImageとGraphicsをごっちゃにしていると多分
思う。Graphicsも自分で取得したら捨てる必要があるはず。
0804デフォルトの名無しさん
NGNG1: InputStreamReader KBD=new InputStreamReader(System.in);
2: BufferedReader number=new BufferedReader(KBD);
3: System.out.print("数値を入力して下さい= ");
4: System.out.flush();
5: String line=number.readLine();
6: x=Double.valueOf(line).doubleValue();
こんなサンプルを見つけたのですが
4行目のout.flushとは一体何の役目をしているのでしょうか。
0805デフォルトの名無しさん
NGNGをフラッシュしているのさ。
コレをしないと書き込みバッファにたまるばっかりで
("数値を入力して下さい= ")がいつまでたっても出力されないかもね。
0806デフォルトの名無しさん
NGNGpublic void zzz();
}
と
public interface hoge {
void zzz();
}
の違い教えて。
可読性?
インタフェースは勝手にpublic付けるよね?
0807デフォルトの名無しさん
NGNGないんじゃない?
Cの関数宣言にexternつけるようなもんでそ
0808デフォルトの名無しさん
NGNGメンバは勝手にpublic static finalになるらしい。ちょっと賢くなった。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG金があるならRose。ないならArgoUML。
必ずしもおすすめはしないのでsage
0812薔薇は美しく散る
NGNG隣で使ってるけどさ。Rose。
0813
NGNG0814引っ越し
NGNGどんな意味があるんでしょうか?
厨房質問ですみません。
0815デフォルトの名無しさん
NGNGクラスローダー自作したりORB作ったり
IDEとかBeanツール作ったりデバッガ作ったりとかそういう裏方で
使ったりする。
要するにJavaのクラスそのものをごにょごにょしたいときに
処理対象のクラスはクラス型の変数に入れるわけ。
普通のプログラムではスタティックメソッドの中で
synchronizedブロック書くとき重宝するくらい?
0816java超初心者(引越し)
NGNGサブクラスで行うのと、宣言をサブクラスで行
い、インスタンスをサブクラスで行うのとでは
どのようなことが変わってくるのでしょうか。import java.lang.*;
class SuperClass{}
class SubClass extends SuperClass{}
public class Test{
public static void main(String args[]){
SuperClass obj = new SubClass();
}
}
(上記コードのなかの
SuperClass obj = new SubClass();
とした場合と
SubClass obj = new SubClass();
とした場合です)
よろしくお願いします。
0817デフォルトの名無しさん
NGNGSuperClassのサブクラスがSubClass1@`SubClass2@`SubClass3@`@`@`
みたくたくさんあるときでも使う側から見れば十束ひとからげで
SuperClass一種類だけ扱えばすむのさ。
(あとSubClassをあとでこっそり入れ替えたりとかね)
詳しく説明するのがめんどいので
ポリモーフィズム(多態)で検索するか
オブジェクト指向の本でもよんで勉強してくれ
0818java超初心者(引越し)
NGNGご回答ありがとうございます。
早速検索して調べます。
0819デフォルトの名無しさん
NGNG.
.
のようにアプレットを使って
FileWriterなどのファイル処理は使えないと言われたんですが
どうにか出来る方法ってありませんか?
0820デフォルトの名無しさん
NGNG理論上は可能。具体的なやり方はしらない。
->JavaHouseで検索すればいっぱいでてくるんじゃない?
つかトロイでも送り込むつもり?
0821819
NGNGありがとうございます。
簡単なプログラムを作っているんですけど、
入力された文字列をテキストファイル経由で別のクラスに送ろうとして
出来なかったので質問しました。ウイルスなんてそんなスキル全然ないです、、
ローカルでやっててもブラウザ使ってたら同じですよね?やっぱり、、
0822デフォルトの名無しさん
NGNGローカルでなんかやるだけならアプレットなんかつかわんでも
アプリケーションにすればいいじゃん。
初心者だと知らないことがよくある事実。
「Javaでアプリケーションが作れます」
(本屋に売ってる初心者本よ、いい加減Appletから入るのやめれ)
0823デフォルトの名無しさん
NGNGやっぱりAppletのアニメーションをチョコチョコッとやって終わりと
ゆう本は駄目ですか?
0824デフォルトの名無しさん
NGNG一日でつかえるようになったよ。
0825デフォルトの名無しさん
NGNG1.GUI部のTextFieldで、例えば「あいうえおお」と入力し、改行する。
2.通信担当クラスのパケット送信部、String型の配列sendtextに「あいうえおお」が格納される。
3.getBytesでByte型に変換してbufferに格納する。
4.パケットの送信⇒パケットの受信
5.パケット受信部でByte型をString型に変換し、TextAreaに表示する。
するとこの場合、受け取ったデータは「あいう」だけになってしまいます。
Byteコードが1byteなので、日本語の2byteをうまく理解できないみたいですが、どうすればよろしいのでしょうか?
ちなみに、5文字とか文字数が奇数のデータを送ろうとすると何も表示されません。どなたかご教授ください。
// パケット送信部
public void newsendmsg(String sendtext){
try{ // 送信
int n = sendtext.length();
for(int i = 0;i < n;++i){
buffer[i+nameLength] = (sendtext.getBytes())[i];
}
if(n > 0){
DatagramPacket dp = new DatagramPacket(buffer@`n + nameLength@`chatgroup@`port) ;
soc.send(dp@`TTL) ;
}
}catch(Exception e){エラー処理}
}
0826825
NGNG0827デフォルトの名無しさん
NGNGint n = sendtext.length();がおかしい。Stringに対して、
lengthを取得してもしょうがない。
int n = sendtext.getBytes().length;を試してみたら。
0828デフォルトの名無しさん
NGNG何でそのまま渡さないで、新しいarrayに一バイトずつコピー
するなんて妙なことしてるのでしょうか?
bufferの先頭に別の文字列をしまってるだけなら、
Stringを+で連結してからまとめてgetBytes()で
いいんじゃないの?
buffer[0]〜[nameLength]って何がはいってんでしょうか
0829825
NGNG無事に日本語が表示されました。
おかしかった理由はよく分かりませんが、ありがとうございました。
>>828さん
ありがとうございます。
私はいつもプログラムに無駄が多いと言われています。
教えていただいたとおりに修正したところ、ずいぶんとすっきりしました。
勉強になりました。
0830デフォルトの名無しさん
NGNG1つのソケットで読み込みと書き込みを同時に行うことってできますか?
読み込みと書き込みを別のスレッドで行うようにした場合、状況によっては同時に読み書きが起こる可能性もあるんですが。
ソケットって完全な双方向通信って可能なんですか?
0831デフォルトの名無しさん
NGNGOutputStreamを取得するメソッドの両方があるでしょ?
それで試してみたらいいじゃん。
0832デフォルトの名無しさん
NGNGHTTP_USER_AGENTがカエラレナイヨー
自作の串チェッカがJDK1.3ってバレバレだよー
なんかかっこわるいよー(ワラ
0833デフォルトの名無しさん
NGNGアプリを配布したいのですが、見栄えが悪いので・・・。
フリーのアイコン書き換えツールを色々と試してみましたが、
あらかじめアプリケーションの中に組み込まれているアイコンしか書き換えられないんですよね。
ショートカットを作って、アイコンを設定するしか方法がないと思うんですけど、
実際どうなんでしょうか?
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNG他の項目の選択を行うと、変更した内容が消えてしまいます。
変更した内容を0番目に新しく追加するという方法なら、書籍を調べてわかりましたが、
追加でなく上書きをするにはどうすればよろしいのでしょうか?
0836_gunzip
NGNGFrameクラスのsetIconImage(Image image)ではどうですか?
具体的には、
setIconImage((new ImageIcon("IMAGE_PATH")).getImage());
のように使えばいいと思います。
0837デフォルトの名無しさん
NGNGtype="file"
で、ファイルアップロードの機能をつくりました。
現在UPするファイルのサイズ制限をサーブレット側で
チェックしてるのですが、これをJavaScript上で処理したいです。
そういうことは可能なのでしょうか?
現在の調査結果では対処が見付かっていません。
ブラウザはIE5.0、NetScape4以上です。
0838デフォルトの名無しさん
NGNG誰か助けて!
0839まじれす
NGNG0840デフォルトの名無しさん
NGNG誰か助けて!
0841まじれす
NGNG0842デフォルトの名無しさん
NGNGJAVAの技術よりも、アルゴリズムが分からないと言っているように聞こえるのですが。
過去ログメニューに「ムッチンプリンのお姉さんが宿題を教えてあげます」スレがあるから、
そこで聞いてみたら?
0843デフォルトの名無しさん
NGNGKスクエアあたりで、金払って買え。
0844デフォルトの名無しさん
NGNGクラスファイルを取り除くツールはありませんか? その機能をもつオブファスケ
ータでもよいです。
0845デフォルトの名無しさん
NGNG0846819
NGNGデータの書き出しに付いて聞きまして、
結局アプレットをやめて、フレームでやる事にしました。
そこで、二つのフレームを作り、
片一方のフレーム(A)からもう一方のフレーム(B)を呼び出して
(B)でテキストファイルを保存しようと思ったんですが出来ないんです。
(B)単体ではちゃんと保存できるのですが、、
PrintWriterでは出来ないのでしょうか?
0847デフォルトの名無しさん
NGNGデータの参照がAにあるなら、Bで保存のイベントが起きたときにAに通知
→Aが所有しているAのテキストデータをファイルへ保存、とかかな。
あと、Javaのテキストのストリームって、FileならFileWriterでストレージに
書くんじゃないのでせうか?
0848819
NGNGただ単に(A)も(B)もmainがあったからうまく行かなかったみたいです。
3時間も考えて先生に聞いたら5分で終了。ちっと激鬱気味です、、
>>847さん
レスありがとうございました。
PrintWriterの方がデータ型を区別しないんで楽かな?と思い使ったんですが
FileWriterの方がいいのでしょうか?
0849デフォルトの名無しさん
NGNG巧くいかない理由が多分勘違いだと思うが…
BにAへの参照を渡せれば別にmainが両方にあろうが関係ない。
AはBをどうやって呼び出してんだ?
Aが自分でBをnewしてshow()すればいいだけだよね?
あとPrintWriterってプリンターへの出力ストリームだと思うんだけど。
意図したとおりに保存できるならどうでもいいが。
0850819
NGNG遅レスすみません。
>Aが自分でBをnewしてshow()すればいいだけだよね?
そうしてました。それで、単体で動くBのshow()を消しただけだったんです。
さらにmainを消したら動くようになったんですけど、、
具体的に書くと、、
public class MyInputFrame extends Frame{←これがBです
TextField txt_0@`txt_1;
Button btn_0@`btn_1@`btn_2;
static FileOutputStream fo;
static PrintWriter fop;
public static void main(String args[]){
//MyInputFrame my =new MyInputFrame();
//my.show();←呼び出される側になる時、消しました
} 単体で動かす時用です
MyInputFrame()throws java.io.IOException{
super("Menu");
・
・
としててWriterとかclose()とかが動かなかったんですが、
public static void main(String args[]){
の部分を消したらうまく行くようになりました。
別の理由でうまく行くようになったんですかねぇ、、分からないデス、、
長くなってスミマセンでした
0851819
NGNG以後気を付けます。
0852844
NGNGなかなか目的に合うものがないです。もしよかったらURL教えてください。
0853デフォルトの名無しさん
NGNGそこだけみても分からん。ソース全部どこかに上げてくだされ。
0854819
NGNG今まで学校で上げれませんでした。
一応あげて見ました。馬鹿さっぷりを笑ってやってください。
フレーム(A)・・・(B)を呼び出します。レイアウトもなにも無いです
http://members.tripod.co.jp/kokoro_korokoro/InFrame.java.txt
フレーム(B)・・・(A)から呼ばれて出てきます。入力したものを保存
http://members.tripod.co.jp/kokoro_korokoro/MyInputFrame.java.txt
(B)のコメント化しているところ(8〜11行)を外すと単体で実行できました。
main〜 の行(8行)を残してしまうと、(A)に呼び出された時、保存関係が動きませんでした。
main〜 を消すとうまくいきました
0855デフォルトの名無しさん
NGNGどうでもいいが、java.awt.Component.action()は
JDK1.1以降でdeprecation(要するに超時代遅れ)だが。
そんなコーディング誰が教えてんだ?何処のガッコ???
0856819
NGNG学校は、、まぁ、、その辺の学校です。
JAVAの勉強始めたばっかりなので図書館にあった本の
サンプルプログラムをいじくってる状態なんです。
確かに結構古い本だったんで時代遅れなんですね。
C(++ではなく)をやってたので少しは解るんですけど、
中身より表示関係で時間食われてます。
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG>>855
> どうでもいいが、java.awt.Component.action()は
> JDK1.1以降でdeprecation(要するに超時代遅れ)だが。
俺の研究室の奴はみぃ〜んな古いイベントモデル使ってますよ。
GUI と言えば何故かアプレットだし。
学校にある本が4、5年前の java が流行りだした時の本ってのがかなり有害だったりしますね。
0859デフォルトの名無しさん
NGNG「JAVAのからくり」(個人的に俺は好きではないが)
買って読んでみるといいかも。今はGUIはswing,Beans…だし
なんか850の読んでる本がイタそうなので。
0860デフォルトの名無しさん
NGNG}
class X2 {
public void display() {
System.out.println("Hello from X2");
}
}
public class ObjExam {
public static void main(String[] args) {
X2 x = new X2();
x.display();
}
}
このプログラムをmainメソッド内でクラスX2のインスタンス化を
するのではなくクラスX1内でクラスX2のインスタンス化をしたいと思う
のですがどのようにしたらいいでしょうか?
イメージだとこんな感じです
class X1 {
X2 x = new X2();
}
class X2 {
public void display() {
System.out.println("Hello from X2");
}
}
public class ObjExam {
public static void main(String[] args) {
x.display();
}
}
0861デフォルトの名無しさん
NGNGclass X1 {
X2 x = new X2();
public void display() {
x.display();
}
}
class X2 {
public void display() {
System.out.println("Hello from X2");
}
}
public class ObjExam {
public static void main(String[] args) {
X1 x = new X1();
x.display();
}
}
0862デフォルトの名無しさん
NGNGIE3やNN3でアクセスしてくるユーザーなんてもう1%もいないから
新イベントモデルにしようよ〜。jarも使おうよ〜。
0863デフォルトの名無しさん
NGNG誰か助けて!
0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNGサーバはアプリケーション、クライアントは、Netscapeで動かすapplet。
appletで、
chat = (ChatIntf)java.rmi.Naming.lookup(
"rmi://" + getCodeBase().getHost() + "/Chat" );
java.rmi.ConnectException: Connection refused to host: [www.hoge.ac.jp:1099]; nested exception is:
java.net.ConnectException: Connection refused
家でlocalhostを使ったときは動いたのに、学校に持ってきたら動かない。
学生で一般ユーザの権限しかないです。
んで、自分のhomepageにチャットを置きたい(というか実験したい)。
なんとかならんのでしょうか?
0866デフォルトの名無しさん
NGNG入れると絶対に文字化けを起こすんですか?
どなたか直したぞーっていう人います?
私は依存文字一つ一つに変換用の文字を持たせて、入力した瞬間に
その文字に変換して、表示するときにはまた変換して機種依存文字に
直すという力技で対応してみましたが、全部の機種依存文字のフォローは
しきれないというか効率悪いのでやってません。
もし対処法が仕様的に諦めるしか方法がないのなら
ガッカリな言語ですね。
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNGUNICODEの仕様です。
0869デフォルトの名無しさん
NGNG0870866
NGNGでもでも。Yahooなどで「丸1」等の機種依存文字を入力しても
正しく処理できているのはなぜなのでしょう?
とても羨ましいです。
0871デフォルトの名無しさん
NGNGただし限りなく裏技に近いと思う
本来UNICODEにない文字(だよね?)なので
Win以外での互換性(表示が化けるとか)を云々するのはお門違い
一応テストプロ公開
import java.io.*;
public class IllegalCharTest
{
public static void main( String[] args )
throws IOException
{
String encode = "MS932";
if( args.length >= 2 ){
encode = args[1];
}
Reader reader = new InputStreamReader(
new FileInputStream( args[0])
@` encode );
int c;
while( ( c = reader.read() ) != -1 ){
System.out.println( (char)c );
}
}
}
0872デフォルトの名無しさん
NGNGじゃあSolarisのネスケでもYahooで
マルイチが含まれるページが正しく検索処理できるんだな?
0873869
NGNGごめんうそついた
UNICODEにマル1とかはあった
MS932をエンコーディングに使えば一応マル1とかも
ファイルからなら問題無く入出力できる。
(ただしその他の文字コード変換で少し互換性に問題があるのであまりお勧めしない)
問題はマル1とか、もともとJISになかった
文字を入力したり表示したりすることができないプラットフォーム
があることだ。
ひょっとしたらSwingで表示してPureJavaのIMEを使えば
Sunでもマックでもいけるのかもしれない。
誰か試してくれ。
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNGいちばん簡単なのは、
インターフェース…ケーブルのコネクタの仕様
アダプタクラス……コネクタ変換器
0878デフォルトの名無しさん
NGNGftp
0879デフォルトの名無しさん
NGNGダウンロードボタンを押すんだよ。
そういう初心者な質問はWindows板で聞け。
0880デフォルトの名無しさん
NGNGgetCodeBaseの設定した?
0881デフォルトの名無しさん
NGNGありがとうございました
0883デフォルトの名無しさん
NGNG実行するとメッセージウィンドウに幾つかlogがでた後、
Context log: path="" Socket Exception/
ってのが3秒間隔くらいでずーっとメッセージウィンドウにでるだけ・・・。
どなたか同じような症状を体験された方いません?
かなりせっぱ詰まってる状態です・・・。
0884819
NGNGまた詰まってしまいました、、
フレームから新しいフレームを呼び出してテキストに保存しました。
ここまでは>>854とあまり変わっていません。
その後でさらに新しいフレームを呼び出して今度はそのテキストファイルを
読もうとすると何故か読み込みをしないんです。
メソッドはBufferedReaderを使っています。
呼び出された3つめのフレームを単独で動かすと読み込めます。
2つめのフレームでclose()を使いファイルは閉じています。
何か考えられる原因はありますか?
学校なのでファイルは挙げられないので分かりづらいでしょうがお願いいたします
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGそろそろ立ててよage
08871
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=980858322
移行をお願いします。
0888無党派さん
NGNG■ このスレッドは過去ログ倉庫に格納されています