ぐはっ やられた
おいおい
どっちを本スレにするんだ?
7を飛ばすなよ
>>5 いや、前前スレが 6 だったのに
前スレ立てたヤツが間違って 6 にしたんすよ。
だから、8 でも間違いではない。
8 :
群雄割拠時代を生き抜く :02/09/25 18:18
9 :
それがlβMのe-コマーす :02/09/25 18:19
11 :
改行多すぎましたか :02/09/25 18:23
で、どっちが本スレなのよ?
じゃあ、独断と偏見により、こっちが本スレという方向で。
17 :
デフォルトの名無しさん :02/09/25 18:44
コレクションに対するガベージコレクタの動作に関する質問です。 aVector1.add(aString); aVector2.add(aVector1); aVector3.add(aVector2); aVector3 = null; これだと、aStringやaVector1やaVector2は ガベージコレクタによって開放されることが保証されますか?
>>17 aString や aVector1, aVector2 が他から参照されていなければそのうちにね。
>>18 回答ありがとうございます。
ツリー上の構造だと再帰的な開放が必要なのかと思い込んで
憂鬱になっていましたが、不安が解消してすっきりしました。
21 :
デフォルトの名無しさん :02/09/25 20:02
どっかにディレクトリやファイルをコピーする API落ちてたら教えてください
>>21 Runtime.getRuntime().exec("COPY /Y C:\\mona C:\\giko");
必殺・API落とし
>>22 おしいなあ。
copy は内部コマンドなので Runtime.exec() から直接は呼べないし、
ディレクトリのコピーもできない。xcopy が適切。
(もちろんこれはWin上での話だが。)
Unix に慣れた手で久しぶりに DOS を触ると陥る罠
前スレでまともな意見がなかったのでもう一度教えてください。 Autoexec.batっていうのをなんたらかんたら設定するみたいなのですが、設定の方法が全くわかりません。 設定方法を教えてください。
みなさんはjavaで何を作ってますか? ゲームやチャットかな?
31 :
デフォルトの名無しさん :02/09/25 20:54
22> なるほど! AntみたいにOSに依存しない方法もありますか?
>>31 Fileクラスくらい調べたんだろうなオイ
ようやくコンパイル出来ました!!ありがとうございました!!
File#listFiles() でディレクトリ内のファイル一覧を取得できます File#isDirectory() でファイルなのかディレクトリなのかを判定できます File#mkdir() でディレクトリを作成できます FileInputStream でファイルを読み出すことが出来ます FileOutputStream でファイルに書き込むことが出来ます さぁもう出来るだろ。
>>31 APIレベルでは用意されてないよ。
(new File(src)).renameTo(dst)
するとか
FileInputStream(src) から
FileOutputStream(dst) にデータコピーして
(new File(src).delete()
するとか。
37 :
デフォルトの名無しさん :02/09/25 21:01
39 :
デフォルトの名無しさん :02/09/25 21:07
autoexec.batが3つくらい見つかったんですけど、どれに SET PATH=%PATH%;[Javaをインストールしたディレクトリ]\bin; を書くのですか?
41 :
デフォルトの名無しさん :02/09/25 21:13
>>40 ありがとうございます。
これで出来そうです。
何か問題が発生したらまた質問すると思いますので、迷惑だとは思いますがまたよろしくお願いします。
43 :
デフォルトの名無しさん :02/09/25 21:22
質問。 ワーカースレッドでSQLクエリ実行中に、 別スレッドからワーカースレッドを止めるにはどうしますか?
>>43 executeQuery() か executeUpdate() がなかなか戻らないという想定で良いか?
Thread#stop() を使う。ワーカースレッドの中では ThreadDeath が発生するので、
ちゃんと finally ブロックでコネクションやステートメントをクローズするように
作る。
ResultSet#next() が多すぎて止まらない場合は Thread#interrupt() を使う。
while(! Thread.isInterrupted() && rs.next()){…} みたいな感じで。
出来れば先に interrupt() して 1 秒待機して終了していなかったら stop()
とかが良いと思う。
t.interrupt();
t.join(1000);
if(t.isAlive()){
t.stop();
}
>>44 そう、executeQuery() か executeUpdate() がなかなか戻らないという場合です。
でもstop()は非推奨なわけですが、大丈夫でしょうか?
続き stop()だとロックが開放されてしまうのが怖いです。
47 :
デフォルトの名無しさん :02/09/25 22:17
いくつかの本を見てみると、 public static void main(String args[]) というのと public static void main(String argv[]) というのがあるのですが、どちらでも好きなほうを使えば良いのですか?
48 :
デフォルトの名無しさん :02/09/25 22:19
>47 明らかに「argv」は不自然。 んで質問。 Ctrl+C でプログラムが中断させられるのを防ぎたいのですが、 どうすればいいんでしょうか?
>>47 郷に入っても郷に従う気の無い著者の本は避けたほうが良いかも。
っつーことで、オススメなのは
public static void main(String[] args)
>>48 あ、俺も それ聞きたい。
ctrl-C で 強制終了されたときって例外も無しに終了しちゃうから
ファイル入出力とかしてると作業途中のファイルとか残っちゃうんだよね。
>>48 シャットダウンフックってCTRL-Cシグナルハンドルできなかったっけ?
とおもってやってみたら、一応できた。
public class HandleTest {
public static void main(String[] args) {
Runtime.getRuntime().addShutdownHook(new Thread(){
public void run(){
System.out.println("強制停止っぽい");
}
});
try{
synchronized(HandleTest.class){
HandleTest.class.wait();
}
}
catch(Exception e){}
}
}
手元がWin98なので、他の環境は知らん。各自調べれ。
あと、フックするだけでシグナル種別の識別できないから、できることは
限られてる。再開なんかしちゃいかんと思う(永久ループになる)。
一番いいのは、「コンソールアプリじゃなくてSwingか何かでGUIにする」
だろう(藁
>>50 File#deleteOnExit()ってメソッドなかったっけ?
52 :
デフォルトの名無しさん :02/09/25 23:03
だからstatic メソッドってオーバーライドできないの?
53 :
デフォルトの名無しさん :02/09/25 23:04
ge
54 :
デフォルトの名無しさん :02/09/25 23:49
JDKをインストールしたのですが、Dドライブにインストールするのはやっぱマズいんでしょうか? 下のプログラムが実行出来ません。 class Test { public static void main (String args []) { System.out.println ("Hello."); } }
>51
それはシグナルハンドリングじゃないっす。
「何らかの原因でVMが終了する(異常終了除く)」or「プログラムが終了する」直前に後始末をつける為のフック。
>>50 の要求にはそれで答えられるんですけどね。
やりたいのは「CTRL+Cを無視して処理を続行する」って事。
やっぱムリかなぁ・・・
>>55 だからjavawで起動してコンソールつかうのやめればイイデソ。
58 :
デフォルトの名無しさん :02/09/26 00:04
>>56 では何故思い通りの結果にならないのでしょうか・・・
CPad for Java2 SDKというソフトを使って実行などを行っているのですが、実行結果とは全然違った結果が返ってくるのです。
>>58 そりゃ実行結果じゃなくてたんにJVMがエラー返してるだけだろ。
例外発生時の質問をする上での常識:
スタックトレース晒せ。
さらすまでもなく、Exception in thread "main" NoClassDefFoundError だろ。
61 :
デフォルトの名無しさん :02/09/26 00:34
Java、というかプログラミング初心者なんですが、 J-PHONEのJavaアプリで時計を作ろうと思ってるんですが、 日本標準時の拾得が上手く行きません。 どうやるのがいい方法なんでしょう。
62 :
デフォルトの名無しさん :02/09/26 00:48
63 :
デフォルトの名無しさん :02/09/26 00:55
UNIXのsyslogに動作ログを書きたいのですが syslog.conf の設定と実際JAVAでどのように書けばよろしいのでしょうか? 教えてください お願いします
>>51 File.deleteOnExit() だと
例えば IBM の JDK1.3 とかでファイル削除しなかったりする。
Sun の JDK1.3.1_04 だと消えるみたいだけど、1年か2年ぐらい前に
Sun の JDKで試したときも消えなかったからダメだと思ってた。
66 :
デフォルトの名無しさん :02/09/26 02:26
64> どうもありがとうございます ずーっと調べていたんですが、Log4jってのは標準なものなのでしょうか? ふつうsyslogに出力する場合はこれをつかうのでしょうか? フリーソフトなのかなとか思っていたのです
67 :
デフォルトの名無しさん :02/09/26 02:27
readline() ワーニング出るんですけど1行読み込みにはAPIなにつかいます?
readLine()
API仕様に書いてなかったか?BufferedReader使えって それはそーと ウォーニングと書きたくなければ警告と書きやがれ括弧推奨
マナタンのやさしいJavaとやさしいJava活用編を読みました。 将来的にはJavaでゲームを作りたいのですが、次に読むべき本 としては何が適当でしょうか?
あくまでもやさしくしてほしいわけか
先行者のハック
73 :
デフォルトの名無しさん :02/09/26 05:49
Javaでグラフを書かなければいけないことになって困ってます。 とりあえずtranslateして現在中央に原点を設定しています。。 それで今までは直線を引くのをdrawLineでdrawLine(0,0,50,50)みたいに 2点の座標を入れて表示させていたのですが 今度は角度θだけのデータで、原点から直線を引きたいのです。 この場合どのようなソースを書けばいいのかわかりません。 何か良い方法がありましたら教えてください。よろしくお願いします。
>>73 角度θだけ? 距離 R もいるだろ。
プログラム中のデータは極座標で扱いたいって意味だよな。
極座標から直交座標への変換は高校の代数幾何の教科書に載ってるよ。
75 :
デフォルトの名無しさん :02/09/26 07:40
double x = R * Math.cos(theta); double y = R * Math.sin(theta);
78 :
デフォルトの名無しさん :02/09/26 09:15
class A{ static void met(){ System.out.println("親"); } } class B extends A{ static void met(){ super.met(); //この部分でエラーが出るのはなぜですか? System.out.println("子"); } } class BlueBook{ public static void main(String args[]){ A a = new A(); B b = new B(); a.met(); b.met(); } } このソースをコンパイルすると「super は未定義な変数です」と出るんですが なぜですか?
>>78 static メソッドの中では this や super は使えません。
80 :
デフォルトの名無しさん :02/09/26 09:38
>>79 super を消せばオーバーライドは出来ていると言う事ですか?
static メソッドでオーバーライドつうかどうか知らんけど、そのコードなら static 消せばいい。それか親のクラス名を指定してやるか。 static void met(){ A.met(); System.out.println("子"); }
>>80 A b = new B();
しなければ オーバーライドできているか確かめられんと思うのだが。
ある文字列があって、それをディレクトリやファイルの名称とする際に その文字列が使用しているプラットフォームでファイルやディレクトリ名に 使用してはいけない文字が含まれているかを 確認する簡単な方法はないでしょうか?
>>83 System.getProperty("java.io.tmpdir") ディレクトリに
File#createNewFile() でファイルを作成してみる。
85 :
デフォルトの名無しさん :02/09/26 10:03
次のコードの出力は何になりますか? byte b1 = -5; int i = 0xff; byte b2 = (byte)(b1 ^ i); b2++; System.out.println(b2); この問題で答えが、 5 になってるんですが意味が分かりません。 なぜ5になるんですか?
この場合 i には16進数のff(10進数の240)が入って、 1111 1011 ← −5 1111 0000 ← 240 0000 1011 ← XOR b2に11が入ってインクリメントで答えは12になるような気がするんですが
>>86 それだったら
i = 0xF0;
のような気もする。
>84 すると、tmpとはいえ一度はファイル・ディレクトリを作成する以外に 確認する方法はないんですね。 便乗で申し訳有りませんが、作成できなかった場合 どの文字が元で作成できなかったかをエラーメッセージをして ユーザに表示したいのですが、こういったことを実現する方法はありませんか?
byte b1 = -5; // 11111011 int i = 0xff; // ...11111111 byte b2 = (byte)(b1 ^ i); // ← ^はXOR演算子なので、00000100 b2++; // 00000101 System.out.println(b2); // 5
1111 1011 -5 1111 1111 255 0000 0100 XOR 0000 0101 ++
>>88 一文字ずつバラして全部createNewFile() してみれば?
>>88 じゃぁ一文字づつ分解して createNewFile() が成功するかどうか確認するとか。
どうせたいしたコストなんてかかんないだろうし。あるいはインストール時 (初回
起動時) に 0x0000〜0xFFFF までのうち createNewFile() に失敗する文字の
マップを作っちゃうとか (ひどく強引だが)。
ちなみにユーザが入力した文字をそのまま createNewFile() するとセキュリティ
ホールになるので注意。
かぶった 鬱だ氏膿…
おかげさまで理解できました、ありがとうございます。
95 :
デフォルトの名無しさん :02/09/26 11:05
java.awt.MenuBar ってFrameにしかセット出来ないんですよね? PanelとかAppletとかにはセット出来ますか?
yahooゲームや将棋倶楽部24などのjavaを使用するサイトで接続がすぐに切れて しまうのですがjavaの問題なのでしょうか? 下手な文章ですがすいません、おねがいします
98 :
デフォルトの名無しさん :02/09/26 13:21
みかかに電話したら留守録になりあとから連絡が来るそうです ありがとうございました。
100 :
デフォルトの名無しさん :02/09/26 13:53
サーブレットのマルチスレッドでの動作に関する質問です。 サーブレットは、1インスタンス・マルチスレッドだそうですが、 下記のようなサーブレットの場合、ユーザーAのスレッドが (2)に達する直前に、ユーザーBのスレッドが(1)の処理を 行うとAのセッションにはBのUserオブジェクトがセットされて いるということが起こるのでしょうか? public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userId = request.getParameter("userId"); String password = request.getParameter("password"); // ログイン処理。データベースからユーザーデータを取り出し、 // Userオブジェクトを生成。 User user = // (1)ログイン処理 HttpSession session = request.getSession(); session.setAttribute("user", user); // (2)セッションに User をバインド ReqeustDispatcher rd = request.getRequestDispatcher("ログイン後のページ"); rd.forward(request, response); }
>>100 ローカル変数はスレッドごとに用意されるのでその心配はない。
前から疑問だったので便乗させて下さい ローカル変数が個別に確保されるのは知ってるものの どうもイメージがわかないのですが、 スレッド毎にスタックエリアが確保されるのでしょうか
以前縦書エディタを教えてほしいと言ったものです。 教えて頂いたソースを実行したのですが、何も表示されませんでした。 何が足りないのでしょう? Javaはほとんど初めてなのでご指導お願いします import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.*; public class VTextArea extends JTextArea { protected void paintComponent(Graphics g) { Dimension size = getSize(); ((Graphics2D)g).setTransform(AffineTransform.getRotateInstance( Math.PI/2, size.width/2, size.height/2)); super.paintComponent(g); } public static void main(String args[]){ VTextArea myApp = new VTextArea(); } }
>>102 そういうこと。C/C++ のスタック変数と同じような感じの領域がスレッドごと
に用意される。
>83です。 最初に質問したものはある程度対処できたのですが、 JFileChooserでOpenダイアログ等を表示して ファイル名に例えば //a/a といったファイル名を入力しgetSelectedFileで取得するとパスが d:\test/a/a となってしまいます。 ファイル名に/や\を入力されてしまった場合、どのようにして対処すればよいでしょうか? なんとなくJFileChooserを継承してオーバーライドしないと対処できそうになさそうですが・・・
> どのようにして対処すればよいでしょうか? あんたはどうしたいわけ?
>>103 おいおい、それは誰かのジョークのコードだろ。真に受けるなよ。
どこがジョークかというと、表示を単純に回転しているだけで、
縦横の比率の不一致も、カーソルでポイントする位置の変換も
全く考慮していない。
>>103 アレって冗談じゃなかったのか?
とりあえず JTextArea とか使わずに JTextComponent とか
TextComponent の継承クラスを自作して、そーゆーので
エディタ作れるようになってから、もう一度質問してください。
ageちった… 鬱氏
>106 /や\等の文字はWindowsでは(他のOSあまり詳しくないので他はわかりませんが) ファイルやディレクトリの名称としては使ってはいけないものなので それらを入力してApplyボタンを押下した際には エラーメッセージを表示してユーザにわかるようにしたいです。
103です。 ガーン・・・そうだったんですね。 107さん、108さんご指摘ありがとうございました。 (中身確かめないでコピペしてました) すみません。もう少し勉強してきます。
>>110 先の 1 文字づつ分解して実際にファイルを作る方法で確認できるし、
セパレータが入ってるか判定したいなら fileName.indexOf(File.separatorChar) >= 0
で判定できる。
113 :
デフォルトの名無しさん :02/09/26 18:42
とりあえず、初心者向けの本を一冊読みました。 次ぎはやっぱり、ゲームを作ってみたいのですが、 どういった本を読めば勉強になるでしょうか?
何のゲーム作る気ダヨ
>>113 いい本もあるかもしれないが、あまり期待しないほうがいい。
自分でネットでサンプルコードを漁って、リファレンス片手に
分析してみるのがいいんじゃないの
116 :
デフォルトの名無しさん :02/09/26 18:54
>>113 画面表示とキーイベントが分かってれば
音ゲー以外はどんなゲームでも作り始める事はできるはずだ。
実際に問題に突き当たってからその解決方法の載ってそうな本を捜すなり
ここに相談しにくるなりすれ。
>>113 いきなりロープレとか言い出すと100%間違いなく挫折するので、
Vectorによくあるようなミニゲーム作るようにしる。
>>114 シューティング。BGMはスラッシュメタルで。
>>115 とりあえず、大きい本屋で参考になりそうな本を探してきます。
>>116 困ったときは頼らせてもらいます(w
>>117 うーん、とりあえず、JAVAのシンプルなゲームのソースを研究してきます。
121 :
デフォルトの名無しさん :02/09/26 19:17
javaでプラグインみたいなのってどうやってするのですか? Winでいうところの 「dllファイル追加で機能追加」 みたいなの。
「class(jar)ファイル追加で機能追加」
「ClassLoader リフレクション」あたりで検索 共通インターフェイスを決めるのを忘れずに
あのう、早速で申し訳ないのですが、拡張子が .jarのファイルをエディタで中身を見ようとしたのですが、 ものすごい勢いで文字化けを起こしました。 このファイルを見る事はできるのでしょうか?
jarは圧縮ファイル
128 :
デフォルトの名無しさん :02/09/26 19:57
ハロはろー 質問です。 例えば、 s="パフパフ"; と、変数初期化代入するとしますよね この場合、変数の型を指定してないのでint型に なると思うのですが、 文字列の型は決まってないのでしょうか?
却下
130 :
デフォルトの名無しさん :02/09/26 20:37
java 2 SDK 1.3.1がうまく動作しないんですが。コマンドプロンプトに java-versionと入力しても内部コマンドまたは外部コマンド操作可能な プログラムまたはパッチファイルとして認識されません。とでてしま いますTT 環境変数のPATHの値の末尾に;c:\jdk1.3.1\binといれてOKにして も再起動しろってウィンドウがでないです。そこだけ本とちがくて あとはまちがってないと思います。OSはNTです。
java -version
132 :
デフォルトの名無しさん :02/09/26 20:40
>>116 俺は Swing (SWTでもいいかな) 使って何かアプリケーション
(ゲーム作ろうっていうなら、シナリオエディタ がいい) 作るのがいいと思う。
使いやすい GUI ライブラリを使えば、設計の勘所も自然と学べると思う。
(いわゆる Model, View, Controller の分離ね)
131さんありがと〜!!
134 :
デフォルトの名無しさん :02/09/26 22:31
javaでtiffファイルをgifに変えることは可能ですか?
>>134 自力で変換プログラム書けば可能です。
とゆーのは置いといて、JAI とか調べてみたら?
jdk1.4.0以降だったら javax.imageio に入ってる。
JAIって標準では tiff読み込みも gif書き出しもサポートしてないみたい。
>>135 ありがとう、探してみます。
>>136 え、そうなんですか…。
.Framework使えば簡単にコンバートできるんだけど、
できることならjavaだけでやりたいなあ…
>>137 http://java.sun.com/products/java-media/jai/iio.html によれば
As of JAI 1.1.1_01, the latest public version of JAI,
the image formats supported by these ancillary codec classes are: BMP, GIF (decoder only), FlashPix (decoder only), JPEG, PNG, PNM, TIFF, and WBMP.
だそうです。GIFの書き出しは Unisys特許とのからみでダメなのか?
よく知らんけど。
139 :
デフォルトの名無しさん :02/09/27 00:02
すいません、平方根を求めるにはどうしたら。
マジでゲームしか見たことない おまいら何を作ってんの?
141 :
デフォルトの名無しさん :02/09/27 00:20
アークタンジェントのかき方ってどうでしょう? POWを使ってかくのでしょうか?
142 :
m ◆wH01DHdg :02/09/27 00:27
Javaで参照変数を引数にした場合は 戻す必要ないですよね? でもなんかそういうプログラムはよくないのでしょうか? 例えば /*******************/ int a[]={1,2,3}; change(a);//このメソッドは下で定義してます。 for(int i=0;i<3;i++){ System.out.println(a[i]); } void change(int a[]){ a[0]=2; } /***************************/ こうすれば結果は2,2,3ですよね? でもこういうのはよくなくて、いちいちリターンしろと言われました。 意味がないとおもいますが。
144 :
m ◆wH01DHdg :02/09/27 00:33
つまり、 a=change(a); int[] change(int a[]){ a[0]=2; return a; } にした方がいいのでしょうか?
145 :
デフォルトの名無しさん :02/09/27 00:35
>>59 JVMって何ですか?
スタックトレースって何ですか?
余りにも無知ですが、教えてください。
>>144 何か特殊な使い方をしたいのでなければ、いらん。
System.arraycopyだってdstを戻したりしないし。
148 :
m ◆wH01DHdg :02/09/27 00:40
>>146 一般的にJavaの開発ではこういう風に
Cのポインタ的に参照変数を使うのことはよくあるのでしょうか?
それともあまり使わない方がいいのでしょうか。
私的にはこういう場合にリターンしなくてもいいように、ポインタや
参照変数があるのだから、それを使わないということは参照変数の
意味がないし、Javaの有用性がなくなると思うのですが。
Cで言えば、ポインタを使ってはいけないと言っているのと一緒だと
思います。
ただJavaではポインタという意識がないために、こういうソースは
Javaの開発者にとってはわかりにくいのでしょうか。
>>142 > Javaで参照変数を引数にした場合は
> 戻す必要ないですよね?
いじられた後の参照が目的ならね。
> でもなんかそういうプログラムはよくないのでしょうか?
1つのメソッドで2つの参照を同時にいじってリターン
したいって場合をのぞいて、普通はそんなコード書かない。
「inputに対してoutput」の方が分りやすいし勘違いも少ないだろ。
例えば、
void change(int a[]){
a = {2, 2, 3};
}
ってコードを換えた場合、結果は1、2、3になるだろ。勘違いする
奴が悪いと言えるが、分りにくいコード書く奴も悪い。
だから、
int[] change(int a[]){
a[0] = 2;
return a;
}
とし、a = change(a);に換えた方がいい。
151 :
m ◆wH01DHdg :02/09/27 00:51
>>150 なるほど。
でもCではそんなことしないと思います。
それはやはり明示的にポインタがあるからですかね。
配列で
a={}としている場合は、あたらしいオブジェクトをいれているので、
参照先が変わるから、結果は1,2,3ですよね。
その辺をきちんと理解しておけばいいと思うのですが。
私には「わかりにくいとか言うのはそのプログラマーの技術不足なのでは?」
と感じてしまうのですが。
>>150 メモリに余裕があるなら
int[] change(int a[]){
a = a.clone();
a[0] = 2;
return a;
}
のがいいね。
>>151 ちゃんと C 勉強してるか?
標準関数でも
void *memcpy( void *dst, const void *src, size_t length );
みたいにポインタ返すのはいっぱいあるんだけど。
154 :
m ◆wH01DHdg :02/09/27 00:55
なるほど。 Javaではポインタ的考え方はしてはいけないんですね。 よくわかりました。 ただ a=change(a)というのは同じ物に同じ物をいれているので、 無意味に感じるので、クローンしてから入れる方がいいのですね。
j2sdk1.3をインストールして、j2sdk1.4をインストールして、 JBuilder(sdkは1.3らしい)をインストールしたら、レジストリが どうかしちゃったらしく、コマンドラインでjavaをすると、 「ランタイムは1.4を要求してるのに、レジストリには1.3とあります」 みたいなエラーが出て動かなくなりました。 その後、力業でレジストリを削除し、sdkとJBuilderをアンインストし、 j2sdk1.4を再インストールしてjavaコマンドは使えるようになりましたが、 今後JBuilderを再インストールしてよいものか悩んでます。 同じような経験のある人います? あるいは、どなたかアドバイスを。 俺としては、コマンドラインとJBuilderの両方を使いたいんです。 (どっちか言うと、コマンドライン)
>>151 > でもCではそんなことしないと思います。
それは思い込みだと思います。
反例:標準ライブラリの文字列操作関数
157 :
m ◆wH01DHdg :02/09/27 00:57
>>153 当然ポインタ返すことはありますよ。
私が言っているのは引数と戻り値が同じポインタで
しかもそれをまた同じポインタに代入することは無意味だと思うと
いうことです。
>>157 つまり、C でも
void *memcpy( void *dst, const void *src, size_t length );
でなくて
void memcpy( void *dst, const void *src, size_t length );
であった方が良いわけですね?
Cの標準ライブラリ関数が、引数でとったアドレスをそのまま 返すことが多いことの理由は、一つにはエラー処理のためだと思う。 (つまり、例外発生時にNULLを返す) Javaには例外処理があるので、この意味ではいらない
160 :
デフォルトの名無しさん :02/09/27 01:00
Stringの文字列の文字コードをEUC→SJISに変換して戻り値として渡したい のですが、どうすればいいですか?SJIS→EUCも教えてください。
162 :
m ◆wH01DHdg :02/09/27 01:04
この辺はJavaでも微妙なところなんですかね…。
>>151 > でもCではそんなことしないと思います。
だろうね。言いたい事はよく分る。
でもJavaでは、int[]型なら
>>144 の様にできるけど、
int型だとできないんだよね。他のプリミティブ型や、
プリミティブのラッパークラスもできない。
だから、これらを操作するなら戻り値を使う。
> 私には「わかりにくいとか言うのはそのプログラマーの技術不足なのでは?」
Cでも分りやすいコードを書くってのは大事だろ。
分り易いってのは、初心者でも分るコードなんだよ。
Javaはオブジェクト指向型言語だから、オブジェクトに対し、
メッセージ(引数)を送り、その結果レスポンス(戻り値)を
貰うというのが一般的な初心者でも理解できる設計なんだよね。
>>159 >(つまり、例外発生時にNULLを返す)
memcpy って例外発生すると NULL 返すんですか?
fopen() とかは失敗すると NULL 返すけど。
165 :
m ◆wH01DHdg :02/09/27 01:07
>>163 分かりました。
ただ実際の開発の現場でもやはり参照変数を戻すのが
基本なのでしょうか?
習熟したJavaの技術者が集まっていてもですか?
> ただ実際の開発の現場でもやはり参照変数を戻すのが > 基本なのでしょうか? > 習熟したJavaの技術者が集まっていてもですか? 基本です。Javadocだけで概要を把握しやすいし。
>>165 >参照変数を戻すのが基本
Java では、じゃなくて C でも C++ でも基本だと思うけどね。
(参照変数っつかポインタだけど)
168 :
m ◆wH01DHdg :02/09/27 01:12
わかりました。 ありがとうございました。 Cではポインタを忘れた方がいいようですね。
>>165 初心者は とかく型破りな書き方を好みますが、
それは C でも Java でも関係ないです。
170 :
m ◆wH01DHdg :02/09/27 01:14
Cではじゃなくて、Javaでした。
>>167 さすがにCでも戻すのですか????
あなたがいってるのは
「ポインタが戻り値になることがある」ということではないですか?
私は
「引数と戻り値が同じポインタで、しかもそれを同じポインタに入れる」
という処理のことを言っています。
Javaではそうしなければならないようですが、Cでまでそんな
ことをするのですか?
>>142 つーか、メソッドの引数に処理対象の参照を渡すぐらいなら、
その処理対象オブジェクトに対するメソッド呼び出しの形で実装しろよ。
例えば
>>142 を(ちょっと無理矢理っぽいが)書き換えればこんな感じだな。
---
public class Hoge {
private int[] a = {1,2,3};
public void change() {
a[0] = 2;
}
public void print() {
for(int i = 0; i < 3; i++){
System.out.println(a[i]);
}
}
public static void main(String[] args) {
Hoge hoge = new Hoge();
hoge.change();
hoge.print();
}
}
---
173 :
m ◆wH01DHdg :02/09/27 01:17
>>171 処理対象の参照変数がローカル変数の場合はどうするんですか?
>>m ◆wH01DHdg なんか、ろくに考えもせずにただ 「Javaの参照はCのポインタとは違うんですねぇ」 とか言ってないか?
175 :
m ◆wH01DHdg :02/09/27 01:19
うーん、私は初心者丸出しだったのですね。 でもこれではポインタの意味があまりないと思うのですが。
177 :
m ◆wH01DHdg :02/09/27 01:21
ポインタがあるのは、こういう風に戻り値を設定せずに 値を変更できることに魅力があると思っていたのですが。 それがないとなると、ポインタなんて何の意味もないので、 全部値で受け渡せばいいのではないでしょうか。
>>173 > 処理対象の参照変数がローカル変数の場合はどうするんですか?
---
Hoge hoge = new Hoge();
---
そもそも、ここの変数hogeはローカル変数です。
>>177 >ポインタがあるのは、こういう風に戻り値を設定せずに
>値を変更できることに魅力がある
おいおい…
180 :
m ◆wH01DHdg :02/09/27 01:25
>>176 この関数の中で何をしているのか知りませんが、
これはむしろ戻り値のポインタを受け取らないと変更されないのでは
ないでしょうか?
それとも戻り値のポインタを受け取らなくてもdest文字列は変更
されていますか?
181 :
デフォルトの名無しさん :02/09/27 01:26
ハロはろー 質問です。 例えば、 s={"パフパフ"}; と、変数初期化代入するとしますよね この場合、変数の型を指定してないのでint型に なると思うのですが、 文字列の型は決まってないのでしょうか?
182 :
m ◆wH01DHdg :02/09/27 01:26
>>178 ここでの処理対象はint a[]だと思いますが。
>>179 やはり根本的な誤解があるようですね。
うーん。難しい…。
>>180 >この関数の中で何をしているのか知りませんが
strcpy 知らないってどーゆー事ですか?
>それとも戻り値のポインタを受け取らなくてもdest文字列は変更
>されていますか?
されています。
184 :
m ◆wH01DHdg :02/09/27 01:28
>>183 ああ、ストリングコピーでしたか。
ただストリングコピーで
a=strcpy(a,b)なんてすることありますか?
Javaの参照とCのポインタ(アドレス)の用法上の違いは、 ・基本データ型を指せるかどうか ・相対参照(配列の要素を指していると見做すこと)の可否 (その他関連:GCの有無) くらいのもん。だと思う。
>>184 なんで
void strcpy(char *dest, const char *src);
でなくて わざわざ
char *strcpy(char *dest, const char *src);
と dest の値を返してるか考えてみてください。
Cでポインタを使った出力引数が常用されるようになったのは 帰り値で値1つしか外にとりだせない(生の構造体も不可) 制約を回避するための方便だよ。
お前ら人の話聞いてるのかよ マジで教えろください
189 :
m ◆wH01DHdg :02/09/27 01:34
>>185 相対参照って何でしょうか??
うーん、これは自分で勉強しないとダメですね。。
>>186 やはり「わかりやすいから、一応戻している」のでしょうか。
でもこの場合は、この戻り値を受け取れば例えば
c=strcpy(a,b)すれば、2つコピーできますよね。
標準関数だからこういう処理にも対応するためにポインタを戻している
のではないでしょうか?
a=strcpy(a,b)とするのは無意味ですから。
190 :
m ◆wH01DHdg :02/09/27 01:35
>>187 そうですよね。
だからこそポインタの場合は戻り値で戻す必要はないと思っていました。
ただ戻り値が1つでいい場合はポインタでも戻せということなのでしょうか。
>>189 >c=strcpy(a,b)すれば、2つコピーできますよね。
こーゆーのを 2つコピーと言うんだろーか?
>>189 おいおい、それじゃあ
char a[] = "mojimoji";
char *b = a;
char *c = a;
で文字列を3つにコピーできちゃうのかよ
(゜д゜)<あらやだ! 知らないのね
194 :
m ◆wH01DHdg :02/09/27 01:39
>>191 ああ、strcpyの中身がわからないのでなんともいえませんが、
aとbは別のアドレスなんですね。
それではc=strcpy(a,b)は意味がないし、2つコピーとは言えませんね。
>>181 さすがにそこまで間違ってると、君に何かを教える自信がない
>>142 処理の対象となるのはint[]型の変数で、それに対する
change()とprint()という2つの操作がある。
これら処理対象と操作をひっくるめて実現したのがHogeクラス。
…こんな感じで考えるのがオブジェクト指向。
オブジェクト指向でコードを書いていれば、
メソッドの引数に処理対象の参照を渡すなんてことは
ほとんどなくなるはず。
なに間違えてる? コードなら気にしないで これからだから。 まず、概念を理解してから… (;´Д`)俺ばか…
>>194 > aとbは別のアドレスなんですね。
意味が分りません。a == bです。
199 :
m ◆wH01DHdg :02/09/27 01:41
>>192 そうですね。
おかしかったです。strcpyの中で a=b;という感じなのかと
思っていました。
だとするとなぜポインタを戻しているんでしょうね。
さきほど誰かが書かれていたと思うのですが、例外用なのでしょうか。
それともCでもinput,outputをできるだけはっきりさせた方がいい
という方針なんでしょうか。
> s={"パフパフ"}; > > と、変数初期化代入するとしますよね できねぇよ。型書けよ。 ===終了===
202 :
m ◆wH01DHdg :02/09/27 01:44
>>196 なるほど、引数に処理対象の参照変数を渡している時点で
オブジェクト指向から外れていると。
うーん、深いです。でもすごく勉強になります。
つまりそういう場合は、クラス化するべきということですね。
やっと理解できました。
>>198 あ、クローンじゃないんですか。
>>201 あれ?暗黙で型変換しないっけ?
(char *)a == b
?だって独習javaでそうなってるんだもん
>>204 String[] s = { "パフパフ" };
か
String[] s;
...
s = new String[] { "パフパフ" };
しかありえんと思うぞ。
あれ?stringってデータ型でしたっけ?
208 :
m ◆wH01DHdg :02/09/27 01:55
>>205 ちょっと勘違いしました。
ポインタですからクローンも糞もありませんでした。
ただもしかしたら別のアドレスにいれてるのではないかと
思いまして。値だけ一緒になるようにして。
じゃねぇ…クラスだよねぇ やっぱint型として扱われてるの?
210 :
m ◆wH01DHdg :02/09/27 01:57
うーん、strcpyでポインタを戻しているのはアドレスをはっきりさせる ためではないでしょうか。 アドレスを表示したり。 ただ a=strcpy(a,b)ということは無意味だと思います。 Cの開発でもこんなことしますか?
>>209 そのint型ってのはどっから出てきたんだオイ
>>209 クラスってデータ型じゃなかったのか。
データ型 <-> void だと思ってたよ。
213 :
m ◆wH01DHdg :02/09/27 02:00
今日はありがとうございました。 考えてみます。
ちょっとレス流れるの糞早いよ。
>>155 JBuilderは使ってないので知らんが、JBuilderの後にJ2SDK1.4インストールではダメか?
データ型を宣言しない場合は int型として扱われると 書いてある…
strcpy(strcpy(a, b), c) なんてことができるな。
>>216 っていうか、それコンパイルできるのかよ
>>202 ついでに、Cの
---
strcpy(dest, src);
---
ってのをJavaっぽく書くと、
---
StringBuffer dest = new StringBuffer(src);
---
とか
---
StringBuffer dest = new StringBuffer();
dest.append(src);
---
ていう感じになるかな。
# やっぱり、CとJavaは別物だってことを意識しないと。
221 :
m ◆wH01DHdg :02/09/27 02:07
>>217 ???
これは意味がないのでは?
>>219 newしているということはアドレスは別なのではないですか?
つまりクローンですよね。
だからコードのことは気にしないで コンパ無理なのは 当然だろうけど、その部分だけ書いてあるんだよ 本にも
また明日、図書館行って読んでみるね
225 :
m ◆wH01DHdg :02/09/27 02:13
私の現在の理解では ・Javaでは処理対象が参照変数の場合も戻した方がいい。 (ただ処理対象が参照変数になる時点でオブジェクト指向から外れている) ・Cでは標準関数などでは戻しているが、普通の関数では戻さなくてもいい。 なのですが。
226 :
m ◆wH01DHdg :02/09/27 02:14
今日はありがとうございました。
strcpyという機能そのものが、Javaでは必要ないでそ。 Immutableオブジェクトは実体コピーなんか作る必要ないでそ。 参照だけコピーすりゃ十分。
>>225 >Javaでは処理対象が参照変数の場合も戻した方がいい。
例としては Object[] java.util.List#toArray(Object[] a) とかがあるね。
>>227 strcpy を出してきたのは
int[] change(int a[]){
a[0]=2;
return a;
}
より
void change(int a[]){
a[0]=2;
}
の方が良い。
Java では前者の方が良いのかもしれないが
C では前者のような書き方はしない。みたいなこといったからだよ。
誰も Java に strcpy が必要だなんていってない。
>>228 ちょいまち、それは違うでしょ。
新しい配列のもつべき型のヒントを与えているのであって。。。
>>230 >新しい配列のもつべき型のヒントを与えているのであって。。。
いやだから
void java.util.List#toArray(Object[] a)
でもいいわけじゃん。
(a.length < list.size())でなければ。
まぁ確かに非常に良い例って訳ではないかも。
>>232 違う例だし。list.toArray (a) == a ならまだしも。。
まあ、「処理対象が参照変数の場合も戻した方がいい」という言葉自体が
意味不明なのでアレだが
>>233 list.size() <= a.length であれば
list.toArray (a) == a は保証されてるはずだと思ったけど。
>>234 ガーン!ガーン!ガーン!ガーン!・・・
知らなかった〜。スマソ
>まぁ確かに非常に良い例って訳ではないかも。
自分もそう思いますた。でも他に良い例って見付からないなぁ…。
>>234 保証されてます。
間違えた。strcat のつもりだった。 要するに strcpy などがポインタを返すのは、その返値を 別の関数の引数にできるようにするためだろうと言いたかったわけだが。
strcpyだと、 strcpy(c, strcpy(b, a)); …かな。 >要するに strcpy などがポインタを返すのは、その返値を >別の関数の引数にできるようにするためだろうと言いたかったわけだが。 漏れもそれ以外の使い方を知らない。でもそれはCだからやるわけで、Javaだと 必要ない…っていうか、そういう書き方って好まれないような気がする。
239 :
デフォルトの名無しさん :02/09/27 03:27
すみませんが質問です。 直線を引いたんですがこれを赤とかのデフォルトではない色を使って直線を引きたいのですが どのようにすればいいのか困ってます。 直線の色の変更とはどうすればいいのでしょうか? よろしくお願いします
StringBuffer みたいに自身を返すメソッドという形式はそれに近いかと思う。
241 :
デフォルトの名無しさん :02/09/27 03:37
∩,,∩
ミ∧∧ / ̄ ̄ ̄
|ミ゚Д゚ミ<
>>240 ありがとよ。
U U \___
>>239 graphics.setColor( new Color(rgb) );
graphics.drawLine(x1,y1,x2,y2);
ヒントだ。まんま書かずに調べてみそ。
>>239 Graphics.setColor(java.awt.Color.red);
と書いたほうが親切だった・・・
test
ダメでした(;´Д`) setColorの使い方がおかしくてredに設定したはずなのに黒です(;´Д`)
247 :
デフォルトの名無しさん :02/09/27 04:20
ウィンドウを閉じたり、アクティブにしたりした時は windowClosed() windowActivared() なりでつかまえられますが、ウィンドウのサイズを 変更した時のメソッドはどっかにありませんか? また、ウィンドウのサイズを固定することはできますか?
248 :
◆1/w7JUOU :02/09/27 04:28
できます
public void init() { this.setBackground(Color.red); yellowB = new Button("yellow"); blueB = new Button("blue"); this.add(yellowB); this.add(blueB); yellowB.addActionListener(this); blueB.addActionListener(this); } public void paint(Graphics g) { // 背景に関係するコード無し } public void actionPerformed(ActionEvent ae) { if (ae.getActionCommand().equals("yellow")) { this.setBackground(Color.yellow); } else { this.setBackground(Color.blue); } } ボタンを押せば背景色が変わりますが setBackground()だけで再描画されるカラクリが分かりません おしえてください。
内部でrepaintか何かを呼んで再描画していると思われ
いや、そういう疑問じゃないのか。 背景はpaintが呼ばれる直前に塗りつぶされるんだろ
>>250-251 私の説明不足のようでした。ゴメンナサイ。
setBackground()の後、内部で何が起こって再描画しているのか分からないんです。
そういうものだ!と言われてしまうとそれまでですが、
どのような条件で再描画されるか分からないんです。
setBackground()読んだ直後にupdate()明示的にコールして 再描画したらエエだけちゃう?
まちがった。そんなメソッドないや。repaint()だ。
>>253-254 いや、あの、
>>249 はちゃんと動きます
なぜ、再描画されるのか分からないんです。
これが理解できないの為(?)、
自分で書いたものは期待通りに動いてくれないんです。
ちなみに、.
>>249 には repaint() も update() もありません。
>>255 JAppletならpaint()じゃなくてpaintComponent()じゃないの?
>>255 Appletクラスにrepaintはある。お前はクラスの継承が解ってない。
>>258 setBackground呼んでるじゃん。その中でなぜ呼ばれていないといえるのだ
J-PHONEのJavaアプリでCalender使って時刻拾得したんですけど、 うまく行きませんでした。どうしてなんでしょう。
拾得しましたか
262 :
デフォルトの名無しさん :02/09/27 09:17
>>132 ソレがいいと思う。
クラス、メソッド、変数の名前のつけ方一つでも、何か一つライブラリ使ってるのと使ってないとでは
感覚がぜんぜん違うし、設計となるとなおさらそう。
StringBufferが確保するメモリって何とかならんのでしょうーか デカイ文章を丸々取り込んだあとに、StringBufferを開放しても どっかに大量のメモリ保持してやがる。こんちくしょう
>83 >110の質問をしました83です 昨日の話を引きずってしまいますが、どうかよろしくおねがいします。 >112 1文字づつ分解して確認するにしてもindexOfで確認するにしても どうのようにして確認すればいいかわかりません。 JFileChooser jFileChoose = new JFileChoose; int selectionBtn = jFileChooser.showSaveDialog(ownerFrame); if(selectionBtn=JFileChooser.APPROVE_OPTION){ File returnFile = jFileChooser.getSelectedFile(); ・ ・ } というソースがあって ユーザが例えば D:\Testのディレクトリ配下にてa/aというテキストを入力して Applyボタンを押下したとします。 これでreturnFile.getPathは D:\Test\a\a になりますがこれを一文字ずつ確認する方法で確認すると 「:」の時点でひっかかりますし returnFile.getNameとした場合、aが取得される為、正しく確認することができません。 何か私が検討違いしているのでしょうか? そもそも、ファイルダイアログにJFileChooserを利用するのが間違ってるのでしょうか?
アルファベット、カナ、英数字の全角 <-> 半角の変換がしたいのですが、 そういった機能はありますか? 過去ログを少し検索してみましたが、見つかりませんでした。
>>181 もしかしてそれは、
JavaScript
ではないのか?
>>264 そもそも JFileChooser の動きが正しいんじゃないの? とあるディレクトリ配下で
相対パス指定の入力がはじかれたら「ケッ! クソアプリが!」と思うぞ。ちなみに Java で
/ がファイルセパレータとみなされるのはもう慣例。
268 :
はじめたばっかり :02/09/27 14:20
MS-DOSでコンパイルすると、エラーで画面が埋まってしまい、 最初の方が見えなくなってしまいます。 最初の方のエラーを見るためにはどうしたらよいでしょうか? 誰か教えてください。
command > file これを忍法リダイレクトという。 98,MEだとエラー系出力は取れないので注意されたし。
270 :
デフォルトの名無しさん :02/09/27 14:51
>>268 漏れはMS-DOSでコンパイルすると、
エラーで画面が埋まってしまうので、
上の方のエラーは諦めていますがドキュンですかね?
ソレよりも何よりも javacのドキュメント読むべし。 -Xstdoutが(JDKのバージョンによって使い勝手が異なるものの) 用意されてる JDK1.2 :javac -Xstdout xxx.java > log JDK1.3 :oldjavac -Xstdout xxx.java > log JDK1.4 :javac -Xstdout log xxx.java
エラー出力を取り込む方法はOSとかシェルごとにバラバラだけど、 DOS時代からあるよん XPなら コマンド 2> log でOK!
273 :
デフォルトの名無しさん :02/09/27 15:27
D:\以下のディレクトリを一覧表示するサンプルソースとかってありますか?
便乗で、Windowsの名前順にソートした場合と同じように 並べるにはどうすればいいでしょう? 単純な文字列比較ではできないはず...
> -Xstdoutが(JDKのバージョンによって使い勝手が異なるものの) それが面倒なんだよな。 > DOS時代からあるよん でもDOSには無い。 どっかにエラー出力をリダイレクトするツールが転がっていたはず。 そういうのを使えば操作を統一できて楽。
> > -Xstdoutが(JDKのバージョンによって使い勝手が異なるものの) > それが面倒なんだよな。 ソレすら面倒ならIDE使った方がマシ # そうすると「重い」とか文句言うのだろうが。
>>273 サンプルは知らんけど、File#listFiles()使って再帰的に辿れば、ファイルを走査できるから、
それを出力するなりコンポーネントに張り付けるなりすれば。
>>274 Javaの標準APIには無いんじゃないかな。自分で比較用のメソッドか何か書くしかないと思われ。
> # そうすると「重い」とか文句言うのだろうが。 大当たりだ。ゴルーーーア! つーか最後の2行読んでないのか。
279 :
Java初心者 :02/09/27 16:18
Java初心者で困っています。 教えてください。 このようなコードを書きました。 /* <applet code=test.class width=400 Height=300> </applet> */ import java.awt.*; import java.awt.event.*; import java.applet.*; public class test extends Applet { private myPanel myPnl; Button btn = new Button("おして!"); public void init() { myPnl = new myPanel(); this.setBackground(Color.darkGray); this.add(myPnl); this.add(btn); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { btn_actionPerformed(e); } }); } private void btn_actionPerformed(ActionEvent e) { myPnl.eNameLabel.setForeground(Color.white); } }
280 :
Java初心者 :02/09/27 16:19
<続き> class myPanel extends Panel { public Label eNameLabel; myPanel(){ super(); Label eNameLabel = new Label(); this.setLayout(null); this.setSize(100, 100); this.setBackground(Color.cyan); eNameLabel.setFont(new Font("Dialog", 1, 18)); eNameLabel.setText("■■■■"); eNameLabel.setBounds(new Rectangle(8, 12, 80, 16)); add(eNameLabel); } } このようなプログラムでボタンを押すと、NullPointer例外が発生するのですが、 自分で作ったクラスのメンバーに対するアクセスが不正で 出ているのではないかと推測しています。 これを正しく動作させるためにはどのように変更すればよいのでしょうか? 教えてください。よろしくお願いします。
あとひとつ聞きたいのが、
>>280 の自作クラスのコンストラクタで最初に行う、
スーパークラスのコンストラクタの呼び出し(のつもり)
なんですが、意味あるのですか?
Javaを教えてくれていた人が必ず書いていたので
おまじないのように書いています。
私は必要に応じてでないと意味がないように感じるのですが、
意味があるのですか?
public Label eNameLabel; // フィールド ... Label eNameLabel = new Label(); // ローカル変数(フィールドeNameLabelを覆い隠す)
>>281 スーパークラスの初期化処理が行われないと、危険だからです。
>>274 Vectorに突っ込んでsortするというのではだめなのか?
>>283 Unicode の文字順序が Shift-JIS の順序と違うって話じゃねー?
public Label eNameLabel; // eNameLabelという名前のLabelを宣言 myPanel(){ ・ Label eNameLabel = new Label(); // eNameLabelという名前のLabelを宣言してインスタンス化 ・ } ---------------------------- public Label eNameLabel; // eNameLabelという名前のLabelを宣言 myPanel(){ ・ eNameLabel = new Label(); // 上で宣言したeNameLabelという名前のLabelをインスタンス化 ・ }
>264 >267 JFileChooser の動きが正しいんじゃないの? ということですが、Loadのダイアログならそれでもいいのですが、 Saveのダイアログでユーザがb/aと入力してきたら bディレクトリを作ってaファイルを作成するのが正しいやりかたってことでしょうか? 仮にユーザがa/a/a/a/a/a/a・・・・と入力したら 大変なことになっちゃいますが・・
>>261 えと、Canvasクラスはこんな感じで書いてるんですが
import javax.microedition.lcdui.*;
import java.util.*;
final class HelloWorldCanvas extends Canvas{
public void paint(Graphics g){
Calendar cal;
cal = Calendar.getInstance();
String str = cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE);
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(0,0,0);
g.drawString("Hello World!",0,20,g.LEFT|g.BOTTOM);
g.drawString(str, 40, 60,g.LEFT|g.BOTTOM);
g.drawString("Width:" + getWidth() + " Height:" + getHeight(),getWidth(),getHeight(),g.RIGHT|g.BOTTOM);
}
}
これだとKToolbarでやると時刻は表示されるんですけどGMTになっちゃって、
J-PHONEのエミュレータや実機でやると表示すらしてくれませんでした。
>>286 a/a/a/…を入力したユーザにしてみればそれを期待していると思うが。
新設にディレクトリ作るならダイアログを表示したりするわな。(「ディ
レクトリ a/a …は存在しません。新規に作成しますか?」っての)
>>282 あなた神です。
すごくわかりやすい答えありがとうございました。
しかもすばやく。
こういった知識はどうやって勉強するのでしょうか。
いまはネットだけなんですが。
やっぱり本とか買ったほうがよいですか?
教科書は東京理科大学のSunSiteなんですが、
さすがに情報が古いようなんで。
>289 超悪質なユーザがa/a/aをず〜〜〜〜〜〜〜〜〜〜〜〜〜とやってたら ず〜〜〜〜と「新規作成しますか?ダイアログ」を表示するってことですか? (mkdirs?メソッドうる覚えですが、、を使えば一気に出来たような気がしますが・・・) 設計思想の違いでしょうが、やっぱり変な感じがしちゃいますね・・ とりあえず、やったユーザが悪いってことで割り切る事にします。 2日に渡り、お答えくださった方々。ありがとうございました。
>>285 =83
丁寧にありがとうございます。
よくわかりました。
ぜんぜん気づきませんでした・・・・。
294 :
デフォルトの名無しさん :02/09/27 17:17
>>291 一回だけ聴いていっぺんにディレクトリ掘ればいいじゃん。
Winのインストーラはみんなそうだろ?
>>291 >>294 が言ってるけど一回だけ聞けば良いじゃん。ダイアログ出すことで
「あ / ってディレクトリの意味になるわけ」ってユーザに間接的に知ら
せる事もできるし。
その超悪質なユーザってのは自爆してるわけか?
>294 >295 >Winのインストーラはみんなそうだろ? そういわれると確かにそうですね。 それに何度も新規ディレクトリを作成しますかと聞いておいて 途中でキャンセルしちゃったらそれまで作ったディレクトリは何なのって?ことになりますね >その超悪質なユーザってのは自爆してるわけか? 自爆ですね。悪質じゃないし^^;
ストリームは入出力機能を司る概念とあるんですが、 これはどういう意味なんでしょう?
class Foo { public static void main(String args[]) { Object obj = new Integer("85"); System.out.println("Before Cast"); Double dobj = (Double)obj; System.out.println("After Cast"); } } このプログラムについてですが、このキャストのどこに問題があるのですか?
The Integer object is not Double object.
Java 1.4.1 の WebStart で Win2k が青画面でクラッシュするのはなんでかな〜と 思ってたんだけど、Sun の Bug Database を見たら、ATI Rage Mobility との相性が悪い というバグが登録されてた。 Bug ID 4749817。 原因が分かってちょっと嬉しかったので、vote してきたよ。 以上、ひとりごと終了。
もう一度 >> 249 を再掲させてもらいます。 まだ、わかんないんです。 public void init() { this.setBackground(Color.red); yellowB = new Button("yellow"); blueB = new Button("blue"); this.add(yellowB); this.add(blueB); yellowB.addActionListener(this); blueB.addActionListener(this); } public void paint(Graphics g) { // 背景に関係するコード無し } public void actionPerformed(ActionEvent ae) { if (ae.getActionCommand().equals("yellow")) { this.setBackground(Color.yellow); } else { this.setBackground(Color.blue); } } ボタンを押せば背景色が変わりますが setBackground()だけで <再描画されるカラクリ> が分かりません おしえてください。
↑の続き
>>250-259 で答えていただきましたがよく分かりません。
>>259 は setBackground() を調べろってことですよね。
java\awt\Component.java に次の2つがありましたが、?????です。
public void setBackground(Color c) {
Color oldColor = background;
ComponentPeer peer = this.peer;
background = c;
if (peer != null) {
c = getBackground();
if (c != null) {
peer.setBackground(c);
}}}
public void setBackground(Color c) {Component.this.setBackground(c);}
どうぞよろしくおねがいします。
>>300 > このプログラムについてですが、このキャストのどこに問題があるのですか?
全て
>>304 だからさ、setBackgroundが再描画させてるに決まってるじゃん。
そんなライブラリの実装をほじくって何になるんだよ
>>300 マジレスすると、Javaではオブジェクトをキャストすることはできない。
参照がキャストされているだけ。
>>304 つーか、調べてやろうとおもったけど、
ソースのダウンロードがトロトロなので、やめ。
>>306 >だからさ、setBackgroundが再描画させてるに決まってるじゃん。
そうなんだと思いますが、
>>303 のようなプログラムを書いている時に
repaint() が必要なのか等の知識がないので、期待通りに動いてくれないんです。
みなさんは setBackground() は再描画してくれると覚えているのですか?
>>308 sdkのルートのsrc.zipのことじゃないんですか?
>>309 表示に影響するようなプロパティが変更されたら、ふつー再描画させたくないか?
>>309 ならPropertyだけ変更されて、再描画は行わないと。
明示的に最描画を行えと。
>>310 えっそんなのあったっけ?
確かに消したような記憶もw
>>311 それは、repaint() や update() 等は必要無いんだけど
もう一度綺麗に描画したいから呼ぶと言うことですか?
また、
>表示に影響するようなプロパティ
とありますが、これらは知識ですか?経験ですか?
>>309 ひょっとして君さ、背景を勝手に塗りつぶしてほしくないわけ?
もしそうならopaque(不透明)プロパティの話だと思うが
>>315 じゃあ逆に、背景色を変更しますって書いてあるのに、
表示が変わらなかったとしよう。それは嘘になるだろ。
visibleでない状態で変更するならともかく。
というかちゃんとAPI仕様読んでるか?updateなんかふつう直接呼ばないよ。
みなさん、お騒がせしました。
どうやら随分トンチンカンな質問のようですね。う〜〜〜〜〜ん
>>317 どうもその辺が分かってないみたいな感じです。
API仕様をもう少し勉強します。
ありがとうございました。
もう少し付け足し setBackgroundの set を準備の意味だと思ってるところが間違いなのでしょか? setは変更を意味するのか?
>>319 set=設定。get(is)XXXとsetXXXは対になってる。
確か MS JVM は setBackground() ではまだ再描写が行われず、再描写の ウィンドウメッセージだけが投げられる。処理が終わってイベントディス パッチャーに戻ってきて始めて再描写処理が走る、と記憶しておるが。 つまり setBackground() から処理が戻った直後に新しい背景色が描写 されているかどうかは実装依存。
なるほどな。でも再描画イベントは発生するんだな
明示的にrepaint呼ぶようにしたらダメなのん?
324 :
デフォルトの名無しさん :02/09/28 03:58
テキストエリアを使っていて.getText()で取った数値をdoubleに直して計算に使ってるのですが テキストエリアに何もいれなくても動作するようにしたいときにはどのようにすればいいのでしょうか? 「テキストエリアに何も入力されてなければ処理をしない」 というのをif文でかきたいのですがどのように書けばいいのかわからず困っています いろいろ考えたのですが上手くいかず質問させてもらいました さらにこういう方法がいいとかありましたらよろしくお願いします
>>322 そりゃそうだろうて。ビュー関係のプロパティを変更したら何らかの再描写動作が
行われるのが (Invisible の場合, Peer が生成されていない場合は除いて) 一般
的な動作だと思うけど、もともとの質問者はそれが聞きたかったんだっけ? それと
も setBackground() で再描写される仕組みが知りたいんだっけ?
どうも話の流れが良く分からん。
>>324 public void actionPerformed(ActionEvent e){ // ← Action イベントか知らんけどとりあえず
String num = text.getText();
if(num.trim().length() == 0){
return;
}
double value = Double.valueOf(num).doubleValue();
...
}
>>326 ありがとうございます!
さっそくためしてみます
>>325 一応名前入れました。
>setBackground() で再描写される仕組みが知りたいんだっけ?
こっちです。
仕組みもよく分からないんですが、その上、
なぜ再描画されるとみなさんは知ってるんですか?
他にも再描画されるメソッドがあるんですよね。
これのことだと思いますが>>ビュー関係のプロパティ変更
#今、API仕様読んでます。
329 :
デフォルトの名無しさん :02/09/28 05:30
JDKをインストールしたらJavaWebStartというのもインストールされて しまいました。サンプルを起動できるようですが、これはいったい 何のデモなんでしょう? それと、Draw4Appっていうのはとても気に入ったのですが、 サンプルのソースはないのでしょうか?
>setBackground >なぜ再描画されるとみなさんは知ってるんですか? あえて言えば経験かなぁ?というか深く考えたことがない人が多数だと思う。 背景色のデータだけ変わって見た目が変わらないってのは不自然だから。
>>329 再描写動作は Component#setBackground() の中にあった peer.setBackground() の
中で行われている。この ComponentPeer はインターフェースなので、実際どのように
再描写が行われるかは実行環境依存。たとえば中で repaint() を呼び出してやっている
かもしれないし、MS JVM みたいに REPAINT のウィンドウメッセージを投げて終わり
かもしれない。
>> 331-332 何となく分かってきた・・・というか自分を納得させました。 しかし、新たな?問題が出てきました。 次のように paint を具体的に書いてみました。すると g.drawOval() だとボタンを押すだけで再描画されますが g.drawRect() だとボタンを押しただけでは再描画されません。 (マウスやキーのイベントが必要のようです) これはどういうことなのでしょうか? public void init() { this.setBackground(Color.red); yellowB = new Button("yellow"); blueB = new Button("blue"); this.add(yellowB); this.add(blueB); yellowB.addActionListener(this); blueB.addActionListener(this); } public void paint(Graphics g) { /****** 下のいづれかを使用する ******/ // g.drawOval(0, 0, 100, 100); // g.drawRect(0, 0, 100, 100); } public void actionPerformed(ActionEvent ae) { if (ae.getActionCommand().equals("yellow")) { this.setBackground(Color.yellow); } else { this.setBackground(Color.blue); } }
age 忘れ
337 :
デフォルトの名無しさん :02/09/28 18:10
(1):***@hotmail.com (SMTP:mx1.hotmail.com) (2):***@yahoo.co.jp (SMTP:mta11.mail.yahoo.co.jp) 宛に連続で2通のメールを送りたいんですが 2回目のSendMail()が(1)のSMTPホストにつながります。 何でなんでしょう…識者の方お助けください。
import java.io.*; import java.net.*; import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class MailTest { final static String from = "****@hotmail.com"; final static String subject = "test"; final static String body = "test."; public static void main(String[] args) { SendMail("***@hotmail.com", "mx1.hotmail.com"); SendMail("***@yahoo.co.jp", "mta11.mail.yahoo.co.jp"); }
private static boolean SendMail(String to, String smtphost) { try { Properties prop = new Properties(); prop.put("mail.smtp.host", smtphost); Session sess= Session.getDefaultInstance(prop, null); MimeMessage mmes = new MimeMessage(sess); mmes.setFrom(new InternetAddress(from)); InternetAddress[] iadr = {new InternetAddress(to)}; mmes.setRecipients(Message.RecipientType.TO, iadr); mmes.setSubject(subject, "iso-2022-jp"); mmes.setText(body, "iso-2022-jp"); Transport.send(mmes); } catch(Exception e) { System.out.println(e.toString()); return(false); } return(true); } }
>>334 ウチでも再描画されてる。MSのVMとかなの?
> (マウスやキーのイベントが必要のようです)
って何のこと?何でそう思ったの?
>>341 ?
| ∩ |_| |_ |Д`) ヨイコハ ミチャ ダメヨ・・・ |⊂ | ♪ ___ ∩ ♪ し|_| | ダッ ダッ ダッバダバダバ (´Д`;) ダッ ダッ ダッバダバダバ \( )ヽ ダーバシュビドゥワ く ♪ _. ∩ ♪ |J_| | シャバダバシャバダバ〜 (;´Д`) シャバダバシャバダバ〜 ノ( )/ シャバダバダッバーダバダバ > シュビドゥワ〜!
344 :
デフォルトの名無しさん :02/09/28 23:47
ObjectOutputStream oosがあって それを new DataOutputStream(oos); とやると 挙動がおかしくなるけど、 これは仕様かな? 例えば、outputStreamとしてメソッドに渡してしまった時、 困ってしまう。
どうおかしくなるの
>>344 それをやる意図が分からん。何がしたいの?
>>344 ObjectOutputStream implements DataOutput
のはずだけど、なんでそんなラップせにゃならんの?
動いたよ?意味不明だけど。 --------------- String filename = "__oos_out.dat"; FileOutputStream fos = new FileOutputStream (filename); ObjectOutputStream oos = new ObjectOutputStream (fos); DataOutputStream dos = new DataOutputStream (oos); dos.writeInt (12345); dos.writeUTF ("Hello!"); dos.close (); // FileInputStream fis = new FileInputStream (filename); ObjectInputStream ois = new ObjectInputStream (fis); DataInputStream dis = new DataInputStream (ois); System.out.println (dis.readInt ()); System.out.println (dis.readUTF ()); dis.close (); --------------- 12345 Hello! ---------------
>>246 どうみてもデータ作成の一部を他のクラスやメソッドに委託したいようにしか
見えんが。
>>344 まさか渡したメソッド内部でキャストしてなくて、
writeXXX()がコールできないです〜とかそういう
マヌケな話じゃないだろうな?
351 :
デフォルトの名無しさん :02/09/29 00:24
レベルの低い質問で申し訳ないのですが、 現在「やさしいJava」が終わりそうなんですが、次は何がいいですか? 工学部生でとりあえずJavaでもしとこうかなって感じなんですが… SUN Java認定資格を始め取ろうと考えてましたが、受験料が半端じゃないので 止めました…で、目標がないんでどこまでいけば良いのかわからなくなってしまいました。
>>351 とりあえず自分で目標作って、いろいろ作って見れ。
>>352 そうしますか…学校でも数値解析とかし出すし、Cをちゃんと先にやるかな。
あ〜、行き詰って来た…
354 :
デフォルトの名無しさん :02/09/29 00:48
>ObjectOutputStream implements DataOutput
>のはずだけど、なんでそんなラップせにゃならんの?
A1#write(InputStream in);
というメソッドがあったとして、
ObjectOutputStream oos;
A1 a;
a.write(oos);
とやった時
>>348 oosとdos両方でいっかいづつ書くと上手くいかないです。
>>349 246 -> 346か?
だとしたら、ますます意味分らん。
>> 354
> A1#write(InputStream in);
> というメソッドがあったとして、
A!#write(OutputStram out);か?
> とやった時
どうなるの?
> oosとdos両方でいっかいづつ書くと上手くいかないです。
ラップして使うんじゃねーのか?
357 :
デフォルトの名無しさん :02/09/29 01:26
Javaはdelegateつかえないのか
Javaの大将が政治的理由かなんだか知らんがMSの提案を蹴った おかげでアノニマスクラス大量生産なフヌケたコードが増えたがな VS++やJ#.NETではもちろん使えるYO!
359 :
デフォルトの名無しさん :02/09/29 02:13
文字コードがEUCのString文字列をMS932に変換 する方法を教えてください。
>>359 > 文字コードがEUCのString文字列
んなものは存在しない。
文字ストリームなら、ReaderやWriterのコンストラクタで指定。
>>354 oos.writeInt (12345);
dos.writeUTF ("Hello!");
oos.writeInt (54321);
dos.writeUTF ("Good-bye!");
こういうことか?ちゃんと動くけど?
>>360 同じJIS X 0208の文字がUCS-2だと違う文字になることは良いのか?
パッケージ名にいつも悩みます。 クラス名にも悩みます。 毎回開発途中で変えたくなってCVSの前で海よりも深く後悔します。
そういう人のための日本語名
>>366 日本語名はやめとき
jarで問題になった気がする
>>364 俺もよくやる。いつもリポジトリを直にいじって解決してる。
Javaプログラムをリファクタしてると頻繁に名前を変更する事になるんだけど、 そういうときCVSって厄介。 ファイル名固定縛りとかやると、とたんにリファクタリングの自由度下がっちゃうし。 CVS以外のバージョン管理ソフトは、ファイル名変更に対してどう対処しているんだろ。
javaで多分木を作りたいのですが、そういうのを作るのに、便利なクラスとかありますか? それとも、自分で自作してますか?コレクションのTreeSetとTreeMapを見てみたのですが、なんか違うみたいですね。
>>370 「Composite パターン」とかで検索しる
うちの環境じゃ動かないみたいです java1.4です dos=new DataOutputStream(oos); oos.writeInt (12345); dos.writeUTF ("Hello!"); oos.writeInt (54321); dos.writeUTF ("Good-bye!"); って事ですよね? これで、オブジェクト再構築できました? どうも、ヘッダ情報などを書き込んでいて、 それが乱れるのではないかと推測しているのですが。 つまり、 ObjectOutputStream oos=new ObjectOutputStream(outputStream); とやった時点でヘッダが生成され ObjectOutputStream oos2=new ObjectOutputStream(oos); とやると第二のヘッダが出て、 oos.write... oos2.write.... oos.write... とやるとめちゃくちゃになってしまうのではないかと。
>>374 flush() が必要か? と一瞬思ったが。
>>374 あのさぁ、君、いつもそうやって断片的なコードしか出さないから答えようが
ないんだよ。ついでにいつのまにか論点も変わってるしね。
論点変わってないですよ。 OOSをDOSでラップして使ったりすると挙動がおかしい。 10クラス程度にまたがっていて、 writeObject/readObjectの中身だけで500行くらいあったので、 コードはれませんでした。 outputStreamで受け取って、 DataOutputStreamにして書き込むところを 全部修正したら上手くいったので、 報告しておきます。 リファレンスには何も書いてなかったのでバグかもしれませんが。 今度暇があればソースでも除いてみます。 objectWrite/Readを実装する時は気をつけてください。
小さいコードで再現しないわけ?
>>374 のバグに 2000 バガス
>>374 わしは君の書き込みを、直列化復元できないのだが
このコードは動いたよ ----------------- File f = File.createTempFile ("___oos_out", null); f.deleteOnExit (); // OutputStream fos = new FileOutputStream (f); ObjectOutputStream oos = new ObjectOutputStream (fos); DataOutputStream dos = new DataOutputStream (oos); dos.writeUTF ("Hello!"); oos.writeInt (12345); dos.writeInt (54321); oos.writeUTF ("Good-bye!"); dos.close (); // InputStream fis = new FileInputStream (f); ObjectInputStream ois = new ObjectInputStream (fis); DataInputStream dis = new DataInputStream (ois); System.out.println (dis.readUTF ()); System.out.println (ois.readInt ()); System.out.println (dis.readInt ()); System.out.println (ois.readUTF ()); dis.close (); -----------------
>>374 が動かない完全なコードを晒すまで、誰も納得しないよ
直列化したときのdosとoosの順番と、復元するときのdisとoisの順番が
対応してないから
>>374 はうまくいってないのかと思ったけど、
disとoisはどっち使ってもちゃんと復元できるね。ウチの環境は1.3.0だけど。
あ、でも
>>380 のコードで
disをDataInputStreamでなくObjectInputStream、
dosをDataOutputStreamでなくObjectOutputStreamにすると復元できないね。
どゆこと
バージョン1.4ベースで良いのなら、 java.bean.XMLDecoderを使う手もあるかも…… なんて思ったりして…
このコードは正しく動かない
>>384 -----------------
File f = File.createTempFile ("___oos_out", null);
f.deleteOnExit ();
//
OutputStream fos = new FileOutputStream (f);
ObjectOutputStream oos = new ObjectOutputStream (fos);
ObjectOutputStream oos2 = new ObjectOutputStream (oos);
oos2.writeUTF ("Hello!");
oos.writeInt (12345);
oos2.writeInt (54321);
oos.writeUTF ("Good-bye!");
oos2.close ();
//
InputStream fis = new FileInputStream (f);
ObjectInputStream ois = new ObjectInputStream (fis);
ObjectInputStream ois2 = new ObjectInputStream (ois);
System.out.println (ois2.readUTF ());
System.out.println (ois.readInt ());
System.out.println (ois2.readInt ());
System.out.println (ois.readUTF ());
ois2.close ();
-----------------
>>383-384 ObjectOutputStream は中でバッファリングしている。flush() もせずに 下層⇔上層
ストリームへ交互に書き込めば出力データが壊れて当然。
ちなみに上層に DataOutputStream を使った方法 (↓) はどうやっても
再現できず。
ObjectOutputStream oos = new ObjectOutputStream(out);
DataOutputStream dos = new DataOutputStream(oos);
層が逆 (↓) なら
>>337 の理由で当然のことなんだが。
DataOutputStream dos = new DataOutputStream(out);
ObjectOutputStream oos = new ObjectOutputStream(dos);
391 :
デフォルトの名無しさん :02/09/30 00:29
技術評論社の「JAVAグラフィクス完全制覇」という本で勉強中
なのですが、以下のコードの意味が分からなくて悩んでいます。
col0[0]=(c0
>>2 )&1;
col0[]はint型の配列、coは同じくint型の、メソッドの引数で
渡される仮変数です。
自分でコード書いて確かめろ!って言われそうですが、まだ
サンプルコード丸写しの段階なもので、どなたか教えてください。
よろしくお願いします。
>>391 c0 の値を右に 2 ビット (符号ビット含まず) シフトし、その下位 1 ビット
を取り出して配列 col0 のインデックス 0 に代入。
>391 c0 の3bit目の値を col0[0] に代入しています
>>391 Beanshellとか使えば、コーディングせずに
そういうの確認できるよ。
http://www.beanshell.org GUIなら、(windowsで普通にjreをインストールしてるならダブルクリックでOK)
java -jar bsh-1.2b6.jar
CUIなら、
java -classpath bsh-1.2b2.jar bsh.Interpreter
で立ちあがるから、そこで、いろいろ打って確認スレ
>>396 391じゃないけど、ありがとう
こういうの欲しかった
399 :
デフォルトの名無しさん :02/09/30 15:46
動画像から静止画像を切り出そうと思うんだけど、mpegファイルを扱うにはJMFに手を出すしかないよね・・・というかAPI仕様が見つからん
400 :
デフォルトの名無しさん :02/09/30 15:49
ごめん、APIあった。でもよーわからん。知恵を授けて
401 :
デフォルトの名無しさん :02/09/30 16:04
HTMLでD:\test\test2\test3.txtというファイルへのリンクを張りたいのですが getPath()だと当然ですがサーバーで操作したときのみ取得できます。 クライアントから取得したいとき(ROOTはD:\test、サーバのIPが 192.168.0.1だとします) URLをどのように取得したらいいんでしょうか?
独習Javaにのっていた次のプログラムでエラーが出るので 対処法を教えてください。 st という StreamTokenizer オブジェクトを作成したあと、 while (st.nextToken() != StreamTokenizer.TT_EOF) { switch (st.ttype) { case st.TT_WORD : System.out.println(st.lineno() + ")" + st.sval); break; という感じのコードが続くのですが、コンパイルすると、 StreamTokenizerDemo.java:21: 定数式が必要です。 case st.TT_WORD : ^ というエラーメッセージが表示されます。 どこがまずいのでしょうか?
>>403 StringTokenizer.TT_WORD と書かなきゃだめ。
>>403 定数ってインスタンスにしないと出ない?
間違えた。StreamTokenizer.TT_WORD か。
>>404-406 無事コンパイルできました。
thanks.
最初、StringTokenizer.に修正しようとしてうまくいかず、頭を抱えてしまった(鬱
408 :
デフォルトの名無しさん :02/09/30 21:20
java.lang.NoClassDefFoundError こんな例外が出てしまいました。 原因を教えてください。
409 :
デフォルトの名無しさん :02/09/30 21:23
>>408 クラスパスとか設定せず java コマンド打ってください。
>>409 やってみましたが、相変わらず同じエラーが出ます。
>>408 びっくりするほどユートピア!びっくりするほどユートピア!
とハイトーンで連呼しながらjavaコマンドを打ってみる。
javaと打ったらBSキーを4回連打する。またjavaと打つ。またBS。
これを繰り返す。
脱力感を感じ始めたら、その続きも打ってよし。
最後にENTER。白目を剥きながらENTERキーを押す。
でも結果は変わらない。
それが人生だよ。
412 :
デフォルトの名無しさん :02/09/30 21:46
>>410 正しい path を指定してコンパイル・実行してみてください。
Java.言語.指定されたクラスが見付かりません。エラーです。 せめて、訳せよ。 そしてdirコマンド打ってそのクラス名に対応するクラスファイルが あるのかチェックしろよ。 あとな、java hoge.class だとエラーだからな。 実行は、java hoge だぞ。
>>408 java -classpath . hoge
で動いたりする?
>>412 pathは正しいはずです。昔は全然エラーが出ませんでした。
>>413 クラスファイルは生成されています。
自分としてはEclipseに原因あると思います。最近入れたのですが
これ入れてからおかしくなった気がする。
>>415 動きません。
UNrecognized option: -classpath
Could not create the Java virtual machine
ってエラーが出ます。
とりあえず、 echo $CLASSPATH $JAVA_HOME だな。
>>418 JAVA_HOME C:\j2sdk1.4.0_01
CLASSPATH .;%JAVA_HOME%\lib\tools.jar
PATH %JAVA_HOME%\bin
すみませんこのような警告がでてしまいます。 Warning !!! Your machine could'nt be Java Language
実行できました。 どうやらファイルのパス指定に問題があったようです。 教えていただいた方々ありがとうございました。
>>396 遅レスですみません、Beanshellインストールできました。
なんだか楽しそう! いろいろ試してみます。
どうもありがとうございました。
425 :
デフォルトの名無しさん :02/10/01 00:25
jarファイルを作って 実行したのですが、 win32 Error 126 とエラーが出て起動しません。 META-INFは Main-Class: **** となっています。 JBiluderでの実行はちゃんと動きます。 解る方いますか? win32 Error 126はどういう意味なのでしょうか?
>>425 無駄な改行、見にくいからやめていただけるとありがたい。
で、そのエラー、dllがないとかそういうときにでるやつ。
>>246 改行すいません。
何か解決方法って解りますか?
>>427 error 126: 指定されたモジュールが見つかりません
JBuilder の JDK バージョンとコマンドライン上の JDK バージョンが違うに
一票。
429 :
デフォルトの名無しさん :02/10/01 01:36
文字コードがeucのファイルを読み込んでMS932の文字コードの ファイルに書き出したいんですが、どうすればいいですか? 特殊文字@、〜がうまくいかないのですが・・・ 誰かサンプルがあったらお願いします。
>>429 JavaはUNICODE
なのでいわゆる機種依存文字やUNICODEに対応する字がないものは
標準ライブラリではどうやっても無理。
自分でしこしこ変換ルーチンかけ。
>>429 MS932 の代わりに Shift_JIS か Cp943C 使ってみれ。
@はUnicodeに入ってたような
そか、EUC-JPに入ってないんだな
ワークベンチのデフォルトエンコーディングをUnicodeにしたら、 コード補完がきかなくなりますた。 まだあまり国際化対応には強くなってないようだのう。
初心者です。いろいろやってみたのですが、わからないので質問させてください。 いまアプレットを作っています。 アプレットで使われるクラスを二つ別に書いていて、ひとつのJavaファイルとして保存しています。 これをコンパイルすると計3つのクラスファイルが出来上がります。 そこで質問なのですが、 アプレットビュアーではちゃんと表示されるのですが、 これをウェブサーバにアップロードすると、 Class XXX not found で表示できません。 もちろん、アプレットタグを含むHTMLファイルと同じディレクトリに Classファイル全てをコピーしています。 ブラウザ表示ではアプレットタグに指定したサイズで表示されています。 code= で指定するClassはアプレットを指定していますが、 その他二つのファイルも指定する必要があるのでしょうか? ちなみにウェブサーバのマシンだとブラウザでちゃんと表示されます。 どうしたら他のマシンでも表示されるのでしょうか?
codebase
大文字小文字は大丈夫か?
>>436 ,437
動きました。
codebaseに加えてjarについても勉強できました。ありがとうございました。
これ(jar)について何か気をつけることはありますか?
あったら、是非教えてください。
440 :
デフォルトの名無しさん :02/10/01 20:16
サンのJava認定資格って持ってるとなにかメリットはあるの? その価値みたいなものはどれくらいなのかな?
441 :
大王 ◆3ma1HZI. :02/10/01 20:50
今日独習JAVAを買ってきた。 これから3日で終了させるつもりだ。 もちろん仕事が終わった後だ。 俺が言いたいことはもうわかっているな? これから3日間俺が質問したら即効で答えてほしい。 頼んだぞ。
じゃあ速攻質問しろ
443 :
大王 ◆3ma1HZI. :02/10/01 21:50
質問だ。以下の理由がわからん。なぜだ? -5.6 % 3.3 = -2.3 5.6 % -3.3 = 2.3
446 :
大王 ◆3ma1HZI. :02/10/01 21:59
>>411 :デフォルトの名無しさん :02/09/30 21:43
>>
>>408 >>びっくりするほどユートピア!びっくりするほどユートピア!
>>とハイトーンで連呼しながらjavaコマンドを打ってみる。
>>javaと打ったらBSキーを4回連打する。またjavaと打つ。またBS。
>>これを繰り返す。
>>脱力感を感じ始めたら、その続きも打ってよし。
>>最後にENTER。白目を剥きながらENTERキーを押す。
>>でも結果は変わらない。
>>それが人生だよ。
これがなんだというのだ?
449 :
デフォルトの名無しさん :02/10/01 22:12
*e+6*l+t*0+g+@*)+g*)+4*k+8*e+k*4+q*e+ の意味がわからなくて困ってます どなたか教えてくれないでしょうか?
450 :
初心者です :02/10/01 22:20
お薦めの本とか勉強法を教えてください(ちなみに本は”やさしいjava”を一通り 見ました。)
451 :
Need Help :02/10/01 22:21
原因があるのがJavaなのかPostgreSQLなのか分からないのですが、 Webアプリケーションで、DBへ登録処理を行うプログラムを 実行した後、サーバで ps -ax コマンドを打つと、 postgres: user dbname 127.0.0.1 idle in transaction こうなっており、トランザクションの最中の状態の ようです。ですが、commit処理からclose処理まで きちんとされており、実際にDBにデータが登録も されています。 原因はどういったことが考えられますか?
452 :
教えてください :02/10/01 22:24
二つのArrayListを一つに結合するにはどうしたらいいですか?
addAllじゃだめなの
454 :
教えてください :02/10/01 22:35
>>453 ほんとだ。すいません。ありがとうございました。
455 :
初心者です :02/10/01 22:37
お薦めの本とか勉強法を教えてください(ちなみに本は”やさしいjava”を一通り 見ました。)
456 :
デフォルトの名無しさん :02/10/01 22:40
内部クラスは何のために使うのか教えてください。 使用目的がわかりません。
457 :
大王 ◆3ma1HZI. :02/10/01 22:41
>>448 うむ、ご苦労、理解した。
まず第1章が終わった。次は2章に移る。
みなのもの、これからも私のために尽力を尽くすように
JTextAreaでテキストエディタを作ってます。 UndoManagerを利用するところまではわかったのですが そこから先がどうもわかりません どのリスナでテキストが変更されたかを関知するか、 どこにundo内容を格納するか。 等、よろしくお願いいたします
>>456 引き出しの中を小分けにするようなそういう感じ
>>459 お前はJAVA_HOME/demo/jfc/Notepadを見たことが無いのか?
>>456 内部クラスから元クラスのmethod、変数に
自由にアクセスできるぞ。
引数渡ししなくても。
>>456 使い方が分からなければ無視すれば? たぶんキミには必要ない。
>>456 例1
コレクション系のソースを確認してください。
java.util.Iteratorインターフェースの実装を内部クラスで行っています。たぶん。
>>456 例2
あるクラスの実装を少しだけ変えて使用したい時、
いろんな意味で面倒なので、
内部クラスを書いて、メソッドのオーバーライドを行う。
466 :
デフォルトの名無しさん :02/10/02 00:04
Sunのチュートリアルにある以下のサンプルですが、 run()内の while (clockThread == myThread) って意味あるんですか? 常に成立してしまうように思えるのですが。成立しない場合を(もしあれば) 教えてください。よろしくお願いします。
(import行省略) public class Clock extends Applet implements Runnable { private Thread clockThread = null; public void start() { if (clockThread == null) { clockThread = new Thread(this, "Clock"); clockThread.start(); } } public void run() { Thread myThread = Thread.currentThread(); while (clockThread == myThread) { repaint(); try { Thread.sleep(1000); } catch (InterruptedException e){ } } } public void paint(Graphics g) { (中略、現在時の表示) g.drawString(dateFormatter.format(date), 5, 10); } public void stop() { clockThread = null; } }
>>466 stop() されたけど myThread が停止してない場合
stop実行されたら、falseになるじゃん
ついでに Clock 以外のクラスから Runnable 実行したときの防御にも なってる。Thread t = new Thread(new Clock()); t.start(); みたいな。
原因が分かりました。 コネクションプールを使用しているWebアプリだったのですが、 吐き出されるSQLクエリのログを見てみると Connection conn = pool.getConnection(); // poolからコネクション取得 conn.setAutoCommit(false); // (1) begin; /* いろいろな処理 */ conn.commit(); // (2) commit; begin; conn.setAutoCommit(true); // (3) end; conn.close() // poolにコネクションを戻す 最初は(3)の文が抜けていたため、ずーっと あるコネクションがpoolの中でトランザクション中の 状態になっていたようです。 ところで(2)の conn.commit() が「commit; begin;」という SQLクエリを発行するのが JDBC の一般的な仕様なのでしょうか? ここが commit; だけなら何も苦労しなかったのに・・・
そういえば、PreparedStatementを使ってる場合、 どうやってQueryの内容を確認してる? syntax errorでSQLExceptionが投げられた場合、 その情報だけではわかりにくいと思うんだけど?
>>472 Connection, Statement, PreparedStatement のラッパークラス作って
その中で SQL とパラメータダンプしてる。クローズし忘れの警告とかも。
つうか
>>471 PostgreSQL ってそんなんなんだ。特にエラーとかは発生せずに状態だけ
トランザクション中になってるって事か。
>>473 ありがとう。参考になったよ。
いっそドライバー書き換えたろかと思ってたんで。
>>475 ラッパークラスって行っても上記インターフェースをすべて実装した奴な。
↓みたいな感じで普通の JDBC とほとんど同じ使い方の奴。
Connection con = pool.getConnection();
con = new ConnectionHelper(con); // こいつがラッパー
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("...");
...
すまん。なんか言い方悪かった。 でも、本当に感謝はしてます。
>>478 いや分かってるなら良いんだが、ラッパーというといきなり独自 API のクラス
作り始める連中も結構いるんで。
またしても質問させてください。 アプレットで製作しています。 自作のコンポーネントのクラスのようなものがあります。 それはパネルから継承して中に10個ほどラベルを配置しています。 その背景を点滅させようとすると、ラベルの背景は初期背景色が残るので、 ラベルの背景も背景色を設定しています。 このパネルを複数画面に配置し、パネルを複数点滅させようとすると、 パネルの背景を描画した後にラベルの背景を書き換えているのがわかってしまいます。 この部分的な書き換えをせずに、設定を変更後、 一気に全画面を描画するようにするにはどうすればよいのでしょうか。 とりあえず、paint()とupdate()は上書きしましたが、状況は改善されません。 たぶん書き方が悪いと思うのですが、どのように書けばよいのでしょうか。
パネルの setEnabled(false) → パネルの背景描画 → ラベルの背景描画 → パネルの setEnabled(true) setEnabled() は invalidate()/validate() だったかも知れん (マトモなアプレットは 久しく作ってないので忘れた)。
482 :
デフォルトの名無しさん :02/10/02 11:53
実行時に Exception in thread "main" java.lang.NoClassDefFoundError: というエラーが出てしまい、実行できないのですがどうすれば宜しいのでしょうか? コンパイルは普通にできるのに・・・。 winMe/jdk1.3
>>482 クラスパス設定。
FAQなので過去ログに腐るほど事例はあるかと。
>>482 このスレ全表示して "NoClassDefFoundError" で検索。
485 :
デフォルトの名無しさん :02/10/02 12:18
>>481 御教授ありがとうございました。
しかし、思ったようにはなりませんでした。
あとでソースを晒すのでよろしかったら指摘してください。
>>480 で質問したものです。
>>481 さんが指摘されたことをやってみたのですが、うまくいきません。
/* <applet code=Test2 width=640 Height=480></applet>*/
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
public class Test2 extends Applet {
private MyPanel mPnl[] = new MyPanel[9];
private boolean flickOn = false;
Timer flickTimer;
public void init() {
this.setBackground(Color.gray);
for(int i = 0; i < 9; i++){
mPnl[i] = new MyPanel(i);
this.add(mPnl[i]);
}
Timer flickTimer = new Timer();
flickTimer.schedule(new TimerTask() {
public void run() {
flickOn = !flickOn;
for(int i = 0; i < 9; i++) {
if (mPnl[i].panelFlick == true) {
mPnl[i].flick(flickOn);
}
}
repaint();
}
},0 ,500);
}
<続く>
<続き> public void paint(Graphics g) { update(g); } public void update(Graphics g){ this.paintComponents(g);//←─────@ } } class MyPanel extends Panel { public volatile boolean panelFlick = false; private Label l1,l2,l3,l4,l5,l6; private Button tglBtn; private Color panelColor; MyPanel(int index){ this.setBackground(Color.red); l1 = new Label("****"); l2 = new Label("****"); l3 = new Label("****"); l4 = new Label("****"); l5 = new Label("****"); l6 = new Label("****"); tglBtn = new Button("点滅トグルSW"); tglBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { panelFlick = !panelFlick; } }); add(tglBtn); add(l1); add(l2); add(l3); add(l4); add(l5); add(l6); } <さらに続く>
489 :
Java初心者=480 :02/10/02 14:05
<さらに続き> public void paint(Graphics g) { update(g); } public void update(Graphics g) { this.paintComponents(g);//←─────A } public void flick(boolean isOn) { this.setEnabled(false); if(isOn == true) { panelColor = Color.red; } else { panelColor = Color.white; } for(int i = 0; i < this.getComponentCount(); i++) { Object obj = this.getComponent(i); if(obj.getClass().getName().equals("java.awt.Label")) { this.getComponent(i).setBackground(panelColor); } } this.setBackground(panelColor); this.setEnabled(true); this.update(this.getGraphics()); } } 私がおもうに、@、Aの矢印を書き込んだところに問題があると思うのですが、 どのように変更したらよいでしょうか。教えてください。
490 :
デフォルトの名無しさん :02/10/02 14:53
btn1を押すとボタンの文字を「開ける」から「閉じる」に変えるようにしようとしたところ、、 以下の文でコンパイルできませんでした。何がいけないのでしょうか? また、btn1を押すとbtn1の色を変えるようにするにはどうしたらよいでしょうか? btn11 = new Button("開ける"); btn11.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { btn11.setText("閉じる"); } });
>>490 どんなエラーが出たんですか?って言うかコンパイルエラーならメッセージ貼れやボケ。
>>451 PostgreSQLのJDBCの実装って本当に
Connection#commit()で
でクエリー "COMMIT;BEGIN;" が発行されるの?
>>487 要するに、Labelの背景が透明にならないのがイヤなんでしょ?
背景が透明になるLabelを自分で書くとか、javax.swing.JLabelを使うかしたほうが
手っ取り早いのではないか。
>>491 すいません書きなおします
btn1を押すとボタンの文字を「開ける」から「閉じる」に変えるようにしようとしたところ、
以下の文で
シンボルを解釈処理できません
シンボル:メソッド setText (java.lang.String)
位置 :java.awt.Buttonのクラス
btn11.setText
^
というエラーが出てコンパイルできませんでした。何がいけないのでしょうか?
また、btn1を押すとbtn1の色を変えるようにするにはどうしたらよいでしょうか?
btn11 = new Button("開ける");
btn11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
btn11.setText("閉じる");
}
});
>>495 new ActionListener() {
public void actionPerformed(ActionEvent ae) {
btn11.setText("閉じる");
}
}
は、
btn11 = new Button("開ける");
btn11.addActionListener();
とは直接的な関係はありません。別のクラスですから。
イベントでe.getSourceでボタンを取得してそれに対して操作すれば?
>>494 ありがとうございます
また、btn1を押すとbtn1の色を変えるようにするにはどうしたらよいでしょうか?
btn11 = new Button("開ける");
btn11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
btn11.setLabel("閉じる");
}
});
>>496 ありがとうございます。
>>494 の教えてくれた通りにやったのですが、コンパイルできましたよ
>>493 そういうことなんですが、問題はアプレットということなんです。
もしかして、JRE1.4をクライアント側にインストールしさえすれば、
Swingを使えるのでしょうか?
>>499 ありがとうございます。できました!!!
503 :
デフォルトの名無しさん :02/10/02 16:05
コンピュータがbtnAを押すと、 「コンピュータが計算しています」と言うメッセージを表示してから 一秒くらい経ってから 「何かボタンを押してください」と言うメッセージを 表示するようにしたいです。 下の????の部分に何を入れたらよいでしょうか どなたか教えてください。 btnA = new Button("OK"); btnA.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { lblComment.setText("コンピュータが計算しています"); ????? lblComment.setText("何かボタンを押してください"); } });
>>503 ????? ←この部分を日本語で書いてみろ
>>504 はてなはてなはてなはてなはてな
です。
>>503 現在の時刻を記録する。
現在の時刻が記録した時刻+1秒以上になるまで待つ。
>>506 それをそのままコードにしたら、できるでしょ
>>501 うひょー!知りませんでした!
アプレットではAWTしか使えないっていう、学生時代の遠い記憶を鵜呑みにしてました。
早速Swingに変更します。ありがとうございました!!!
512 :
デフォルトの名無しさん :02/10/02 16:26
>>506 調べたのですが現在の時刻の記録の仕方がわかりませんでした。
下の()内の部分に何を入れたらよいでしょうか
どなたか教えてください。
btnA = new Button("OK");
btnA.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
lblComment.setText("コンピュータが計算しています");
(現在の時刻を記録する。)
(現在の時刻が記録した時刻+1秒以上になるまで待つ。)
lblComment.setText("何かボタンを押してください");
}
});
>>512 質問にまったく進化がないっす。
勉強ならば自分で調べ倒しなさいな。そうすることによって初めて身になる。
プログラミングなんて人に聞くもんじゃないんだよ。
どういうキーワードで検索したの?
>>513 正直調べ方がわからないんです。
本に載ってなければお手上げって感じで・・・
辞書みたいな本があればよいのだけども。
runtimeについて調べてるんですが・・・
VBばっかリやってると馬鹿になる、のお手本だな(ワラ java.util.Dateクラスを調べたらいい。 最初に↑だけでビジーループ版作って、理解できたらjava.lang.Threadクラスのstaticメソッドを組み合わせる。
516 :
デフォルトの名無しさん :02/10/02 17:00
ちょっと待て、時間経過を待つのにループ回すのか? スレッド.寝てろ(長) でいいんじゃ?
>>512 調べるならSystemクラスのほうがいいよ。
public void actionPerformed(ActionEvent ae) { lblComment.setText("コンピュータが計算しています"); Thread t = new Thread(){ public void run(){ Thread.sleep(1000); lblComment.setText("何かボタンを押してください"); } }; t.start(); return; }
>>516 あ、それもって無かったです。
ありがとう、これで頑張ってみます
521 :
デフォルトの名無しさん :02/10/02 19:06
Javaプログラムにデータファイルを読み込むことってできないんですか?
>>521 アプレットは無理。アプレットじゃないならせめて検索くらいせれ。
523 :
デフォルトの名無しさん :02/10/02 19:13
サーブレット絡みで質問です。 以下のURLをブラウザのアドレス欄に打ち込んで、 dispatch サーブレットで、リダイレクトしたとします。 www.example.com/servlet/dispatch?foo=var dispatch のサーブレット RequestDispatcher rd = request.getRequestDispatcher("/abc.jsp"); rd.forward(request, response); すると、実際には abc.jsp が表示されますが、 アドレス欄は「www.example.com/servlet/dispatch?foo=var」 のままです。 このアドレス欄にある「www.example.com/servlet/dispatch?foo=var」 という URI を abc.jsp から取得したいのですが、何か方法はあるので しょうか? request.getRequestURI()メソッドだと、「/abc.jsp」が返ってきます。
>>523 request.getAttribute("xxx") で取れたと思う。xxx が何だったか忘れたが
getAttributeNames() で一回ダンプして見れば分かるだろう。
チャットクライアントを作っているのですが、メッセージを送信したり 受信した時に、テキストエリアを自動的にスクロールするようにすると、 テキストエリアの表示がおかしくなってしまいます。画面にゴミが 出てしまうのです。 テキストエリアのスクロールの制御がよくわからなくて、スクロール ペインをこんな感じ JScrollBar vsb = spnMain.getVerticalScrollBar(); vsb.setValue(vsb.getMaximum()); でスクロールさせているのですが、これがまずいのでしょうか?
>>468 ,469.470
どうもありがとうございました。
528 :
デフォルトの名無しさん :02/10/02 23:35
JavaのAPIって自分でつくれんのかい?
つくれるよ
>>529 って言うかJavaのAPIって何を指すの?
>>468 ,469.470
どうもありがとうございました。
532 :
デフォルトの名無しさん :02/10/02 23:40
たとえばObjectみたいなスーパークラス。
ますます言っている意味がわからん
だからObjectみたいなクラスの素を Win32APIやシステムコール組み合わせて自分で作れるか聞いてんの。 Objectだって中身はそうでしょ。
多分、その質問の解答は 「作れない」だと思われる。
いや、どのレベルのもの作りたいかによるかと。 しかし、JavaのAPIって自分でつくれんのかい? だけで、ここまで詮索できるのか?
JNIまでしか詮索できんかった
>>537 APIからJNIを想像できるとは、すさまじい想像力だ。
元の質問者はAPIの意味をちゃんと調べなさい。
いきなり話し変わるけど、 SunへのJavaのバグ報告がめちゃめちゃ面倒になってる。 昔は楽だったのに。
540 :
デフォルトの名無しさん :02/10/03 00:14
すごくスレ違いでスマソ。
只今、モナー版にて、「☆☆モナー海を渡る☆☆」
というスレで、その手のプロ(海外版windows等に詳しい方、
AA、モナー職人様、英語のプロ(パソコン用語詳しい方)、
などを臨時必要としています。手・CテC空いている方、
腕に覚えのある方,興味のある方はぜひご参加くださいませ。
http://aa.2ch.net/test/read.cgi/mona/1033460821/l50 やって頂きたい事と、目標です。
1.モナーや日本式(全角使った)AAを世界に広めてみたい。
2.そのために、ふさわしい海外サイトはどこか。
大きく、参加し・襪4くれそうな雰囲気で1A流行りそうなトコ。
3.どうやって全角の絵を表示させるか。
今のところ、GIFに変換するのがよさそう。
でも、将来的にはちゃんとしたものを見せてあげたい。
フォントの事とか、エンコードだとか、色々微妙。どうする?
その手にくわしい方がほしい所。
その説明を外人さんにするにはパソコン用語に詳しい英語のプロさんcome!!
4.流行するようなモナーって何だろう?8頭身とか??
全角使った日本独特のAA文化も見せたい。
5.喋る2ch用語も英語に。英語のプロさん来てくださいまし
6.・・・・とりあえず皆で協力しあおうではないか。
●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●● /| | |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ | | | ̄ ̄ ̄ /| || | | | / /|TTTTTT TTTTTTTTTT||TTTTT | /\ | /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^ | / / |// / /| | / / |_|/|/|/|/| | / / |文|/ // / |/ /. _.| ̄|/|/|/ Λ_Λ /|\/ / / |/ / (___) /| / / /ヽ /〔 非OO 〕〕つ | | ̄| | |ヽ/l `/二二ヽ | | |/| |__|/ Λ_Λ / /(_) | |/| |/ ( ´∀`) (_) Λ_Λ | | |/ // / ^ ̄]゚ (` ) | |/ ゚/ ̄ ̄_ヽ ⊂〔〔 非OO 〕
はぁ〜〜〜 JavaDocってメモリ馬鹿食うのね。 最大メモリ300Mバイト当てても、java.lang.OutOfMemoryErrorが発生してしまうのだけれど、 こういう場合、ど〜すれば良いのでしょうか。 ソースコードは、1ファイル当たり6000〜18000行で、104もファイル数があって、 パッケージ分けも出来ないというきびしい条件なんです。 他のJavaDoc風ツールでもあれば良いのだけれど…
>>542 javadoc -J で VM が使用するメモリを制限して javadoc かけてもダメなんかな?
やったことないけど。
こんなオプションがあったんですね。 JavaDoc成功しました。Ant経由で、12分4秒。 ありがとうございました。
>>544 ぉ、解決したみたいで良かった良かった。
>ソースコードは、1ファイル当たり6000〜18000行で、104もファイル数があって、
>パッケージ分けも出来ないというきびしい条件なんです。
すごい状況だな…。
いまCの構造体を置き換えるクラスを作ってるんですが、 Char[8]とかやつはStringに置き換えるのが普通ですか? プリミティブ型でまんまでもいけると思うんですが、Characterにすべきですか? どれが一番まともなやり方なんでしょう。
>>542 さしつかえなければ、1 ファイルにそんなに詰め込む状況になった理由を聞いてもいい?
もしかしてCOBOLやC/C++からの移植?
age
549 :
デフォルトの名無しさん :02/10/03 14:56
あがってないな
550 :
デフォルトの名無しさん :02/10/03 15:02
PGになるにはどうしたらいいんですか?
>550 恋人と別れる。
553 :
デフォルトの名無しさん :02/10/03 15:43
Javaの暮らすライブラリってドキュメントにも書いてないんだけど、どう考えても 多重継承してるよなって思うところがあるのですが、私は正しいですか?
>>553 もっとAPI仕様書読んでみろ。
多重継承のいみわかってるのかきいてみたい。
>>555 君にはPG(あるいはGM)になる才能がある。
>>556 ,557
太り気味で汗いっぱいかくのにお風呂嫌いでもなれますか?
>>558 ああ、おまえなら最高のプログラムになれるさ!
>>559 プログラマになりたいのですが、プログラムにしかなれませんか?
>554 例えばawtでGraphicsやImageがある。PanelやContainerがComponentから継承 していることは分かるが、GraphicsやImageが継承されていることは書かれていない がPanelではそれら抽象クラスが実装されてません?
>>560 君にはデバッグの素質がある。かなりある。
寒い慰めあいだな。
565 :
デフォルトの名無しさん :02/10/03 18:33
フリーのJITコンパイラのURL教えてください。
571 :
デフォルトの名無しさん :02/10/03 18:58
Linuxで使えるフリーのJITコンパイラのURL教えてください!!!
578 :
デフォルトの名無しさん :02/10/03 19:04
てめえらLinuxで使えるフリーのJIT*コ*ン*パ*イ*ラ*のURL教えやがれ!!!
∧ b /●ヽ/ (___) / ̄ ̄ ̄ ̄ ̄ ( ´∀`)< こっちの方がカワイイ ( ) \_____ | | | (__)_)
ウンコみたい
589 :
デフォルトの名無しさん :02/10/03 19:13
嵐ですか? 嵐ですか? 嵐ですか? 嵐ですか? 嵐ですか?
591 :
デフォルトの名無しさん :02/10/03 19:14
▲ b /●ヽ/ (∧_∧) / ̄ ̄ ̄ ̄ ̄ ( ´∀`)< デュークたんかわいちゅぎだからな! ( ) \_____ | | | (__)_)
このURLはどこから湧いてくるんだ? ボウフラの発生と共通点がありそうだが。
603 :
デフォルトの名無しさん :02/10/03 19:22
class a{ public static void main(String args[]){ for(int i=0;i<10;i++) System.out.println("できません"); } } できません。なぜですか?おしえてください
JITコンパイラ使わせろ!!!
>>547 ツールによる自動生成による結果です。
ちなみに生成元になるテンプレートの時点で、30000行を超えています。
616 :
デフォルトの名無しさん :02/10/03 19:30
粘着警報
ぜんぜん面白くないどころか ウザイ
622 :
デフォルトの名無しさん :02/10/03 19:33
連続投稿スクリプトだったらアク禁ものだな
>>547 より正確には、
XMLのDTD → ツール1 → XMLスキーマ → 微調整 → スキーマコンパイラ
という方法をとりました。
633 :
デフォルトの名無しさん :02/10/03 19:37
JSPがコンパイルできません。 Servletと連動するようになっているのですが、 JSPからServletのクラスが読み込めないようで”シンボルが解決できません”になります。 Tomcat3.2.3の頃はこれで動いたのですが…。今は4.1.12です。 何か仕様が変わったのでしょうか。 どなたか解決方法を教えてください。
たくさんあるね。
どうもありがとうございました! 非常に助かりました!
しねよ
データベースに接続した後 Aというテーブルがあるかどうか調べて 無かったら作るという処理をしたいんだけどどうしたらいいの?
639 :
デフォルトの名無しさん :02/10/03 21:18
Servlet (およびそこから使うクラス) から、Socket生成して外部と通信っつーのは普通にやることなのかな? JDBC使っていいんだから、Socket生成を禁止する理由はないような気もする。 EJBでは御法度なのは分かってるんだけど、定石なのか、落とし穴があるからあんまりやらないのか、見極めきれない。
import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class MyApplet extends Applet implements ActionListener{ Label lTitle; //蓋ラベル Panel pBody; //パネル Label lSub; //中ラベル Panel pMenu; //メニューパネル Button bSyori1; //ボタン@ Button bSyori2; //ボタンA Button bSyori3; //ボタンB Button bSyori4; //ボタンC Button bEnd; //終了ボタン Panel pBottom; //外辺部分パネル Label lBottom; //底ラベル Button bBack; //戻るボタン public void init(){ //背景の色とレイアウトを決める。 setBackground(Color.lightGray);
/////////////////////////////////////////////////////////// //使う部品を生成 lTitle = new Label("MyApplet",Label.CENTER); //タイトルラベル lTitle.setForeground(Color.blue); lSub = new Label("*** メニュー ***",Label.CENTER); //サブラベル lSub.setBackground(Color.gray); lBottom = new Label(); //ボトムラベル bSyori1 = new Button("処理1へ"); bSyori2 = new Button("処理2へ"); //ボタン bSyori3 = new Button("処理3へ"); bEnd = new Button("終了"); //ボタン bBack = new Button("戻る"); //ボタン
JMFをつかって複数の動画ファイルを 連結して再生する方法ってありますか? 現状では、Playerを動画ファイルごとに 作って、VisualComponentを取り出し、 前の動画が終わるたびに張り替えて再生 しています。 ManagerのcreateMargedDataSourceメソッドを 使ってみたのですが、このメソッドで生成された DataSource用のPlayerは作成できなかったです。 OS:Windows2000,98 JDK:1.4.1 JMF:2.1.1b
スタイルシート使ってウェブ上でドキュメントの印刷してます。 改ページの処理をしてやってるんですけど、 2ページ目以降、少しずつズレが生じて途中でくずれてしまいます。 どうやったら印刷開始位置を統一できるのですか? 助けてください。ほんとに泣きそうです。朝までかかっても 解決する自信がありません・・・。
pMenu = new Panel(); //パネル setLayout(new GridLayout(4,1)); //Panel pMenu; //メニューパネル pMenu.add(bSyori1); pMenu.add(bSyori2); pMenu.add(bSyori3); pMenu.add(bEnd);
pBody = new Panel(); //パネル setLayout(new GridLayout(2,1)); //Panel pBody; //パネル pBody.add(lSub); pBody.add(pMenu); pBottom = new Panel(); //パネル setLayout(new GridLayout(1,2)); //Panel pBottom; //外辺部分パネル pBottom.add(lBottom); pBottom.add(bBack); setLayout(new BorderLayout());//シーケンス図どおりだとうまくいかないので移動 this.add("North",lTitle); this.add("Center",pBody); this.add("South",pBottom);
bSyori1.addActionListener(this); bSyori2.addActionListener(this); bSyori3.addActionListener(this); bEnd.addActionListener(this); bBack.addActionListener(this); } public void actionPerformed(ActionEvent e){ // if(e.getSource() == bSyori1){ String msg1 = new String ("処理1(ボタン押した?)"); lBottom.setText(msg1); }else if(e.getSource() == bSyori2){ String msg2 = new String ("処理2(押したよね?)"); lBottom.setText(msg2); }else if(e.getSource() == bSyori3){ String msg3 = new String ("処理3(押したってば。)"); lBottom.setText(msg3); }else if(e.getSource() == bEnd){ String msg4 = new String ("終了されました。"); lBottom.setText(msg4); }else if(e.getSource() == bBack){ String msg5 = new String ("戻れません。"); lBottom.setText(msg5); } } }
同じパッケージ内の、他のクラスを使用する場合はどうすればいいのでしょうか?
>>647 特に何もしなくて良いですけど。
package a;
public class b
{
}
package a;
public class c
{
public static void main(String[] args)
{
b bx = new b();
}
}
649 :
デフォルトの名無しさん :02/10/03 23:00
エディッタに秀丸を使っているのですが、秀丸からコンパイルする方法って無いでしょうか。 あったら教えてください。よろしくお願いします。
エデッッタ
>>648 回答ありがとうございます。
そんな感じでやってるんですが、
cをコンパイルする時に「bが見つからないぞ」と怒られます。
階層化してるのがまずいんでしょうか。
653 :
デフォルトの名無しさん :02/10/04 00:14
クラスの配列を作ったときはそのコンストラクタが呼ばれていない気がするのですが 例) CLASS_A aaa[] = new CLASS_A[10];
>>649 マクロ書いて使ってた。
でも、なぜか異様に待たされるのでJBuilder使うことにした。
>>653 厨:それ、「CLASS_Aもしくはその子供のインスタンスを10個格納出来る配列(クラス)」をインスタンス化しただけです。そこに格納するCLASS_Aのインスタンスは別に作成して下さい。
>>649 1.コマンドプロンプトを立ち上げておく。
2.Javaソースを書く。
3.Alt + Tab
4.ant
これじゃダメですか?
Javaプログラム同士でプロセス間通信を行いたいのですがどんな方法が考えられるでしょうか? Socket通信の他に何かありますか?
つうか、
>>653 は引数の必要なコンストラクタを持つクラス
の配列を作るときはどうするつもりだったんだろう。。。
>>658 ・JNI
・標準入出力 (Process#getInputStream, getOutputStream)
>>661 上は少々大袈裟なので下について調べてみます。ありがとうございました。
>>658 ソケットにしとけ。マシン隔てても使えるし。
そもそも、Javaのプロセスは1つのマシンな訳だから、
異る2つのマシン間の通信と考えれば、ソケットを使う
のが良い
>> 658, 661 HORBとかRMIは、ソケット通信のうちとみなして無視してるの?
RMIでもいいけど
>>663 なるほど、理にかなってますね。
>>664 その辺勉強不足なので勉強してみます。
TOMCATとApache-SOAPを使ってリモコン的な物を作ろうとしています。
♪〜
□−−SOAP−−□<音楽をならせ!)
サーバ クライアント
でも、Apache-SOAPは呼び出しごとにオブジェクトを生成してサービスを処理後に破棄しているようです。
と、言うことは再生命令を渡してもすぐにオブジェクトが破棄されてしまうため、単体ではそれを実現出来ないなと。
そこで、サーバ上にプレーヤアプリケーションを常駐させてSOAPサービスからプロセス間通信でプレーヤに
命令を出すと言う物を考えました。
>> 666 RMIにしといたほうが、いいと思う。まあ、ありえないかも知れないが、Webサーバと プレイヤーアプリケーションが、別マシンになってもそのまま使えるからね。
>>666 全くもって意味のないSOAPの使いかただな。
勉強してるだけか?
その程度なら、クライアントとサーバ間の通信自体を
ソケットかRMI使って実装した方がはやい。
>>668 >全くもって意味のないSOAPの使いかただな。
>勉強してるだけか?
はい、勉強してるだけです。学園祭での展示です。
通信プロトコルの研究なんて展示しても何がどうだかわからないわけで。
ネットワークごしに動いていることを意識させてなおかつインタラクティブ性の高いもの。
で、あの結論に達しました。
実践でやるなら絶対にソケットでちゃちゃっと作ってますw
調べてみたところ、SOAPサービスのスコープ(ライフタイム)はRequest Session Application
と選べるようです。
TOMCATのJSPで使われるBeanに設定出来るそれと同じ意味を持つようです。
http://www.atmarkit.co.jp/fjava/rensai/jsp06/jsp06.htmlに 、
>application 現在のWebアプリケーション アプリケーションの有効期間と同じだけ、永続的に使用できる
>(使用例:アクセスカウントなど、アプリケーション間で共有する情報を保持させる)
と、あるのですが、この場合、BeanのライフタイムはTOMCATのライフタイムとほぼ同じになるのでしょうか?
そうならばプレーヤを用意しなくてもApache-SOAPの中で完結出来るのですが。
試せ?そうですねw
>>670 そのアプリケーションではSOAPコールで単に音楽を鳴らすスレッドを走らせればいいだけです。
ライフサイクルは関係ありません。
>>659 クラスパスでルートの階層をし指定したらうまくいきました。
どうもありがとうございました。
673 :
デフォルトの名無しさん :02/10/04 14:14
重複があがってるな あげとく
HTTPで User-Agentを変更する方法ありませんか? java.net.URL を見てみたのですが違うクラスなのでしょうか?
URL#openConnection() URLConnection#setRequestProperty(String,String) URLConnection#getInputStream()
677 :
初心者ですんまそん :02/10/04 15:51
ローカルなハードディスクに aaa.class を作っておいて、 それを bbb.html(aaaと同じ場所に保存されています) で、 <applet code="aaa.class"> で呼び出すんだけど、classファイルが見つからないと 文句を言われます。どうしてですか? 何が原因と考えられますか?
678 :
デフォルトの名無しさん :02/10/04 15:56
>>676 ありがとうございます。
これは
RequestProperty("User-Agent: Mozilla/4.0")
とやればいいのですか?
すいませんまだクラスに慣れていないので
ドキュメントをよんでみたのですがこの位しか予想が付きませんでした。
BDBZMlってウイルスですよ. msnのメールで送ったら拒否されました。 そういえば海外で使われている分割を解くtool知ってますか? どうかこの厨房の神に教えてくださいまし。
>677 appletviewerを実行した時に java.lang.ClassNotFoundException: クラス名 って出るんだよね? 大文字小文字も関係あるけどちゃんと合ってる?
>>677 <applet code="aaa">が正しい。
.classがあると、aaaパッケージ内のclass.classだと認識されることがある。
683 :
デフォルトの名無しさん :02/10/04 17:08
>>681 あってます。ファイル名には小文字しか使ってません。
>>682 それをやってみましたが、駄目でした。
レスありがとうございます。
>>677 JDK 1.4 コンパチでコンパイルして MS JVM 1.1.4 で動かしてるとか。
>>685 俺もそれではまった。
気づくのに半日かかったよ。
質問です。 コンポーネントの見た目の絵を、Imageに格納したいと思っているのですが うまくいきません。具体的には、JAppletのinit()中で、 Component cont = getContentPane(); JPanel jPanel = new JPanel(new BorderLayout()); JButton jButton = new JButton("title"); jPanel.add(jButton, BorderLayout.CENTER); cont.add(jPanel); Image img = createImage(100, 100); Graphics g = img.getGraphics; jPanel.paint(g); //ここでimgに描画させる としてみたのですが、imgは真っ白なままです。 うまく解決する方法はあるでしょうか?
APIってなんじゃらほい?
あぴー
>>677 JAppletで作って、MSのVMでswingが見つからない
ってのではないだろうな。
見つからないのはなんてクラスだ?
aaa.classが見つからないのか?
コンソールに出力される、ClassNotFoundExceptionには
なんて表示されている?
691 :
デフォルトの名無しさん :02/10/04 20:48
フラッシュでゲームとか作りたいんですけど ジャバやったことない超初心者でも結構簡単に 理解できるようなお勧めな本教えてください。
JSTLを使っているJSPを、Antでコンパイルしようとしています。 しかし、コンパイル中に以下のようなエラーが発生してしまいます。 error:null 02-10-04 09:49:02 - エラー: ファイル '\login.jsp' は次の例外を発生しました :java.lang.NullPointerException JSTLの記述自体を削除するとAntで正常にコンパイルできます。 また、JSTLの記述を含んでいても、Tomcatがコンパイルを行うと 正常に動作します。 jspcのclasspathは、jstl.jarとstandard.jarに通しているはずなのですが... 何が原因なのでしょうか?
>>693 コンパイルできた=正常動作と考えてない?
>>690 すんません。自宅のXPだとちゃんと動くんです。
職場のW98だとダメなんです。表示結果は月曜に。
おながいしまそ。
>>695 私は、
1.Jarファイルが壊れていた。 →java.lang.ClassNotFoundException
2.同じ名前で中身の違うクラスがあった。 →java.lang.ClassNotFoundException
なんて経験がある。
でも、この場合は違うような気がする。1の可能性は注意。
697 :
デフォルトの名無しさん :02/10/05 04:34
java.sql.Statement#setQueryTimeout(int seconds) ってOracleJDBC8.1.7で使用できるのでしょうか?サンプルで下記のコードを 作成してみたのですが、17行目で止まってしまうのはわかるのですが、制限 時間を超えてもいっこうにSQLExceptionが発行されません。 AutoCommitはもちろん無効化(false)に設定しているのですが・・・ Googleとかで検索かけても出来るよとしかなく、すみませんがどなたか知りま せんか? ------------------------------------- 1 String strSQL = "SELECT * FROM SAMPLETBL WHERE ID=1 FOR UPDATE"; 2 conn1.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); 3 conn2.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); 4 Statement stmt1 = conn1.createStatement(); 5 Statement stmt2 = conn2.createStatement(); 6 stmt1.setQueryTimeout(1); 7 stmt2.setQueryTimeout(1); 8 System.out.println("応答時間制限(s) : "+stmt1.getQueryTimeout()); 9 System.out.println("応答時間制限(s) : "+stmt2.getQueryTimeout()); 10 rs1 = stmt1.executeQuery(strSQL); 11 while(rs1.next()){ 12 System.out.println(rs1.getString(1)); 13 } 14 System.out.println("SQL1 END"); 15 //conn1.commit(); 16 rs2 = stmt2.executeQuery(strSQL); 17 while(rs2.next()){ 18 System.out.println(rs2.getString(1)); 19 } 20 System.out.println("SQL2 END"); 21 conn2.commit();
Iteratorで、逆順に処理したいときはどうするもの?
ListIteratorツカウ
>>697 なんで17行目で止まるのかよく分からないんだけど、おしえて。
reverse_iterator ..............................無い reverse_iterator を導入するというテもあったと思うんだが、何故にListIterator という手段を取ったのだろうか? ListIterator li = list.listIterator(list.size()); while (li.hasPrevious()) { Object obj=li.previous(); .... } という感じになるはず。検証してないけど。
>>700 想像だが、同じテーブルを FOR UPDATE してるから排他ロックかかってる
んじゃないの?
あ、まさにそれを狙ったコードだから、タイムアウトしない理由かスマソ。
>>702 ナルホド・・・
つうことは、DBサーバ内部での排他ロック機構での停止までいっている
ときは、タイムアウトの対象にならない、ということなんでわ?
JDBCの仕様か、使ってるJDBCドライバの実装依存の話か、SQLServer自身
の仕様の話なのかは、調べてみんといかんね。
うう・・・・JMFってあんまり使われてないのかな・・・・ まぁ、単純に考えれば何もJAVAでやる必要ないからなぁ・・・
>>704 >タイムアウトの対象にならない
それは困る。典型的なデッドロックじゃん(w
クライアントが流行ってない時期があったからね。 今となっては別の手段が…
708 :
デフォルトの名無しさん :02/10/05 15:41
FOR UPDATEで排他ロックがかかるからconn1のトランザクション が解除(commit/rollback)しないうちに同レコードにアクセスし ようとするconn2は待ち状態になる。NOWAITをかけると待たずに ロック中である旨のSQLexceptionが投げられるけど・・・ OracleのJDBCドライバは未実装ってこと?
しまったsageとく
万年カレンダーを作っています。 8割方完成というところまでこぎ着けたのですが、あと一歩というところで困っています。 私は、1600年1月1日を火曜日とし(大学のUNIXのCalはでそうだったので) それを起点に、入力された日付がそこから何日たっているので何曜日だ、と計算しているのですが 他の方の作品と照らし合わせてみると、どうしても曜日がずれてしまっているのです。 1600年1月1日は何曜日が正しいのでしょうか。 もしご存じの方がいらっしゃったら教えてください。
JavaScriptw <script> var w =new Array("Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."); var d = new Date(1600, 0, 1); document.write("1600-1-1 is " + w[d.getDay()]); </script> > 1600-1-1 is Sat.
お騒がせしました。無事解決できました。 暦の関係で、1752年の9月で日数の調整が行われていたようです。 >711 わざわざ有り難うございました
で、何曜なの?
おそらく火曜日ではないかと思います
715 :
デフォルトの名無しさん :02/10/05 18:30
はじめまして、JAVA初心者です。この度、新言語のJAVAを始めようと思います。 そこで、質問です。今までただにエディタでソースを作ってたんですが、 これからForteを使おうと思っているんですが、うまくインストールできません。 症状としては、Forteのインストール中に「SDKを探してます。お待ちください」 で、どんなに待っても次へ進みません。 J2SEの1.41が既にインストール済みなんですが、Verが新しすぎるから うまくいかないのでしょうか?それとも、WindowsMeはForteを使うことが 無理なんでしょうか?どなたか教えていただけませんか?
>>715 ちなみにWin2000 J2SDK1.4.1でForte動いてるぞ。
だからVerの問題だと思う。
>>716 触?
>>717 漏れがインストールしようとしているやつはJ2SE1.41(インストール済み)と、
(インストール失敗の)Forte4(アーカイブ名はffj_ce_win32.exe)です。
同じやつですか?
OSのVerが悪いってこと?やっぱりWin2000とかじゃないと駄目か・・・?
720 :
デフォルトの名無しさん :02/10/05 18:51
以下の applet のソースをコンパイルして IE6 で表示しようとしても Class Test not found となって表示されません。 Java plug-in で IE を有効にすると表示されるようです。なぜでしょうか? import java.applet.Applet; import java.awt.Graphics; public class Test extends Applet{ public void paint(Graphics gs){ gs.drawString("Hello world!", 10,40); } }
>>719 そうですか・・・。気になったのが、getstartedce40_ja.pdfを読むと、
J2SEが1.31か1.40と書いてあるので無理なのかとも思ったんですけど・・・。
>>718 触ってのはたぶんEclipse(日食,月食の食)。
IBMが自社ツールのベース部分を公開したもの。
Javaにしては軽快で評判いい。
プラグイン次第でJavaだけでなくC++そのたいろんな言語に対応可能。
日本語化できるプラグインも出て盛り上がってる。
専用スレが下のほうにあるから検索してみ。
JavaのGUIエディタはForteが最強って話だが。
724 :
デフォルトの名無しさん :02/10/05 19:14
>697 WebProg板#Servlet,JSPスレから紹介されて来ました。 似たような状況で、execute(executeQuery)でのINSERTでロックされる 現象にぶつかりました。 とりあえず、動くようになったのは、バッチ処理でSQLを登録して 一括でexecuteBatchしたら動作しました。 ただ、それでは解せないので、解決法を探してるのですが、 697さんのStatementが別インスタンスになっているのって問題になりませんでしょうか? 僕も、リレーションが張ってある別テーブルへのアップデートの ところで止まってるのですが、SQL 1文ごとにStatementを開放、取得 してるので、Statementのインスタンスが違うという意味では、同じ状況と言えます。
>>725 教えていただいたURLへ逝くと、きちんとアプレットは起動しました。
ですが依然Forteのインストールはできません。
ffj_ce_win32.exeを起動し、どうしても「Java 2 SDKを検索しています」から
先へ進みません。「見つからない」とか言われるわけでもなく、
「検索しています」のまま止まってしまいます。右上の×を押すと
「終了しますか?」と出るんで、「はい」を押せば正常終了するんで、
固まっている訳でもないようです。
通常、Forteのインストール時は、SDKの検索は何秒程度で終わるのでしょうか?
すぐ終わる。
>>715 J2SDKからインストールし直してみたら?
あと、JAVA_HOMEとかの設定を見直すとか。
>>726 ForteがJDK1.4.1に対応してないんじゃねーの?
だから、JDK1.4.1で動いてる奴がいるんだって。
でも、
>>726 の症状は、まだ JDK1.4.0 にしか対応していなかったForte 4.0 EAを
JDK1.4.0_01 な環境にインストールしようとしたときと同じなんだよな。
すいません、どうしても次の問題がわからないんです 知恵遅れな私ですが教えてくださいませ… //Giko.java import java.applet.*; import java.awt.*; import java.awt.event.*; public class Giko extends@{ int x=10,y=10; public void init(){ A } public void paint(Graphics g){ B(x,y,20,20); } public void mouseDragged(MouseEvent me){ C D E } public void mouseMoved (MouseEvent me){} } 問題は上の@〜Eです…すいませんが宜しくお願いいたします
>>720 コンパイラは何でどのバージョン使ってる?
クラスファイルとかの仕様も時と共に実は変わってきているんだが…
734 :
デフォルトの名無しさん :02/10/05 23:43
クラスを多重継承しようとしたら失敗しました。 class AAA extends BBB , CCC { } って感じで書いているのですが、どこか間違っているのでしょうか。
↑ネタ
>>732 (1)はともかく、何をしたいのかを明示しない限り(2)-(6)は答えが定まりません。
それと丸数字使うなボケ
>>733 コンパイラは j2sdk-1_4_1-linux の javac です。
これではだめなのでしょうか?
windows にも j2sdk-1_4_1 入れて、それの appletviewer なら動作します。
でも msjava の jview /a では動きません。
>>736 さん
すいません
半径が10ピクセルの黒塗り円がマウスをドラッグすることで、円がマウスポインタを
追っかけるよにしたいんです。
本当にごめんなさい、、、
ちょっと待て。ネタなんだろ? ネタの続きなんだろ? 頼むからそうだと逝ってくれ。
>>735 ネタではありません。というか735がネタなのでしょうか?
どなたか教えてください。よろしくお願いします。
>741 どう見てもチミがネタ
>>738 JDK 1.4 で MSJVM 互換アプレットをコンパイルするときは
-target 1.1 オプション (だっけ?) 付けれ。
omoikkiri kabutta utuda
>>739 問題の一部が欠けているように見える。
それで、皆答えが出せないのです。
$ javac -target 1.1 Test.java でコンパイルしたら動きました!みなさまありがとうございました。
>>742 すみません。何がネタなのかわからないのですが?
>>732 1. 以下のURLをブラウザで開け
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html 2. java.applet.Appletについて調べよ。
3. java.awt.Graphicsについて調べよ。
特に、Graphics#drawArc()とGraphics#setColor()について調べよ。
4. java.awt.event.MouseEventと、java.awt.MouseMotionListenerについて調べよ。
イベント回りは初心者には難しいので、ズバリ言う。
アプレットGikoにはjava.awt.MouseMotionListenerを実装(implements)させること。
そうすると、アプレット上でマウスがドラッグされたときに、
mouseDragged()に記述された手続きが実行される。
>>747 さん
一応問題見直したところあれで全てなのですが…
皆さんすいません本当にお手数おかけして…
>>751 選択問題ではなくて?
1 Applet
2 this.addMouseMotionListener(this);
3 draw
4 Point p = me.getPoint();
5 this.x = p.x;
6 this.y = p.y;
ごめんミスった。 どこをミスったかは秘密
だからネタなんだってば
implements MouseMotionListener
>>752 意味がわからないのですが。頼み方が悪いという意味でしょうか?
具体的にお願いします。
他にもあるぞ
初心者スレなんだからそろそろ誰か教えてやれよ。俺は嫌だが(w
>> 734 752じゃないが、ネタでないなら、一体なんなんだ? 入門書でclassとinterfaceの あたりを読み直すことを勧める。
Java 多重継承で調べてみ
>>759 Javaで多重継承できるのはインターフェイスだけ
public interface A extends B, C
ならOK(だたしB,Cもinterfaceであることが必要)
クラスは単一継承しかできない。インターフェイスは
複数実装できる。
以上
>>762 interface A {
int aaa;
void disp() { }
}
interface B {
int bbb;
void do() {}
}
class C extends A , B {
}
とすればいいということですか?
>>764 頼むから'Java' と '多重継承' で調べてくれ。
ちょっと手に負えそうにないから。
>>764 ,765
インターフェイスについても調べろ。
コンパイルが通らないようなコード書くな
>>732 1 Applet implements MouseMotionListener
2 this.addMouseMotionListener(this);
3 g.drawRect
4 Point p = me.getPoint();
5 this.x = p.x;
6 this.y = p.y;
こうかなぁ?
interfaceの使い方はわからない奴は、 ずっとわからないと思う。 最近、会社の同期を見て思った。
>>769 そいつは、インターフェイスが分らないんじゃなく、
OOを分ってないだけ
>>770 わからないから聞いているのですが。
ついでなのですが、instanceofはどのようなときに約に立つのでしょうか?
ネタって言われても仕方ないぞ。
まさか、入門書も読まずに、Javaを学ぼうとしているのではないだろうな?
>>773 説明しだすと、本気で1スレ使い切る。
このスレではやめて欲しい気もする。
軽くなら俺的にはOK
って言うか、既に場が荒れてる……
interfaceではなくて、instanceofだったのね。
class, interface, extends, implementsの区別もつかない人間が、instanceofを 知ってどうしようというのか小一時間……
781 :
デフォルトの名無しさん :02/10/06 01:09
クラスパスを通したいのですが、すでに環境変数にクラスパスが設定されていてできないのですが、 どうすればいいの?
ネタフリ〜〜〜 だれか、Generics 試してみた人いますか? 感想を聞いてみたいです。
>>781 そのクラスパスの後ろに追加するんです。
やり方は環境による。
>>780 区別がつかないから聞いているのですが・・・
知らなければずっと使えないので・・・
>>783 もう追加できないのですが。
環境はwindowsです。
>>784 何でも聞けばいいってもんじゃない。
本くらい少しは読んでくれ。
ちょっと思ったけど、GenericsとJakartaのDynaBeanとかって、 ある意味逆行するね。
>> 734 まず、一体、何の本を、どの程度読んだのかを教えてください。 とか思ったけど、java-houseで聞いてみたらどうよ。親切な人たちが、いろいろ 教えてくれるよ。
>>785 いくつか削れ!じゃなくて、
私ならば、実行時にクラスパスを追加します。
javac -classpath=%CLASSPATH%;追加のクラスパス Javaソース
java -cp %CLASSPATH%;追加のクラスパス 実行クラス
>>785 たぶんそのままやってると死んでしまうので
Antとか使ったらどうよ?
>>786 ではどの程度のことなら聞いてもいいのでしょうか?
よくわからないのですが。
Windows98で、autoexec.batやら、バッチファイルでクラスパス追加してたら、 100行目ぐらいから、追加されなくなった。てなことがありました。
796 :
デフォルトの名無しさん :02/10/06 01:20
789はちょっとずれてる気が
>>794 初心者スレゆえ聞いても問題はないが、しかし、
入門書の1、2ページ目にあるような内容はやめて欲しい。
798 :
デフォルトの名無しさん :02/10/06 01:21
>>794 Antならうまくいくんじゃない? たぶん。
クラスパスに追加しまくる場合、 XML系のライブラリに注意したほうがいいよん。
ついでに聞いてもいいでしょうか? コンパイルしても java AAA ってしないと実行できないのですが普通のexeのようにクリックして実行される形式にコンパイルすることはできないのでしょうか?
>>800 いくつかあります。(無償、有償含めて)
シェルや、バッチにするという手もあります。
>732 1 Applet implements MouseMotionListener 2 addMouseMotionListener(this); 3 g.fillRect 4 x = me.getX(); 5 y = me.getY(); 6 repaint(); 俺的にはこうかな
>802 Rect じゃねーや Oval だスマソ
HTMLのパーサについて教えてください。
以下のJDCのTechTIPSのサンプルコードを利用すると、
aタグのhrefの内容が取得できますが、
HTML.Tag.A→HTML.Tag.INPUT
HTML.Attribute.HREF→HTML.Attribute.NAME
としてもinputタグのnameの内容は取得できません。
aタグ以外は全て取得できないようなんですが、
どうすればうまくいくのでしょうか?
ttp://sdc.sun.co.jp/NASApp/sdcpersonal/private/jdc/techtips/1999/tt0923.html サンプルコードの内容は一部抜粋すると、
import javax.swing.text.*;
import javax.swing.text.html.*;
〜
EditorKit kit = new HTMLEditorKit();
Document doc = kit.createDefaultDocument();
Reader rd = getReader(args[0]);
kit.read(rd, doc, 0);
ElementIterator it = new ElementIterator(doc);
javax.swing.text.Element elem;
while ((elem = it.next()) != null) {
SimpleAttributeSet s = (SimpleAttributeSet)
elem.getAttributes().getAttribute(HTML.Tag.A);
if (s != null) {
System.out.println(s.getAttribute(HTML.Attribute.HREF));
}
という感じです。
>>697 のOracle排他ロックタイムアウトの件なんだけど
仕方ないんでSQLServer2kとSQLServerType4JDBCドライバで
同じコードを流してみたんだけど、今度はSQL文自体に問題
らしく、DECLARE CURSOR を使わないと FOR UPDATE文は使え
ないとのこと・・・SQLServerのマニュアルも見ないと・・・うーむ
XML の設定ファイルがあり、これを jar に含めた場合、 どのようにしたら読み込めるでしょう?
>>806 意味が良くわからないんだが。
読み込むアプリケーションはなに?
InputStream in = bokeboke.class.getResourceAsStream("/XMLFILE");
809 :
ふれあいケツ毛工房。 :02/10/06 11:04
private Image[] image=new Image[4];//イメージ []ってなに??そして[4]ってなにものなんですか?? 教えてください?!m(__)m
>>728 >>729 >>730 じゃぁForte4CEがJ2SEの1.41に対応していないということですか?
試しに1.41をアンインストールして、1.402をインストールしても
同じ症状でした。やはりJ2SEは1.40を使わないと無理ってことでしょうか?
こりゃいよいよ、COBOL後継言語論が現実味を帯びてきたな・・・
>>804 読み込んでいるHTMLはどんな風になってますか? Parserが参照しているDTDに、
そのHTMLが合致していない場合ちゃんとタグが取れないと思います。
本当はDTDを取り替えられればいいんだけど、事実上取り替えはできません。
>>810 まだ悩んでるのか?
Windows98だけど、ちょっと俺もインストール試してみようかな
>>814 それも思ったんだけど、これってJ2SEは英語版のような気がする・・・。
少なくとも、インストーラは英語だった。だから途中でやめた。
J2SEの1.40はもうDLできないのだろうか・・・。
1.4.0.02でも無理だったんで・・・・!
>>815 私は君の症状は
おそらく、バージョンではなくて、別の理由ではないかと考えている。
ひょっとしてインストール中の
「SDKを探しています。お待ちください。」
のメッセージのダイアログの下の方に
”ボタン”とかあったりしなかったかな?
Windows98でインストールに成功した。 方法 1.SDKを探すところで、インストーラーに任せず、自分でSDKの位置を指定してやる必要がある。 2.SDKの位置は、J2 SDKのインストールディレクトリを指定する。 3.例えば、「C:\j2sdk1.4.0」を指定する。その直下には、「bin」とか「jre」というディレクトリがある。 これで大丈夫だった。 さて、アンインストールするか。
818 :
デフォルトの名無しさん :02/10/06 22:58
JAVAを勉強はじめたんだが、スレッドがスレッドじゃない気がするのは俺だけか?
819 :
デフォルトの名無しさん :02/10/06 22:58
>>812 Uさんありがとうございます。
サンプルコードには特にパーサを書いてないんですよね。
なのでディフォルトのHotJavaパーサのようです。
読み込んでいるhtmlはgetAttributeで見てみると
ちゃんと認識しているようです。。。
javadocを追いかけてくとその辺の知識が足りないのが
よくわかりましたが、HTMLEditorKitについて詳しく載ってる
ページor本はないですか?
javahouseにもほとんど情報がないようですね。
「javaによるパーサ構築法」という本が唯一あるくらいです。
それかhtmlパーサの場合でも、XMLのパーサを
利用するのでしょうか?
以上散文でした。。
822 :
デフォルトの名無しさん :02/10/06 23:30
>>810 漏れは、1.41でForte4CEが動いてる。
ホイールマウスで動いてます。でも、Forteの豊富な機能の使い方がよくわかんない。
微妙に遅いし。
>>813 「SDKを探しています。お待ちください。」の画面にはボタンはいっさい
出ません。ただ気になるのが、「探しています」の状態になって0.5秒後、
ほんの一瞬、DOS窓のような黒いものが現れます。一瞬ですので、
すぐ消えてしまいます。
SDKのあるパスを指定するような画面自体現れないということは、やはりVerの
問題ではなさそうですね・・・。いったい原因は何なんでしょう!
私の手元のForteと あなたの手元のForteが別物の予感。 吊ってくる。
マンコ ide.cfg に以下を書け -userdir c:\java\ide\Netbeans332\userdir -jdkhome C:\java\jdk\jdk1.3.1_04 -J-Xmx196m -J-Xss1024k -J-Xms31m -J-XX:NewSize=30m -J-XX:MaxNewSize=30m -J-XX:CompileThrethold=300 -J-verbose:gc
>>821 「Javaによるパーサ構築技法」もってます。
はっきりいって、HTMLのパースには役にたたないです。
私の知っている範囲の資料で一番HTMLEditorKitに詳しい和書は、
残念ながら黒本かな。(10ページくらい。内容薄い。しかも役立たず。)
一番参考になるのは、Mozillaだったりして。
827 :
デフォルトの名無しさん :02/10/07 00:38
重複スレ(もうすぐ削除)にレスしたので、ここでも一度質問させてください。 FontをDialogInputとMonospacedの2種類を表示したいんですけど、おなじフォントが表 示されてしまいます。 import java.awt.*; import java.applet.*; public class TestApplet extends Applet { public void paint(Graphics g) { Font f1 = new Font("DialogInput", Font.BOLD, 20); Font f2 = new Font("Monospaced", Font.BOLD, 20); g.setFont(f1); g.drawString("Hello", 20, 100); g.setFont(f2); g.drawString("Hello", 20, 200); } }
皆はJAVA暦何年?
>>828 覚えてないが・・・1.0の時代から齧ってはいた。
99年ごろだったかの一太郎Arkのアンケートで、Javaの経験年数の
選択肢に10年以上があって、阿呆かと。
>>829 妄想癖のある人を抽出するための選択肢です
こら、おまえらん中にJINIに詳しいやつっているの?
>>827 私は、そのコードで正しく表示できましたよ。
動かしているのは、どんな環境ですか?
どのJavaが動いていますか?
というか、MSのIEのJavaで動いていると見た。
>>832 すみません、環境を書くのを忘れました。
Solaris2.8 J2DK1.3です。
これってユーザーの環境で変わるんですか?それともコンパイルの環境で変わるんです
か?
試しにWindowsXP+IE6+Java Plug-in by Sunで見るとうまくいきました。
(コンパイルした環境はJ2SDK1.4.1 + WindowsXP)
しかし今度はDialogとSanSerifが一緒になってしまいます。
また妄想癖を持ったやつ(=834)が出てきた
javaのクラスファイルって簡単にデコンパイル出来るらしいけど、 解析されないよう暗号化ってできませんか
>>836 スパゲチーコードをかけば(・∀・)イイ!
>>837 ワロタ
おいらのソースは常に暗号化!
誰か解読してくれ
>>836 そういうツールあるよ。暗号化じゃなくて「全てのクラス名、
メソッド名、シンボル名を人間にとっては意味の無い文字列
に変更する」やつ。オブファスケータっていうの。ググって
味噌。
それでも根性あれば読めるんだけどね。
はぁ、日本人はすぐこれだ 数十万行のソースの全解読は努力も根性も通用しない世界。
PATH 変数の設定で、間違えてシステム環境変数を 変えてしまい、コマンドプロンプト上で コマンドが認識されなくなってしまいました。 元の変数値に戻したいのですが、わかりません windows xpです。 どなたか教えていただけないでしょうか…
843 :
デフォルトの名無しさん :02/10/07 13:43
>>842 ほれ。まったくいじってないからデフォルトだと思う。
Windows XP Proです。
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
ちょっと調べてみたけど、SystemRootってどこで定義されているんだ?
845 :
デフォルトの名無しさん :02/10/07 14:19
正規表現使いたいんですけど、 Perlでいうところの{0}とかマッチした文字列って 取得できないのですか?
>>843 たすかりました。
ありがとうございます。
文字列の式を評価して値を得るのって、 どうやってやるんだろう? String expr1 = "1 + 1"; System.out.println(???.???(expr1)); みたいなことがやりたいんだけど、???が わからないです。だれか教えて?
>>847 できた
>>848 たぶん無いです。スタックは実現できるので
逆ポーランドで実装するのがいいと思われ
>>848 Pnuts などの BSF 対応スクリプトライブラリを使って eval すれ。
>>821 >サンプルコードには特にパーサを書いてないんですよね
なのでディフォルトのHotJavaパーサのようです。
じゃあ、swingのライブラリに入ってるパーサをそのまま使ってるんでしょう。
#あれってHotJavaのパーサだったのか
詳しいことを知るにはソースを読むしかないんじゃないかな。
#少なくともおれはそうした。
>読み込んでいるhtmlはgetAttributeで見てみると
ちゃんと認識しているようです。。。
質問に合ったINPUTタグのNAME属性も入ってるってこと?
だとするとよくわからんなあ。
このパーサはライブラリに入ってるバイナリ形式のDTDを参照してパースすると
いう妙ちきりんな代物で、世の中で使われているテキスト形式のDTDを使うこと
はできない。だけどHTMLのパースはやっかいな代物なので、このパーサを使う
前提でDTDのパーサを作ったみたら?
852 :
. ◆P25aipVMtc :02/10/07 17:08
取得したIPアドレスからホスト名を判別するプログラムを作りたいのですが InetAddress address=InetAddress.getLocalHost(); で取得したIPアドレスを InetAddress host=InetAddress.getByName("aaa.bbb.ccc.ddd"); System.out.println(host.getHostName()); の("aaa.bbb.ccc.ddd")に放り込むにはどうすればいいんでしょうか。 よろしくお願いします。
Forte4をインストして(Tomcat4.01もいんすとされる) Tomcat4.1.12をインストする。 この時点ではForte4は正常に動作するのですが、 Tomcat4.1.12を起動してしまうと、終了しても、 再起動してもForte4が起動の途中で止まってしまいます。 ちなみにForte4をアンインストしてインストし直すと起動します。 両方使いたいのですが何かいい方法ないですか?
854 :
デフォルトの名無しさん :02/10/07 20:03
指定したHPのソースを自動でメモ帳か何かに保存するというプログラムを作りたいのですが、 何かアドバイスをいただけないでしょうか。 よろしくお願いします。
855 :
デフォルトの名無しさん :02/10/07 20:15
javaをはじめたいんですが、 とりあえず、コードを実戦的に打てるように なるための教科書を教えて下さい。 プログラムはCのみです
APIみれ
>>852 InetAddress host=InetAddress.getByName(address.getHostName());
>>853 よう分らんが、Tomcatはインストーラを使わず、zipからインストールすれ
>>854 メモ帳に保存というのが意味不明です。それ以前に、Javaとは何か分って
ますか?
858 :
デフォルトの名無しさん :02/10/07 20:30
>>857 javaにはソースを拾ってくる機能があると聞いたのですが。
>>858 メモ帳に保存じゃなくてテキストファイルに保存だろうがこの ヴォケ
URL#openStream() でやれや チンカス
860 :
名無しさん@Emacs :02/10/07 20:35
861 :
デフォルトの名無しさん :02/10/07 20:36
プログラムはCのみです は プログラム歴はCのみです の間違いでした。 よろしくお願いします。
>>857 さっそくzipをダウンして解凍したのですが
こんどはstartup.batを起動すると、
'Djava.endorsed.dirs='が見つかりませんと出てしまいます。
>>826 >「Javaによるパーサ構築技法」もってます。
>はっきりいって、HTMLのパースには役にたたないです。
立ち読みしましたがなんか薫り高い本ですね。
パースとは文字の羅列から意味のある情報を
抜き出す作業云々・・
黒本はざっと見て該当部分がみつかりませんでした。
あとオライリーのjavaネットワークプログラミング
などにも多少載ってますね。一番詳しいかも。
でも5800円。。。
Mozillaってjavaベースのブラウザのソースとか落ちてるんですか?
#
チャットできるようなプログラム作ってるんですが クライアントとサーバーの入出力のメソッドについてちょっと聞きたいです。 本を参考に作ってみたんですが、 クライアントの出力のメソッドがOutputStream(----) 入力のメソッドがBufferedInputStream(----) サーバーの出力のメソッドがPrintWriter(----) 入力のメソッドがBufferedReader(----) です。なぜクライアントとサーバーの入出力を同じメソッドにせず わざわざ違うメソッド使うんでしょう??意味あるんでしょうかこれ。
>>866 Server → Client はテキスト中心、Client → Server はバイナリ中心ってんじゃ
ない?
そんなことないか。なんだそりゃ。
多分意味は無い。
しかし、いしばっておもしれえな。
誤爆、すまん
>>851 すみません、name属性が入ってるかどうかまでは
確認できてません。
タグを羅列させて、全部拾えてるかを見ただけです。。
おっしゃるように一度ソースを見てみます。
でも結構癖が強そうですね。
とりあえず、ほしかったのはinputタグだけなので、
正規表現を利用して自力で拾いました。
あまりスマートではないですが。。(^^;
あと、cookieについて質問です。
(会員ページとかにアクセスして、情報を拾ってくるツールを
作っているので)
cookieが要求されるページにアクセスするために
javaのソフト上から(ブラウザの動きを模擬して)
getcookieにこたえるようなことをしたいのですが、
この場合、下のどの方法が一番簡単でしょうか?
・j2EEのAPIを使ってcookieを操作
(クライアント側の処理のAPIはない?)
・SWTでのOLEコントロールを利用して、IE経由でサイトに接続
(cookieはIE任せ)
・ソケット通信を自力で書いて対応
・C#へ移行する(.NETクラスライブラリを利用する)
3つめだと、ページ毎に対応が必要ですよね。。
2つめあたりが一番スマートでしょうか?
>>864 catalina.batが、
-Djava.endorsed.dirs
になってる?
Djava.endorsed.dirs
になってるように読めるが
>>813 漏れがインストしようとしているForteは
アーカイブ名:ffj_ce_win32.exe
サイズ:40.0 MB (41,977,829 バイト)
です。ちなみにJ2SEは
アーカイブ名:j2sdk-1_4_1-windows-i586.exe
サイズ:35.9 MB (37,724,482 バイト)
です。OSはWindowsMe、MEMは384MBもあります。HDD容量も十分。
j2sdk1.4.1\binにautoexec.bat書き換えによりパスが貼ってあります。
なぜインストできないんだ・・・!
875 :
デフォルトの名無しさん :02/10/07 22:08
876 :
デフォルトの名無しさん :02/10/07 22:11
iーアプリでファイル操作って出来るんですか?
877 :
デフォルトの名無しさん :02/10/07 22:15
878 :
デフォルトの名無しさん :02/10/07 22:16
>>872 ありがとうございます
さっそく調べてみた所catalina.batは
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%"
-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%"
-Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
となっており大丈夫でした。
もう一度起動してみたところ、よく見てみると
'-Djava.endorsed.dirs='が見つかりません。
でした。
879 :
デフォルトの名無しさん :02/10/07 22:21
>>877 それじゃぁそれっぽいことは出来ますか?
>>873 俺のはWinXPで
j2sdk-1_4_1
ffj_ce_win32.exe
で動いてるよサイズは同じ。
パスは設定してないけどちゃんと認識してくれたよ
>>871 Jakarta CommonsプロジェクトのHTTPClient使うってのはどう?
#つーか、どこでも同じようなことやってんのね
>>871 私も
>>881 と同じような答え。
わざわざ作らず、完成したものをどっかから持ってきて利用する。
>>878 解った。改行が入ってるんだ。
JAVA_OPTSか、CATALINA_OPTSか、DEBUG_OPTSに。
>> 881 すばらしっすね! 英語苦手なんでjakarta避けてきたのですが。 ってフルで翻訳されてますね。(^^; ありがとうございました! ちなみに個人でやってるだけです。 一人でコーディングって限界あるので そのへんうまく使ってかないといけないですね。
>>881 サンプルまでありますね。すばらしい!
というか自分のアンテナの低さに
ややへこみますた。
危うく1ヵ月くらいかけてcookieもどきを
各ページに作るところでした。。
>>885 ユニットテスト系も役立つかもね。
HttpUnitとか。
「eXtreme Programming テスト技法」という本に、 3ページくらい、Javaアプリケーションへの組み込みへの応用っていう項目があった。
JavaBeansってあるよね。EJBではなく、普通の。 あのJavaBeansの仕組みを 自作のスタンドアローンアプリケーションに組み込んだ人いますか?
>>886 おおー!良さげですね。
javaはやっぱりNW系が強いですね。
>>854 とりあえず、
・ファイルへの書き込み
・HPの読み出し
の二つのサンプル探してきて、
自前のライブラリを作ったら?
今後拡張していくらでも使えるので。
891 :
デフォルトの名無しさん :02/10/08 00:12
JAVAアプリケーションで5枚の静止画をコマ送りしてアニメーションさせるのが うまくいかない。Thread.sleep()で時間をおいて画像を切り替えてdrawImage()で 表示させようとしているんだけど、最後の画像だけ表示されて途中は表示されず 空白のまま・・・何がいけないのか教えて。ちなみにソースは以下に↓
892 :
デフォルトの名無しさん :02/10/08 00:12
getcharの使い方がよくわかりません。 おしえてください。
import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.swing.*; class Animation_Image extends JFrame { Image[] src = new Image[5]; Image img; MediaTracker mt; Pixel(String title) { super(title); setSize(400,300); setBackground(Color.black); Container c = getContentPane(); c.add(new Pixel_Panel()); mt = new MediaTracker(this); for(int n=0; n<5; n++) { src[n] = Toolkit.getDefaultToolkit().getImage("../photo/photo"+(n+1)+".jpg"); mt.addImage(src[n],0); }
try{ //イメージのロードが完了するまで待つ mt.waitForID(0); } catch(InterruptedException e){} for(int i=0; i<5; i++) { try { Thread.sleep(500); //0.5秒停止 } catch(InterruptedException e){} img = src[i]; System.out.println("img="+i); repaint(); } } class Pixel_Panel extends JPanel{ public void paintComponent(Graphics g){ super.paintComponent(g); g.clearRect(0,0,getWidth(),getHeight()); g.drawImage(img,0,0,this); } } public static void main(String args[]){ Pixel w = new Pixel("アニメーション"); w.show(); } }
>>893 試してないけど、コンパイルできる?これ
コンパイルできます。 photo1〜5.jpgの5枚をメディアトラッカーに載せてThread.sleep()で 一定間隔で表示切替しているのですが、最後の5枚目だけ表示されて 途中の1〜4枚目は表示されません。その間パネルは空白です。 drawImage()をrepaint()で再描画しているあたりが怪しいとは自覚して いるのですが原因がわからずいっぱいいっぱいです。 drawImage()を使って画像を切り替えるにはこんな感じではだめなんでしょうか?
>>888 はい、あります。でも、それがどうしたの?
>>897 どんなふうに使ったかをきかせてほしいですわ。
>>896 MediaTracker って addImage() で重複 ID があった場合、同じ ID の奴を
全部ロードしてくれたっけ? してくれなかったよな?
つまりそういうことです。
ついでに 900 GET
手元の本の説明には addImage(image,a); aはイメージをグループ管理するための識別IDで任意の整数値で、 識別IDで示されるメディアトラッカー上のすべてのイメージをロードするには try{ mt.waitForID(0); }catch(InterruptedException e){} 上で指定した識別IDのすべてのイメージがロードされたかチェックし、 if(mt.checkID(0)){ for(i=0; i<n; i++) g.drawImage(img[i],0,0,this); } で表示するとあります。グループ管理とあるので重複していてもよさげな気がします。
パネル上でイメージの描画をする際に下のようにThread.sleep()で時間を空けて drawImage()で2枚の画像を切り替えて表示しようとしているのがだめっぽい? 後者だけ表示されるだけ。って前と同じこと言ってた。スマヌ class hogehoge extends JPanel { public void paintComponent(Graphics g) { g.clearRect(0,0,getWidth(),getHeight()); g.drawImage(img1,0,0,this); try { Thread.sleep(1000); } catch(InterruptedException e){} g.drawImage(img2,0,0,this); } }
903 :
デフォルトの名無しさん :02/10/08 02:21
>>902 イベントディスパッチスレッドを直接sleepするなよ・・・
別スレッドでタイマー作って1秒ごとにイベント起こし
て差し替えろ。
目茶苦茶だな
>>898 J2EEでロジックとプレゼンテーション間でのデータの受け渡し。
JDBCからのデータをコピーして転送すんの。
908 :
デフォルトの名無しさん :02/10/08 12:48
ローカルにデータを保存するときに、管理者やハッカーが読めないように暗号化したいのですが、 どうするのが最適でしょうか。教えてください。
>>908 最適な暗号を使ってください。
しっかし管理者が読めないように暗号化って…
>>909 管理者だから何でも許されると思ったら大間違いです。
よのなかには、いっしょうみないほうがよいデータもあります。 :-)
912 :
デフォルトの名無しさん :02/10/08 16:59
クラスの間で複数行の文字列をやり取りしたいのですが、 StringListみたいな便利な型はもちろん無いですよね。 それで、Stringの配列を作ることにしたのですが、こんどは入れるモノの大きさが不定なので 大きさを指定して宣言するのもマズー。大きさを指定せずに先頭だけ作って、あとから後ろに 追加していくというのは可能なのでしょうか?
>>912 Vector, ArrayList, …
>912 普通のList(java.util.ArrayList等)でいいんじゃ? 要素がStringじゃ無く Objectなので、データを 取ってくるときはキャストしないといけないけど。 b
>>880 実は今日、漏れの所持するWin2000のPCに、J2SE1.4.1とFFJ4をインストール
したところ、何も問題なくインストールできました。
結論:FFJ4はWindowsMeでは使用できない。
みなさん、お騒がせして申し訳ありませんでした。
それと、ご協力ありがとうございました。
漏れはやっとスタティック変数とスタティックメソッドの意味が理解できたと
いうレベルです。もともとコボラーで、Cは半年。オブジェクト指向の
マスターにはかなり時間がかかりそうです。
917 :
デフォルトの名無しさん :02/10/08 21:53
98では問題なくインストールできてますが.>sun one studio 4 jdkは1.3ですが.
>>907 ちがう〜。
すでにある仕組みを利用するのではなくて、
JavaBeansフレームワークをアプリケーション内に自前で構築する。
他の人の作成したJavaBeansを、BeanInfoだのBeanDescripterなりだったかを使って、
プラグイン状態で機能させるとか、
そういうのをききたかったのですよ。
>>917 ちなみに813が
>>824 までの間に試していたのも、
Sun One Studio版でした。
>>911 そのサイトのJava本は全部、残りも大半読んだことあるけど、
Java言語入門向きの本はないな。
下の2冊はおもしろかったけどね。
Javaの鉄則―エキスパートのプログラミングテクニック
Javaの格言―より良いオブジェクト設計のためのパターンと定石
921 :
デフォルトの名無しさん :02/10/08 23:07
java.security.cert.CertPathValidator 使ったことある人いる? CRLChecker がうまくいかないんだけど…。
>>912 「複数行の文字列」なら String 使っとけばいいんじゃない?
改行文字も一緒に突っ込めばいいだけなんだから。
>>912 java.nio.CharBufferのリストでも
使えば〜 と言って見る。
>>918 JavaBeanの仕様ってわかってる?
Java言語入門向きの本 だれもおしえてくれない。。。。
ワーミングが正しい
サーバーサイドで複雑な画面遷移を簡単に構築できる フレームワークってないでしょうか?
>>928 何を求めているのかわかんない・・・。
初心者向けの本を一冊読んだので、 次ぎは中級者向けの本を読もうと思うのですが、 お勧めなどありましたら、是非ご教授ください。
中・上級者向けなら「Effective Java」をすすめたいところだが、さて。
JPanelを継承して、画像を描画できる Panelを作成したんですけど、描画時にちらつき が起こるのでコンストラクタで super(true); とやって、ダブルバッファリングを有効にたんですが、 相変わらず、表示の際にちらつきます。 なので、次はこのPanelを持っているFrameに対して getRootPane().setDoubleBuffered(true); と、かましてあげてもだめですた・・・・・ どうやったら、ダブルバッファリングできるのでしょうか?
>>933 内容を見てきました、素人が読む本ではないのでは?
自分としては、実務的な例を勉強したかったのですが、
まだ、JAVAを使いこなしているレベルでは全然ないので・・・
ちなみに皆さんにFFJの件でお世話になった私の教本は プログラミング学習シリーズ Java@ Javaではじめるプログラミング 著:桑原信也 SE SYOEISHA 定価:2400+税 っていうやつ。オブジェクト指向が全然わからない漏れでも少しずつ段階を 追って覚えられる。多分この本はプログラムの経験がない人でも 楽しくやれると思う。ご参考まで・・・!
finalって文法的にはわかってるつもりだが、適応する基準がわからん。 継承しない関数は全て付けるべきなのか、 それとも、継承しないことを強調したいときだけ付けるべきなのか。 staticについても同じ、staticでもいい奴には絶対付けるべきなのかどうか。 中・上級者の皆さん教えておくれ。
>>939 final はともかく static は「でもいい」で付けるようなものではない・・・
static の機能的な意味は分かってるか?
>>926 >>930 ありがとう。
本の方が楽によめるから、
「独習Java」
&
Java言語プログラミングレッスン〈上〉Java言語を始めよう 結城 浩 (著)
を立ち読みして見ようと思います。
そんで良さそうな方を読もうと。
942 :
デフォルトの名無しさん :02/10/09 21:20
>>911 それを読み終わったら、「JAVA開発者のためのアンチデザインパターン」を読むといい。
>> 939 finalは、継承するな! という場合に付ける。 staticは、940を参照。というか、意味がわからないなら、使ってはいけない。
944 :
デフォルトの名無しさん :02/10/09 21:30
>>943 そうだよね。わからないことはしちゃいけないよね。
人生の意味がわかっていない君も生きてちゃいけないよね
>>908 もしかしたら、私は暗号化したことあるかもしれません。
アプリケーション固有のデータ形式があって、データに最適化した形の独自圧縮をかけてから、
データ保管用ディレクトリに書き出していました。
独自形式の圧縮って、ある意味、暗号化しているようなもんだよね。
>>940 必ずしもインスタンスメソッドでなくてもいいケースってない?
なければ、わしの理解不足。
ユーティリティとかはクラススコープにするけどね。 ビジネスロジックはインスタンスが良いね。 サブクラス化する可能性もあるしね。
staticメソッドはインスタンスでなくクラスに属するので サブクラスでオーバーライドできない。 「必ずしもインスタンスメソッドでなくてもいい」場合でなく 「積極的にクラスメソッドであるべき」場合に使おう。
>>948-949 Oh!わかりやすい。
修飾子は積極的に明示すべき時だけ使うと。ありがとう。
>>941 独習Java 第2版第1刷 (2002/7/16)
若干、誤植がある
for(int num = 1; num @@ 11; num = num + 1 )
って例で3分ほど悩んだ
本文の誤植は許せるんだけどなぁ
952 :
デフォルトの名無しさん :02/10/09 23:04
オススメのJava雑誌を教えてください。 特に最近創刊したJava Developerに興味があるので、 買った方は是非、感想をお聞かせください
953 :
デフォルトの名無しさん :02/10/09 23:13
>>952 ジャマイカのすべてという本があったがどうだ?
954 :
デフォルトの名無しさん :02/10/09 23:14
あるファイルを探すプログラムを作りたいのですが、どのように作っていいかわかりません。。 アドバイス、できればソースも含めてよろしくお願いします。
955 :
デフォルトの名無しさん :02/10/10 00:05
FileReaderクラスでread関数を使うとファイルの最後にいくとー1を返すとあるのですが、 これはー1をファイルに保存できないということなのでしょうか? よくわかりません。おしえてください。
956 :
デフォルトの名無しさん :02/10/10 00:10
>>954 static File[] File#listRoots()でルートをとってきて、
あとはFile[] File#listFiles()で再帰。
>>ー1 最近の FileReader は変なもの返すようになったんだねぇ
>>955 Stream系のread()は呼び出すと一文字分読み込んで、 ←だったけ?
int値にして返してきます。
このint値は通常、正の値です。 ←だったけ?
で、このメソッドはファイルの終わり(EOF)が来た時に、
そのことを-1をもって表現しているのです。つまり、そうゆう決まりにしたと。
文字処理の例
try { // ←忘れずに
// ↓FileReaderインスタンスの生成
FileReader fileReaderr =*************;
BufferedReader bufferedReader = new BufferedReader(fileReader);
String readLine = null;
//↓このメソッドはnullでEOFを表現します。
while ((readLine = bufferedReader.readLine()) != null){
//readLine文字列に対する処理をおこなう。
}
} catch(FileNotFoundException e){
// 例外処理
} catch(IOException e){
// 例外処理
}
てな感じにしたほうが良いかと。
>>946 独自の圧縮は確かに簡易の暗号として使えなくも無いが、
アルゴリズムが判明すると、容易に瓦解する。
特にJavaの場合はバイトコードの解読も容易なので、さらなる注意が。
>>952 Java World だけでよし。
Java Developer はリファクタリングレッスンだけ立ち読みすれ。
>>959 クラスファイルの脆弱性は確かにかなり危険。
Javaは動的結合なので、クラスファイルを置き換えただけで、
ID、パスワード付き暗号もあっさりかわされたりする場合もある。
最近、クラスファイルにバージョンを持たせておいて、指定のバージョンでない時は、
java.lang.LinkageErrorを自分で投げて停止するという荒業を見た。
この例外の使い方あってんのか?
さて、
みなさ〜ん
そろそろ次スレの時間です。
前にも質問あったような気がするけど、探せなかった UMLクラス図からソースのようなCASEツールじゃなくて、 JavaのソースからUMLクラス図はくようなツールはないですか? 知ってたら教えてください。 フリーだったらすごくうれしい。 あと、クラス図ってExcelとかVisio以外でどうやって書いてます?
>>962 MagicDraw UML で出来たと思う。コンパイル済みの *.class からも UML 書けた
はず (情報に限界あるけど)。
JAVAアプリケーションをコマンドプロンプトから実行 しているのですが、普通のWindowsプログラムみたいに コマンドプロンプトから独立して動かすにはどうしたら いいですか? 動かしている間、コマンドプロンプトが使えないのよ。
967 :
デフォルトの名無しさん :02/10/10 23:09
>>966 ありがとうございました。他にもやりかたありますか?
>>967 Emacsで、
M-x shell
java hoge&
とか、cygwinで、
java hoge&
とか
969 :
デフォルトの名無しさん :02/10/10 23:13
>>965 jar圧縮すればダブルクリックで起動できるよdemoフォルダの.jarファイルダブルクリックしてみそ
っていうか、Emacsなら、 M-! java hoge の方がいいか
971 :
デフォルトの名無しさん :02/10/10 23:18
っていうか Emacsってなに?
972 :
デフォルトの名無しさん :02/10/10 23:21
>>971 フィンガーファイブと一緒にいた、
5mくらいのでかい人形。
973 :
デフォルトの名無しさん :02/10/10 23:49
javawさえ知らない人おおいのね。 ドキュメントくらい読もうよ・・・タノムカラ・・・
javawもwinではコンソールつかまれるでしょ 「コンソールを開けたくない」が目的じゃないだろ。
JSPのオーサリングツールってありますか?
976 :
デフォルトの名無しさん :02/10/11 00:29
ServletやJSPの勉強で掲示板を作成しているのですが。
掲示板のログをXMLファイルに落とそうと思っています。
なんか楽できる方法とかないでしょうか?
xercesとか使って自分で全部ガリガリ書かないとだめぽ?
J2SDKのloggerとかlog4jも見てみたんだけど、なんか思っているようには
できなさそう…まだ調査中なのでよくわかりませぬ。
希望としては
<remark date="2002/10/11 00:00:00">
<user email="
[email protected] ">username</user>
<message>(・∀・)イイ!</message>
</remark>
というよな感じのをログファイルに並べて行きたい感じ。
希望としてはBeanをサクッとXMLにシリアライズしてくれるクラスライブラリとか
あれば嬉しいのだけど。
こういうこと考えること自体アフォなのかなぁ…。
977 :
デフォルトの名無しさん :02/10/11 00:39
>>976 そんな貴方にJDK1.4
java.beans.XMLEncoder/XMLDecoder
>>976 WebProgram板逝けよ。
ついでにこのスレも引っ越せ。
979 :
デフォルトの名無しさん :02/10/11 00:47
>977 サンクス。でもこれはどうやらXMLEncodeとDecodeでセットにして、Beanを永続化 させるのが目的みたいっす。 できればスキーマとか自分で決めたい感じ。 わがままいってスマソ。 >978 うーん。質問の内容自体はWebとは関係ないと思うんだけどな。
>>979 オブジェクトとXMLのノードのバインディングを自力で決める
というのは、たんなるオナニーだと思うけどね。
標準に従っといたほうがお得だよ。ヘンなロジック作りこむ
必要ないし。(うちのバカSヨにいってやりたい・・・)
>>976 Relaxerって知ってる?
こういうXMLファイルのnameタグ内のtextエレメントに値をセットしたい時に、
<hoge>
<name></name>
</hoge>
こんな風に、メソッドでアクセスできるようになるJavaソースを生成してくれるよ。
Hoge h = new Hoge();
h.setName("Hello world");
String result = h.makeTextDocument();
もちろんXMLのスキーマも自分できめられる。
>980 たびたびありがと。 > オブジェクトとXMLのノードのバインディングを自力で決める > というのは、たんなるオナニーだと思うけどね。 そっすね。言われてみればそんな気もする。 Beanに戻して書き直すもヨシ。 XSLTやCocoonで整形してもヨシ。 ほほーん。その方向で考えてみます。
>>981 その系統ならJAXBという手もあるね。まだRI完成してないけど(w
・・・EA版RIのダウンロードサイトが今どこにあるか知ってるひといる?
なんか見当たらないんだけど・・・
JDOMでDOMツリー構築してシリアライズでもいいかもね。
最近いろいろあってこまるねえ・・・別にどれ使ってもいい気がする
ところが特に。
984 :
デフォルトの名無しさん :02/10/11 01:06
>981 さんきゅーう。 そいえば、そんなものもありましたねー。 いわゆるスキーマコンパイラってやつですね。 ちょい前にSOAP勉強してるときに聞きかじりますた。 そんときは(今も?)XMLの規格がゴタゴタしてる印象があって、ほっぽっちゃったけど ちょい勉強してみますわ。 ありがとう。
すいません,XSLTのパーサ(?)をインストールしようとしているのですが,その前にJAVA2を実行 できる環境かどうかがわからないんですが,どうしたらわかるんですか?
>>986 おお!ありがとうございます!
1.3.0JAVA2RUNTIME....って出たってことはOKってことですよね!
ふぅ〜.
ありがとうございますた.
988 :
デフォルトの名無しさん :02/10/11 06:47
JDKとJREアンインストールしても、WindowsのコンパネにJava Plug-Inってのが残ったままなんだけど。タスケテクレー。Windows 98です。
990 :
デフォルトの名無しさん :02/10/11 10:36
>271 etc. DOSでjava(interpreter)のerror出力はリダイレクトできませんかね。ランタイムエラーをディバッグしたいんですけど。
1000
Kate
Jed
NotePad
まんこ
vi
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。