1 :
デフォルトの名無しさん :
03/10/21 15:33
2get
javaの次世代言語 <`∀´ > nida ニダ
いつのまに1.4.2_02出たんだ? 昨日は1.4.2_01だった気がする。キャッシュしてたのかな。
すみません、教えてください。 ある特定のフレームをロックし、全てのイベントを廃棄するようなことは 出来るでしょうか?
8 :
デフォルトの名無しさん :03/10/21 20:00
>>7 モーダル Dialog を出せばそうなるけど。
さもなければ、君の書いたことを実際にやってみるしかない。
モーダルダイアログが親Frame をロックする処理そのものは Java で書かれてるようだから、
王道としてのやり方は JDK のソース見れば分かるかも。
9 :
デフォルトの名無しさん :03/10/21 20:05
javaでプログラミング始めて二日目です。 なんかテキストに書いてあるとおりにソースかいても exepsion in thread "main"java.lang.nosuchmethoderror:main と出てプログラム実効してくれません。 簡単な文字を出力するだけならできました。 サパーリです。どうしたらよいのでしょうか・・・ あほな質問なんでしょうがよろしくおねがいします。
10 :
デフォルトの名無しさん :03/10/21 20:06
ってテンプレありましたね・・・ ご迷惑おかけしました・・・
>>9-10 それはテンプレには、まだ無かったと思うから、ここに書いておこう。
とりあえず、そのエラー文を読むなり、
英文翻訳サイトや辞書などで翻訳してみればわかるように、
「"main"メソッドが見つからない」と言われているのです。
mainメソッドが正しく書かれていないか、
もしくくは、
>>9-10 の使っているテキストに乗っているソースが、
元来、javaコマンドで起動するためのものではないのでしょう。
mainメソッドに、ちゃんと public はついていますか?
mainメソッドに、ちゃんと static はついていますか?
mainメソッドの引数は、ちゃんとStringの配列になっていますか?
大文字と小文字を打ち間違えていませんか?
public static void main(String[] args) {
}
ごくたまに public stick void main(String[] args) { } とかになってる
テンプレに書いてあることと同じことかと思いましたが違うのですね。 道理で進まないはずだ…昨日からここで止まってしまってる。 指摘ありがとうございます。 でもmainのところに打ち間違えはないようです。 それでもってjavaで実行できるソースのはず。 わからない…
15 :
デフォルトの名無しさん :03/10/21 21:15
public static void main(String args){ } はよくやった。 なかなか気づきにくい
public static void main(String[] args) throws IOException main文コピペです。後ろの部分でおかしくなってるんでしょうか…
>>16 ふむ。後ろの部分というのはIOExceptionのことかな。
IOExceptionをスローすること自体はなんの問題もなさそうだ。
あなたが手動で書き写した
>>9 のエラーではなく、
正確にコピー・ペーストしたエラーを、ここに貼ってくれるかな。
あと、テキストとやらの名前と、ソースのファイル名や、
どういうコマンドを打ったかも、正確にコピー・ペーストしてくれるとうれしい。
すみません、7です。 解決しました。 実際にはJInternalFrameをロックするのですが、 JDialogのstartModal()を参考にして、 AWTEvent event = theQueue.getNextEvent(); Object source = event.getSource(); if(event incetanceof ActiveEvent) { ((ActiveEvent) event).dispatch(); } else if (source instanceof Component) { Component c = (Component) source; if(!isComponentLocked(c)) { // ←コンポーネントの保持フレームのロック情報を取得します。 ((Component) source).dispatchEvent(event); } } else if(source instanceof MenuComponent) { // 以下略 のように書いてみたのですが、Swingコンポーネントから来るイベントは ActiveEventだらけで、調べてみたところ片っ端からイベントのソースは sun.awt.windows.WToolkitだったりします。 どのコンポーネントから発生したイベントかがわからず、 この方法は見送りました。 代わりに、画面全体を一つのセルレンダラーコンポーネントと見なして、 ロックされた時点でコンポーネントを差し替えて表示のみを行うようにしてみたところ、 うまくいきました。 どうもお騒がせしました。
19 :
デフォルトの名無しさん :03/10/21 22:03
独習Javaで勉強している初心者です。 質問です。下のコードでコンパイルすると「シンボルを解決できません」 というメッセージが出てエラーになります。 Testクラスのobj.hello("aa")のところです。 class A3{ void hello(){ System.out.println("Hello from A3"); } void hello(int i){ System.out.println("Hello from A3"+i); } } class B3 extends A3{ void hello(String s){ System.out.println("Hello from B3"+s); } } class Test{ public static void main(String args[]){ A3 obj = new B3(); obj.hello("aa"); } } 変数の型はA3でもオブジェクト自体の型はB3なのになぜB3のメソッドが 使えないんでしょうか?
Exception in thread "main" java.lang.NoSuchMethodError: main 正確にはこういうメッセージが出ました。
21 :
デフォルトの名無しさん :03/10/21 22:08
>>19 > 変数の型はA3でもオブジェクト自体の型はB3なのになぜB3のメソッドが
使えないんでしょうか?
変数の型がA3だから。B3にキャスト汁
テキスト名:これならわかるjava フォルダ指定後javac Dog.javaをした後java Dogと入力しました。 長くて申し訳ないですがソースコピペしてみます。
import java.io.*; class Dog {private String name; private int energy; Dog(String n, int e){ name = n; if(e < 0){ e = 0; } energy = e; } Dog(){ name = "未定"; energy = 50; } void bark(){ if(energy == 0){ System.out.println("おなかが減ってほえられないよ。"); return; } System.out.println("わん、わん!"); energy--; }
void intro(){ System.out.println("僕の名前は" + name + "だ。わん。"); System.out.println("エネルギーは" + energy + "だ。わん。"); } void eat(int e){ if(e < 0){ System.out.println("マイナスは与えられません。"); return; } energy += e; } void setName(String n){ name = n; } int getEnergy(){ return energy; } void setEnergy(int e){ if(e < 0){ e = 0; } energy = e; } } class PlayWithDog12 { public static void main(String[] args) throws IOException
>>21 mainの中をこう変えました
A3 obj = new B3();
B3 obj2 = (B3)obj;
obj2.hello("aa");
これでいいとすると、A3型で定義されたobjからB3クラスのメソッドに
アクセスすることはできないってことでしょうか?
{ Dog x = new Dog("太郎",10); x.intro(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; int n; for(;;){ System.out.println("どうしますか?"); System.out.println("1 ほえさせる 2 えさをやる 3 終了"); str = br.readLine(); n = Integer.parseInt(str); if(n == 1){ x.bark(); }
else if(n == 2){ System.out.println("与えるエネルギー:"); str = br.readLine(); n = Integer.parseInt(str); x.eat(n); } else{ break; } if(x.getEnergy() <= 0){ System.out.println("犬はおなかが減りました。"); break; } x.intro(); } } } スレ汚しごめんなさい・・・
28 :
デフォルトの名無しさん :03/10/21 22:40
>>27 java PlayWithDog12
でしょ。mainメソッドのあるクラスを指定しないと。
29 :
デフォルトの名無しさん :03/10/21 22:46
>>25 extendsしてるんだから、当然のような気がしまつ。
うまくいきました…感動だ。 こんなあほな質問に丁寧に答えてくださりありがとうございます。 うう…自分が情けない。
B3 obj = new B3(); obj.hello("aa");
A3 obj = new A3(); B3 obj2 = (B3)obj; obj2.hello("aa");
>>25 A3クラスに中身空のメソッド
void hello( String s ) {}
を書いとけばキャストしなくてもB3のメソッド使えるよ
34 :
デフォルトの名無しさん :03/10/21 23:38
すみません、Apache1.3.26とTomcat4.0.6でBeanを使いたいんですが /MyWebAPP/WEB-INF 内に classes/myclass/test.class を入れたんですが web.xml でもBeanの登録をしなくちゃいけませんよね? <servlet> <servlet-name>myclass</servlet-name> <servlet-class>myclass</servlet-class> </servlet> <servlet-mapping> <servlet-name>myclass</servlet-name> <url-pattern>/myclass/*</url-pattern> </servlet-mapping> としたところ、 Element "servlet" does not allow text. などとエラーがでます。 <jsp:useBean id="db" class="myclass.test" scope="request" /> は当然、 Class myclass.test not found です。どなたか、beanのweb.xmlの設定を教えてください。 ちなみにサーブレットは使ってないです。
36 :
デフォルトの名無しさん :03/10/21 23:55
たまに System.out.ptintln("´д`"); とかになってる
おい、Beanはweb.xmlにかいちゃだめだぞ。サーブレットだけだ。
だから、とりあえずは、web.xmlを消せ。jspタグの書き方はあってる。 どうしてもweb.xmlを使いたいなら、 <web-app></webapp>の中を全部消せ。サーブレットができたら、記述しろ。 基本的にweb.xmlは、なくても全部動く。アクセスするURLとかを変更したいときにweb.xmlをつかうんだ。
39 :
デフォルトの名無しさん :03/10/22 00:03
40 :
デフォルトの名無しさん :03/10/22 00:11
>>25 B3 が
>>33 の A3 のメソッドを乗っ取ること(ポリモーフィズム)はできるが、
A3 な変数だけで B3 というクラスの登場をコンパイラに予想させることはできない。
キャストは予想させる行為。
A3 obj = new B3();
B3 obj2 = (B3)obj; ←予想は的中する。
>>32 のようなときは実行時に 2行目で予想が外れる。new A3() は B3 なインスタンスではないから。
>>36 その通りでした…
NoClassDefFoundError
エラーを吐いてました。
>>38 なるほど、今までservletあんまり使わなかったので、web.xmlは
置いてないか空だったんですが、基本中の基本が分かってませんでした。
ありがとうございます。
42 :
デフォルトの名無しさん :03/10/22 01:54
テーブルヘッダー上でマウスクリックをした時に処理をさせたい、ただし、マウスカーソルが←→になっている時(カラムサイズを変更できる場所にマウスがある時)は処理を除外したいのですが JTableHeader.addMouseListenerしてmousePressedつかまえて・・までは良いのですがマウスカーソルが←→になっているかどうかはどうやって取得できるのでしょうか? それともmouseListenerでイベントを拾っている事からして間違ってる!? 誰か教えて~
ドがつくほど初心者というか、2時間前までJavaScriptとJavaは同じものだと思ってて、 プログラムは10年前にMSXでBASICをやったことしかない俺ですが、 Javaを始めてみようと思いました。 理由はvodafoneで昔MSXで作った自作のゲームを動かしてみたいから。 とりあえず解ったことはJava2 SDKをダウンロードするということ、 そしてJavaはどのような環境でも同じ言語?で動くということ。 この俺が明日朝起きたら何をしたら良いでしょうか。 買うべき本(参考書籍スレッドが無かったので)、アドバイスなどおながいします)。 スレタイに初心者大歓迎と書いてありましたが、ここまで聞くのは厨でしょうか。 でも知りたいっす。はじめの一歩を俺に下さい!お願いします。
>>42 JTableHeader#getResizingColumn() が null を返せば、
サイズ変更は起こっていないってのを利用するとか。
マウスカーソルが変更されるのは Component#setCursor とかを上書きすれば検出できるだろうけど、
ユーザがカスタムカーソル指定出来る場合とかだと、
サイズ変更のためのカーソルに変更されているのかどうかを区別するのがしんどいかも。
setReorderingAllowed(false) されてるなら、
mousePressed じゃなくて、mouseReleased にすれば、
もうちょっと前者の方法が楽に使えるかもしれん…
「ファイル名」「絶対パス名」「ファイルの長さ」 を表示させるアプリケーションは出来たのですが。 アプレットにして表示させようとすると、絶対パス名の所でエラーします。 アプレットでは絶対パス名は表示出来ない様になっているのでしょうか?
>>46 アプレットはローカルファイルを扱えないよ。
たぶん、ファイル名ってのはアプレットの置いてあるディレクトリか、
そのサブディレクトリだから表示できただけでしょ。
静止画(.jpgとか.ppm)をたくさん用意して、 動画(.mpegとか)を出力することはできますか?
質問です。 あるメソッド内で実行中のメソッド名を動的に求める方法はないでしょうか? void foo(){ //ここで"foo"を出力したい }
53 :
デフォルトの名無しさん :03/10/22 10:44
>>51 この質問前スレどころか毎度毎度じゃない?なんなんだろうね。
極端に言って、自分でメソッド書いてるんだからそこに自分で書けばいいのに。
「動的」である必要はないでしょう。
FAQ にいれたらどうだろう。
jarファイルに含めたテキストファイル等にアクセスしたい場合、どのようにすれば いいのでしょうか。 File オブジェクトを生成しようとしてもコンストラクタの引数に 何を渡せばいいのか解りません…。
55 :
デフォルトの名無しさん :03/10/22 10:50
Dialogクラスで作成したダイアログに、四角の線を書きたいのですが 実装可能なんでしょうか? Labelをaddするように、四角の線をaddするみたいな感じ ができればと思うのですが、、、
56 :
デフォルトの名無しさん :03/10/22 10:54
>>52 わざわざ場所までありがとうございます。
>>53 継承したらその都度オーバーライドしないといけないし
まあ他にも諸々・・・
58 :
デフォルトの名無しさん :03/10/22 10:58
いや、上書きは関係ないじゃん。 俺は何を逝ってるんだ
>>56 ありがとうございます。java.util.jarなんてものがあったのですね…
60 :
デフォルトの名無しさん :03/10/22 11:24
JavaでDelphiみたいに簡単にFormを出したり、Editコンポーネントを貼り付けたり は出来る、統合開発環境ってないのでしょうか? エクリプスをインストールしてみたけど、Formなんてないし・・・
>>54 new InputStreamReader(getClass().getResource("files/test.txt").openStream());
などなど
jar 作成しなくてもテストできる
>>55 getPreferredSize などで適切なサイズを返すようにした Component を add する。
Canvas でもいい。で、paint メソッドをオーバーライドして Graphics に描画する
>>62 ありがとうございます。自分を含めたjarファイル内のファイルにアクセスするには、この方法が
常套手段みたいですね。
65 :
デフォルトの名無しさん :03/10/22 13:26
>>61 情報ありがとうございます。
普通はJavaでWindowsアプリケーションを作ろうと思ったら、
これを使っているのですか?
それとも、WindowsAPIをゴリゴリゴリゴリ・・・・んなわけないか。
それとも、JavaではWindowsアプリケーションを作ったりしないとか?
>それとも、WindowsAPIをゴリゴリゴリゴリ・・・・んなわけないか。 そうでもない。 凝ったものは当然ながら自分で paint していかないと実現できないし、 凝ってないものは慣れていくうちに設計がパターン化してくるから、さほど苦痛でもない。 >それとも、JavaではWindowsアプリケーションを作ったりしないとか? それはそれで然り。サーバウェアとか、GUI ない方面で活躍してる。
67 :
デフォルトの名無しさん :03/10/22 14:08
>>66 レスありがとうございます。
ではWindowsアプリケーションを開発しようと思ったら、
ほとんどJavaは使わないという事ですか?
(VC++だってリソースエディタとか使うのに、ゴリゴリ書かなきゃダメ
なんだったら、VC++より敷居が高いって事になりますよね?)
という事は、ここでJavaの話をしている人はほとんどWeb系や、
窓を使わないツール(Dosで動くようなの)とかを作っているという事ですか?
68 :
デフォルトの名無しさん :03/10/22 14:29
>>67 > ではWindowsアプリケーションを開発しようと思ったら、
> ほとんどJavaは使わないという事ですか?
Java では Swingアプリ やら SWTアプリは作れますが、
Windowsアプリケーションは作れません。
(Microsoft の VJ++ 使えば作れるけど(VJ#はダメ))
>>61 Delphi使いだったら同じく某製って事でJBuilderでも使ってみれば?
71 :
デフォルトの名無しさん :03/10/22 15:25
Javaの開発はほとんどJSP、サーブレットのサーバサイドだよ。 今はね。 でも、携帯とか家電とかもあるらしいしね。オイラの会社ではGUIの案件は1件だけだね。 後全部サーバサイド。 俺の会社がWebアプリ系だからかな。。。
いや、全体で見てもそんなもんだろ。
>>60 >>65 >>67 です。
>>69 なるほど。GUIアプリは作れるけど、Windowsアプリという分けじゃなく、
>>71 さらに、Webアプリ系や携帯、家電以外にはあまり使われていないんですね。
>>70 いやぁ、ぶっちゃけ転職するのに「Delphi使ってました」より「Java使ってました」
の方が有利だなと思って、それなら、自社アプリ(うちはWindowsオンリーっす)
の開発でこれからJavaを使うようにして行こうかなぁ・・・と(w
そんな私の個人的な要求をJBuilderで満たせるのかなぁと不安が(^^;
で、てっとり早く、今作ってるアプリをJavaで作ろうとしたらGUIで作ってるような
初心者用のサイトが見当たらない。
そんで、こりゃどういうこっちゃと、質問した分けでありますです、はい。
>>73 Delphi は Delphi で、COM まで手ぇ出せば胸張って「やってました」と言えるじゃん。
雇う側としては「使ってました」より「自在に使えます」と言って欲しいな。
案件に対して、どの API をどう使って何のシステムで補うか、即答えを見出せる、とか。
サーバ分野で人気があるだけ特に。
時間をかけて、いろんな API や周辺技術に触れてくれ。
77 :
デフォルトの名無しさん :03/10/22 18:02
突然アフォな質問すいません。 継承されるものにコンストラクタは含まれますか? 今手元に本ないもんで
あ、すいません。説明不足 引数ありコンストラクタは、継承されないようですが、 まったく同じ内容のコンストラクであってもコピペするしか手段はないんでしょうか
80 :
デフォルトの名無しさん :03/10/22 18:08
>>79 SubClass sc = new SubClass();
をしたあとに、
sc = new SubClass(argv[1]);
をしてしまうと、
SubClass.java:11: シンボルを解決できません。
シンボル: コンストラクタ SubClass(java.lang.String)
場所 : SubClassの クラス
sc = new SubClass(args[1]);
といった感じでエラーが出てしまうんですよ。
俺って何か根本的に間違ってます?
>>81 まちがってます。
「Java super デフォルトコンストラクタ」で検索
>>73 です。
>>75 そうですね。自在に使えないと雇ってもらえませんよね(^^;
結局Delphiであれ、なんであれ、Windowsプログラマなら、APIを
ゴリゴリ書けないとダメなんですね。
>>76 非常に参考になりました。
速攻お気に入りに登録しますた。
>>80 tomcatです。
早速、いただいたURLで勉強してきます。ありがとうございました!
86 :
デフォルトの名無しさん :03/10/22 19:03
getContentPaneにJButtonとJScrollPaneを置いてます。 JScrollPaneにJLabel+ImageIconで画像(jpg)を貼っています。 ひとつボタンをつけているので、そのボタンを押すと JScrollPaneに貼っている画像が違う画像に変わるようにしたいと 思っているんですが分からないのです。 どうしたらいいか教えて欲しいしいです。どうぞよろしくお願いします。
>>85 自己レスですが、早速うまく動きました。
ただ、気になるのは、
>>80 のやり方でserver.xmlで設定していたら、
jspやらservlet側で
>>74 にあるようなコネクションプールの設定を
行わなくとも、プールしてくれるんでしょうか?
88 :
デフォルトの名無しさん :03/10/22 19:21
>>87 設定するよ。コネクションのプール数とかはサーバの問題だから
server.xmlに記述するわけ。
jspやらサーブレットはプログラムロジックに集中すればいいの。
その辺の分担はしっかりやってくれるよ。まー、あえて言うなら、
サーバがコネクションオブジェクトをうまく運用できるように、プログラムの方で
使い終わったコネクションオブジェクトをclose()して、サーバ側に使い終わったことを知らせる。
そうすれば、すぐそのコネクションが使用可能状態でプールされた状態になるからね。
89 :
デフォルトの名無しさん :03/10/22 19:54
Aというクラスからファイルを書き込むメソッドがあります。 Bというクラスにもファイルを書き込むメソッドがあります。 それらは、同一のファイルに対して書き込みます。 この場合、スレッドクラスは必要ですか?それとも、コンピュータが勝手に判断して うまくやってくれますか?
>>88 設定するんですか?
http://www.hellohiro.com/jspdb.htm > JNDIサービスを利用してデーターソース(DataSource)を使用できる環境では
> コネクションをプールするクラスを作らなくてもコネクションプーリングを
> 行うことができます。
と書いてあったのですが、設定するとしたら、コネクションをプールから
取り出す際のリトライ回数とかライフタイムとか、そんな感じなんでしょうか?
91 :
デフォルトの名無しさん :03/10/22 20:12
>>90 書き方がいけませんでした。
えー、JSP、サーブレットには何も書きません。
僕が書くといったのは、コネクションの最大プール数とか、コネクションが
全部使われているなら、何秒待つとか、使われているのかいないのか分からない(
きちんとclose()されていない)ものをどうするかとか、、
そういうことです。こいつはweb.xmlに書きます。こっちのほうは、僕の最初に出した参考URLに
全部のっていますので、それを参考にしてください。
>>91 なるほど、すっきりしました。ありがとうございます。
93 :
デフォルトの名無しさん :03/10/22 20:28
94 :
デフォルトの名無しさん :03/10/22 20:34
たすけて!エロイ人! Javaで正規表現を使ってるのですが なんかうまくいきません String message="test" pattern = Pattern.compile("(.*)"); Matcher matcher = pattern.matcher(message); System.out.println(matcher.group(0)); こんなんでも java.lang.IllegalStateException: No match found at java.util.regex.Matcher.group(Matcher.java:353) at Regtest.main(Regtest.java:27) Exception in thread "main" と怒られます。 Matcher.groupの使い方を教えてください。
95 :
デフォルトの名無しさん :03/10/22 20:36
×pattern = Pattern.compile("(.*)"); ○pattern = Pattern.compile("(..*)");
Javaって何がいいのですか?
97 :
デフォルトの名無しさん :03/10/22 21:13
明日、サーバにプログラムをデプロイするんですが、 OracleのJDBCドライバなどのjarファイルは実行するときにも必要になるんですか? 要するに、earもしくはjarファイルのに入れといたほうがよいんですか?
98 :
デフォルトの名無しさん :03/10/22 21:24
> OracleのJDBCドライバなどのjarファイルは実行するときにも必要になるんですか? 製品による。WebLogicとかOracleの製品なら標準で対応していることもある。マニュアル嫁。 >するに、earもしくはjarファイルのに入れといたほうがよいんですか? 実装方法による。コンテナのJNDI経由で接続を取得しているのならearに入れても意味ない
99 :
デフォルトの名無しさん :03/10/22 21:32
>>98 おお、わかりやすかったです。どうも、サンクス
>>94 matcherのmatches()を呼んでいないせいだろう。
これでどうよ。
String message = "test";
Pattern pattern = Pattern.compile("(.*)");
Matcher matcher = pattern.matcher(message);
matcher.matches();
System.out.println(matcher.group(0));
こんな感じでいいんでしょうか。なんか接続プールはjspで特に何も書くことなくて良いのかな。 maxIdleとかmaxWaitはserver.xmlに記述。 <%! private Connection myConn; public void init() { try { Context ctx=new InitialContext(); if(ctx == null ) throw new Exception("Boom - No Context"); DataSource ds = (DataSource)objCtx.lookup("java:comp/env/jdbc/mydb"); if (ds!= null) { myConn = ds.getConnection(); } } catch(Exception e) { e.printStackTrace(); } } %> ↑はinclude file してます。 ↓がjspです。 <% PreparedStatement myPS; myPS = myConn.PreparedStatement("SELECT .......") ResultSet myRS = myPS.executeQuery(); ・ ・ myConn.close(); %>
102 :
デフォルトの名無しさん :03/10/22 21:46
>>86 質問がとっちらかってる。思うに、いっぺんにいろんなことやりすぎ。
あなたがどこを分かってないのか、誰も分かりません。
Action や ActionListener は使えているのか。画像がどうこう以前に、「ボタンに反応」の方法はわかっているか。
JScrollPane の使い方は把握しているのか。JLabel と Icon の関係は分かっているのか。
これらに「差し替え」機能があることが予想(期待)されるのだから、API ドキュメントなどをあたるべきではないのか。
それが分かったら、actionPerformed で JLabel の ImageIcon を差し替えるか、
JScrollPane の ViewportView な Component を差し替えるかすればいい。
一発で変わらなくても revalidate か何かすれば変わる(ここを即答できないのが俺のスキル不足な点)
>>89 衝突が起こったら、OS が JavaVM に「今書き込み中だからだめ」といい(だから本質的には Java に関係ない)、例外が発生する。
書き込みが同時におこらなければ気にしなくていい。ただし書き込み後は close しておくこと。
同時に起こりうるとしたら、それこそ大抵は「自分でマルチスレッド処理を行ったとき」。
このときうまくやっていくのは自分の努め。うまくしなきゃ例外起こりまくり。
アドバイスとしては、そのファイルにアクセスするのはできれば一つのクラス、
それも一つ(読み書きで2つ)のメソッドにしておくべき。
そうすると、いざ同時に起こりうる設計に変わったとき、synchronized 処理などで衝突回避しやすい。
>>73 Swingやるなら、%JAVA_HOME%\demo\jfcあたりのサンプルが勉強になる。
>>104 どうも、ありがとう。放置者拾い屋@スキル不足さん。
すごい詳しい説明でいっぺんに分かったよ。こんなわかりやすい説明ったらないね!
あー、もうだめぼ。Java難しい。 DBコネクトの場合 Connection conn; try { Class.forName("なんちゃらかんちゃら"); conn = DriverManager.getConnection(url,user,pass); なんちゃらかんちゃら conn.close(); } catch(Exception e) { conn.close(); } ってやっても正常だけどFILEのばあい PrintWriter pw; try { pw = new PrintWriter(new BufferedWriter(new FileWriter("sample.txt"))); なんちゃらかんちゃら pw.close(); } catch(IOException e) { pw.close(); } ってやると、一番最後のpw.close()で「pwは初期化されていない可能性があります」 ってエラーがでるんだけど、IOExceptionが起こったときpwをクローズするには どうしたらいいんだろうか?それとも、IOの場合はExceptionが起こったら勝手にコンピュータが ストリームをクローズしてくれるんだろうか。。。
開いていないドアを閉めろと命令されたら、お前どうする?
なに、わかんないよ。具体的に対策おしえて。
>>111 PrintWriter のコンストラクタそのものが失敗したら、
pw には何も代入されない。
実際は宣言時に null が入っていることになってはおるが、
それは一種のあやで、コンパイラ的には不明なので許してくれない。
pw の宣言後(宣言時) に、いったん明示的に pw = null; しておいて、
catch の中では
if (pw != null) pw.close();
すれば、ドアが開いてるときだけ締めることができる。
>>112 catchのなかでclose()するんじゃなくて、finallyにまとめないか?
サーブレットとJSP、XML、を使ったwebアプリの開発が あるのですがJavaなんてまったく使った事がないのにいきなり PGするように言われて困り果てています。 xmlやらBeanやら、風の噂で聞いた程度で その概念を理解するのに一苦労なのですが とりあえず、xmlからJSPにデータセットをして画面表示と 逆に画面に入力された情報をxmlに渡す処理を どうしても早急に作らないといけないのです。 あまりに漠然としすぎてて回答もしづらいと思うのですが どこから手をつければいいのかだけでも教えて いただけないでしょうか?
>>112 あー、if(pw!=null)とするのか。。。ヨーク分かりました。
すみません。疲れてるもんでこんなことも思いつかなんだ。。。
もうだめぽ。。
>>11 3
そういえばそうですね。。DBのときもfinally節の中にまとめて
書いていた。。どのプロジェクトも追われまくりでやってきたもんですから
全然、身についてないや。。というか、覚えてない。
ぬぉぉぉおぉx、バッチ処理なんかやらせんな、ボケェ
>>54 JarURLConnectionなんかもある。
>>114 漏れもそうだったいつのまにか話がJ2EEフル装備になってる・・・。
つーか契約と全然違うんで泣きたいけどガンガッテル。
たぶんこのままだとクビだけど。
とりあえずXMLはホットケ。
JSPとBeanとServletAPIだ。XMLはやってると自然と必要になる。
JSTLやstrutsなんかをいれて作業を楽にしろ。
119 :
デフォルトの名無しさん :03/10/22 23:49
>>117 アクセスできませんが。
Domain HELLOHIRO.COM/XMLDOM.HTM not found
>>109 >DBコネクトの場合(中略)正常だけど
なわけない
121 :
デフォルトの名無しさん :03/10/23 00:00
EJBとは何でしょうか? Java Beansとは違うのでしょうか?
122 :
デフォルトの名無しさん :03/10/23 00:02
>>115 むしろtry節をネストすればいいんじゃないの。
try {
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("sample.txt")));
try {
...
} catch (IOException e) {
...
} finally {
out.flush();
out.close();
}
} catch (IOException e) {
...
}
>>117 情報ありがとうございます。
・・・今日言われたのにPG期間があと2週間とか言われた挙げ句
DBレイアウトすらなくて資料も無茶苦茶でかなりめげそうですが
なんとかなると思って頑張ってみます。
>>118 JSPはまだつかみ所がある気がするのですが
Beanとはそもそも何で、誰が呼び出すのでしょうか?
なんかさ、質問じゃないんだけど。
俺のところってさ、学歴的には国立大の上の方の連中がいるんだけどさ、
いや、俺は高卒だよ。そこに派遣されてるの。
そこの人のソースが今あって、見てるんだけど、
>>122 の人みたいに、flushとか全然してないんだけどさ、
どうなんだろうね。ここの人みたいに全然詳しくないし。。。
まー、いいや上司に何にもいわれなけりゃ。
>>121 EJBはEJBコンテナがが管理するWebコンテナとは別モン。
つーか書くこと大杉、自分でしらべれ
>>123 シリアライズできるgetter,setterをもつオブジェクト。
Beanだけなら簡単だ。
JSPつかってればBeanも使うから。とりあえずDBからJDBCで
データを読んでBeanにセットしてJSPで表示とかそんな感じ。
もしくはJSPのFormからの入力をBeanにセットしてDBに格納とか。
つーかJavaは嫌いだ鬱山車脳
>>123 Beanってのは、単なるJavaのクラスのことだよ。別に特別の意味はない。
JSPやサーブレットは主にページのコントロール(次はどのページへいく)とか
書くんだけど、たとえばXMLファイルから値をとるとかはそれ専用のクラス(Bean)を作ってもいいの。
別にJSPやサーブレットに書いてもいいんだけど。
オイラもおんなじ状態の時があったからいうけど、難しい技術は使わなくて動くから、
とりあえずはべたでゴリゴリとかいときな。
>>124 PrintWriter.close()を呼ぶと、この場合はなかで
BufferedWriter.close()が呼ばれて、そのなかでさらに
BufferedWriter.flushBuffer()が呼ばれる。だから
flush()は意識的に入れなくても大丈夫でしょ。
<%@ page contentType="text/html;charset=Shift_JIS" import="javax.xml.parsers.*,org.w3c.dom.*" %>
<html>
<head>
</head>
<body>
<%
String str = "";//XMLから取得したデータを入れる
//ここでXMLのデータを取り出す
http://www.hellohiro.com/xmldom.htm out.println(str);
%>
</body>
</html>
>>127 ありがとう。そんなこと、オイラの上司は絶対知らないよ。
だって、今見たら、PrintWriterじゃなくて、BufferedWriter使ってた。
もうねるよ。みんなありがとう。
>>128 JSTLのxmlタグ使えば楽にできないか?
すみません。
>>128 を訂正
>>130 の人の言うことが正解。質問者はjstlとxmlでgoogleでしらべるなり
なんなりしてくれ。
すまんかった。本当にねる。おやすみ
>>126 EJBが出てぐちゃぐちゃした感はあるが、Beanっていったら、
「JavaBeansの仕様に従って設計したクラス」と混同されることが
あるので、普通のクラスはそのまま「クラス」って読んだほうが
いいやね。
134 :
デフォルトの名無しさん :03/10/23 01:08
beansって具体的に何をしてるのでしょうか? public void set~{ public int get~(){ のset部分とget部分ってどういう動作をしてるのでしょうか?
135 :
デフォルトの名無しさん :03/10/23 01:14
>>134 Javaやってる時点でJava厨なんだからあまり深いことは考えない。
どうって普通のメソッドです。
あ
Vector のtoArray(Object[] a) について質問です。 以下のソースコードを実行すると、次の結果がでます。 a b c null 5 以下、ソースコード Vector v = new Vector(); String[] str = {"1","2","3","4","5"}; v.add("a"); v.add("b"); v.add("c"); str = (String[]) v.toArray(str); for (int i = 0; i < str.length ; i++) { System.out.println(str[i]); } なぜ、4番目の要素が null になるののかがわかりません。 Vector.java で、たしかに null をセットしているのですが、理由がわかりません。 どなたか、教えていただけないでしょうか?
あう、、、すいません。 もろに API に書いてありましたね。 すいませんでした。 toArray(Object[] a) の引数は、型指定のためにあるような ものだったんですね。
DocumentBuilder に XML を File で parse させるときは、 相対パスで指定した DTD を読んでくれますが、 InputStream で parse させるとき、DTD を探す場所を指定したり、 DTD そのものを先読みで与えておきたいときにはどうすればいいでしょうか?
142 :
デフォルトの名無しさん :03/10/23 10:56
難しすぎず簡単すぎず作れるソフトを教えて下さい。
143 :
デフォルトの名無しさん :03/10/23 11:10
>>141 setPublicId、setSystemId
した相対パス
>>143 ありがとうございます。ちょっと調べて、解決しました。
XML にてきとーな絶対 URI を指定させて、自作の EntityResolver から静的に解決させました。
何か激しく泥縄な方法ですが・・・
jar から (dtd な内容の InputStream から) 読み込みたかったもので。
145 :
デフォルトの名無しさん :03/10/23 11:38
ローカルアプリでJTextArea使ってるんですが、日本語表示がうまくいきません。 デフォルトのフォントなのですが、日本語部分が文字化けしてしまいます。 どうすればいいですか?
147 :
デフォルトの名無しさん :03/10/23 12:07
>>147 ちょっと読んでみた。
その手の教養の全くない俺だが、今は自然とそういうモデルで組むようになってる。
これは経験のたまものとも言えるし、
Java API の各クラスが適した形で提供されてるからとも思う。
突っ込んだ話がしたかったらコアなスレ探すか、いっそ立てちゃったら?
モーションjpegって何ですか? JMFで作れるみたいなんですけど、そういったサンプルはありますか?
OSはWinodws2000です。 1.3のvmを使ってます。
Java 1.4 regrex 正規表現で質問です。 jpgのファイルだけ、選択したいのですが、 大文字、小文字を無視するオプションが解りません。 perlで言う /jpe?g/i みたいなオプションです。 Pattern jpg = Pattern.compile(".*jpe?g$");で、 大文字「JPEG」と小文字「jpeg」の両方マッチさせることは出来ますか?
JNIでVCを呼べますか?
153 :
デフォルトの名無しさん :03/10/23 18:00
質問です。 Imageを画像ファイルとして保存をしたいのですが、 com.sun.image.codec.jpegパッケージを利用するしか方法はないのでしょうか? (ヘッダ等手入力はきついので、メソッドに放り込めば保存できるような) また、Java2SE v1.4.0にこのパッケージは含まれているのでしょうか。 よろしくお願いします。
>>151 大小文字を区別しない場合は↓
Pattern jpg = Pattern.compile(".*jpe?g$", Pattern.CASE_INSENSITIVE);
>>150 標準では jre/lib/font.properties.ja でフォントを解決するが、
OS もしくは VM 呼び出し時の言語設定がおかしいと、このファイルを使ってくれないと思う。
あるいはそのフォントが見つからないなど。
残念ながらこれ以上は詳しくないので。
157 :
デフォルトの名無しさん :03/10/23 19:01
>>155 javax.imageio.ImageIO.write()
なるほど、このあたりですね。調べてみます。
158 :
デフォルトの名無しさん :03/10/23 20:48
EJBはここで聞けばいいのかな?
159 :
デフォルトの名無しさん :03/10/23 20:56
>>158 いいと思うよ。漏れは答えられんけど(w
160 :
デフォルトの名無しさん :03/10/23 21:02
音声ファイルをvoice.txtにバイナリとして書くような プログラムを教えてー。そのサイズも知りたい。
じゃぁ聞いてみようっと。 といっても高度なことじゃなく、EJB屋敷の敷居もまたいでないくらいの質問。 試しにSessionBeanを作って、サーブレットからアクセスしてみようとしています。 本とかを見ると、たまにEJBのjar自体をimportしてるのがあるけど、 EJBのクライアントには、EJB本体が必要なのかな? まだEJBの概念を理解していないからよく分からないんだけど、EJBのイメージは、 JNDIサーバにアクセスできたら、クライアント側に何も無くてもEJBのビジネスメソッドを 利用できまーす、みたいなイメージなんで、EJBにアクセスするのにEJBのクラスが必要なのは 違和感があるんです。
わけのわからん質問でゴメンナサイ
>>161 EJBのリモートインタフェースやクライアントのスタブクラスは当然必要です。
じゃないと呼び出しできるわけないじゃん。
>>161 本体は必要ないだろ。
Homeクラスとリモートクラス(もしくはローカル版といっても
ローカルでは本体があるだろうけど)があればいい。
君の考えで正しいとおもうよ。
あ
>>163 のいうとおりインターフェイスですクラスじゃない。
そのかわり本体のSessionBean,EntityBeanはいらない。
>>163 >>164 なるほど。勘違いとか不理解とかあるかもしれないけど、
そうやって簡単にはっきり書かれている本がなかったので、
疑問が晴れてスッキリしました。
EJB関連の本は難しくてわけがわかんないのです。毎日ちょっとずつ、
一歩一歩覚えていこうと思います。
理解したころにJavaが廃れていたらツライですが。
答えてくれてアリガトウ(・∀・)
>>167 xdoclet使え。楽になる(といっても漏れはXdocletが好きじゃないが)
170 :
デフォルトの名無しさん :03/10/23 22:22
Swing AWT SWT ってなんて読むのですか?
>>170 サーズ。スリーダブリュ。にかか。んぐぅ。
スイング しらん しらん
>>169 親切にありがとう。
今は専門用語を頭の中で展開するにも時間かかるので、
慣れるようにがんばってみます。
175 :
デフォルトの名無しさん :03/10/23 22:53
boolean型のアクセサーメソッドってsetもgetも is~でいいのでしょうか?
>>160 バイナリモードで音声ファイル読んで、int型に突っ込めば。ダメかな。。。
その前に、Javaで音声ファイルをバイナリで読めるのかな?
177 :
デフォルトの名無しさん :03/10/23 23:04
クラス InputStreamReader のread() メソッドの説明載せます。 この入力ストリームから、データの次のバイトを読み込みます。 そのバイトは、0 ~ 255 の範囲の int として返されます。 ストリームの終わりに達してバイトがない場合は、値 -1 が返されます。 このメソッドは、入力データが読み込まれるようになるか、ストリームの 終わりが検出されるか、または例外がスローされるまでブロックします。 これで読めそうな予感・・・違うか???
180 :
デフォルトの名無しさん :03/10/23 23:37
Beanでxmlからvalueに値が入ってるものだけを取得して JSPの同名のパラメータにセットさせようと思い、Vector型?という型に 取得したvalueの値をセットさせるソースを書いてみたのですが、 DOMオブジェクトの作成の部分の >Document doc = db.parse(new FileInputStream("helloworld.xml"),"Shift_JIS"); この部分でエラーがでているようで先に進みません。 xmlはこのBeanと同じ場所においています。 メインのロジックはxmlのデータを全て取り込んでおいて JSPに上手くセットさせる部分なのですが、この部分も正しいのかもわからない状況です。 よろしければアドバイスをお願いします。(余計な部分を省いたソースも載せておきます)
~略~ public class TestBeans { static private Vector vecName = new Vector(); static private Vector vecValue = new Vector(); static private String strPara1,strPara2,strPara3; public static void read_xml() { // jspの項目名をセット String array_name[];array_name = new String[4]; array_name[0] = "name1";array_name[1] = "name2";array_name[2] = "name3"; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new FileInputStream("/helloworld.xml"),"Shift_JIS"); Element root = doc.getDocumentElement(); // XMLから取得した内容とJSPの項目を比較して同じものに値をセットしていく for (int i = 0; i < vecName.size(); i++) { if (array_name[0].equals(vecName.elementAt(i))){strPara1 = (String)vecValue.elementAt(i);} else if (array_name[1].equals(vecName.elementAt(i))){strPara2 = (String)vecValue.elementAt(i);} else if (array_name[2].equals(vecName.elementAt(i))){strPara3 = (String)vecValue.elementAt(i);} ~略~ private static void getXml(Node n, String array_name[]) { int i = 0; String buf,buf2; for (Node ch = n.getFirstChild(); ch != null; ch = ch.getNextSibling(),i++){ // XMLの項目名がJSPの項目名と同じ場合、valueがnullでなければ値をセット buf = ch.getNodeName(); if (buf.equals(array_name[i])){ if (ch.getNodeValue() != null) { vecName.add(buf);buf2 = ch.getNodeValue();vecValue.add(buf2);}
183 :
デフォルトの名無しさん :03/10/24 00:08
抽象クラスの抽象メソッドってサブクラスで保障しなくていけないんですか?
184 :
デフォルトの名無しさん :03/10/24 00:12
>>183 サブクラスも抽象クラスのままでいいなら、実装しなくていいよ。
185 :
デフォルトの名無しさん :03/10/24 00:16
OLE/COM以外のアプリケーションに対して バックグラウンドでsendkeysのような処理をしたいのですが これを実現するメソッドを所持している言語ってありますか? (vbスレでも聞いてみる予定)
質問するのにソースの張るのはいいけど それよりも先にエラーの内容を張ったほうがいいよ。
188 :
デフォルトの名無しさん :03/10/24 02:18
index.jsp(ログイン画面)→ IndexServlet(ログイン時にパスワードの入力漏れ) → index.jsp(エラーメッセージも表示する) というようなプログラムをつくっています。しかし、IndexServletにて、入力漏れがあるときエラーが発生します。 java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:368) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356) at IndexServlet.doPost(IndexServlet.java:107) で、IndexServletの107行目は↓です rd.forward(request, response); responseオブジェクトには一切なにもしていません。 なんででしょうね?
190 :
デフォルトの名無しさん :03/10/24 03:25
>>189 どうも。確かに処理の次のforwardを実行してました。return 書いても
だめなんですが、どうしたら。。
はじめまして、今回はそうだんがって、投稿しました。いきなりですが、、 import java.io.*; import java.applet.*; import java.awt.*; COL[] cl;・・クラス型オブジェクトのインスタンス(配列) AD_L[] adL; AD_S[] adS; Color_scheme3 CS; HTtoRGB HR;//クラス型オブジェクトのインスタンス ・・・・・・・・・・省略 public void init(){ COL[] cl=new COL[130]; 別クラスからの派生オブジェクト AD_L[] adL=new AD_L[16]; AD_S[] adS=new AD_S[180]; CS=new Color_scheme3 (); HR=new HTtoRGB(); for(int t=0;t<130; t++){cl[t]=new COL();} for(int t=0;t<16; t++){adL[t]=new AD_L();} for(int t=0;t<180; t++){adS[t]=new AD_S(); System.out.println(cl[129].R);//実行可能 System.out.println(HR.rgb[2]);//実行可能 ・・・・・・・・・・省略 } public void paint(Graphics g){
(上のつづき)ここでINIT で定義したclオブジェクトを使いたいのに使えない!! System.out.println(cl[129].R);//,,,実行不可 System.out.println(HR.rgb[2]);//実行可能 } クラス型のオブジェクトをインスタンスかして、使用したいのですが、init内ではこれらのインスタンスかはアクセス可能なのに Paint内では配列で定義したクラス型オブジェクトのアクセスができませんでした。 これはなぜなのか、教えていただけないでしょうか。 配列でないクラス型(HR)はうまくアクセスできました。 よろしくお願いいたします。それとPaintメソッド以外で、描写する方法をおしえてください。 とてもこまっています。。。。 となってしまいます。
すみません。。省略されてしまいました。 基本のことなのですが、少しのことなのにうまくいかなくて こまっています
エラー文は java.lang.NullPointerException at ImageColorRUN.paint(ImageColorRUN.java:144) at sun.awt.RepaintArea.paint(Unknown Source) at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) java.lang.NullPointerException at ImageColorRUN.paint(ImageColorRUN.java:144) at sun.awt.RepaintArea.paint(Unknown Source) at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) でした
195 :
デフォルトの名無しさん :03/10/24 04:12
>>194 initメソッド内の
COL[] cl=new COL[130];
AD_L[] adL=new AD_L[16];
AD_S[] adS=new AD_S[180];
の部分を
cl=new COL[130];
adL=new AD_L[16];
adS=new AD_S[180];
にすれば、エラーはなくなるはず。
196 :
デフォルトの名無しさん :03/10/24 04:16
>>194 paintメソッド以外で線とか描きたい時は、
Graphics g=getGraphics();
とした後、
g.drawLine(0,0,50,100);
とかすればいい。
ありがとうございます!! いまからためしてみます!!
できました!! ほんとうに、こんなところをミスしていたために ずっと悩んでいたなんて、、 恥ずかしい限りです ありがとうございました!
>>181 待て。"/helloworld.xml"って指定するってことは、ファイルシステムのルートディレクトリに
置いたhelloworld.xmlを探しに行くってことになる。それでいいのか?
こういう場合の定石はこう。
Document doc = db.parse(getClass().getResourceAsStream("/helloworld.xml"),"Shift_JIS");
それで、helloworld.xmlはWEB-INF\classesに配置。
>>200 前スレでデジカメについて聞いていた人?
デジカメからの画像取り込みは、あれから上手く行きましたか?
200ですけど、前でデジカメについて聞いてたものです。 結局JMFでは無理だったので、JNIを使うことにしてます。 まだできてないですけど。 それで、ppmを得ることはできるので(ppmをjpgに変換はなんとかできる) それをどうにか動画にできればと思い、上のサンプルを動かしてみました。 書いてある通りにやっても、うまくいかないので 動作確認をしてほしいと思っています。
>>202 は、いったい何がどう、うまくいかなかったんだろう。
そんな書き込みでレスがつくと思っているのかな。(´-`).。oO
java.lang.NullPointerException at com.sun.media.multiplexer.video.QuicktimeMux.writeVideoSampleDescription(QuicktimeMux.java:936) at com.sun.media.multiplexer.video.QuicktimeMux.writeSTSD(QuicktimeMux.java:925) at com.sun.media.multiplexer.video.QuicktimeMux.writeSTBL(QuicktimeMux.java:905) at com.sun.media.multiplexer.video.QuicktimeMux.writeMINF(QuicktimeMux.java:806) at com.sun.media.multiplexer.video.QuicktimeMux.writeMDIA(QuicktimeMux.java:727) at com.sun.media.multiplexer.video.QuicktimeMux.writeTRAK(QuicktimeMux.java:644) at com.sun.media.multiplexer.video.QuicktimeMux.writeMOOV(QuicktimeMux.java:582) at com.sun.media.multiplexer.video.QuicktimeMux.writeFooter(QuicktimeMux.java:519) at com.sun.media.multiplexer.BasicMux.close(BasicMux.java:142) at com.sun.media.BasicMuxModule.doClose(BasicMuxModule.java:172) at com.sun.media.PlaybackEngine.doClose(PlaybackEngine.java:872) at com.sun.media.BasicController.close(BasicController.java:261) at com.sun.media.BasicPlayer.doClose(BasicPlayer.java:229) at com.sun.media.BasicController.close(BasicController.java:261) at MovieMaker.controllerUpdate(MovieMaker.java:291) at com.sun.media.BasicController.dispatchEvent(BasicController.java:1254) at com.sun.media.SendEventQueue.processEvent(BasicController.java:1286) at com.sun.media.util.ThreadedEventQueue.dispatchEvents(ThreadedEventQueue.java:65) at com.sun.media.util.ThreadedEventQueue.run(ThreadedEventQueue.java:92) って出てくる。
画像の読み込みまではできてると思うんだけど。 Done reading all images. って表示されるので。 ちなみに上のMovieMakerってのは、 ファイル名をJpegImagesToMovieから変えただけ。
すみません。まだ解決できません。 サーブレットで if(Aならば) { RequestDispatcher rd = ~ rd.forward(request,response); return; } //Aじゃないときの処理 if(Bならば){ RequestDispatcher rd = ~ rd.forward(request,response); } としているのですが、Aの場合Bのrd.forwardまで実行されてしまい、そこで java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:368) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356) at IndexServlet.doPost(IndexServlet.java:107) がでてしまいます。どうしたらいいんでしょうか?
209 :
デフォルトの名無しさん :03/10/24 15:48
日付チェックをうまく行える方法をどなたか教えてください。。。 ネットで調べて何個か試してみたけどなんかうまくうごかねぇ。。。 String YYYYMMDDの日付の妥当性チェックです。。
>>208 ・まず例外の発生した368行目がBの処理内であることを確認する
・AのときにAのifブロック内の処理が行われていることを確認する
(ついでにreturnの前後に標準出力に何か書き出すとかもやっておく)
・Bならば~の処理をelse ifにして動作を見る
とりあえず、この辺やってみて。
java初心者デス。 awtとswingを混ぜたインターフェースを作るのはDQNですか? 参考書がawtのものやswingのものがいろいろあるので、目的のインターフェースをつくるのにどうしても混ざってしまうんです。 複数のOSで動かすことを考えているのでなんとかしたいのですが・・なにか良い参考HPなどあれば・・。 しかし混ぜても使えるんですねぇ。
>>212 「複数のOS」が PDA 以下のものを指すなら、当分は awt のみになる。
そうでなければ、体に異常を感じたら、ご使用をお控え下さい。
という感じ。組み合わせ次第で不都合は起こる。
なるほど。ありがとうございます。 とりあえず、win,linux,ついでにmacで動けばいいと思っています。 現在swing70%awt30%ほどなんですが、awtの30%をswing化しようと思ったら、 awtと等価そうなインターフェースをswingでさがせばいいと思うのですが、全く等価なのが見つからなければ、ちょっと大幅改造が必要なんですよね。 どうしようか悩んでいます。動作速度的な面やlook&feelの点で。 体に異常を感じたら、使用を控えるということで・・。 しかし格好悪いなぁ・・(汗)
JMFで困ってるんですけど、 JMF専用スレ立ててもいいと思いますか?
立てるのなら、このスレッドで
>>1 に貼るテンプレを募集してはどうかな?
JMFに関連するサイトや、解説ページ、過去ログへのリンクなどを。
こういっては失礼だが、今までのやりとりを見る限り、
あなたの文章力では、まともなスレッドが立てられるとは思えない。
画像の拡大・縮小をしてjpg保存するプログラムについて質問です。 public void hoge(BufferedImage image, int w, int h, String fileName) { BufferedImage image2; ImageFilter imgf = new AreaAveragingScaleFilter(w,h); try { image2 = (BufferedImage)createImage(new FilteredImageSource(image.getSource(),imgf)); ImageIO.write(image2, "jpg", new File(fileName)); } catch (Exception ex) { ex.printStackTrace(); } } コンパイルは通るのですが実行すると ”java.lang.ClassCastException” とエラーを返されます。原因はなんなのでしょうか?
>>218 createImage されたものの型が BufferedImage ではないから。
ぐっ、なんとなくわかってました。 createImage()で生成されるのはImageですが、このImageをBufferedImageに変更する 手法もしくはメソッドは存在しますか?
>>202 読み込み画像のURIにスペースが含まれているとそうなるね。
もちろんダブルクォーテーションで囲った上での話だけど、
- reading image file: file:e:/Documents and Settings/hogehoge/Page1.jpg
って感じで読み込みが出来ても、その後でNPEが発生する。
別の場所に移すとOK.
ところで、IBMもalphaWorksで動画(MPEG4)関係ライブラリをこれまで
評価目的で公開していたけど、正式にライセンス条件が決まったみたい。
http://www.research.ibm.com/mpeg4/indexjs.htm OS/2版のネイティブライブラリも用意していとこがIBMらしい。
>>221 ありがとうございます。頑張って英語読みます。
ついでにまた質問です。(多重質問スミマセン)
swingに全部入れ替えてみました。
ただそれによる弊害が・・・。
PanelをJPanel、CanvasをJComponent・・・他にいれかえました。
JPanelの上にJComponentを乗せて図面を描画させているのですが、今までなら、Canvasの範囲だけに図面が表示されていたのですが、
JComponentを使うと、ウインドウを画面の可視範囲外に動かして、再び画面上に戻すと(要するにswingによるダブルバッファ再描画が働いた時)、
なんとJComponent表示範囲外の普通のパネル領域(JPanel領域)にも絵が書かれているのです。
描画範囲の断ち切りをきちんとしていないせいでもありますが、これはちょっとみっともないです。
なんとか改善策はないでしょうか。
サイズは当然JPanel<JComponentです。
JComponent上では、Canvasから引き継いだダブルバッファがあります。
概要は下のとおりです。
private Graphics gOffscreen; private BufferedImage bufImage; private Dimension d; GraphDraw(JPanel pn2){ this.setSize(JavaDXF.c_sizex,JavaDXF.c_sizey); d = getSize(); bufImage = new BufferedImage(d.width,d.height,BufferedImage.TYPE_INT_BGR); gOffscreen = bufImage.getGraphics(); pn2.add(this,"Center"); } 再描画メソッド void up(){ Graphics g = getGraphics(); g.drawImage(bufImage,0,0,this); }
こんちゃ。>オール JavaServletを使いたいんだけど、ジオシティーズのフリーサーバーで 使えるかなぁ・・・? これから試そうかと思っているんだけど、誰か知っていたらヒマな人は 教えてよ!! ボクはジオシティースのフリースペースを借りてサイトを公開している 貧乏人だけど、卒研対策としてJavaServletに手を出したいのね。 んだけど、ジオのサーーバーでサーブレットは使えるのかなぁ…? Applet用のclassファイルはアップロードができたんだけど…、 サーバーサイドっていったJavaでしょ?PerlとかASPとかダサいし メンドくさいんだよ、覚えるのが。 ああ、javaをマスターしたいなぁ…以上、Java初心者の玉金からでした。
あと、OCNのPageOnの方にもサイトがあるんだ、そこじゃservletは使えないかなぁ…? 自宅鯖なんて面倒だし…どっかにservletが使えるフリーのレンタルスペースは ないかなぁ・・・?
>>216 JMFのスレって前あったけど、DATおちしてる?
>>223 ,224
ここにソースの一部コピペして、自分の間違いに気づきました。自己解決です。
ダブルバッファの使い方を誤っていました。
paintComponent(Graphic g)メソッドを裏画面に書かせてから表に更新するように変更したら直りました。
お騒がせしました。m(_ _)m
すいません、板違いでした。 レンタル鯖板に行って荒らしてこようと思います
皆さんは何年間Javaをやってるのですか?
234 :
デフォルトの名無しさん :03/10/24 23:24
クラスメソッド(変数)とインスタンスメソッドの違いがわかりません クラスをインスタンス化したものがインスタンスなんだから メソッドといっても同じ物を指しているのではないのでしょうか?
>>234 インスタンスが無くても使えるんですよ。クラスメソッド。
ネームスペース付きの関数とか変数だと思っても大丈夫かと。
236 :
デフォルトの名無しさん :03/10/24 23:49
>>234 具体例でいうと、
java.lang.Mathクラスのsinメソッドはクラスメソッドだから、
System.out.println(Math.sin(5));
みたいな書き方ができる。
java.lang.Stringクラスのlengthメソッドはインスタンスメソッドだから、
System.out.println(String.length());
などと書くとエラーになる。
String str="abc";
とした上で、
System.out.println(str.length());
のように書く必要がある。
238 :
デフォルトの名無しさん :03/10/24 23:55
>>235 >インスタンスが無くても使えるんですよ。クラスメソッド。
結局指しているものは同じメソッドでしょうか?
クラスの中のメソッドがクラスメソッドで
クラスがnewでインスタンス化したら中身は同じでもインスタンスメソッド?
239 :
デフォルトの名無しさん :03/10/25 00:01
>>238 メソッドの中身とか、メソッドの指してるものっていうのが、
よくわからんけど、staticを付けて宣言されたメソッドがクラスメソッド。
staticを付けずに宣言されたメソッドがインスタンスメソッド。
クラスメソッドであると同時にインスタンスメソッドってことはありえない。
>>238 中身が同じでも、の意味が分からんが、
public static void main(String[] args){//クラスメソッド
System.out.println("hoge");
}
public void main(String[] args){//インスタンスメソッド
System.out.println("hoge");
}
クラスメソッドはクラスに属する。
クラス自体が一つのインスタンスのように振る舞う。
特定のインスタンスに属するわけではないのでthisは使えない。
インスタンスメソッドはインスタンスに属する。
そのため、自インスタンスを参照するthisが使用できる。
242 :
デフォルトの名無しさん :03/10/25 00:21
>>222 java JpegImagesToMovie -w 1024 -h 768 -f 4 -o file:C:/image/test.mov file:C:/image/image1.jpg file:C:/image/image2.jpg
こう実行しても前のNull Pointerが出てしまうんですけど。
実行の仕方に間違いはありますか?
画像の高さ、幅は間違いなくあってます。
画像はCドライブ直下のimageフォルダに入っているため、
pathは間違いないと思うんですけど。
配列を表す[]はデータ型に付けた方がいいって本当? 下記みたいに付ける位置を統一させないのも悪いって本当? public static void main(String args[]){ String[] a = a[n]; }
244 :
デフォルトの名無しさん :03/10/25 00:26
system.out.prinlnとか 実際どういうソースが書かれているのでしょうか? そういうサイトとかありますでしょうか? Javadocとかも説明しか書いてないし
245 :
デフォルトの名無しさん :03/10/25 00:38
>>244 system.outはなんちゃらOutputStreamでそのprintlnメソッドの中身は見れるぞ。
最終的にはnativeメソッド読んでる。
246 :
デフォルトの名無しさん :03/10/25 01:02
描画でマイッテおります.. JPanel上に円など描くGUIを作成したところ、 起動後、すぐにペイン全体が真っ黒になってしまいます。 JDK1.4SEで発生しますが、1.3SEでは正常になります。 モニタの解像度下げてみることを試しましたがだめでした。 コーディング的に解決できる問題なのでしょうか? ご指導下さい!
248 :
デフォルトの名無しさん :03/10/25 01:22
POIでExcelファイルを作成している学生です。 列の幅はsetColumnWidthでいじれたのですが 行の高さを帰る方法がわかりません。 どなたか、ご存知の方がいたら教えてください!
249 :
デフォルトの名無しさん :03/10/25 01:23
248 × 帰る ○ 変える
>>248 試してないが、HSSFRow.setHeight(short)でできるのでは?
>>243 args の型は String[] なのだから宣言も String[] args と書こう、
というのが Java での流儀。
>>246 ソース書かなきゃ絶対わかりません。
ところで JDK1.4SE なんて言い方も妙だよ
1.4 の SE じゃなくて J2SE の 1.4 なんだからさ
勉強のため、簡単なオンラインのゲームを作ろうと思ってるんですが、 チャット機能を盛り込む場合 1.ゲームキャラの移動や攻撃 2.チャットのメッセージのやりとり の二つをサーバからクライアント(もしくは逆)に送る必要がありますよね? それらの情報はそれぞれ違うソケットでポート番号をずらして実装するんですか? それとも同じソケットで、判定条件(たとえばチャットでありえない文字列)を考慮して実装するんですか? 自分としては前者かと思うのですが、ソケットを持つチャンネルのクラスを作成し、Runnableを実装するので 処理が重くなるかと思ったのですが。 詳しい方いらっしゃいましたら、ご教授ください。
>>252 そんなことは聞かないで自分で決めろ
作って使ってみたら分かるだろう
>>253 おっしゃる通りです。
とりあえず二つのソケットでやってみます。
スイマソ
>>254 俺がまじめにソースを読んでみた。すまん。JMF 関係なかった。
そのソースと JMF のクラス実装がそれぞれタコいだけ。
ソースを追っていけばわかるが、ImageSourceStream クラスの read(Buffer) メソッドで、
"reading image file "は出力されているが、入力バイト数が出力されていない。
結局、
>>222 でも示唆されているが、
■jpg ファイルの実在をソースがチェックできていない。
■パス名の指定が悪い。Windows なら Windows 風に C:\~でよろしい。
jpg ファイルオープン時に IOException が出るはずだが、
これを read メソッドで throw してしまった挙句(こういうときの IOE は throw すべきじゃない)、
挙句、処理が不完全なまま EOM になってしまい (read メソッドの最初の if 内)、
本来そうなるまでには初期化されているはずのメンバが null のままになってしまうので、
そこでぬる○が出てしまう。(この辺は com.sun パッケージの QuickTime なんちゃらの実装が不適切)
俺は後者のような問題だけがあるんだと思って
>>206 でさっさと突き放してしまって相談相手としては失格な訳だが、
言い訳させてもらえば傍観者だからであるわけで。君は自分の問題なんだからソース読まなあかんよ。
できれば regist して JMF のソース拾ってきて読みなさい。俺は読んだよ。
しかし作成された mov はいまいちおかしい? 警告が発せられる。でも一応見れた。
Tomcat上でweb applicationを作っているのですがアプリケーション独自の設定をどうやって扱おうか迷っています。 設定はxmlで書いてDigesterでparseするつもりなんですがこれって負担かかりますよね? だからどこかにキャッシュして使いまわしできるようにしたいんですが 1. ServletContext#setAttribute()で設定オブジェクトをコンテナーに渡す 2. Singletonにして管理 1, 2のうちどれが適切なんでしょうか? 個人的には2なんですが確信がもてないです。
>>257 2だと、ほかのアプリからでもアクセス可能になるが、それでもいいのか?
>>258 Tomcatの場合WebApplicationごとにClassLoaderがあるので大丈夫かと思います。
ですよね??(自信ない)
ローカルのアプリを作ってるんですが、JFrame上にダブルバッファ用の領域を確保するにはどのようにすれば いいのでしょうか? ボタンをいくつか表示したいのですが・・・。 setBoundsなどで明確に指定したほうがよさげなので、今はJPanelをつめこんでるんですが ほかにいい方法ありませんか?
文字列どうしを置換させるメソッドって無いんですか?
>>261 String#replace
String#replaceFirst
String#replaceAll
じゃ、あかんのか?
264 :
デフォルトの名無しさん :03/10/25 19:18
既出だとは思いますが過去ログを読んでいる時間がなかったので 答えてもらえれば幸いです。 class Sample { public synchronized void test(){} } 上のtest()メソッドをマルチスレッドで実行した場合、ロックの対象はSampleクラスのオブジェクトなんでしょうか? それともtest()メソッドだけになるんでしょうか? 初心者丸出しで申し訳ないですが、よろしくお願いします。
>>264 オブジェクト
↓と等価
class Sample{
public void test(){
synchronized(this){
...
}
}
}
つまらんよ。。。だれか相手して! \/ コマネチ!!!?
267 :
デフォルトの名無しさん :03/10/25 21:07
java3Dをインストールしようとしています。 「java3d-sdk-1.3.1-beta-linux-i386.bin」をダウンロードし、 java2がインストールされている場所(/usr/java/j2sdk1.4.1_03/)でbinを実行しました。 その後demoで「HelloUniverse」を試してみたのですが、 "exceptopn in thread "main" java.lang.NoClassDefFoundError: javax/media/3d/Node" とエラーが出てしまいました。 何が原因なのでしょうか? 環境はVine2.6です。 よろしくお願いします。
268 :
デフォルトの名無しさん :03/10/25 21:14
jarを使うときっていちいちCLASSPATHに追加するしかないの?
$JAVA_HOME/jre/lib/ext にでも入れとけ。 ただし自己責任で。
AAAA\BBBB\CCCCC\DD このような形で渡された文字列を"\"で区切って 文節ごとの文字列を作りたいのですが、 区切りに"\"が使われる事が決まっているだけで どんな長さでどれだけの単語になるかはきまっていません。 こういった場合どうすれば常に全ての文節に分けて 文字列を取得できるのでしょうか? なお、文字列の単語部分は日本語が入ることもあります。
Frame.setLayout(null)をしたあとに、追加するコンポーネントをsetBoundsで座標設定して
addしているんですが、何も表示されません・・・。
setLayout(null)をした場合こういうことっておきるのでしょうか?
sdkはver.1.4です。
>>271 String.splitでできたはず。
もしくはStringTokenizerだったかな?
>>271 基本的には272の言う通り、String.splitやStringTokenizerでできるけど、
文字列に日本語が入る場合は駄目かも。
>>273 >文字列に日本語が入る場合は駄目かも。
エンコードすれば日本語でもOKなはず
>文字列に日本語が入る場合は駄目かも。 ↑バカ
>>272 ,273,274
ありがとうございます。もう一つ質問があるのですが
XML、JAVAを使ってJSPにXMLからデータの表示や取得をしたいのですが
全てのデータ取得は出来ても任意のデータが取得できません。
具体的には
<cars>
<car>
<name>乗用車</name>
<price>100</price>
<./car>
<car>
<name>トラック</name>
<price>200</price>
<./car>
</cars>
こんなXMLで「乗用車」だけを取得、もしくはデータを書き換え
したいと思うのですが、どのようにすればよいのでしょうか?
ディレクトリを検索するような感じで、どの階層にいるかも
わかるようにしたいと思っています。
>>276 何が言いたいかよくわからん。
普通にやれば、任意のデータが取得できないわけがない。
もういちど、XMLのドキュメントを読み直したほうがよさげ。
今RPG作ってるんだけど、50種類くらい魔法あるのね で、魔法はそれぞれ動作が違うんだけど、 これって50個クラス作らなきゃいかんの? 魔法1種類につきいろんな状態を持っているわけじゃないから、 魔法 ひとつはクラスじゃなくてインスタンスだと思うんだけど、 インスタンスごとに別々のメソッドを持たせるなんてできなさそうだし 何より50回もnewするのはいやなんだけど、 なんかいい解決法はない?
>インスタンスごとに別々のメソッド 同じメソッドでいいじゃん。
魔法一個ずつクラス化する必要なくね?
>>281 配列で魔法のデータだけ保持してそのデータをインタプリタで処理するクラスを作ればOK。
それで1個のクラスに配列のINDEXを突っ込めばOKだな。
>>280 同じメソッドでやるの?
まあ、ホイミとベホイミみたいのは同じメソッド使ってできると思うけど、
防御力あげるとか、敵が出なくさせるとか、魔法ひとつでいろいろ効果あるじゃん。
いろんな値参照したり、更新したり。
それってやっぱり別のクラスたてて別メソッドでやるしかないんじゃないかと思うんだけど
>>281 そう思う。でも、どうしたら↑みたいなのが実装できるかわからんのよ。
いいアイデアない?
>>279 >>282 インタープリタ?
それって幸せになれそう?
いまいち、実装が思いつかないんだけど、
なんかいい参考URLなどあったら教えてホスィ。。。。
>>284 データをファイルに書き込んで別ファイル化できるから幸せじゃないか。
そのデータをスクリプト言語みたいにしてもいいわけだし。
ゲーム会社なら普通はゲーム用のスクリプト言語くらい作ってるよ(yaccとlexで
作ってるのもあればしょぼいアセンブラみたいなのもあるし)。
いろいろ考えたけどよーわからん・・・・
>>282 から想像で組み立ててみると、
String[] mahou = new String[50];
mahou[0] = "ホイミ 回復 単体 発動者.魔力";
mahou[1] = "マヌーサ 命中- グループ";
・
・
・
void magicExecute(int index){
//.....あとはここのインタープリタ部分を工夫
みたいになるわけかな?
魔法処理だけじゃなくてゲームシステム全般をインタープリタで処理すると
>>285 になる、と。 大がかりになりそうだなぁ。
とりあえず↑で組んでみるわ。ありがと。
こういう時には抽象クラスの継承とインタフェースを使いまくって、 キャストで多態性を利用するといいような気がする。
50個クラスを作るほうが設計的にきれいだし楽だと思うがな。 系統別にわけて継承関係作れば50個個別に作らなくてすむし。
>>282 その程度の処理をインタプリタと呼ばれると非常に違和感が。
せいぜいディスパッチャだろ。
何よりあとから別のものを追加することになったとき対処しやすい。
>>286 魔法こそXMLやDBで管理すればいいのに。
しかもデータの分類をスペースえ区切るのは効率悪すぎ
多次元配列つかえよ
魔法ひとつごとにクラス一個よりも 魔法のカテゴリーや特徴ごとにクラスを作ったほうが無駄が減ると思う。 ときに似て非なる魔法のためにわざわざクラスを作るのは効率が悪すぎ。 そこで似て非なるもののバリエーションにはXML/DBで補う。
おはよー
>>287 >>288 クラス作るのか・・・もちろんそれも利点はあるんだけどさ
消費MPとか習得条件とか、どの魔法にも必須の要素をくくり出せるし、
白魔法と黒魔法の分類をクラスの継承関係で表現できるのは綺麗だと思う。
でも、そのためにゲームの初期処理段階で50回もnewをうりうりうりうりするか?
って考えたら、とたんに萎えてさあー。
>>291 >>292 DBは勘弁してくれ!
いくらJavaとはいえ少しでも配布しやすくしたい。
カテゴリーごとにクラスを作るってのは折衷案みたいでいいな。
たぶんクラス数は2/3程度には減ると思う。
せっかくだから、魔法のロジック部分もXMLで表現できるように
(インタープリタの役割を一部負わせる?)考えてみるよ。
そうするともっとクラス数を圧縮できるかも
>>287 >>キャストで多態性を利用するといいような気がする。
バカ? キャストすんな。
296 :
デフォルトの名無しさん :03/10/26 13:00
すいません。質問です。 あるアプリケーションで、起動時にユーザ名とパスワードで 認証処理を行いたいと思っています。 その際、NTドメインで使用されているユーザ名とパスワードを 使いたいのですが、そういったことは可能でしょうか? どなたかよろしくお願いします。
>>278 >でも、そのためにゲームの初期処理段階で50回もnewをうりうりうりうりするか?
>って考えたら、とたんに萎えてさあー。
クラスを作らない場合でも結局50回どこかでデータ設定しないといけないわけだが。
>>296 うるおぼえだが JNDI で出来なかったっけ?
JAASですね。 JavaWorldの2002年8月号に、それっぽいのがあったんで試してみます。 ありがとうございました。
まず
>>206 さん、試してくれてありがとう。
pathの書き方を変えてやってみます。
>>278 私もDQ作ったことあるんだけど、Jumonクラスを作ったよ。
コンストラクタとか、メソッドをうまくスイッチ文で制御すればいいと思うよ。
でも、ぼくの場合は回復魔法しか実装しなかったけど。
302 :
デフォルトの名無しさん :03/10/26 14:33
JAVAの勉強を始めようと思う初心者です 2年前発売の入門書を買って、付属のCDを使って始めたのですが 基本部分の「javac」というものが使えません 環境変数の設定がうまくいってないようです いろんなJAVA関連のHPを見てまわったのですが理解しにくいです このCDは「SDK1.3.1」というもののようですが、新しいバージョンをインストールして やりなおしたほうがいいのでしょうか? OSはWinMeです よろしくおねがいします
303 :
デフォルトの名無しさん :03/10/26 15:12
test
>>302 別に新しくする必要は無い。新しくしても、どうせ同じとこでつまづく。
快適にダウンロードする環境があるなら新しい方がいいけどね。
若干本の中身と合わなくなってくるよ。
環境設定は、基本的に Java とは関係ない分野の話。
もっと一般的に、自分の設定で C:\ にパスが効かせられるか、
D:\hoge に効かせられるか。できなきゃ PC初心者にでも行くか Google にでも聞いて。
それをクリアできれば java のフォルダにも簡単に通せるでしょう。
>>304 レスありがとうございます
そうなのですね。今の状態で頑張ってみようと思います
ただ環境変数のところで色々いじってしまったので修正できるのか不安ですが^^;
どうしても、うまくいきません。 今、c:\autoexec.batが下のようになっているのですがここには問題があるのでしょうか? SET COMSPEC=C:\WINDOWS\COMMAND.COM SET windir=C:\WINDOWS SET winbootdir=C:\WINDOWS SET PATH =C:\WINDOWS;C:\SDK1.3.1\bin;c:\test SET PROMPT=$p$g SET TEMP=C:\windows\TEMP SET TMP=c:\windows\TEMP アドバイスがあれば宜しくお願いします。OSは Win Me です
>>306 JDK(SDK)をどこにインストールした?
306では
SET PATH =C:\WINDOWS;C:\SDK1.3.1\bin;c:\test
とあるが、この「C:\SDK1.3.1」がインストールした場所と一致してる?
>>307 ローカルディスクCにはJDKというファイルはあるのですが
SDKというファイルが見当たりません
どこにインストールしたのかわからないです・・・(TT)
このJDKなのでしょうか?
>>308 >dir C:\SDK1.3.1\bin これやったらどうなる?
310 :
デフォルトの名無しさん :03/10/26 16:58
>>380 とりあえず JDK にしてためしてみろ
>>309 C:\WINDOWS>dir C:のボリュームラベルはありません
ボリュームシリアル番号は 183A-12EB
パスが見つかりません.
↑
このようになりました
訂正です C:\WINDOWS>dir C:¥SDK1.3.1¥bin ドライブC:のボリュームラベルはありません シリアル番号は 183A-12EB パスが見つかりません. ↑ このようになりました
>>310 SET PATH =C:\WINDOWS;C:\JDK1.3.1\bin;c:\test
こうするということですか?
314 :
デフォルトの名無しさん :03/10/26 17:07
1.4のSDKドキュメントのダウンロードができなくなったのは漏れだけでつか? (以前は簡単にできた)
>>313 そうだよ、なんかの初心者本かHPみならがやってるだろ。
ちゃんと自分の環境にパスをあわせてくれ。
追記 : 日本語版の。
>>315 JDKに直してやりましたが、再起動後なぜかフーリズしてしまいました
強制終了して、やりなおしましたがダメでした
>>317 半角で、やりましたが同様の結果となってしまいました
>>318 ホントにインストールしてるのか?
デフォルトだとインストール先は
C:\j2sdk1.4.1_03
みたいなのだぞ?
>>318 そうか・・・
で、結局どこにインストールしたんだよ?
インストーラーから入れたの?
それとも、zip解凍して、自分で入れたのか?
付録CDからどうやって入れたのか手順を教えてくれ!
それがわかんないならJavaのサイトでJDKを
DLしなおした方がいいよ。
msconfigからシステム設定ユーティリティにしてみると PATHの欄がなぜか、二つになっております さっきまでは一つだったのですが・・・。 PATH C:\WINDOWS;C\WINDOWS\COMMAND PATH C:\WINDOWS;C\JDK1.3.1\bin;c:\test ここにも、おかしいところがあるようなのですが・・・。 よろしくおねがいします
>>320 さん
付録CDを挿入し、マイコンピュータからCD-ROM(E)を選択して・・・
という手順でインストール完了でした
>>322 さん
C:¥WINDOWS>path
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
このようになりました
>>323 autorunということはインストらーか・・・
で、autoexec.batは自分で設定したのか?
>>325 さん
はい。本の指示に従って、メモ帳からマイドキュメントの「c:\autoexec.bat」を開き
ファイルの一番最後の場所に移動し
SET PATH=C:¥SDK1.3.1¥bin;%PATH%
を加え、上書き保存し、再起動させました。
その後DOSプロンプトでjavacと打ち込んで説明が出れば完了とあるのですが
ファイルが見つかりませんと出てしまいます
ちなみに本は技術評論社のJAVA超入門というものです
>>326 その入門書糞だな。
とりあえず、状況はわかった。
対処法は以下のとおり
1.エクスプローラーでCドライブに対して、javac.exeを検索する。
2.見つかった場所のディレクトリを(A)とする。
3.メモ帳でautoexec.batを開く。
4.SET PATHの行を削除。
5.新たにSET PATH=C:\WINDOWS;C\WINDOWS\COMMAND;(A);c:\testを追加。
6.上書保存して終了。
7.再起動
8.DOS上でjavacを入力し確認。
注意:3。の前にautoexec.batを適当なファイル名に変更して戻せるようにすること。
1.で複数見つかった場合は要相談。
訂正 >エクスプローラーでCドライブに対して、javac.exeを検索する。 C以外でもやる。 >3。の前にautoexec.batを適当なファイル名に変更して戻せるようにすること。 3。の前にautoexec.batをコピーして適当なファイル名に変更して戻せるようにすること。
>>327 さん
ありがとうございます!
今から、やってみます!
>>326 あのさ。そうやって全角にしちまうのは何故なんだ。
書き換えた先のファイル (autoexec.bat) から、
その内容を コ ピ ペ し て ここに貼っつけてくれよ。
今書き間違ったのか、設定時点で既に間違ってるのか分からんし、
写し間違われたら俺らも指南できないし。
どうでもいいがjavaと関係ないからスレ違いだぞ。 この程度のことができないようじゃプログラミングでも 思いっきりつまづくのが目に見えてる。
>>330 さん
そうですね(^^;)
以後、コピーします
333 :
デフォルトの名無しさん :03/10/26 18:06
>>331 それも一理あるがこの程度のこともまともにかけない入門書が増えてDQNスパイラルを
拡大させてるののほうが有害。
>>331 そういうこと書くなや。俺も初心者の頃は、クラスパスやら、パスやら
わかんなくて、設定が一番手間取ったもんだ。
人に対して、自身をなくすことは、書くな。特に初心者にはな。
初心者がプログラムをこれからやって、無理だと思ったら、そこでやめれば
いいことだろ。
>>334 クラスパスは初心者じゃなくても判りにくいと思われ。
あたらしいjarいれたらコアダンプするようになったり。
まあEJBやTomcatなら単純だからいいけど。
>>335-336 まあまあ、持ちつけ。
ここは初心者のためのスレだから
302がちゃんとコンパイルできるかどうか見守ってやろうよ。
>>336 これで自慢になるならこんなに嬉しいことは無いです。
>>334 CLASSPATHはまだしもPATHはここでやることじゃない。
すみません javac.exeの検索はできたのですが手順2の >見つかった場所のディレクトリを(A)とする これは、どのようにすればいいのでしょうか? ほんと初心者なので申し訳ないです
>>340 例えば、
c:\sdk1.3.1\binで見つかったらそれを(A)とする。
ただそれだけよ。
>>341 さん
ありがとうございます
作業を続行します
>>294 そのまんまやとXML改ざんして魔法ふやされちゃうよ。
暗号化してからXMLにはりつけるとええかも。
ありがとうございました!!! 見事、完了して上手くいきました!! 何日も悩み続けたので、とても感謝しています!! みなさん、お騒がせして申し訳ありませんでした
>>344 よかったね。
で、結局どこにあったのさ?
>>345 さん
autoexec.batは
C:\jdk1.3.1\bin
↑
ここでした
訂正 javac.exeは C:\jdk1.3.1\bin ↑ ここでした
throwsで投げる例外とcatchする例外って何が違うのですか?
349 :
デフォルトの名無しさん :03/10/26 19:26
>>348 例外そのものは同じです
throw するか catch するかが違うのです
>>343 わざわざそんな遠くからレスありがとう。
気にかけてくれてうれしいよ。
つーか、そこまでしてチートするならなんなりと、って感じだけどね
ゲームバランス緩くしてつまらないのは本人なんだが
でも、そういう投げやりな姿勢は自分のゲームの価値を低くするかもな。
忠告ありがとう。暗号化するよ。
>>350 その違いは?どっちでやっても一緒ってことっすか?
メソッド内で try-catch で例外を処理するのと メソッド内では処理しないで外側で処理してもらうことの 違いがわからないのか?
>>352 そう言うことだ。誰が責任を負うか。それだけの違いだ。
>>353 んじゃcatchで行う処理をthrowsによって外側で処理してもらうのも
throwsによって外側で処理してるのもcatchで処理出来るって訳ですか?
問題なし…?何か引っかかるんですが。
>>355 何を言ってるのかよく分かりません。大丈夫ですか?
API においてあるメソッドから例外が throw されているように、
あなたの設計するメソッドも例外を throw することができるんです。
しかし内部で出てしまった例外をそのまま throw する代わりに、
boolean で false を返して失敗を示すこともできるのです。
どちらにするかはあなた次第です。
>>355 catchで行う処理をthrowsによって外側で処理してもらうのは普通。
ていうか、catchで行う処理ってのは、もともとは誰かによってthrowしてもらったものだ。
throwsによって外側で処理しているものをさらにthrowして、
どこかでcatchするなんてことは普通しない。
ていうか、そういう複数のスコープから段階を経てジャンプするんじゃなくて
一気にジャンプしたい要請のために存在するのが例外処理だから。
あは~ん、突然ですがもまいら元気ですか?
このスレのバージョン20代後半でよく出入りしてた卒業生です。
あの頃の方はもう残っていないかもしれませんが、
おまいらに意味不明の助言を貰いつつ、煽られつつ、無視されつつ、
けなげにも「ありがとう」と感謝の言葉を述べたりしてた漏れです。
9月1日から社会人やってます(
http://pc.2ch.net/test/read.cgi/prog/1024853914/213 を参照)。
社会人ってタイヘンだね。
もまいらが煽ってきた以上の言葉を日々投げつけられます。
だけどもまいらが「テメーで調べろ」「APIも嫁んのか」と散々煽ってくださったお陰で、
耐性がついた漏れは、頑張って生きてます。
会社から2chに繋げない上に毎日終電でなかなかカキコできませんが
アドバイスくれた方々には今でも感謝してます。
役に立つアドバイスばかりではなかったことは明白ですが、
もまいらと喋ってなかったら、プログラミングの勉強を今ほど頑張れなかったでしょう。
スレ違いだからもう去るけどさ、もまいら達者でナ。
それでは。今週もがんばるぜ!
あの~、GUI関係なんですが、よろしいでしょうか? JFrameで画面作ってるんですが、画面の一番上のタイトルバーって言うんですか? あの青くて、その画面のタイトルが書いてあって、右端に最小化ボタンと最大化ボタンと ×マークのある部分です。 あいつをなくすことはできないんでしょうか? あほな質問で申し訳ないです。分かる人がいたら、おせーてくらはい。
そういうときはJWindow使うんだったような
あは~ん、突然ですがもまいら元気ですか?
このスレのバージョン20代後半でよく出入りしてた卒業生です。
あの頃の方はもう残っていないかもしれませんが、
おまいらに意味不明の助言を貰いつつ、煽られつつ、無視されつつ、
けなげにも「ありがとう」と感謝の言葉を述べたりしてた漏れです。
9月1日から社会人やってます(
http://pc.2ch.net/test/read.cgi/prog/1024853914/213 を参照)。
社会人ってタイヘンだね。
もまいらが煽ってきた以上の言葉を日々投げつけられます。
だけどもまいらが「テメーで調べろ」「APIも嫁んのか」と散々煽ってくださったお陰で、
耐性がついた漏れは、頑張って生きてます。
会社から2chに繋げない上に毎日終電でなかなかカキコできませんが
アドバイスくれた方々には今でも感謝してます。
役に立つアドバイスばかりではなかったことは明白ですが、
もまいらと喋ってなかったら、プログラミングの勉強を今ほど頑張れなかったでしょう。
スレ違いだからもう去るけどさ、もまいら達者でナ。
それでは。今週もがんばるぜ!
APIってJavaのAPI? 読めるかどうかではなくて、理解できるかどうか? じゃない? 説明が不足しているところが多々あるよね、そういう時英語版では詳細に書いてある 場合があるので英語ができると一目置かれるよ。レベルの低い会社だからね。折れんとこ。 で、英語がまったくできない折れは感が発達しますた。。。
364 :
デフォルトの名無しさん :03/10/27 10:35
>>361 以前まではそうだったんだが 1.4 からJFrameでもできるし、非矩形のウインドウでもあつかえるよ
JFrame.undecorated(true)としたら、できました。
>>364 とか、
>>361 は、それにしても、こんなことようしっとったね。
昨日から、
http://java.sun.com/products/java-media/jmf/2.1.1/solutions/JpegImagesToMovie.html のサンプルを動かしてるんですけど、やっぱり動きません。
実行コマンドは、
java JpegImagesToMovie -w 1024 -h 768 -f 1 -o C:\image\test.mov C:\image\foo1.jpg C:\image\foo2.jpg C:\image\foo3.jpg C:\image\foo4.jpg C:\image\foo5.jpg C:\image\foo6.jpg C:\image\foo7.jpg C:\image\foo8.jpg
としています。
ですが、帰ってくる結果は、
- create processor for the image datasource ...
Setting the track format to: JPEG
- create DataSink for: C:\image\test.mov
Cannot create the DataSink: javax.media.NoDataSinkException: Cannot find a DataSink for: com.sun.media.multiplexer.BasicMux$BasicMuxDataSource@1fddc31
Failed to create a DataSink for the given output MediaLocator: C:\image\test.mov
と、DataSinkをつくれないと言われます。
どこがいけないのでしょうか?
>>222 さんや、
>>206 さん、また他の方々助けてください。
367 :
デフォルトの名無しさん :03/10/27 15:18
>>366 暇なんで試してみた。環境:Mac OS X 10.1.5 (JDK 1.3.1)
問題なくQuickTimeムービーが出来ますた。出力結果は以下の通り(ユーザー名は伏せ字)
java -classpath ".:JMF-2.1.1e/lib/jmf.jar" JpegImagesToMovie -w 231 -h 177 -f 1 -o test.mov p1.jpg p2.jpg p3.jpg p4.jpg p5.jpg
- create processor for the image datasource ...
Setting the track format to: JPEG
- create DataSink for: file:/Users/*****/test.mov
start processing...
- reading image file: p1.jpg
read 8848 bytes.
- reading image file: p2.jpg
read 8713 bytes.
- reading image file: p3.jpg
read 8500 bytes.
- reading image file: p4.jpg
read 8287 bytes.
- reading image file: p5.jpg
read 8740 bytes.
Done reading all images.
...done processing.
368 :
デフォルトの名無しさん :03/10/27 15:23
直接javaの質問じゃないんですが、いいでしょうか? 昨日から、java.sun.comからjre1.402をダウンロードしようとしてるですが、 一向にダウンロードに成功しません。 ダウンロードできても20kBぐらいで中断してしまいます。 どなたかご教授お願いします。
1.42_02の間違いでした。 環境は、 Windows2000+IE6.0+USENケーブルです。
>>367 java JpegImagesToMovie -w 1024 -h 768 -f 1 -o test.mov foo1.jpg foo2.jpg
って、ファイル指定をまねしてみたらできちゃいました。
本当にありがとうございました。
直リンしてもDLできないと思ったので、張りませんでした。 私はそこでもDLできませんでした。ブラウザはIEしかありません。 irvineでもDLできなかったのは確認できました。 やはり私の環境が悪いようで… スレ違いすみません。
>>372 直リンするためにURL張るんじゃなくて
どのファイルかを知りたいだけだよ。
>>373 なるほど、配慮が足りなくて申し訳ありません
どうやらNet Transportでダウンロード成功しそうです。 ご迷惑かけてすみませんでした。
っと思いきや、 31%、52%のいずれかで途中で終了してしまうようです。 不思議すぎます
同時スレッド数10にしたら83%ぐらいまではいくんですが・・・ 何が悪いんでしょう・・・
どうやら、DLできる箇所とできない箇所があるみたいです スレッド数をあげると、DLできる箇所に遭遇する可能性が高くなると どう考えてもスレ違いなんで、引っ越します 迷惑かけてすみません
ほんかってこい。それについてるJDKつかえ
>>368 Java(じゃば)の質問(しつもん)ができるようになるまでここに書(か)き込(こ)むな。見(み)るなとは言(い)わないから。
ぴーしーしょしんしゃいたにいって、 ぱそこんのつかいかたを おぼえてからこい。
>>380 日本語初心者は日本語の使い方をおぼえてからこい
xmlの書き換えで質問があります。 setData()を使って要素を書き換えたいのですが、setData()直後に getNodeValue()やgetData()を使って読み出すと書き換えた値になっているのに、 プログラムが終了してxmlのファイルを見ると項目は書き換わっていないのです。 Nodeクラスのメソッドを見てもcloseやcomitはないようなのですが、 書き換えるには何か特別な処理が必要なのでしょうか?
>>382 多分 DOM なツリーに対して書き込んでるんだろうけど、
それは各要素に対応する VM 上のインスタンスに対して処理を行っているだけで、
ファイルに対する wrapper になっているわけじゃないよ。
DOMResult などを参照のこと。
もし君の期待するような機能が実装されていたとしたら、
ファイル以外から xml 文書を読み込んでるときは困るでしょう。
失敬、StreamResult の間違い。
じゃなくて 384 でした。
>>383 配列に代入するなら型宣言はいらないよ。
empdata[0] = new ManagerClassEmployee("The Boss,",500000.0,10);
empdata[1] = new LowPaidEmployee("The Tea Boy",5000.0,1);
>>386 ハッ!そういえばそうでした…。また型宣言しちゃってたんですね。
恥ずかしい限りです。
ありがとうございました。
>>384 お察しのとおりDOMツリーを扱っているのですが
StreamResultクラスはどうやって使うのでしょうか?
Document doc; //Document 構造を Source にする Source ds = new DOMSource(doc); //出力先を用意する (FileOutputStream など) Result r = new StreamResult(os); //書き込む TransformerFactory.newInstance().newTransformer().transform(ds, r); あまり鵜呑みにしないでね。俺的には一応動いてるってだけのつもりだから。
>>383 誰も答えてないようなので見てみたが・・・
>Employee empdata[0] = new ManagerClassEmployee("The Boss,",500000.0,10);
>Employee empdata[1] = new LowPaidEmployee("The Tea Boy",5000.0,1);
empdata[0] = new ManagerClassEmployee("The Boss,",500000.0f,10);
empdata[1] = new LowPaidEmployee("The Tea Boy",5000.0f,1);
間違い
1.オブジェクト変数の宣言が2重
2.コンストラクタの第2引数がfloatなのにdoubleになっている。
(明示的にf(F)をつける必要がある)
なお、文法しかチェックしてないから動作までは見てないよ。
以上
誰か答えてたか・・・まぁいいか
392 :
デフォルトの名無しさん :03/10/28 00:19
下のコードを実行するとメモリリークが発生するみたいなんですが、 何か問題なのでしょうか? 因みに、replaceAllのように文字列全体を置換するメソッドです。 public static String replace(String input, String from, String to) { if (input == null) { return null; } else if (from == null || from.length() == 0 || to == null) { return input; } StringBuffer buf = new StringBuffer(input); int i = 0; int len = from.length(); while ((i = buf.indexOf(from, i)) >= 0) { buf.replace(i, i + len, to); } return buf.toString(); }
int i = -1; ... while ((i = buf.indexOf(from, i + 1)) >= 0) { ...
JAVAのサーブレットか、JSPで、 入力欄を作り その中に入力された文字を ボタンを押すことで txtやCSVに書き込むクラスを探してるのですが見つかりません。 CGIではサンプルがあるのですが、JAVAにはサンプル集みたいなものはないのでしょうか? classやサンプルコードの探し方をよろしければお教え願えませんでしょうか? また、↑のコード簡単に作れるのでしたら、ご指導願えませんか?
HttpServletRequest から入力を取り出して FileWriter で書き込め。
>>267 ちゃんとマニュアル読んだか?
インストールしただけでは動かないと思ったぞ。
HelloUniverseをAppletとして実行するならappletviewer HelloUniverse.html
として実行だぞ。
>>395 調べてみます、ありがとうございます。
と、ちょっと見てきたのですが、
入力欄と、HttpServletRequestとの連携の取り方がうまく表記できませぬ。
お手数でなければ更なる助言をお願いします。
出来る限りがんばってきます。
ttp://www.kei-ha.co.jp/mag/mag0072.html こんなページを見つけて、書いてある通りやったのですが
HTTP Status 404 - /MyWebApp/index.html
--------------------------------------------------------------------------------
type Status report
message /MyWebApp/index.html
description The requested resource (/MyWebApp/index.html) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/5.0.9
こんなエラーが出ます。これは、xmlを置かないと動かないのでしょうか?
この場合、どんなxmlをおいたらいいのでしょうか?
こんな時間ですがお力をお貸し願えないでしょうか?
>>398 そこ糞ページだな。
まあ、それはいいとして、
きみはサーブレットどのくらいわかってるの?
HttpServletRequestて言ってるのにちゃんと調べたか?
そんな糞ページ見る前にやることがあるだろ
>>399 何が糞なのかわからなくて、困ってます。
HttpServletRequestについてはもう少し調べてみます。
本についてるサンプルが通らないから、、、ネットでサンプル探してるのですが
基本的なことがなかなか理解できず苦戦しています。
APIみただけでどんなコード書けばいいか想像できません。
経験不足すいません。
>>400 HTTPD や CGI の役割がわかってないとサーブレットも分からないぞ
ローカル環境でファイルに書き込む方法がわからなければサーブレットでも同じこと
サンプルが通らなかったらどうして通らないか調べる能力を磨いてないと難しい
どこまでだったらサンプル見ないでできるんだ?
402 :
デフォルトの名無しさん :03/10/28 10:49
>>384 ありがとうございます。
おかげさまで無事に書き込むことができました。
404 :
デフォルトの名無しさん :03/10/28 11:53
えっと質問なのですが
>>1 のサイトを読んで
SET PATH=%PATH%C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin;
では長すぎるのでインストールしたフォルダからbinフォルダだけコピーして
SET PATH=%PATH%C:\j2sdk1.4.2\bin;
とautoexec.batに追加したのですが、javacを実行すると
「Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/Main」
と表示されます。
インストールしたもの全部コピーしなきゃ駄目なんでしょうか?
>>404 あたりきしゃりきリンゴの木(死語)
よくわかんないのにそーゆー危ないことするな。
素直にインストールしたままの状態にしなさい。
うまくアンインストールできなくなるぞ。
FATAL [Servlet.Engine.Transports : 2] (LoggingExceptionHandler.java:54) - java.lang.NullPointerException at java.lang.Throwable.<init>(Throwable.java:54) at java.lang.Throwable.<init>(Throwable.java:68) at java.lang.NullPointerException.<init>(NullPointerException.java:63)
>>405 回答ありがとうございます
では
SET PATH=%PATH%C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin;
の追加で大丈夫なんですか?
c:\autoexec.batと実行すると「パラメータが多すぎます」とでるんですが
SET PATH=%PATH%;"C:\Program Files\j2sdk_nb\j2sdk1.4.2\bin" ・ ; は間につける。終端には不要 (ゆえに %PATH% のあとにつける) ・ パスにスペースが入る場合は "" でくくる これでどう
まだ超初心者(初めて4日目)ですが、質問させてくださいませ。 時間 温度 0 30 1 28 2 32 3 30 4 27 (続く) っていう感じで、ファイルに出力する場合、ソースは どのようにすればよいのでしょう? 参考書を見ても、文字列の扱いしか載ってないもので…。 Cの経験はあるので、Cでなら簡単に書けるのですが…。
>>409 C ではハンドル (FILE *) と fprintf を活用したと思うが、
Java では File という、ファイルそのものの実体を扱うクラスと、
FileOutputStream という、アクセス手段を扱うクラス、と言うように分けて扱う。
FileOutputStream は OutputStream のサブクラスで、
出力先が File である他はネットワークソケット等に対する出力と同様の扱い方ができる(逆も言える)。
File file = new File("C:\\text.txt");
FileOutputStream fos = new FileOutputStream(file);
または
FileOutputStream fos = new FileOutputStream("C:\\text.txt"); // File の生成を F.O.S に任せる
とするとオープンされ、fos.write(byte列); などして byte列を書き込み、fos.close(); して終える。
fprintf のように「メソッドに対象とコンテンツを与える」のではなく、「対象のメソッドにコンテンツを与える」。
なぜそういう設計なのかと言えばオブジェクト指向だから。
で、Java で扱う文字列は String 型(中身はchar[])であり、 byte[] ではないので、 いちいち変換してから出力することになるが、この辺は文字化けしたりと相当ケースバイケースだ。 str.getBytes() して byte[] を取り出す手もあるが、PrintStream とか PrintWriter で FileOutputStream をくるみ、 これらに変換を行ってもらいながら出力してもいい。 PrintStream ps = new PrintStream(new FileOutputStream(new File("C:\\test.txt"))); ps.println(str); // String に byte[] への変換を実行させて、それを書き込んでくれている。 ps.close(); System.out と同じクラスだから馴染みあるだろう。 また、"%s\t%t\n" のような書式設定の機能は、Stream, Writer から切り離されていて、 MessageFormat クラスなどを使って実現しなければならない。 初心者のうちは、書式を凝らないだろうから、 ps.println(hour + "\t" + temp); などとして出力すればよかろう。
>>410-411 早速ありがとうございます。
Javaでは文字を数値に変換する工程が必要ということでいいのでしょうか?
import java.io.*; class kakikomi { public static void main(String[] args) { int x; int y; for(x=0;x<=100;x++) { y=x; PrintStream ps = new PrintStream(new FileOutputStream(new File("kakikomi.txt"))); ps.println(y); // String に byte[] への変換を実行させて、それを書き込んでくれている。 } ps.close(); } } やっぱコンパイラに怒られちゃいます…。 ただ貼り付けただけじゃダメなのね…。
>>408 やっとできたようです。
ありがとうございました
>>412 数値と言うのは byte のこと? 何かちょっと誤解してるかもしれないね。
あまねく全てのコンピュータは、文字を何らかの数値として常時扱ってるのは知ってるよね?
コンピュータでの「文字」というのは、byte 1個や数個をなんという文字にして表示するかと言うだけのもの。
Java の文字列も中身は数値の配列だが、型は char で、文字コードは Unicode、という取り決めがある。
Unicode (ないし char) は byte より bit 数が多く、だから漢字でも半角アルファベットでも、配列1個分だけ使う。
しかしファイルなどは byte 単位で書き込むことと、多くの OS やデバイスで定められているので、
byte 単位に分割する必要がある。通常はついでに SJIS などの OS 推奨の文字コードに置き換える。
文字列という「クラス」から、文字コードという「数値」を取り出し、別の「数値」に変換しているだけ。
書き込む前も書き込んだ結果も、文字であり、数値。
>>413 PrintStream のコンストラクタの位置が悪い。あとは例外を catch すれば OK。
java初心者なのですが質問させてください。 public int getNamber(){}と public int getValue(){} で定義したふたつの値を public int getStatus(){} へ渡し、それを最終的に public void printStatus(){} で得てラベルやテキストフィールドに表示するというプログラムを作りたいのですが良く分かりません。 public int getValue(){ return value;} などと書くところまではなんとか分かってきたのですが、どなたかアドバイス頂けませんか?
つまり printStatus(getStatus(getNumber(), getValue())); することになるだろう。 ということは、こう宣言して実装すればいい。 public int getNamber(){} と public int getValue(){} で定義したふたつの値を public int getStatus(int number, int value) { } へ渡し、それを最終的に public void printStatus(int status) { } で得て...
JDesktopPane の JInternalFrame を、 「整列」ボタンで揃えて並べてみてるのですが、bounds を変えているだけなので、 JDesktopPane の大きさを変えると当然のごとく余白だけが広がります。 かといって親サイズが変わったときに自動で frame サイズも変えるのも、状況判断が結構厄介です。 何か楽に攻めるヒントはありますでしょうか?
<book> <title/> <price/> </book> こういうxmlが存在したときに、titleのvalueに値を入れると <book> <title/>辞書<price/> ↑なぜかくっつく </book> となり、値を書き換えるときも、<title>辞書</title>となっているものを 書き換えると<title/>漫画<price/>こうなってしまい、これではダメだと言われました。 <book> <title>辞書</title> <price/> </book> ↑こんな風にするにはどうすればよいのでしょうか?
DefaultTableModel などで、 listener に通知する便利なメソッドの名前は fire から始まりますが、 何故ですかねぇ? fire ━━ n. 火; 炎; 炉火, たき火; 〔英〕 暖房器; 火事; (火のような)輝き; (ダイヤなどの)光輝; 霊感; 情熱; 活気; 旺(おう)盛な想像力; 熱病, 炎症; 試練; 射[砲]撃, 砲火; 非難. 活気? それともニュアンス的に射撃?
/* ノード読み込みメソッド */ public static void nodescan(NodeList nodelist) { int maxsize = pToken.size();// ←対象のノードを探すためのタグ名がルートから順に入っている int nodecount, subnodecount ; ++nest ; for (nodecount = 0 ; nodecount < nodelist.getLength() ; nodecount++) { Node node = nodelist.item(nodecount) ; // ノードの種類で処理をわける switch (node.getNodeType()) { case Node.ELEMENT_NODE: String buf = (String)pToken.elementAt(cnt); /* タグ名がvalue値をもつ時 */ if(cnt == (maxsize - 1)) { if(buf.equals((String)node.getNodeName())) {flag = true;} } /* タグ名のみの場合 */ else if(buf.equals((String)node.getNodeName())) {cnt++;} break ; case Node.TEXT_NODE: if (flag == true){node.setNodeValue("ここで書き込み");} break ; } if (node.hasChildNodes()) nodescan(node.getChildNodes()) ; } --nest ; }
>>421 すいません、XMLのスレで聞いたほうがいいのかもしれませんが
あちらはどうも過疎っぽいのと、わたしはjavaは今まで触った事がなくて
javaの基礎的なことも何もわからない状況でjavaを使わないといけなくなったので
こちらで書かせてもらいました。
>>422 goo辞書からの引用だと思うが、それならそこのもっと下のほうを見ると、
動詞としての意味が載ってる。
「【コンピュータ】(プロダクションシステムのルールが)発火する.」
あたりが適当だと思う。
427 :
javaまじわからない :03/10/28 16:26
先輩の作ったプログラムに漏れがいろいろ追加したら メモリ不足でエラーとかになりました。 すごく説明が足りないとは思いますが、 メモリが不足する原因として考えられるもの およびその解決方法を教えていただけたら幸いです
>>426 動詞でもあるとは気がつきませんでした。どもども。
>>427 まったくもって説明不足。そんなんでわかると思うか?
ありがちなのは無限再帰かな。再帰呼び出ししているとことがあったら、
その終了条件が正しいか調べてみて。
A→B→C→A→B→C…という一見再帰呼び出しっぽくない再帰呼び出しも
ありえるので注意すべし。
>>アドバイスいただいた皆様 できました! もう感無量でつ。
はじめまして。Javaを始めて間もない初心者です。よろしくお願いします。 Shikaku10Panelクラスの中のgetPressureメソッドを setStatusメソッドで受け取りgetStatusで受け取って printStatusでそれを受け取り最終的に表示させるという プログラムを作っているのですがうまく作れません。 誰かアドバイス頂けませんか? import java.util.*; import java.awt.Graphics; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.awt.FlowLayout.*; public class Shikaku10 { public static void main(String args[]) { JFrame frame = new Shikaku10Frame(); frame.show(); } }
431>>続き class Shikaku10Frame extends JFrame { public Shikaku10Frame() { final int X_MaxFrameSize = 1024; final int Y_MaxFrameSize = 768; setSize(X_MaxFrameSize,Y_MaxFrameSize); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = getContentPane(); contentPane.add(new Shikaku10Panel()); } }
432>>続き class Shikaku10Panel extends JPanel{ public double printStatus(){ double x; double y; x = getPressureAB(); y = getPressureMid(); g.drawString("y"); } public double setStatus(getPressure){ } public double getStatus(setStatus()){ } public double setPressure(double pressureAB, pressureMid){ this.pressureAB = pressureAB; this.pressureMid = pressureMid; } public double getPressure(double pressureAB, pressureMid){ pressureAB = 0.0000000001; pressureMid = 0.0000000002; } public void paintComponent(final Graphics g){ super.paintComponent(g); System.out.println(printStatus()); } }
434 :
struts :03/10/28 19:44
strutsなんだが forwardでtarget指定みたいなことは出来ないものか? 1.ログイン処理後にフレームのページに遷移 2.セッションタイムアウトによってログアウト 3.ログアウトページに遷移 ということがしたいんだが、target="_top"指定が 出来ないためにフレームが分割されたままになってしまふ。 解決方法キボン
JBUILDERのフリー版でプログラムを作ったんですが、実行できるjarファイル作成の ウィザードがなかったので、しょうがないから自分でjarファイルを作ろうと思いました。 コマンドプロンプトから jar cvfm Password.jar Manifest.mf password としたら、jarファイルはできたんですが、ダブルクリックしても実行できません。しばらく、 コンピュータが動いて、それで終わってしまいます。原因がわかりません passwordフォルダの中には、一応下記のクラスが入っています。これ以外は、クラスはありません。 PasswordFrame.class PasswordFrame_btnAppend_actionAdapter.class PasswordMain.class PasswordFrame_jButton1_actionAdapter.class PasswordFrame_jButton2_actionAdapter.class PasswordFrame_jButton3_actionAdapter.class PasswordFrame_jButton4_actionAdapter.class また、Manifest.mfのファイル内容は下記の一行です。 Main-Class: PasswordMain PasswordMainというのが、アプリケーションのmainメソッドのあるクラス名です。 せっかく作ったので、ダブルクリックで起動できるようにしたいです。
>>435 .jarは実行可能ファイルだと思ってんの?
関連づけすらしてないのにダブルクリックで動くわけない。
batファイルでも作ってそのなかで、
java hoge.classのように呼び出せばいい。
補足 jarファイルの場合は java -jar ...
439 :
デフォルトの名無しさん :03/10/28 20:59
抽象クラスについて質問です abstract class AbstractHoge { private int homu; public final void sethomu(int i){ homu=i; } public final int gethomu(){ return homu; } } 見たいな抽象クラスがあった場合、これを継承しているクラスのインスタンスから homuに値を入れられるのはなぜ?と聞かれたんだけど、そのときは 抽象クラスは AbstractHoge abhoge=new AbstractHoge(); ができないだけでサブクラスのインスタンス生成したらそいつからみたら 抽象も具象も関係ないただのスーパークラスなんだべよ と説明したんだが自信がない。ほんとのところはどうなんでしょうか?
何をいっているんだ?
441 :
デフォルトの名無しさん :03/10/28 21:37
コンパイル出来たけど、実行しようとしたら Error: could not open `C:\Program Files\Java\j2re1.4.1_03\lib\i386\jvm.cfg' こうなった。 インストールはDにしたんだけどな・・・なんで?
>>434 >>forwardでtarget指定みたいなことは出来ないものか?
foward では出来ない。
ってか、Servlet ではなく基本的な Web の仕組みを(ry
解決方法はいくつか思いつくけど、
安易な方法では一旦クライアントに返して _top に飛ばすとか。
443 :
struts :03/10/28 22:03
>>442 やはり、それしかないのか・・・さんきう
もう一つ聞きたいのだが、validation.xmlにてチェックを行う場合に
iterateで展開した値をチェックするにはどうしたものか?
>>443 対応するActionFormのプロパティの型はListや配列になっているのだろうから、
List型や配列型のプロパティの値をチェックするルール作れば?
445 :
struts :03/10/28 22:09
>>444 あ、そうか、なるほど(恥
だめすぎやな・・・
さんきう!
APPLETの話なのですが、複数パネルがあるうちに、 パネル指定してg.drawしたいときは どのようにすればいいのでしょうか
447 :
デフォルトの名無しさん :03/10/28 23:52
>>446 Graphics g=パネル.getGraphics();
ありがとうございます!! やってみます
449 :
デフォルトの名無しさん :03/10/29 01:10
InputStream型の変数をByte[]の変数にする方法を教えてけれ。
javaでオンラインゲームは作れるのでしょうか? それがわかればもくもくとプログラムをやるんですが・・・ どうでしょうか?
>>449 不可能。InputStream から読み込んだものを Byte[] にするのは可能だが。
>>450 可能。というかなぜできないと思うのかが不思議。
オンラインゲームとは何かの定義によって どこに力を入れるべきかのアドバイスが変わる
うお返信ありがとうございます。 そうですね。2dで作ってみたんです。 多人数対戦を作りたいのですが、 できればコントローラを使ってやりたいです。
コントローラとは何かの定義によって(ry
Graphics g1=パネル.getGraphics(); で 記入してもできませんでした。 INIT で Graphics g1;を別につくり g1= Panel.getGrraphics(); とし、 一度 pubic void paint(Graphics g){ g.drawString("☆"、10,10); g1.drawString("☆"、10,10); } として、上のほうはAppletに反映されるのですが 下のほうが出ませんでした。 どのようにしたら、panel自身に書くことができるのでしょうか
457 :
デフォルトの名無しさん :03/10/29 04:27
>>455 Graphics g1;
をメソッド定義とかの外側に書いたら?
public class Hoge extends Applet{
Graphics g1;
initメソッドの定義
paintメソッドの定義
.......
}
みたいな感じで。
できないです・・・・ gとg1同時に使用するとできないということなのでしょうか
459 :
デフォルトの名無しさん :03/10/29 04:47
>>458 g1が絡んでくる部分だけでもいいので、
ソースをコピペしてちょ。
もう寝まつ。
サーバ側からクライアントのフォルダを開かせてページの情報を 保存させたり読み込んだりするにはどうすればいいのでしょうか?
>>458 朝起きて、試してみたら、うまくいかんかった...スマソ。
取りあえず、次のようにしたら、2つ星が出たよ。
漏れも詳しくはないんで、上級者の皆様の助言キボン。
import java.applet.Applet;
import java.awt.*;
public class Hoge extends Applet{
public void init(){
setLayout(new BorderLayout());
MyPanel p=new MyPanel();
add("South",p);
}
public void paint(Graphics g){
g.drawString("☆",20,20);
}
}
class MyPanel extends Panel{
public void paint(Graphics g){
g.drawString("☆",50,10);
}
}
463 :
デフォルトの名無しさん :03/10/29 14:06
JNIを使って、C++側からchar[]を受け取りたいと思っています。 が、C側の関数定義の仕方と、Java側のクラスに何を使えばよいかわかりません。 voidとかだったら、 JNIEXPORT void JNICALL 関数名 (JNIEnv *env,jobject obj) こういう風に書くことはわかりますが。 誰か教えてください。
Javaはやめとけ。
465 :
デフォルトの名無しさん :03/10/29 14:20
変なバグり方をして困ってます。 こんなコードなんですが、 前のページから名前を持ってきて、 データベースに登録すると 「十」(プラスじゃなくてじゅう) という文字だけバグるんです。 私だけなんでしょうか。 (山田十蔵で入れても→山田書?で登録されてる。) ちなみに、使ってるデータベースはMySQLです。 <%@ page language="java" %> <%@ page import="java.sql.*" %> <%@ page contentType="text/html;charset=Shift_JIS" %> <% StringBuffer sbMessage = new StringBuffer(); request.setCharacterEncoding("Shift_JIS"); String strName = request.getParameter("name"); int intAge = 0; intAge = Integer.parseInt(request.getParameter("age")); Class.forName("com.mysql.jdbc.Driver"); String strConn = "jdbc:mysql://localhost:3306/jamyto" + "?user=ユーザー名&password=パスワード" + "&useUnicode=true&characterEncoding=Shift_JIS"; Connection conn = DriverManager.getConnection(strConn); Statement stmt = conn.createStatement(); String SQL = "insert into person (name,age) values('"+strName+"',"+intAge+")"; int result = stmt.executeUpdate(SQL); %>
466 :
デフォルトの名無しさん :03/10/29 14:23
>>465 それ以前に view にModelをいれるな。MVCのパタン違反だ。
>>394 こういうこと?
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class Hoge extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException,ServletException
{
BufferedWriter out = new BufferedWriter(new FileWriter("a.txt"));
Map params = request.getParameterMap();
Set keyset = params.keySet();
Iterator it = keyset.iterator();
while(it.hasNext()){
out.write(request.getParameter((String)it.next()));
out.newLine();
}
out.flush();
out.close();
response.setContentType("text/html");
response.getWriter().println("<html><body>OK</body></html>");
}
}
えっと、VectorのEnumeration中に要素の追加や削除ってしていいんだっけ?
「VectorのEnumeration」という時点で大きな勘違いをしている。
ローカルのアプリを作ってます。 んで、JPanelはデフォルトでダブルバッファリングをしているってことですが、 JPanelを継承したクラスのpaintをオーバーライドしてg.fillOvalして、 描画座標なんかを右にずらすと、ダブルバッファリングしてるとは思えないほどおそんです。 なんで手動でダブルバッファしようと思ってもgetImageできなくて・・・困っています。 どうすればいいでしょうか?
どうやら大きな勘違いをしていたようです・・・。 それに気づいてcreateImageでイメージを作成したあと、getGraphicsしたんですが どうやらcreateImageでnullを返されているようです。 やはりJPanel上で手動でのダブルバッファリングは無理なのでしょうか?
474 :
デフォルトの名無しさん :03/10/29 18:14
Javaの質問です。スレッドについて勉強してるんですが、てかぶっちゃけ演習課題ですが class Exam2b { public static void main(String argv[]){ int n = 5; MyClass2b c = new MyClass2b(n); }} class MyClass2b extends Object implements Runnable { int threadLevel; public MyClass2b(int level){ threadLevel = level; MyClass2b c = new MyClass2b(threadLevel); Thread t = new Thread(c); t.start();} public void run(){ System.out.println("This is Mythread: " + threadLevel); if(threadLevel != 0){ MyClass2b c = new MyClass2b(threadLevel - 1);} }} で、下のような実行結果を目論んでいたのですがまともに動いてくれませんでした。 This is Mythread: 5 This is Mythread: 4 This is Mythread: 3 This is Mythread: 2 This is Mythread: 1 This is Mythread: 0 どこかでケアレスミスをしているとは思うのですが、わかりませんでした。どうすればいいでしょうか?
475 :
デフォルトの名無しさん :03/10/29 18:20
やばい!これからJAVAを始めるつもりだった者ですが、 PATHの通し方に失敗したようです。 再起動で、Winが起動しなくなってしまいました。 ”WIN.COMが見つかりません。Windowsの読み込みを続けることができません。” と表示されてしまいます。 ちなみにWindows95です・・・ 参考書には95のやり方も書いてあってその通りにやったつもりですが・・・
>>474 インデントがひどくてよみづらいんだが、
MyClass2bのコンストラクタでMyClass2bを宣言してないか?
もしそうだとしたら、スレッド以前の問題。
プログラムのプの字からやり直せ。
Windows
475ですが、今は別のところのPCから打っています。 さっきのエラーメッセージの下に間違ったと思われるPATHが表示されますが、 必要であれば書きますので返信お願いします。 心当たりといえば、6年くらい前授業でちょこっとやったJAVAのPATHが残っていて、 別に新しくPATHを2行目に差し込んだのがあれだったのかと。 以前のは「PATH・・・」となっていて、「PATH=・・・」となっていなかったので、 参考書には「PATH=・・・」がなければ、2行目に付け足せと。
>>477 DOSモードというのか、
C:\>
みたいなのは出ていて、文字は打てます。
>>480 >type autoexec.batでファイルの中身を見せて。
C:\> で、 ren autoexec.bat autoexec.tmp としてみて再起動したらどう? たぶんautoexec.batが無ければ勝手にpath等を設定して起動するはず
駄目なら C:\> から、手動で C:\>path C:\WINDOWS;C:\WINDOWS\COMMAND としてから C:\>win だな。それからautoexec.batを修正。 ま、これ以上はスレ違いなんで。
どうもー。 希望が見えてきました。 今そのPCはここにはないので明日やってみます。 確かにスレ違いかも・・・JAVAを始めようとしたらってことでここに。 本当にありがとうございました。 もしダメだったら明日また報告します。 ちゃんとしたJAVAの質問にこれるようになりたい。
キーボードの入力ってどうやって受け取ったらいいのですか? ↓みたいにやったら、できたにはできたのですが、 「推奨されません」とかいうメッセージが出たのですが。。 import java.awt.*; import java.applet.*; public class TestKey extends Applet { //init()とか public boolean keyDown(Event ev,int key){ //if(key=='a')とか } }
486 :
デフォルトの名無しさん :03/10/29 21:29
自分で作ったプログラムに軽量データベースみたいのを乗っけたいんですが、 なんかそういう、データベースとかってあるんですか? 普通の市販のパッケージソフトはデータベースみたいのを搭載してるんでしょうか? もし、Javaで使えて、配布できるような軽量データベースを知っている人がいたら おしえてください。
>>487 そのうち試そうかなと思いつつやってない
Mckoi SQL Database ってのがあるんでレポートして
もらえるとありがたい。
489 :
java暦10日ほど_| ̄|○ :03/10/29 21:54
Label myLabel1; myPanel1 = new Panel (new BorderLayout()); myLabel1 = new Label("",Label.RIGHT); myPanel1.add(myLabel1,BorderLayout.NORTH); add(myPanel1); public void actionPerformed (ActionEvent e){ int kakunou[]=new int[2]; int kekka=0,maenoatai=0,hantei=0,i=0; while(1){ for(int j=0; j<10000; j++){ if(e.getSource() == myBtn1){ kakunou[i]=maenoatai*10+7; maenoatai=kakunou[i]; myLabel1.setText("kakunou[i]"); } という感じで電卓を作っているのですが困っています。 myLabel1.setTextの後をどのようにしたら数字をラベル上に表示できる んでしょうか?一度stringにするとか直接数字を表示できるとかなにか 1例を教えてもらえませんでしょうか_| ̄|○テキストフィールドなら getTextで少なくとも文字はできたのですがさっぱりここから進まず3時間 ほど_| ̄|○でます。よろしくお願いします。
490 :
デフォルトの名無しさん :03/10/29 22:39
Javaでエクセルやワードのファイルを 印刷することはできるのでしょうか?
すいませんおしえてください!!!メモ帳にソースを書きこんだあとどうやってそのソースを画面に変換してだすのか おしえてくださいよろしくおねがいします。
日本語って難しい。
>>489 myLabel1.setText(Integer.toString(kakunou[i]));
とか、
myLabel1.setText(String.valueOf(kakunou[i]));
など。
というよりコンパイルできますか?
>>490 バイナリとして印刷はできます。
>>491 ?
>>490 jakarta POI使えばできるんじゃないかな。知らんけど。
495 :
デフォルトの名無しさん :03/10/29 23:18
base64のデコードをしようと思ってsun.misc.*を使おうと思うんですが リファレンスドキュメントはどこですか?
>>493 上のでやったらエラーがでました。下のでやったらできました・・・が
根本的に駄目らしく無限に数字が_| ̄|○
多謝です
497 :
Javaりん :03/10/30 00:05
Javaを勉強して間もないものですが疑問に思ったのですが、 メソッド内にメソッドを作成(そのメソッドの外で作ったのを 呼び出すのでもいいのですが)することってできますか?
>>497 良くわからないけど
JavaではMethodの中にMethodを作成することは不可能DEATH
->そのメソッドの外で作ったのを呼び出すのでもいいのですが
これはOK
フレームにgetPressure()メソッドから得た値を 表示させたいのですがprintComponent()の中で getPrintStatus()メソッドを得ようとしても シンボルを解釈してもらえません。 どこをどう直したらよいのか誰かアドバイスして頂けませんか? import java.util.*; import java.awt.Graphics; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.awt.FlowLayout.*; public class Shikaku10 { public static void main(String args[]) { JFrame frame = new Shikaku10Frame(); frame.show(); } }
<500の続き> class Shikaku10Frame extends JFrame{ public Shikaku10Frame(){ final int X_MaxFrameSize = 1024; final int Y_MaxFrameSize = 768; setSize(X_MaxFrameSize,Y_MaxFrameSize); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); }}); Container contentPane = getContentPane(); contentPane.add(new Shikaku10Panel()); }} class Shikaku10Panel extends JPanel{ public static void main(String args[]){ Method method = new Method(); double PreAB = 0.0000000001; double PreMid = 0.0000000003; method.getPressureAB(PreAB); method.getPressureMid(PreMid); method.getPrintStatus(); } public void paintComponent(final Graphics g){ super.paintComponent(g); }}
<502の続き> class Method{ double x; double y; double pAB; double pMid; public void getPrintStatus(){ System.out.println("" + pAB + ""); System.out.println("" + pMid + ""); } public double getPressureAB(double pressureAB){ pAB = pressureAB; return pressureAB; } public double getPressureMid(double pressureMid) { pMid = pressureMid; return pressureMid; }}
503 :
デフォルトの名無しさん :03/10/30 01:41
Javaによく出てくる フレームワークって何でしょうか?
>>500 その前に、つっこみどころ多すぎ。
1. Method クラスなんて作らないこと。JavaAPI に同名のがある。
「Method のメソッドを呼ぶ」なんて、口に出すと妙なことになるものはやめること。
2. get~メソッドを作る理由は、Method に隠された値をそれを呼んだ側が利用するから。get は呼び出す側にとっての動詞だ。
君は Method に値を set してるんだろう? 返しても意味無いようだし。
それなら void set~ メソッドにすること。自分でこんがらがってこないか?
3. 一連のソースに static main メソッドが 2つあるのはおかしい。
プログラムと言うのは、ある一箇所からはじまる。だから main メソッドは例えば Shikaku10 にあればそれでいい。
4. final は、意味もわからず使ってもしょうがない。特に君のソースでは意味が無い。
5. 下位に何も配置する予定が無いなら、JPanel でなく JComponent を継承して構わない。
で、Shikaku10 はプログラム上にインスタンスが存在しない。
Frame は static に一個だけ存在する。(main で呼んだから)
Frame 一個に Panel 一個が存在する。
Panel では Method の内容を表示したい。ここまでは決まりだろう。
で、とにかく Panel から参照させるためには、Panel 内に Method な変数がないとしょうがない。
main の中に書いても、main の中でしかその変数は通用しないんだから。
手順。とりあえずはこれが一番しっくりくるだろう。
Frame のコンストラクタ内で Method を生成する。ついでに値をセットする。
Panel のコンストラクタを新たに用意する。引数は Method 。
Panel のコンストラクタ内では、private なインスタンス変数に引数の Method を参照させる。
paint するときは、インスタンス変数から getPrintStatus() して値を得る。
そうすると、JLabel に、文字列を引数として渡したりするのに似た感じになるだろう?
506 :
デフォルトの名無しさん :03/10/30 10:43
これをhtmlと同じフォルダにアップしたのですが、「javaアプレット の読み込みに失敗しました」と言われてしまいます。添削していただ けないでしょうか。 import java.applet.Applet;import java.awt.*;import java.util.Random; public class Skyline extends Applet { private final int APPLET_WIDTH = 400; private final int APPLET_HEIGHT = 300; private final int HEIGHT_MIN = 100; private final int WIDTH = 20; private final int VARIANCE = 40; private building b1, b2, b3, b4, b5, b6, b7; //creates buildings with varying characteristics public void init () { int h1, h2, h3, h4, h5, h6, h7; // heights of the buildings Random generator = new Random(); h1 = HEIGHT_MIN + generator.nextInt(VARIANCE); h2 = HEIGHT_MIN + generator.nextInt(VARIANCE); h3 = HEIGHT_MIN + generator.nextInt(VARIANCE); h4 = HEIGHT_MIN + generator.nextInt(VARIANCE); h5 = HEIGHT_MIN + generator.nextInt(VARIANCE); h6 = HEIGHT_MIN + generator.nextInt(VARIANCE); h7 = HEIGHT_MIN + generator.nextInt(VARIANCE); int windows1, windows2, windows3, windows4; windows1 = generator.nextInt(4); windows2 = generator.nextInt(4); windows3 = generator.nextInt(4); windows4 = generator.nextInt(4); int windowCenter1, windowCenter2, windowCenter3, windowCenter4; windowCenter1 = generator.nextInt(50) + 41; windowCenter2 = generator.nextInt(40) + 31; windowCenter3 = generator.nextInt(30) + 21; windowCenter4 = generator.nextInt(20) + 11; int windowBase1, windowBase2, windowBase3, windowBase4; windowBase1 = generator.nextInt(50) + 41; windowBase2 = generator.nextInt(40) + 31; windowBase3 = generator.nextInt(30) + 21; windowBase4 = generator.nextInt(20) + 11;
b1 = new building (100, 75, Color.black, h1, WIDTH, windows1, windowCenter1, windowBase1, Color.yellow); b2 = new building (150, 75, Color.black, h2, WIDTH, windows2, windowCenter2, windowBase2, Color.yellow); b3 = new building (200, 75, Color.black, h3, WIDTH, windows3, windowCenter3, windowBase3, Color.yellow); b4 = new building (250, 75, Color.black, h4, WIDTH, windows4, windowCenter4, windowBase4, Color.yellow); b5 = new building (300, 75, Color.black, h5, WIDTH, windows1, windowCenter1, windowBase1, Color.yellow); b6 = new building (350, 75, Color.black, h6, WIDTH, windows2, windowCenter2, windowBase2, Color.yellow); b7 = new building (400, 75, Color.black, h7, WIDTH, windows3, windowCenter3, windowBase3, Color.yellow); setBackground (Color.blue); setSize (APPLET_WIDTH, APPLET_HEIGHT); } // Paints the buildings on the applet. public void paint (Graphics page) { b1.draw (page); b2.draw (page); b3.draw (page); b4.draw (page); b5.draw (page); b6.draw (page); b7.draw (page); } }
ソース添削するのめんどいのでそれ以前にチェックする項目を 箇条書きにしてみる。 1. Javaコンソールにエラーが出ているか。 2. 使っているVMはなにか。MSVMのときはコンパイル時に-target 1.1を指定。 3. アプレットを呼び出すhtmlの記述は適切か。 2と3に関しては、まず<applet>タグでhtmlファイルを書いたあと、 htmlコンバータを使って変換し、Sunの処理系(Javaプラグイン)を ユーザに使わせる手もあり。
>508 なにやらいじってたら表示されるようになりました。 しかし本当はスカイライン(黒い高層ビル群、その窓の黄色い光、空) を書いたつもりなんですが青空に黒い点々だけが表示されまする・・。 たすけてー
タスケテー
>>505 少し書き直してみましたがおっしゃられている内容を
うまく読み取り理解することができません。
これをどういじっていけば良いですか。
import java.util.*;
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.FlowLayout.*;
public class Shikaku10{
public static void main(String args[])
{JFrame frame = new Shikaku10Frame();
frame.show();
}}
class Shikaku10Frame extends JFrame{
public Shikaku10Frame()
{ int X_MaxFrameSize = 1024;
int Y_MaxFrameSize = 768;
setSize(X_MaxFrameSize,Y_MaxFrameSize);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);}});
Container contentPane = getContentPane();
contentPane.add(new Shikaku10Panel());
}}
<511の続き> class Shikaku10Panel extends JPanel{ Mh mh = null; public Shikaku10Panel(){ Mh mh = new Mh(); double PreAB = 0.0000000001; double PreMid = 0.0000000003; mh.getPressureAB(PreAB); mh.getPressureMid(PreMid); mh.getPrintStatus(); } public void paintComponent(final Graphics g){ super.paintComponent(g); g.drawString(mh.getPrintStatus()); }} class Mh{ double x; double y; double pAB; double pMid; public void getPrintStatus(){ System.out.println("" + pAB + ""); System.out.println("" + pMid + ""); } public double getPressureAB(double pressureAB){ pAB = pressureAB; return pressureAB; } public double getPressureMid(double pressureMid){ pMid = pressureMid; return pressureMid; }}
>>512 Panel の中で生成したのね。まぁとりあえずはそれでもいいか。
class Shikaku10Panel extends JPanel{
Mh mh = null;
public Shikaku10Panel(){
mh = new Mh(); //メソッドローカルな変数ではなくインスタンス変数に参照させる
double PreAB = 0.0000000001;
double PreMid = 0.0000000003;
mh.setPressureAB(PreAB); //ここで何かの変数に受けるなら get でいいけど、今回はそうではない。
mh.setPressureMid(PreMid); //だから名前付けも役割も set 一本槍にする。
//mh.getPrintStatus(); //特に必要なしだよね。
}
public void paintComponent(final Graphics g){
super.paintComponent(g);
g.drawString(mh.getPrintStatus(), 0, 20); // drawString の仕様をよく読むこと!
}
}
class Mh{
double x;
double y;
double pAB;
double pMid;
public String getPrintStatus(){ //get なんだから何か返す。drawString に使うんだから String 返す。
return "" + pAB + ", " + pMid; //drawString で複数行は無理なのでとりあえず単行で。
}
public void setPressureAB(double pressureAB){ //set で十分
pAB = pressureAB;
}
public void setPressureMid(double pressureMid){ //同様
pMid = pressureMid;
}
}
全角でインデントしてるから適当に直してね。 メソッド名は、呼ぶ側 (Panel) が呼ばれる側 (Mh) に要求する動詞でつけること。 君の書いた getPrintStatus() は、内容は printStatus() と名づけるべきものだが、 目的は paint メソッド内に文字列を呼び込むものなのだから、 用意するべきメソッドは getPrintStatus() であってる。 だから、内容や返る型が名前とちぐはぐになっている。get というからには、void ではおかしい。 getPressureMid 等も同じ。普通は set と get に役割を分ける。 get なら、大抵引数はいらなくなる(抽出条件を指定するような場合は別だけど)。 public double getPressureMid() { return pressureMid; } そうやって明確にしていくと、どんな役割のメソッドが足りないのかいくらか見えてくる。
一番最初に始める言語ってJavaでもだいじょーぶですか? やっぱCからとかのほうが良い?
>>514 実際やってみたのですがフレームに表示されません。
どこがいけないのでしょうか。
class Shikaku10Panel extends JPanel{
Mh mh = null;
public Shikaku10Panel(){
Mh mh = new Mh();
double PreAB = 0.0000000001;
double PreMid = 0.0000000003;
mh.setPressureAB(PreAB);
mh.setPressureMid(PreMid);
}
public void paintComponent(final Graphics g){
super.paintComponent(g);
g.drawString(mh.getPrintStatus(), 100, 100);
}}
class Mh{
double x;
double y;
double pAB;
double pMid;
public String getPrintStatus(){
return "" + pAB + "," + pMid;
}
public void setPressureAB(double pressureAB){
pAB = pressureAB;
}
public void setPressureMid(double pressureMid){pMid = pressureMid;
}}
>>517 見落としがある。丹念にみてくれ。
見つかったら、エラー出力に出ている例外と見比べて、
できるだけ自分で解決できるよう学習してくれ。
519 :
デフォルトの名無しさん :03/10/30 16:22
サーブレットの質問していい?
>>519 「質問していいかどうか」と言う質問のマルチポストかよ。
最悪だな。
>>519 いいぞ。どんどんしろ。きっと他人が答えてくれるさ!俺には、答える技量は全然ないもんでね。
522 :
デフォルトの名無しさん :03/10/30 17:29
strutsでリンクをクリックした際に 動的に作成したファイルをファイル名付でダウンロードさせるには どうしたらいいですか? 普通に組んでたときは、web.xmlに <servlet-name>xxxx/hoge.zip</servlet-name> <servlet-class>hoge.class</servlet-class> ってすると、hoge.zipがDL出来たんだけど・・・。 xxx.do/*.zip とかすると、エラーになる・・・
523 :
デフォルトの名無しさん :03/10/30 17:32
Tomcat+Eclipseでサーブレット&JSPの開発してます。 jspをprojectフォルダの直下に入れてるのですが パッケージ化したいのでprojectフォルダの下にサブフォルダを作り jspファイルを作成したのですが、 エラーが起きます。 なんのエラーかと思いきや、jspファイルがコンパイルされるときに org.apache.jsp にパッケージ名が命名されてしまい、 でも作成されたクラスはjsp/org/apache/jsp/サブフォルダ名 に入るためパッケージのミスマッチらしいのです。 なにか設定するところがあると思うのですが、 調べてもわかりませんでした。 よろしくおねがいます。
524 :
デフォルトの名無しさん :03/10/30 17:49
>>522 定義を増やせばいい
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
↑こうなっていたら
web.xmlに
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.zip</url-pattern>
</servlet-mapping>
とかすれば、とりあえずOK
そのあとの、ページで普通のページ表示のときにブラウザのURL欄に
http://*************/mone.zip などと、doではなくzipになる可能性があるが、まあ問題ない
525 :
デフォルトの名無しさん :03/10/30 17:50
ああ、最初の <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> は消すなよ
527 :
今日は徹夜? :03/10/30 18:36
>>523 できました!もう一個聞いていいですか?
iterateを使用してArrayList内部の表示は出来たのですが
その後、更新処理を行うとエラーが発生します。
setterの問題かなと思うのですが、どう設定すべきかが見えません。
JSP:
<nested:iterate name="CheckForm" property="itemList">
<tr><th><nested:text property="kigen" size="10" maxlength="10" /></TH></tr>
</nested:iterate>
Form:
private ArrayList itemList;
//コンストラクタ
{ itemList=new ArrayList(); }
public void setItemList(ArrayList argItemList) {
itemList = argItemList;
}
public ArrayList getItemList() {
return itemList;
}
ActionFormの中でArrayListに、kbnを持ったClassを入力しています。
エラーの先頭:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:508)
528 :
今日は徹夜? :03/10/30 18:38
>>524 上のは522でレス番号が523じゃなく、524でした。
529 :
デフォルトの名無しさん :03/10/30 21:18
誰かJAVAを勉強するのにお勧めのサイトとかあったら教えて下さい。 本を買うお金がないんですー
530 :
デフォルトの名無しさん :03/10/30 21:27
えーあのですねアプレットでファイルへの書き込み読み込みをしたいのですが やり方が分かりません セキュリティがあってできないらしいのです やり方や書いてあるサイトを教えてください
こちらに誘導されたんですが、 W2K で、コントロールパネルの、地域のオプションってやつで、 「数値」タブを選んで、そのなかの、「小数点の記号」ってやつをですね、 デフォルトの "." から、たとえば "x" に変えたとします。 その後で、下のような sample program を実行したときに、 C:\>java Hoge 1,234x56 ¥3,457 ja_JP と出力される事を期待してみたのですが、実際には C:\>java Hoge 1,234.56 ¥3,457 ja_JP としか表示されません。 この、設定って、いつ、どこで、どうやると、何に対して有効になるのかどなたかご存知でしょうか? ----- begin Hoge.java ----- import java.io.*; import java.text.*; import java.util.Locale; public class Hoge { public static void main (String args[]) { double num = 1234.56; double cur = 3456.78; String numOut = NumberFormat.getNumberInstance().format(num); String curOut = NumberFormat.getCurrencyInstance().format(cur); System.out.println(numOut + " " + curOut + " " + Locale.getDefau lt().toString()); } } ----- end Hoge.java -----
532 :
デフォルトの名無しさん :03/10/30 21:45
>529 サンのAPI見てください。サンプルもあります。 >530 サンのAPI見てください。サンプルもあります。
>>530 できないんならやり方の書いてあるサイトは無いんじゃないの?
なんてね・・・たしか条件によってはできたと思うが、
OS, ブラウザ, VM, ユーザが君なのか配布先なのかによって対処方法が違う。
君のやりたい事はひょっとしたらサーバへの書き込みかもしれない。そこが判然としない。
そしたらまるきり問題が違う。もっと詳しくしっかり書けば、誰か教えてくれるかもしれない。
でもアプレットでローカル保存、じゃ明らかに選択を間違っているから、老婆心で誰も教えてくれないかもしれない。
>>531 Java で試す意義がわからない。ここに聞きに来る意義も分からない。
Windows の設定だろ? Windows板に行けボケ。
フリーのJava用エディタみたいなのでお勧めのツールとかはありませんか?
メモ帳
536 :
デフォルトの名無しさん :03/10/30 22:42
えーとですねアプレットと一緒に.txtファイルをサーバーにアップして その.txtファイルに書き込みや読み込みできるようにしたいのです
>>531 VMだからWindowsの設定は関係ないでしょう。んで解決方法は知らん。しいて言えば
VC++とかで作ればいんでないか
>>534 日蝕
540 :
デフォルトの名無しさん :03/10/31 00:24
Javaでは、がんがんnewしてメモリを使い捨てていくプログラムが普通なのでしょうか? ガベージコレクションがあるので、文法的にも実行時にも問題ないのはわかるのですが、 入門書のサンプルプログラムを見ると、 わざわざnewせんでも代入しなおせばいいのでは? と思うサンプルプログラムが多いのですが、実際の現場でもそうですか? こんなことが気になってしまうのは、C(C++)出身のJAVA初心者の悲しい性でしょうか?
541 :
デフォルトの名無しさん :03/10/31 00:26
あるURLにおかれているファイルの数とファイル名を知りたいのですが、 どの関数を使えばいいんですか?
542 :
デフォルトの名無しさん :03/10/31 00:44
WindowsXPでxyzzyからjavacを起動するlispを書いています。 CLASSPATHをコンピュータグローバルの環境変数として設定したくないので UNIXで言うところの/usr/bin/env CLASSPATH=C:\manko\lib javacみたいに 起動したいのですが、Windowsでそういう方法ってありますか?
>>542 javac -classpath <path> はどうか?
544 :
デフォルトの名無しさん :03/10/31 00:51
>>543 おぉお!そりゃそうでしたw
俺はなんて馬鹿なんだ・・・
ありがとうございます。
ちょっと前に質問させていただいた
>>409 です。
その節はどうもありがとうございました。
また質問なのですが、現在、30×30の格子を区切り、
その各々の格子に1~6の整数乱数で初期値を割り振り、
1,2なら格子を赤で、2,3なら青、5,6なら緑でセルを塗りつぶし、
その過程をn回繰り返し、画像の変化を見ているのですが、
コンパイルし、実行すると、画像の変化が早すぎて何が何やら分からない状態に
なってしまいます。
for構文でn回の繰り返しをやっているのですが、1ステップを遅くするような事って
できるのでしょうか?
アドバイスおながいします。
>>540 使いまわしがきくオブジェクトなら代入しなおせばいい。
ただオブジェクトを作ることによって
プログラムがわかりやすくなるならどんどん使えばいい。
性能はプログラムができあがってからチューンすればいい。
C でもローカル変数を使いまわすとわかりにくくなるっしょ?
まあローカル変数はスタックにとられるからちと話は違うけど
そんな感じの話。
誤)1ステップを遅くするような ↓ 正)1ステップにかかる時間を遅くする(nからn+1ステップに画像が表示される時間を長くしたい)
>>545 スレッド使えばいい。
あと、青は3,4でしょ・・・
549 :
デフォルトの名無しさん :03/10/31 01:15
public class Hellojava { public static void main(String[] args){ int a; a = 123; Hellojava2.Method(a); System.out.println("数値は " + a + " です" ); } } public class Hellojava2 { public static int Method(int a){ a = a / 3 ; System.out.println(a); return a; } } とあったとき引数に123といれれば 41 123です となってしまいます。これを 41 41です にするにはどうすればいいのでしょうか? またreturnって戻った値はどこまで反映されるのでしょうか?
>>549 仮引数と実引数の区別をつけましょう。
それにreturnした値を代入してないのに
結果が反映されるわけない。
>>546 初歩的な疑問に答えて戴き、ありがとうございました。
プログラミングの基本(←わかりやすいプログラム)はacもjavaも同じってことですね。すっきりしました!
552 :
デフォルトの名無しさん :03/10/31 01:30
>>550 よくわかりません
どうすればいいのでしょうか?
スレッド…(不勉強ですいません…) 今とある人の所持金の時間変化(初期値±ランダム値)をグラフ表示する 練習プログラムを組んだのですが、やはり10000回回しても アッっという間に終わってしまいますた…。 もっとこう…動く様子が見たいです…。
>>552 Hellojava2.Method(a);
を、
a=Hellojava2.Method(a);
にすればよいのでは?
550じゃないんで違ったらすみません。
int Method(int a)のaは Hellojava2.Method(a)のaのコピーだから 別物の変数として扱われる。 よって、期待通りに動作したいのであれば public class Hellojava { public static void main(String[] args){ int a,b; a = 123; b = Hellojava2.Method(a); System.out.println("数値は " + b + " です" ); } } public class Hellojava2 { public static int Method(int a){ int b = a / 3; System.out.println(b); return b; } } あと、受け取った引数を変更するのはなるべく避けましょう。
>>553 スレッドを使うとJavaの時間を止められるのだよ
初めてJavaの現場にいきました。そこの現場のソース見ると ワーク用のローカル変数が使う寸前とかで宣言されている (中括弧でくくられているわけじゃないです)ですけど Javaじゃこういう風にするのが当たり前なんですか? あと、whileのなかで宣言とインスタンス化を同時にやるのって 当たり前なんですか? 自分は宣言だけは外に出したほうがイイと思うんですけど
560 :
デフォルトの名無しさん :03/10/31 07:44
>>557 親切にありがとうございます。私もいい所を見つけたら書き込んで
おきます。本当にどうも
561 :
デフォルトの名無しさん :03/10/31 07:52
配列とVectorクラスの違いを教えてください どちらも複数の値を記憶する物じゃないのでしょうか?
562 :
デフォルトの名無しさん :03/10/31 07:58
mainクラスってよく使うのでしょうか? 参考書には多くのクラスに載ってますが 業務レベルではほとんど見たことありません mainクラスを使うメリットとかありますでしょうか?
>>561 Javaでの話だと、配列は単なる連続したメモリ領域で
Vectorはクラス。配列の場合もArrayクラスってのがあるけど。
ArrayとVectorの話をしてるの?
564 :
デフォルトの名無しさん :03/10/31 08:14
>>564 Arrayってのは普通の配列の機能を拡張したっていうか、メソッドでわかりやすくしてるだけだから
操作性以外、int[]みたいのとほとんど変わらないんだよ。
だから一番違うのは可変長かそうでないか、かな。
もちvectorが可変長ね。
Arrayは一度生成したインスタンスのサイズを変更できない(それが普通だと思うけど)から
はじめから要素数が決まってる場合に使う。
Vectorは簡単なリストみたいのをやりたいときに使う。
まあ、どっちか迷ったらVectorでいいんでない?
単純にJSPページからフォーム入力で、任意のSQLクエリを実行させて みてるんですが、どうも、長くなると途中で文字が切れてしまい?エラーに なります。 こういった場合って何をしたらいいんでしょうか? StreamとかBufferとかにする必要があるんでしょうか???
567 :
デフォルトの名無しさん :03/10/31 09:09
分かる人、教えてけれ。 strutsのactionで String hoge="hoge"; request.setAttribute("hoge",hoge); ってなことをやってるんだが、一部のクラスでこの命令が受け付けられない模様。 eclipseでこの命令の直後にゲトパラメタしてみても、見えないぽ。 他のクラスならちゃんと見れる。 違いはどこに?
>526さん 523です。ありがとうございました。
実際のソースがないと誤解があるかもしれんが、一般論として
>>559 >初めてJavaの現場にいきました。そこの現場のソース見ると
>ワーク用のローカル変数が使う寸前とかで宣言されている
>(中括弧でくくられているわけじゃないです)ですけど
>Javaじゃこういう風にするのが当たり前なんですか?
それでいい。変数のスコープは可能な限り狭く、が原則。
中カッコ(ブロック)で囲めるんならそっちの方がいい。
>あと、whileのなかで宣言とインスタンス化を同時にやるのって
>当たり前なんですか?
>自分は宣言だけは外に出したほうがイイと思うんですけど
そのコードが無駄な処理(無駄なnew等)をしていないならそれでいい。
変数のスコープは可能な限り狭く、が原則。
宣言だけ外に出すのは意味がないどころか有害
>>562 main メソッドの話か?
スタンドアロンなものならそっから起動するが、
やれ J2EE だったりアプレットだったり、何か特定のフレームワークに沿ってるなら、
プログラマの作ったものはある種、
基盤となるソフトウェア(こいつが Java なら main から始まってる)
の一つの部品として提供することになる。それなら当然不要になる。
>>537 サーバのファイルに書き込むのはそのサーバの OS がすること。
アプレットが動いているのはクライアントの OS上。よってアプレットから書き込むのは不可能。
そこで、サーバOS の配下で動いているプログラムに、HTTP か何かでデータを送らなきゃならん。
つまり、CGI, もしくは JSPないしサーブレットを自分で書かなきゃいけない。
それにはそれが動くサーバでなくてはいけないし、要するにアプレットの勉強だけではまるきりだめ。
読み込むときは URL クラスのインスタンスをどうにかしてもってくる。
ブラウザでそのファイルのパスを指定して開けるなら、そのパスでコンストラクタを呼べばいいし、
もし class と一緒に jar 化してるなら、Class#getResouce を使う。
で、URL インスタンスから openStream で入力ストリームを生成する。
>>541 サーバのファイル群を管理するのはそのサーバの OS がすること。
ls や dir コマンドは OS に直接アクセスしている。
それができないサーバ外のプログラムには不可能。
通信を介すわけだから、ファイルリストを教えてくれるサービスがサーバ側に動いていればいい。
FTP や HTTP など、使えるものを駆使して聞くか、CGI 等を書くべし。
573 :
デフォルトの名無しさん :03/10/31 12:31
ファイルをダウンロードさせるときに ファイル名を指定して保存ダイアログで デフォルトのフォルダを指定したいのですが どうしたらいいですか?
>>573 JavaScript 臭が激しいんですが。
575 :
デフォルトの名無しさん :03/10/31 12:47
>>574 javascriptならできますか?
書き込んだ後、「ファイル名をつけて保存」選択した後の処理は
クライアント側の動作なのでサーバ側からは無理かも
と思わなくもなかったりしたんですが。
アプレットで他ウィンドウ監視とか・・?(無理?)
>>575 はぁ? 意味が分からん。何言ってるかさっぱりわからん。
いったい何をどんな風に作ってるんだよ
>>577 ダウンロードさせるファイルを保存する場所は
ファイルサーバのあるフォルダと決まっていて
ファイル名だけをユーザーに動的に変更させる必要が有るんです
(日付やユーザー名やなんやをファイル名に指定する)
なので、ファイル名を付けて保存が選択されたときに
デフォルトで、ファイルサーバのフォルダを開いておきたいんです
(通常は、前回開いたフォルダなどが開きますよね?)
なんとかなりませんか?
>>577 どうも出来ないっぽいですね。。
諦めますわ。
>>580 正直すまんかった。考えてくれてありがとう!!
582 :
デフォルトの名無しさん :03/10/31 17:39
こんばんは。 JFrameにCanvasだけを置いて、ドラクエ風のRPGを作っています。 それが激重で困っています。paintメソッドのソースはこれです public void paint(Graphics g) { Image offimage= createImage(640, 480); Graphics bg= offimage.getGraphics(); bg.drawImage(backgroundImage, 0, 0, this); for(int i= 0; i<screenObject.size(); i++) { ((AbstractScreenObject)screenObject.get(i)).paint(this, bg); } g.drawImage(offimage, 0, 0, this); } screenObjectはArrayListです。 コマンドボックスとかキャラクタとかを出したり消したりするので それをArrayListに任せています。 createImageの使い方、オフスクリーン描画の方法など Javaアプリケーションでゲームを作るときに定石とされている 描画のさせかたを上のソースはしていないのかもしれません。 もしそのようなものがありましたら、指摘して頂ければ と思い、質問させて頂きます 先輩方よろしくお願いいたします
583 :
デフォルトの名無しさん :03/10/31 17:41
あ、ごめんなさい書き忘れていました。 作っているのはドラクエ風のバトル画面です
>>582 > Image offimage= createImage(640, 480);
> Graphics bg= offimage.getGraphics();
backgroundImage が 640x480 だとしれば、offimage は毎回全部塗りつぶされるだろうから、
ここは一回行えばいい。常時メモリを一定量喰うが、重いよりはいいだろう。
createImage じゃなく BufferedImage を作ってもいい。
あと細かいことだけど、screenObject より screenObjects の方がいいんじゃなかろうか。
585 :
デフォルトの名無しさん :03/10/31 18:08
JSPで質問です!! Tomcatの環境でサーブレットからJSPへJavabeanを使用し、Dataの受け渡しをしようとしています。 そこでちょっと疑問になった事があります。 DataBeanのほうには以下のような定義をしています。 public class SecondPageBean{ private static String ERRORMESSEGE; public Bean(){ ERRORMESSEGE = ""; } public void setErrormessege(String errormessege){ ERRORMESSEGE = errormessege; } public String getErrormessege(){ return ERRORMESSEGE; } } data獲得側のJSPの中のGeterのコード(関連するところも書きます)は以下の通りになってます。 <jsp:useBean id="Bean" class="Bean" scope="session" /> <jsp:getProperty name="Bean" property="errormessege"/> 以上のコードを使用するとうまく動くのですが、以下のようにJSPのGeterのところのコードを変えるとうまくいきません。 <jsp:getProperty name="Bean" property="ERRORMESSEGE"/> JSPのJAVAの部分は"大文字小文字を区別する"はずではないのですか? なぜ”Databeanの中では大文字で定義してあるのに、JSPから呼ぶときは小文字でなくてはよべない”のですか?
586 :
デフォルトの名無しさん :03/10/31 18:16
>>584 即レスありがとうございます。
> backgroundImage が 640x480 だとしれば、offimage は毎回全部塗りつぶされるだろうから、
> ここは一回行えばいい。常時メモリを一定量喰うが、重いよりはいいだろう。
はい、以前どこかでJavaで書かれたプログラムの実行時もっとも重い処理のひとつは
インスタンスの生成だという記述を見たことがあります。
ご指摘の通り、createImageメソッドを毎回呼んでいるのは無駄な気がしています。
そこで、Image offimageとGraphics bgをCanvasのフィールドとして、
CanvasのコンストラクタでcreateImage(640, 480);と記述してみたのですが
実行時にbgがNullPointerExceptionであるという例外が発生します。
そこでcreateImage(int width, int height);のAPIリファレンスを見てみると
コンポーネントが表示不可能な場合と
GraphicsEnvironment.isHeadless() が true を返す場合には、nullを返す仕様のようです。
この先については私の理解力が追いつかず、解決には至っていません。
> createImage じゃなく BufferedImage を作ってもいい。
指摘頂いた内容から、このように修正しました。
BufferedImage offimage= (BufferedImage)createImage(640, 480);
気持ち程度速くなった気がします。
おそらく584さんのおっしゃりたいことを私が理解してないだけだと思いますが^^;
> screenObject より screenObjects の方がいいんじゃなかろうか。
配列を管理するArrayListのインスタンス名は、物の複数形がいいということですね。
ありがとうございます。今後はそうしたいと思います。
>>586 >実行時にbgがNullPointerExceptionであるという例外が発生します。
>そこでcreateImage(int width, int height);のAPIリファレンスを見てみると
createImage が null になるなら分かるんだが・・・
とにかく、Component が OS 上で、リソース実体を獲得していないと(?)、
createImage などは満足に使えない。
だから、初めて paint するときに createImage するってのも定石。
> BufferedImage offimage= (BufferedImage)createImage(640, 480);
これはまずい。このスレだか前スレだか忘れたが、
createImage で得られるものが BufferedImage とは限らないという話があった。
new BufferedImage(640, 480, BufferedImage.TYPE_INT_RGB); あたりでいい。
>>587 レスありがとうございます。
なるほど。
paintメソッドで、offimageがnullなら最初だけcreateImageするという手法もあるのですね。
見落としていました。ありがとうございます。
> new BufferedImage(640, 480, BufferedImage.TYPE_INT_RGB); あたりでいい。
アドバイスに従い、createImageで受け取ったImageではなく
フィールドにBufferedImageを作成し、それにオフスクリーン描画を行うように
変更したところ、同時に追加したフレームレート計測スレッドで
表示された結果が約倍ほど速くなりました。
まだまだ私が見落としている高速化技法は数多くありそうです。
なにせ現時点で、Pen4マシンで5fpsしか出ないので…
587さん、丁寧なレスを頂き本当にありがとうございました
589 :
デフォルトの名無しさん :03/10/31 22:38
voidって何でしょうか? あればどういうメリットがあって、なかったらどういう事になるのでしょうか? returnとの関係がいまいちわかりづらいです
>>589 生贄として捧げられたものに烙印を押すためとか
戻り値がないことを明示的に示すためとか
591 :
デフォルトの名無しさん :03/10/31 23:03
Beanで質問です action bean と form beanの違いがよくわかりません 教えてください
593 :
デフォルトの名無しさん :03/10/31 23:17
Cの構造体のネストのような感じで適当にやったら コンパイルできたんですけど、これってどう使うんですか? これって無名クラスというやつですか?ちょっと混乱してます。 class Test{ Test2 t2; public Test(){ t2 = new Test2(); } class Test2{ String s = "hello world"; } public static void main(String[] args){ Test t = new Test(); System.out.println(t.t2.s); } }
594 :
デフォルトの名無しさん :03/10/31 23:21
>>592 それだけ?
それだと別になくてもいいんじゃないの?
と思ったりする
595 :
デフォルトの名無しさん :03/10/31 23:22
>>593 無名クラスというより内部クラスでしょ。
Test2という名前があるし。
596 :
あいうえお :03/10/31 23:31
FileWriterはファイルへの書き込みを行なうクラス BufferedWriterは書き込みの際にバッファリングを行なうクラス とありますが バッファリングってのがよくわかりません 教えてください
597 :
デフォルトの名無しさん :03/10/31 23:50
お答えいただいて、ありがとうございます。 以下のコードとどう違うのか教えていただけませんか? class Test{ Test2 t2; public Test(){ t2 = new Test2(); } public static void main(String[] args){ Test t = new Test(); System.out.println(t.t2.s); } } class Test2{ String s = "hello world"; }
>>597 はTestをインスタンス化しなくてもTest2をインスタンス化できるけど。
Test2 test2 = new Test2();
>>593 はTestをインスタンス化しなければTest2をインスタンス化できない。
Test test = new Test();
Test.Test2 test2 = test.new Test2();
とか。外してる?
>>585 JavaBeansの定義が間違ってるだろ
それ以前に、あとは考えろ
>>596 > バッファリングってのがよくわかりません
頭が痛いときに飲む物です、
>>598 インナークラスを static で宣言した場合は
new Test.Test2()
が可能。Effective Java には結び付きを少なくするために
インナークラスは static で宣言しる! とかあるけどね。
インナークラスの利点はアウタークラスのメンバやメソッドにアクセス可能な
ところ。また public や private など通常の 4 種類のアクセス制御もできる。
最上位クラスは private にすることは出来ない。これらの理由が無ければ
インナークラスにする必要は無い。
>>597 の書き方は雑誌とかで良く使われてるけど、利点がほとんど無いの
で止めたほうが良い。
シリアライズ化したオブジェクトのネットワーク上の送受信を試しています。 Serializableインターフェースを継承して、Stringオブジェクトを3つだけ持つ単純な クラスのオブジェクトで実験しているのですが、ここで問題が発生しました。 3回連続で、同一クライアントから同一サーバーへデータを送ろうとしたところ、 1回目は、正常だったのですが、2回目、3回目に受信したデータがなんと1回目と 同じ内容だったのです。 つまり、1回目が("A", "1", "あ")、2回目が("B", "2", "い")、3回目で("C", "3", "う")と 送ったはずなのに受信したものは3回とも("A", "1", "あ")だったのです。 送信の際にチェックしたところその時点では問題なかったのですが・・・ 環境は同一マシンのlocalhostでJDKは1.4です。
>>602 ObjectOutputStream#reset()
605 :
デフォルトの名無しさん :03/11/01 17:20
Javaにチャレンジしてみて2週間目の超初心者です。 一応講義は受けましたが、なかなかいっぺんに理解はできないですよね。 で、下のロジックなのですが、 sv1、sv2の順でオブジェクトを生成したときに、 sv2を生成した後のsv1がなぜ「10」ではなく「20」になるのでしょう? sv1とsv2は別オブジェクトだから、双方で値が影響されることはないと考えていたのですが、 理解できてないようです。すみませんがご教示よろしくお願いします。 ====================================================================== class StaticVal{ static int x; StaticVal(int a){x=a; } } class Ex4{ public static void main(String args[]){ StaticVal sv1 = new StaticVal(10); System.out.println("sv1.x=" + sv1.x); StaticVal sv2 = new StaticVal(20); System.out.println("sv2.x=" + sv2.x); System.out.println("sv1.x=" + sv1.x); System.out.println("StaticVal.x=" + StaticVal.x); }} --------------------------------------------------------------------- 実行結果 sv1.x=10 sv2.x=20 sv1.x=20 <------------ここが理解に苦しみます。 StaticVal.x=20
>>605 x が static だから。最初は static は禁止だと思ったほうが良い。
どないしても必要だったら使う。main は良いけど。
607 :
初心者な人 :03/11/01 18:57
学校でJAVAを勉強しているので、家でもJAVAの勉強をしようと思い、 やってみたのですが、ソースファイルを作成してMSーDOSプロンプトでコンパイルしようとしたのですが、 コマンドまたはファイル名が違いますと表示されるので、試しに学校で作ってコンパイルできたJAVAファイルを 家でコンパイルしようとしたら、学校ではできたのに家ではできませんでした。 次に学校でコンパイルしたクラスファイルを実行してみたら普通に実行できました。 なぜ家ではコンパイルできないのでしょうか? 自分で考えてみたのですが、学校では秀丸を使っていて、名前をつけて保存とすると JAVAファイルで保存することができ例えば「sample.java」と保存することができるのですが、 家ではファイル形式がtxtかすべてのファイルしかないから、保存すると「sample.java.txt」となってしまいます。 仕方ないからファイル名の変更で強制的に拡張子の部分を消して「sample.java」としているのですが、これがコンパイルできない原因なのでしょうか? 昨日からやってもう10時間くらい調べているのですがわからないので、誰か助けてくれる人お願いします。
javac にパスが通ってないんだろ。 sample.java.txt になってしまう問題は ファイル名を "sample.java" とダブルクォートでくくればよかったはず。
609 :
初心者な人 :03/11/01 19:23
>>608 さん、レスありがとうございます。
>>javac にパスが通ってないんだろ。
と言うのはコマンドプロンプトの設定を変える必要があると言うことなのでしょうか?
ちょっと意味がわからないのですみませんがもうちょっと教えていただけないでしょうか
>>sample.java.txt になってしまう問題は
>>ファイル名を "sample.java" とダブルクォートでくくればよかったはず。
ありがとうございます。知りませんでした。
>>609 まさかとは思うがJavaのSDKまだインストールしてないなんてオチじゃないよね?
612 :
初心者な人 :03/11/01 20:03
すみませんでした。さっき教えてもらったことを頼りにヤフーとかで検索して もう一回最初からやってみたら、自分がパスの設定をしたときに本に書いてある通りにやったのですが、 その本がちょっと古いものだった見たいで現在のフォルダ名と違っていました。 とにかくあなたのおかげで学校と同じくJAVAの勉強をすることができるようになりました。 やってみたらエラーは出ましたけどちゃんとエラー:1個とか出るようになりました。 ありがとうございます。これで勉強ができます。ワーイワーイ
さすがに違ったかw
>>612 わざわざ検索しなくても
>>1 にリンク書いてあったのに
>>612 なんか微笑ましいな。
がんがれ!超ガンガレ!
615 :
デフォルトの名無しさん :03/11/01 22:28
ある程度JAVAの勉強をしたので、なにかソフトを作ってみたいのですが、JAVAならではのソフトってどんなものがありますか?
>>595 ,
>>598 ,
>>600 ,>>
インナークラスとかアウタークラスとか知りませんでした。
勉強不足みたいですね。さっそく、ぐぐってみます。
Thank you.
>>615 ならではってのはWebアプリとかでない。
でもそんなん作ってもつまんないから、おもしろいアプレット作ってさらしてよ。
正雄ブラザーズみたいな。
618 :
長々と申し訳ないが :03/11/01 23:14
Javaに限ったことではないんですが相談です。 シューティングゲームを作るとき、(弾が単位時間に進む距離)が大きすぎると、 キャラクタをすり抜けることがありますよね。 ?モ・ ・ ・ ・ ● ・ ・ ↑自機 ↑弾(連射) ↑敵キャラ(ノーダメージ) これを防ぐためにはどうすればいいんでしょうか。 自分で考えつく対策としては、 たとえば1sで3mだけ動かすとき、弾の速さを3m/sにするのではなく、 (すり抜けない程度の移動)と(当たり判定)とを数回繰り返すことで3m動かす。 →欠点:計算量が増える、各キャラの移動の順番が変になる (弾の(移動前の位置)と(移動後の位置)を結ぶ直線)と(キャラ)との 距離を計算して当たり判定を行う。 →欠点:線分と円が交わるかの判定のやりかたがわからん なんてのがあるかな、と。
619 :
デフォルトの名無しさん :03/11/01 23:16
あーズレた
毎秒60フレーム程度の計算はやればいいんじゃない?
>>618 裏技として残して置いてもいいと思うが。
622 :
デフォルトの名無しさん :03/11/01 23:45
>>618 パフォーマンスを考えたら線との接触判定だろうね。
線分と円の接触判定は円の中心点を線(最初は無限直線がいいね)に垂直に降ろした点が
と円の中心点までの距離が円の半径よりも近い所にあるかどうかの計算が楽。
高校の教科書の内積のところを読み直してみるといいよ。
そのあと、接触点が線分中にあるかどうかを調べればいいかな、
あと線分の端っこが入っているかどうかがいるかな、まあこれは端っこが円の中にはいっていればいいので簡単だね。
623 :
デフォルトの名無しさん :03/11/01 23:46
>と円の中心点までの距離が円の半径よりも近い所にあるかどうかの計算が楽。 その点と円の中心点までの距離が円の半径よりも近い所にあるかどうかの計算が楽。 すまそ
以前しました質問ですが(描画スピードが速すぎるのでもっと遅くしたい) 単純に乱数を振ってそれに応じて色を塗るような単純なものではなく、 もっと計算が複雑なもの(自己組織化)になった途端、ちょうどよい速さになりました。 (根本的な解決にはなってないですが、解決ということで) ところで、windowや四角形、円などを描画するとき、 setSize(500,500); や、 drawRect(i,j,10,10); など、描画を開始する座標や、幅、高さなどは、正整数しかアウトなのでしょうか? 1×1ドットの円を描写し、時間軸に対して、正整数を取りながら変化していくような グラフを描いているのですが、(この場合も上記のような命令をするとy軸の向きが逆) 負数や、小数がついた数字を扱いたい場合、どのようにすればよろしいでしょうか?
みなさんのアドバイスを聞いてたら解法を思いつきました。 いままで弾の軌跡を ax + by + c = 0 で表して 点と直線の距離の公式を使おうとしてましたが、 パラメータ表示のベクトル方程式にしたら 円と線分との交差の判定はカンタンにできそうです。 どうもありがとうございました。
>>625 新しくメソッドを定義すればいいんじゃないでしょうか。
public static void drawRect2(Graphics g, double x1, double y1, double x2, double y2)
{
g.drawRect((int)Math.min(x1,x2), (int)Math.min(y1,y2), (int)Math.abs(x1-x2), (int)Math.abs(y1-y2));
}
とか?(ちゃんと動くか試してませんが)
ウインドウのサイズを負数やら小数にするのはナンセンスだな。
>>625 java.awt.Graphics2Dを使えば、知らないけど。
if(aa.equals("Y")) { System.out.println("YES"); } else { System.out.println("NO"); } キーボードから文字を入力しaaに格納しておくとします。 文字の判定で"Y"以外の文字の場合elseの処理を行いますが、 その場合Yが入力されるまでこの処理を続けたい時はどのように 書けばよろしいのでしょうか?
631 :
デフォルトの名無しさん :03/11/02 06:17
質問です。 タイピングコンテストアプレットなるものを作って、 ネット上で速度を競いたいと思っています。 そこで記録の更新のためにアプレットからファイルの読み書きをしたいのですが、 どうすればいいのでしょうか? 調べるべきことを教えていただけたら幸いです。 アプレットから直接ファイルを読み書きするのではなくても、 どんな方法でもいいのでファイルを操作するための方法を教えてください。 よろしくお願いします。
アプレットはダウンロード元のホストに対してはファイルを 出力できたような気がするんだけど気のせいか? アプレットがあるホストのほうでデータを書き込んでやれば いいような気がする。それが無理ならアプレットからcgi に データをポストしてやるとか。
633 :
デフォルトの名無しさん :03/11/02 06:24
>>632 SignedJarにしてセキュリティ制限外してもらうってのが、今の主流かと。
634 :
631の質問者 :03/11/02 06:38
さっそくレスありがとうございます。 サーバーにおいたアプレットで StringBuffer str = new StringBuffer(""); /* ここでstrにハイスコアを格納する */ try { FileWriter fw = new FileWriter("HighScore.dat"); fw.write(str.toString()); fw.close(); } catch (Exception e) { Graphics g = getGraphics(); g.setColor(new Color(0, 0, 0)); g.drawString(exception.toString(), 10, 10); } としても、アプレットの画面に java.security.AccessControlException: access denied(java.io.FilePermision HighScore.dat write) という表示が出てしまいます。
635 :
631の質問者 :03/11/02 06:42
あ、書き込んでる間にもう一つレスが…。ありがとうございます。 >634の訂正 } catch (Exception exception) { です。 SignedJarにするっていうのがどういうことかよくわかりませんが、調べてみます。 cgiにデータをポストするやり方も全くわかりませんが、調べてみます。
637 :
デフォルトの名無しさん :03/11/02 10:02
vorbisspiというSPIをダウンロードしたのですが、 これをjdkに組み込んで自作プログラムで 使用することは可能でしょうか? もし可能ならば、どのファイルをjdkのフォルダ内に置けばいいのか 教えてください。
>>634 えっと、いつもこのスレに質問させてもらってる身分なので
大したことは言えないと思いますが、
以前あなたのように
java.security.AccessControlExceptionに悩まされたことがあります。
私はFileWriterではなくSocketで外部に接続させようとしていました。
そのときは、アプレットを起動させるhtmlタグに
ダウンロード元のURLをcodebase属性を追加したら
接続できるようになった経緯があります。
参考になれば幸いです
>>638 codebase属性を追加したら例外がスローされなくなり、
期待していた「書き込み完了」の出力が出てきました。
しかし、なぜかHighScore.datの中身が更新されません…。
@niftyのサーバーが悪いのでしょうか? とりあえず調べてみます。
まだ解決していないものの、大変参考になりました。
ありがとうございます。
642 :
デフォルトの名無しさん :03/11/02 14:15
ディレクトリ検索についてなのですが、 C:\直下で file.listFiles()を実行するとExplorer上では 確認できないファイルを取得してきます。 さらに、そのファイルがディレクトリと判断された場合、 同様に、file.listFiles()を実行するのですが、NullPointerが返却されて しまいます・・・。("System Volume Infomation"というディレクトリ名 拾ってきます・・・これっていったい・・・) どのようにすれば回避できるのでしょうか・・・
>>642 > C:\直下で file.listFiles()を実行するとExplorer上では
> 確認できないファイルを取得してきます。
そーゆーもんです。C/C++ でやっても専用の Win32API 使わないとそーなるし。
Explorer と同じファイルを扱いたければ、JNI で IShellFolder 操作するとか、
実行環境を JDK 1.4.x に限定した上で sun.awt.shell パッケージ使うとかしてください。
質問です。 DOSでjavac *.javaは実行できてclassファイルは作成されるんですが ブラウザで実行できないんですが、コンパイル失敗してるんでしょうか? OSはwin98です。
>>644 やった事を順序だてて全部書け。それだけじゃ判断できん。
>>645 >>1 のサイトを見てコンパイラをインストールしました。
それでアプレットをコンパイルしてブラウザで表示したら、表示されないんです。
他の簡単なプログラムをコンパイルしてみると実行できるんですが。
>>644 DOS用のJDKとJVMってあるの?ダウソ場所きぼんぬ。
追記です ブラウザで表示したとき、ブラウザの下に「load: class クラス名 not foud」とでます。 ディレクトリ内にclassファイルはちゃんとあるのでやはりコンパイルミスですかね
>>646 だからどのような手順でブラウザで表示させようとしたか
とか書かないと分からないよ。
>>649 <HTML>
<HEAD>
</HEAD>
<BODY>
<APPLET CODE="*.class">
</APPLET>
</BODY>
</HTML>
と記述したHTMLファイルをブラウザで表示しました
>>650 > <APPLET CODE="*.class">
これって大丈夫なんかい?
とりあえず、appletviwer で動くか試してくれ。
>>651 <APPLET CODE="***.class" WIDTH="***" HEIGHT="***">
こう記述しなおしてHTMLファイルをappletviwerで表示してみましたが無理でした。
>>652 無理でした、じゃなくてエラーの種類書いてくれ。
>>652 実際に***.classと記述しているわけではないよな?
>>653 appletviewerのウインドウは開いて、「アプレットを開始します」
と下には出るのですがプログラムは表示されません。
>>654 質問の意味がわからないんですが?
>>655 > と下には出るのですがプログラムは表示されません。
何も表示されないようなコードしか書いてないとかでなくて?
>>656 えっとすいません。
いまappletviewerで表示したら表示されました。
ですが普通にHTMLファイルをブラウザで開くと表示されません。
>>657 JDK 1.4 以降は標準で JDK 1.2 以降としか互換性のないバイトコードを吐く。
JDK 1.1 相当の MSJVM で動かしたいって事なら
javac -target 1.1 applet.java
みたいにコンパイルしてやれば動くようになるはず。
>>658 その方法で解決いたしました。ありがとうございました
皆様、ご迷惑かけて申し訳ございません。
>>658 それよりもIEの設定で1.4のVM
使うように設定したほうがいいのでは
わたしがJavaで動くゲームを作ろうとすると 描画に時間がかかりすぎて秒間フレーム1桁とかになるんですが これは最適化が甘々なんでしょうか! それともJavaの限界なんでしょうか!
>>661 ダブル、いやトリプルバッファリングし(略
663 :
デフォルトの名無しさん :03/11/02 18:34
java用語の デブロイとハッシュて 何を指しているのでしょうか? 皆さん普通に使っているけど 教えてください
javaって実行速度C並だったら結構つかえるもの?
>>663 >java用語の デブロイとハッシュて
デブロイってデプロイの事か。インストールみたいなもんだよ。
実行するためにファイルを決まった場所に置くこと。
ハッシュは何のハッシュか分からないけど、データ構造の
話で使うハッシュかな。それならJava用語じゃないよ。
>>664 どんな言語でも向き不向きがあるよ。
>>662 ダブルバファリングすると、しないときと比べてどのくらい遅くなるんですか?
私の環境ではダブルバファリングしないとチラつくので実験できません。
1fpsにちらつきも糞もないと思うんだが。
668 :
デフォルトの名無しさん :03/11/02 21:15
Java(とC#)を勉強中のCプログラマです。質問です。 mutableなStringを扱うためにjava.lang.StringBufferというクラスが ありますが、エンコーディング情報が必要ない場合byte列で情報を 持ちたいのでByteArrayBuffer(?)とでも言うべきクラスがあるかと 探してみたのですが、java.sun.comのAPI Documentationには見つけられませんでした。 標準APIにこういうものはあるのでしょうか?
>>668 > 標準APIにこういうものはあるのでしょうか?
無いよ。
> ありますが、エンコーディング情報が必要ない場合byte列で情報を
エンコーディング情報って何のこといってるのか良くわからんが、
String も StringBuffer もエンコーディング情報とやらはもって無いと思うぞ。
文字列が入ってる byte配列はエンコーディング情報とやらとペアで使わんと意味が無いと思うけど。
>>669 ありがとうございます。すみません、エンコーディングというのは
おかしかったです。全然関係ないですね。
単純に可変長バイト列(文字列でなくてもよい)をStringBufferと同様に
操作したい場合どうするのがいいのだろうかという意図でした。
今はStringBufferでappend(),insert(),delete()などの操作をして、
結果のバイト列が欲しくなったらtoString().getBytes()としていますが、
何となく無駄が多いような気がしてこの質問になりました。
あと、無駄が多いだけではなくて、文字を表現しない任意のバイト列を 操作できない気がしました。バイト列を操作する正しい方法を 私が見落としているんだと思うのですが、クラスツリーを眺めていても わかりません・・・
>>671 だから無いって。
自分で ByteArrayBuffer 作ってください。
うーむ何も無いんですか・・・無いってことは必要 ないんですかね・・・ ありがとうございました。
>>664 実行速度うんぬんより「安定」して動いてほしい。
コンパイル-実行 コンパイル-実行 コンパイル-実行・・・
を繰り返すと固まったり、動きが超スローになったりするんだけど皆さんどう?
あと、Javaが遅いのはオブジェクトの生成時が結構負荷かかるみたいよ。
親クラスを順々にたどっていくみたいで結構複雑みたい。
オンストラクタでオブジェクトを500個生成するだけでも古いマシンだと砂時計が
でるぐらいよ。
オンストラクタじゃなくて コンストラクタね!
676 :
デフォルトの名無しさん :03/11/02 22:00
コンパイルしなおすと新たにディスクアクセスが発生してるだけじゃない?
677 :
デフォルトの名無しさん :03/11/02 22:11
プログラミングで2,3年後にバイトができる位の腕になりたいと思ってます。 友人の話ではperlが一番稼ぎやすいと聞いたんですけど実際初心者が今からやるプログラミングでお勧めの言語は何ですか?
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class st extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out=response.getWriter(); out.println("<html><head>"); out.println("<title>やっぱりJavaServletでしょ!</title>"); out.println("</head><body>"); out.println("<p>perlよりServletでしょ!といってみる。。。</p>"); out.println("</body></html>"); } }
681 :
デフォルトの名無しさん :03/11/02 22:18
>>670 ですが、いろいろ検索してみてappend操作だけであれば
ByteArrayOutputStreamにwriteで足していくのが普通ということでした。
馬鹿なこと言ってたら指摘ください。
683 :
デフォルトの名無しさん :03/11/02 22:47
配列 Vector hushテーブル これらの違いがわかりません 全部データを複数所持する物じゃないのでしょうか?
685 :
デフォルトの名無しさん :03/11/02 22:56
レイアウトで困ってます。 JPanelは何枚まで重ねることができますか?
>>682 > ByteArrayOutputStreamにwriteで足していくのが普通ということでした。
そだね。
>>685 実際にやってみて動作の重さと相談しる!
689 :
デフォルトの名無しさん :03/11/03 00:08
ファイル操作で あるファイルの左から4行目だけを抜き出して 別のフィイルに書き込む方法ってありますでしょうか? 行単位ならBufferedReader やPrintWriter などが使えると思いますが… 教えてください
690 :
デフォルトの名無しさん :03/11/03 00:09
4列目の間違いだろ
691 :
デフォルトの名無しさん :03/11/03 00:17
ふつうに1行ずつ読んで4文字目だけ集めればいいと思った
>>683 >hushテーブル
それじゃ検索もできないよ。Hashtableね。
694 :
デフォルトの名無しさん :03/11/03 00:44
aa a
(o_ _)ノ彡☆バンバン ギャハハハ
696 :
デフォルトの名無しさん :03/11/03 00:48
>>692 4列目の指定はどうするの?
というかそのやり方だとめちゃくちゃ遅くならないか?
StackOverFlowが出る理由を教えてちょんまげ // インターフェース public interface InterfaceTest1 { void testPrint(); } // 実装抽象クラス public abstract class AbstractClass1 implements InterfaceTest1 { public void testPrint() { } abstract InterfaceTest1 getInterface1(); abstract AbstractClass1 getAbstractClass1(); }
// 継承クラス1 public class Class1 extends AbstractClass1 { InterfaceTest1 getInterface1() { return getAbstractClass1().getInterface1(); } AbstractClass1 getAbstractClass1(){ return this; } public void testPrint(){ System.out.println("Class1"); } } // 継承クラス2 public class Class2 extends AbstractClass1 { InterfaceTest1 getInterface1() { return getAbstractClass1().getInterface1(); } AbstractClass1 getAbstractClass1(){ return this; } public void testPrint(){ System.out.println("Class2"); } }
// 実行クラス public class TestStartUp { void print(){ System.out.println("abstract 1"); new Class1().getAbstractClass1().testPrint(); System.out.println("abstract 2"); new Class2().getAbstractClass1().testPrint(); System.out.println("interface 1"); // ↓ここからError出現 new Class1().getInterface1().testPrint(); System.out.println("interface 2"); new Class2().getInterface1().testPrint(); } public static void main(String[] args) { new TestStartUp().print(); } } java.lang.StackOverflowError at interfacetest.Class1.getInterface1(Class1.java:22) at interfacetest.Class1.getInterface1(Class1.java:22) ・・・ Exception in thread "main"
700 :
デフォルトの名無しさん :03/11/03 00:56
初心者質問でスマソ。 Javaのアプリケーションを走らせるための実行環境ってのは何が必要 なの? 普通の人が買ってきたばかりのパソコンとかじゃ走らないの? 自分で調べた所、SDKとかをダウンするのが一番手っ取り早いと書いて あったんだけど、それじゃあJavaのソフト作っても使う側が面倒じゃない? これから始めようと思っているので、教えてくんろ
>>697 >>699 なんか見なくても分かるよ。
getInterface1()の記述通り、見たままだけど、なんで?
702 :
デフォルトの名無しさん :03/11/03 00:58
その調べた結果が正しいと思うよ結局
703 :
デフォルトの名無しさん :03/11/03 01:00
Servletで質問。 おまいら、1回のリクエストでservice()が2回走ったことありまつか? 環境は、AIX + IHS + DB2 + WAS3.5。5分以上かかる処理で発生。 誰かヒントをおながいします。
>>700 実行だけならSDJでもJREでも同じ。
SDKは開発キット+実行環境
JREは実行環境のみ
>>703 ない。
web.xmlを見直せ。
『訂正』 SDJじゃなくSDK JDKも同義
>>700 その通り。だからアプレットとかWEBアプリとかそういう形態が主流になる。
窓の杜とか行ってもJavaでできたアプリ少ないでしょ?
MACなら標準でついてるんだが、 Winは・・・・
709 :
デフォルトの名無しさん :03/11/03 02:07
>>708 java.nioパッケージってそういうことに使うものなの?
>>708 java.nio.Buffer は基本的に Channel とデータのやりとりをするものであって、
それ単体がデータを蓄積したりするようには作られてない。
まぁ やってやれない事は無いだろうけど、java.nio.Buffer 使うぐらいなら
素直に byte配列使った方が良いような気もする。
>>704 >>706 そうなのか~、じゃどうしようかなー。VC使いを目指すか、JAVA使い
を目指すかすごい悩んでるんだよね~
一応今使える言語は、VBとC言語。C++とJAVAについては基本は
分かっているつもり。みなさんはどう思います?
スレ違い?でも、JAVAを使っているみなさんにお聞きしたいんどす。
712 :
デフォルトの名無しさん :03/11/03 02:49
よく参考書で メソッドで main(string args[]) main(string argv[]) などと使い分けているようですがどう違うのでしょうか? そもそもここの引数にはargじゃなくても他の文字では駄目なのでしょうか?
713 :
デフォルトの名無しさん :03/11/03 02:53
>712 なんでもいいのさ、ただの名前です。 一般的に args とか argvって使われるだけ。
>>712 どっちでも動作的には関係ないけど
argc = argument count
argv = argument value
だから、Javaではargvを使うのが一般的
だれが argc と比較してるのか?
java の SE と EE はかなり違うものなのでしょうか? プログラマーのひとは EE で仕事をしているようなのですが、、、
素で間違った・・・
>>716 SEとEEは別物
SEは普通のアプリ・アプレット向けの基本的な開発キット
EEは主にEJB等のサーバー向け用途に使う
別途SEが必要
ttp://www.kei-ha.co.jp/mag/mag0049.html すごく簡単なことなのでしょうが。。
↑の<実行結果>の
出力先をファイルに変更して 出来たXMLファイルを
IE で見てみるとこんな感じになります。
というところで躓いています。
普通に、java TestMain file.xml
とやってみたのですが、出来ませぬ。。。出力先をファイルに変更とは、、どのように行うのでしょうか?
助言よろしくお願いします。
bbs.cgiを直接叩いてメッセージをポストしたい場合は
どうすればいいんでしょうか。
リクエストメソッド:POST
リクエストURI:
http://pc2.2ch.net/test/bbs.cgi? のbbs.cgiに引き渡すパラメータがわかりません。多分
&で区切ってbbs=techとかkey=1066718007とか入れる
んだと思うんですが、名前欄や本文など、全角を含む
部分はどうすればいいんでしょうか?
>>720 URIにパラメータを書くのはGET
POSTのパラメータはBODYになる。
パラメータが多い場合はPOSTじゃないとうまくいかない。
なので、掲示板等の書き込みは通常、POSTで行う。
>>719 TestMainクラスのmainしか見てないが・・・
>// OutputStream os = new FileOutputStream("test1.xml") ;
>// cd.documentOutput(os) ;
>// os.close() ;
> cd.documentOutput(System.out) ;
OutputStream os = new FileOutputStream(args[0]) ;
cd.documentOutput(os) ;
os.close() ;
// cd.documentOutput(System.out) ;
で、いけるはず。
725 :
デフォルトの名無しさん :03/11/03 11:12
JTabbedPaneに、コンポーネントを追加したんですけど、 タブ部分に、そのコンポーネントの取り消しボタンを設定するには どうやればいいのでしょうか・・・
>>724 どうもすみません。ありがとうございました。
CSVファイルを読み出して、列をHashtableに、行をVectorに格納しようとしています。 しかし、java.lang.ArrayIndexOutOfBoundsException:がでてしまいます。。。 CSV内の要素数も間違ってないのですが、どこか間違ってそうなところありませんか? private static Vector myVector = new Vector(); private static Enumeration e; (snip) FileReader reader = new FileReader(getServletContext().getRealPath("address.csv")); BufferedReader bufReader = new BufferedReader(reader); String line; int i = 0; String field[] = {"id","name","address", "tel","fax","mail"}; while((line = bufReader.readLine()) != null) { StringTokenizer myToken = new StringTokenizer(line, ","); Hashtable myHash = new Hashtable(); while(myToken.hasMoreTokens()) { myHash.put(field[i], myToken.nextToken()); i++; } myVector.addElement(myHash); } e = myVector.elements(); (snip) <% while(e.hasMoreElements()) { Hashtable obj = (Hashtable) e.nextElement(); %> <%=(String)obj.get("name")%> (snip) <% } %>
>>704 WASでweb.xmlを管理してる奴は少なかれ。
Tomcatと違って、もっと先進的なのだよ。
729 :
デフォルトの名無しさん :03/11/03 11:39
>>727 >StringTokenizer myToken = new StringTokenizer(line, ",");
これだと、「"","",,,"",,,,,,,,,,,」という行があった場合、Tokenはどうなるかな?
それと、EnumerationではなくIteratorを使うべし。cloneしないのなら、
Hashtableではなく、Map型でHashMapを定義汁。VectorではなくList型でArrayListに汁。
730 :
デフォルトの名無しさん :03/11/03 11:41
Windows上でjarファイルを作成して、実行する時に 関連付けるアプリケーションのエラーが出てしまいます。 コンパイラはMS-DOSです。j2sdkのフォルダの中のbinとかを指定しても プログラムファイルがありませんと出てしまいます。 何と関連付けたらよろしいでしょうか?
731 :
デフォルトの名無しさん :03/11/03 11:47
>>730 それだけの知識で、よくJARファイル云々まで辿り着いたもんだ。
おまいさんはJavaではなく、コンピュータそのものを勉強した方がよさそうだ。
732 :
デフォルトの名無しさん :03/11/03 11:50
>>731 言えてます。と言うかコンピュータそのものもまだ勉強中なんで。
パソコン自体今年始めたばっかです。
733 :
デフォルトの名無しさん :03/11/03 11:52
>727 if (i < field.length) { myHash.put(field[i], myToken.nextToken()); } としておいた方が良いよ。 ちなみに冒頭のstatic変数から危ない香りが…。
734 :
デフォルトの名無しさん :03/11/03 11:54
>>732 先ず、自分が何を解っていて何を解っていないのかハッキリさせよう。
それと、何がしたいのか回答者に伝わる文章を心がけませう。
735 :
デフォルトの名無しさん :03/11/03 11:57
JavaにはPropertiesクラスがありこれでプロパティファイルに 設定情報などを入れて使えますが、 XMLの登場によってこの必要性も下がり、 変わりにXMLファイルに入れて読み書きするのが主流になっている と思うのですが、実際のところ、どうなんでしょう? Propertiesクラスの必要性も次第になくなってゆくのでしょうか? それともPropertiesクラスはXMLに対応するのでしょうか?
>>733 それじゃだめだって。field[]の要素数に依存した処理はいくない。
この処理が終わって、遙か遠くの処理でバグが発覚する危険性がある。
プログラミングの基本:不正なデータはすぐ弾け。
737 :
デフォルトの名無しさん :03/11/03 12:00
すいません、次元の違う話で失礼します。 オブジェクトって何のために使うのでしょうか・・・? 極めて入門的なCは学んでいるのですが、なにやらポインタを利用できない構造体チックな感じを受けます。 もしよろしければ、実生活に例えるような解説のあるオブジェクトについて書かれたサイトをご教授願えないでしょうか? 当方、物凄く飲み込みが悪いですので、そこを考慮していただけると幸いです。
>>730 正常に古くないJavaがインスコされているなら
自分から関連付けしなくてもよかです。
jar内にちゃんと、どれをブートストラップクラスにしているかを
設定したマニフェストファイルをいれてんなら
Windowsではjarをダブルクリックするだけで起動します。
M$-DOSはコンパイラではありません。OSです。
739 :
デフォルトの名無しさん :03/11/03 12:02
>>735 簡単に言えば、Propertiesクラスはメモリ内に保持。スーパークラスを見て味噌。
XMLファイルはファイルであることから必ずI/Oが発生する。速度重視ならメモリ。
>>737 オブジェクトは、ポインタを使っています(Javaオブジェクトは必ず参照型)。
むしろポインタを使った構造体変数です。
あとはJava FAQで検索
>>739 やはり速度面ではXMLはプロパティには及ばないのですね。
XML側では、どうしてもタグを定義しないといけないですね。
しかし、XML API はJAXP, JAXBなどXML関連が4つほど乱立してどれを
使えばいいか混乱します。
どれがどの用途に向いているのか、の各々を比較しながら説明された
サイトないですかね?
>>739 > 簡単に言えば、Propertiesクラスはメモリ内に保持。スーパークラスを見て味噌。
これ見て、将来はPropertiesのスーパークラスがHashMapに入れ替わるとかいう
ことってあるのかなと思った。
743 :
デフォルトの名無しさん :03/11/03 12:12
様々なアプリケーションから読み込むことが想定されていないデータを XMLにする価値は殆どないように思える。更にXML解析はパーサーかますので 一般的なファイル入出力よりも速度面で劣るのは言うまでもない。
>>737 Cにおけるポインタの重要性と生ポインタを大衆プログラマが使うことの危険性について
レポートにまとめる
>>735 「名前=値」程度の単純な設定ならプロパティファイルがいい。
でも設定が入れ子になっているような複雑な構造ならXMLがいい。
>>741 >やはり速度面ではXMLはプロパティには及ばないのですね。
739は「Propertiesクラス」と「XML」を対比しているようだけど。プロパティファイルも
IOが発生するのは一緒だよ。XMLで設定した場合でも当然メモリにキャッシュする
だろうから、初期化時のオーバヘッドは無視できるくらいの差しかない。どちらかと
いえば実装の煩雑さくらい。
>しかし、XML API はJAXP, JAXBなどXML関連が4つほど乱立してどれを
使えばいいか混乱します。
それぞれ目的は違うから、「乱立」はしていない。スキーマさえ書ければJavaクラスで
直接XMLを扱えるJAXBが一番いいだろうけどね。
746 :
デフォルトの名無しさん :03/11/03 12:19
>>742 Hashtable継承からHashMapを継承するように変更することで、
どんな影響があるかを考えてみたら、その可能性があるかどうか推測できる。
ただ、PropertiesクラスはMapインターフェースを実装しているから(略
747 :
デフォルトの名無しさん :03/11/03 12:22
>>745 Propertiesクラスがファイルである必要がありますか?
>>740 &構造体->メンバ・・・???
>>744 大衆プログラマという定義が学生のわたしには少し理解できないところですが・・・
うーん、直接メモリに任意の値を入れられる点がポインタの利点だと思ってるのですが。
危険性はその逆かな。。
749 :
デフォルトの名無しさん :03/11/03 12:25
>>734 はい、わかりました。レスどうもです。
>>738 ブートストラップクラスはちゃんと設定してるんで、正常にインストールされて
ないんですかねー。もっかいインストールし直してみます。有難うございます
750 :
デフォルトの名無しさん :03/11/03 12:27
String argv[] と書く人と String[] argv と書く人がいるのですが、一般にどっちが推奨なのでしょうか それとも目的が違うのでしょうか
>>748 > 大衆プログラマという定義が学生のわたしには少し理解できないところですが・・・
職業プログラマでさえ学生未満の底辺レベルがいるってことだよ
752 :
デフォルトの名無しさん :03/11/03 12:28
>>749 そこでインスコし直すから、解らないことが解らないままになってしまう。
753 :
デフォルトの名無しさん :03/11/03 12:28
754 :
デフォルトの名無しさん :03/11/03 12:28
inner classからouter classのstatic変数にアクセスできてしまいました。 手元の本にはできないと書いてあるのですがどっちが正しいのでしょうか。
756 :
デフォルトの名無しさん :03/11/03 12:29
>>750 哲学的な記述の違い。オブジェクト指向ではString[]が正しいみたい。
XMLだと速度で劣る、ってどんなオーダーの話してんだよ。 パースしてメモリに入れたら後は一緒。 XMLの問題点はPropertiesの代替になるクラスが標準で用意されていないこと。 Properties完全互換クラスなんてすぐ作れるはずだが、 そうするとXMLの利点を潰してしまうため標準では入ってないんだろう。 JakartaにもXMLファイルを設定ファイルとして使うライブラリがいくつかあるが、 どれもXMLの利点を生かすようなつくりになってるから、どうしても大げさになる。 Propertiesの中途半端な国際化対応なんかいらないから XMLファイルをPropertiesの入力に使えるようにするだけでいいんだけどね。 JAXPなんかはPropertiesで言ったらFileReaderあたりに対応する低レベルAPIだよ。
758 :
デフォルトの名無しさん :03/11/03 12:32
>>754 本に書いてある状況が分からないが
一般にはアクセスできるはず
760 :
デフォルトの名無しさん :03/11/03 12:32
761 :
デフォルトの名無しさん :03/11/03 12:36
>>757 > XMLだと速度で劣る、ってどんなオーダーの話してんだよ。
> パースしてメモリに入れたら後は一緒。
メモリに入れるにしても入れるまでの過程の話だろ。
あんたボトルネック見つけられないタチだろ?
>>750 オブジェクト指向的には String[] argv がいいでしょう。
あくまで、"Stringの配列"型なのだから。
String argv[] という記述方法はC言語っぽい書き方を残しているだけ。
>>761 で、パースしてメモリに入れるまでにどれほど時間がかかるんだ?
それがアプリケーション実行のボトルネックになってると。( ´_ゝ`)フーン
ボトルネックの意味わかってる?
764 :
デフォルトの名無しさん :03/11/03 12:42
>>760 バグが入り込んでたとしても結果は正しい。
結果は嘘つかない。バグによる結果の相違は、期待値が違うだけ。プルグラムの結果は正しい。
>>749 javaw.exeという実行ファイルが何処かにか存する故、それに関連づけられては如何。
// そもそも貴方のインストールされたJ2sdkのバージョンは何也?
>>750 前者はC言語以来の伝統的な文法に従った物。
後者は、配列はオブジェクトであるという、Javaの理念をあらわにした物。
どちらの書き方でソースを書いても、
javacによって生成される物は、おそらくどちらも同じであるが、
因循固陋なやり方よりは、後者を推す。
766 :
デフォルトの名無しさん :03/11/03 12:43
因循固陋 ↑読みを教えてください
767 :
デフォルトの名無しさん :03/11/03 12:43
>>764 ????
バグってコンパイラのバグのことだぞ?
768 :
デフォルトの名無しさん :03/11/03 12:46
>>763 思いこみが激しい奴だな(藁
肩を並べて比較したときの優劣の違いも解らぬのか(禿藁
代替案を翳して主張するのは、その後の話になるんだよ。
会議中に一人だけ先走って発言するタチだろ?w煙たがられてるだろうね。
あんたが考えてることくらい誰もが頭にあるって。ただ、今はその話はしてないってこと プ
769 :
デフォルトの名無しさん :03/11/03 12:48
>>767 だとしても結果は正しい。原因の所在がコンパイラにあっただけのこと。
770 :
デフォルトの名無しさん :03/11/03 12:49
>>754 > inner classからouter classのstatic変数にアクセスできてしまいました。
できるでしょ。
>>768 実用に耐える速さなら優劣など些細なもの
それさえも問題になるほど競争の激しい舞台にいるのか?
それとボトルネック探しなら理屈並べる前にプロファイラ走らせろ
774 :
デフォルトの名無しさん :03/11/03 12:57
>>771 言いたいことがよく解らないのですが何か?
完結した文章で問い掛けるのは止めてください。
>>774 これが問いかけに見えるようなら
哲学のやりすぎで日本語が疎かになっているってことだ
778 :
デフォルトの名無しさん :03/11/03 13:01
javaに関係ない議論やめませんか?
779 :
デフォルトの名無しさん :03/11/03 13:02
>>773 > それとボトルネック探しなら理屈並べる前にプロファイラ走らせろ
あんまり言うとアレだからいいけど、プロファイラ走らせるにしても、
パフォーマンス問題は環境も考慮しないといけないんだって。
本当にパフォーマンス問題引き起こすのは、物が客の手に渡ってからが多い。
パフォーマンス改善=プロファイラ走らせて云々。と即答しない方がいいよ。場数踏めばわかる。
>>754 はどちらが仕様と合致しているか聞いているんだろ。哲学者も分かっていて言っているんだろうが。
781 :
デフォルトの名無しさん :03/11/03 13:03
EnumeratorとIteratorの役割の違いがわかりません。 なんであるクラスはEnumeratorを使い別のクラスはIteratorを使っている のでしょうか。
782 :
デフォルトの名無しさん :03/11/03 13:04
>>780 正直、すまんかった。3連休なのに暇でね。。。
>>729 確かに。。。
それが心配だったので、"," や ",,,," 等は「手抜き」するために抜かりないcsvを用意してます。
JavaCockBookで洗い直してみます。。。
>>733 まず、試してみました。試行錯誤の結果、こっちでは行は正確に表示されました。ただ列が
最初の一行を除いて空っぽです。やはり、Hashtableのstatic変数がおかしいみたいです。。。
まず。手がかりに733さんの方法ですっきり表示して、729さんにステップアップして検索などの
条件分岐も加えたいと思います。
お二人ともありがとうございました。ここは流れが速いですね。
>>781 Enumeration は JDK 1.1 以前の古いクラス。
Iterator は JDK 1.2 以降の比較的、新しいクラス。
785 :
デフォルトの名無しさん :03/11/03 13:07
>>781 インターフェース派?w はIteratorを好む。
>>768 >あんたが考えてることくらい誰もが頭にあるって。ただ、今はその話はしてないってこと プ
自分の考えていることをみんなわかってくれてると思ってる?それは幸せな人生ですね
時には愚直に説明することも必要。
初心者に「XMLファイルは遅い」とだけ言えば、「遅いなら使うのやめようか」となるわな。
そうではなくて、場面に合わせた判断をしなくてはならない。
ミリ秒ナノ秒のオーダーで遅いだ速いだ議論しても、一度だけ読み込んで終わりの
設定ファイルには意味の無い話な訳。
ということをベテランの
>>768 サンはわかってるんだろうけど、ここは初心者スレだからね。
前提を書かずに些細なところで議論していると、多くの誤解を生む恐れがある。
787 :
デフォルトの名無しさん :03/11/03 13:08
>>784 ということは今後作られる新しいライブラリでEnumeratorは
使わない方が良いのでしょうか。
Servlet APIのEnumeratorを返すメソッドなんかもそのうちIterator
版ができたりしますか?
>>779 はあ…
あんたの所の顧客は開発環境よりCPUパワーが落ちることが多いのですか
XMLに変更したときのパフォーマンス問題を考えるなら
I/OバウンドよりCPUバウンドの方が可能性が高いと思うのだが
そういえば、比較的大規模な開発でInterface使ってないが為に痛い思いしたことがあったっけ。 糞クラスを糞クラスのまま野放しにするハメになった。
>>747 あなたは最初に735で質問した人ですか?
最初の質問には「プロパティファイルに 設定情報などを入れて」と書いてあるけど。
その前提で回答しているから、前提が変わったら回答も変わるよ。それでも初期化時の
オーバヘッドはたいていの場合無視できる、という結論は変わらないけどね。
まあおまいらエロ画像でも見て落ち着け
792 :
デフォルトの名無しさん :03/11/03 13:17
>>786 >ミリ秒ナノ秒のオーダーで
大量データって扱ったことありまつか?そりゃ、10k以内の話でしょ。
XMLが設定ファイルだと決めつけるほうが初心者向けじゃないような気がしないでもない。
そもそも、Propertiesクラスの存在意義みたいな話から来てることを考えると、
この流れになるのが普通でしょ。
>>787 だいたいそんなところ。Enumerationは以前からのバージョンとの互換性の
ために残されているだけ。使うならIteratorをすすめる。
前提としてXMLの解析は遅いの?
795 :
デフォルトの名無しさん :03/11/03 13:19
>>790 >たいていの場合
ここがネックだよ大将
>>792 落ち着け。スレの流れから設定ファイルに限っての話だ。
そもそもPropertiesをデータファイルとして使う場面があるのか?それ自体ありえない設計だと思う。
797 :
デフォルトの名無しさん :03/11/03 13:22
>>792 >XMLが設定ファイルだと決めつけるほうが初心者向けじゃないような気がしないでもない。
ちょっとちょっと:-)
元は設定ファイルの話でしょ。前提を変えたら混乱するだけではないですか?
>そもそも、Propertiesクラスの存在意義みたいな話から来てることを考えると、
この流れになるのが普通でしょ。
だとするとなぜ大量データ云々の話になるのかな?
さあ?大量データの設定ファイルを使う顧客でも想定してるんだろ
801 :
デフォルトの名無しさん :03/11/03 13:25
>>798 敢えて苦しい立場で話してきたが、正直苦しくなってきた。
そうだよ、最初からあんたが正しい。あんたが大将。
>>801 ここはディベートスレではありませんが?
>>801 この、はな垂れリーマンに、誰か一発ぶちかましてやってくれ。
大量データの設定ファイルをnative2asciiしてPropertiesで使う顧客萌え
あんたらが言い争いしてる間に1回オナーニしちゃったよ
Windowsで単純なHelloWorldプログラムをjdbにかけてthreadsと打ったら main[1] threads グループ system: (java.lang.ref.Reference$ReferenceHandler)0xe1 Reference Handler 状況待機中 (java.lang.ref.Finalizer$FinalizerThread)0xe0 Finalizer 状況待機中 (java.lang.Thread)0xdf Signal Dispatcher 実行中 グループ main: (java.lang.Thread)0x1 main 実行中 (ブレークポイント) と出ました。 このReferenceHandlerって何やってるんでしょう?
おそらく参照カウンタ
809 :
デフォルトの名無しさん :03/11/03 14:10
白熱討論終わったのかい
GCにつまみ出されたリファレンスをせっせと、参照キューへ押し込んでるみたい。
Sun 系の JRE って参照カウンタ使ってるの? 何やってるんだろ。
>>757 java.util.prefs.Preferencesじゃだめ?
いいかも。ちょっと調べてみよう
814 :
デフォルトの名無しさん :03/11/03 15:05
hashtable Vector 配列 の違いがわかりません 全部目的が同じじゃないのでしょうか? ここではVectorでここでは配列の使い分けってどうやって決めるのでしょうか?
配列は長さが変えられない。数値インデックスによるランダムアクセスを提供 HashTableはオブジェクトのhashCodeによるランダムアクセスを提供。 Vectorは可変長、数値インデックスによるランダムアクセスを提供。
>>815 それだと配列を廃止して
全部Vectorでいいんじゃないのか?
配列でなくちゃ駄目のいみがわからん
java.util.Vectorは配列を便利に扱えるように考えられたオブジェクトと言えばわかりやすいかな? 可変長だし。ほかには例えば、インデックスを指定して中間にオブジェクトを挿入したい場合、配列だと 自分であれこれ操作しなきゃ行けないけどjava.util.Vectorならそういう機能を持ったメソッドがすでに用意されている。 配列のコピーもメソッド一発。 java.util.HashTable(hashtableというクラスは無いぞ)はオブジェクトをキーで検索できる。 今ならjava.util.Vectorじゃなくてjava.util.ArrayList、 java.util.HashTableじゃなくてjava.util.HashMap使っておけ。 機能はほぼ同じだが、メソッドやインタフェースが少し洗練されている。 それから、Javaでは大文字小文字の区別をすること。 クラス名はパッケージ名を含めた完全修飾名で書くことを習慣づけておけ。 違うパッケージに同名のクラスがあることはよくあること。
>>816 配列でいいのなら配列使っておいた方がメモリやCPUの負荷がVectorより低い。
VectorやArrayListは機能がいろいろあるからどうしても配列より重い。
>>818 >java.util.HashTable(hashtableというクラスは無いぞ)は
>・・・
>それから、Javaでは大文字小文字の区別をすること。
Calendarクラスでうるう年かどうか判定するようなメソッドってありませんか? やはり、自分でつくるしかないですか?
>>821 あるかどうかはわからないが、Cでカレンダーを表示させるときに
西暦0年1月1日が日曜日でそれをループで足し込んで7で割ってその月の
1日目が何曜日で何日あるからループで改行入れたりとか・・・
懐かしいな・・・
独り言でした。。。
>>822 みんな、カレンダーは作ったことあるんですね。
>>823 どうも、GregorianCalendarクラスにあるのですね。Calendarクラスしか
みてませんでした。すみません。どうもありがとうございました。
JAVAをDLしようとすると、ソースファイルが見つからないといわれるのですが・・。 スレ違い?
826 :
デフォルトの名無しさん :03/11/03 16:19
その前に意味が不明です
>>825 プログラミング言語ってダウンロードできるの?
C言語をダウンロードとか、Pythonをダウンロード?
それともDLの意味を俺は間違えてる?
Dynamic Linkならなんとか意味が通らないでもない・・・
829 :
デフォルトの名無しさん :03/11/03 16:21
かなり厨房的な質問で申し訳ないんだけど フレームワーク(structs)って結局コードを見やすくするためのタグを定義した集合体ってことでいいのでつか?
いまJAVAで作られたものを見ようとすると、左上にばつマークがでるため JAVAで作られたものを見れるようにしようと・・・。 間違ってた?
831 :
デフォルトの名無しさん :03/11/03 16:23
生産性をあげるための部品や製作パターンの集合体じゃない?
832 :
デフォルトの名無しさん :03/11/03 16:25
>>831 うーん、一応ググってみてそういう風な事かいてあったのまでは調べたんだけど具体的にわからないのよー
Javaすらわからないのに入社一週間で火曜日までに覚えろといわれてこまってます・・・
直接コーディングに関係があるものなの?
むしろ入社前に覚えていてほしい技術。
834 :
デフォルトの名無しさん :03/11/03 16:32
入社前に覚えて無くても必要になれば1週間で身に付けて欲しい
まじすか・・・ありが㌧汁
>>832 基本的にはコーディングをラクにするための技術だから、
敢えて覚えろ、つーのもよくわかんない話なんだが。
>>837 うう、わかったよー、ありがとう(つд`)
>>831 JavaでWebアプリケーションを作るための枠組み(フレームワーク)を提供してくれるもの。
つまりWebアプリケーションならクライアントからリクエストを受けてなんらかの処理をして
から次の画面に遷移する、てな仕組みが必要なわけだけど、その基本的な仕組みと
拡張のための仕組みが用意されている。
その枠組みに合わせて部品を追加したり、設定をおこなうことでアプリケーションを
つくることができる。ただしStrutsではほとんどプレゼンテーション層の枠組みしか
ないから、ロジックレベルの仕組みは自分で作る必要がある。
「JavaBeans」てナンですか? 巷の説明読んでもわかりません
JPanelの拡張クラスのコンストラクタで addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) {....} }); してるんですが、....の部分で、e.getKeyCode()すると、 ゼロしか帰ってこない。 さらには矢印キーなどはkeyTyped(..)が呼ばれない。なぜでしょう? javac 1.4.1+
844 :
デフォルトの名無しさん :03/11/03 22:03
>>840 なにもWebアプリケーションに特化したものだけをフレームワークと呼ぶわけじゃないだろ。
質問だが、TemplateMethodとAbstractFactoryの複合パターンとフレームワークの違いは?
>>844 設計と実装。
デザインパターンは設計の考え方や手法そのものだが、
フレームワークは実際に動くソフトウェアとして提供されるもの。
>>844 元の質問が フレームワーク(struts) だったから、
それに沿って答えたんでは?
847 :
デフォルトの名無しさん :03/11/03 22:30
教えてください public class Hellojava { public static void main(String[] args){ int a,b; a = 123; b=Hellojava2.Method(a); System.out.println("数値は以上です " + b ); } } } public class Hellojava2 { public static int Method(int a){ a = a / 3 ; System.out.println(a); return a; } } とあったときにHellojavaクラスでHellojava2をインスタンス化しなくても、しても どちらもHellojava2クラスを使えるのですが Hellojava2クラスを使うにはインスタンス化しなければならないのではないのでしょうか? ちょっと混乱しています 教えてください
>>844 >なにもWebアプリケーションに特化したものだけをフレームワークと呼ぶわけじゃないだろ。
846さんが書いたとおり、「(Strutsは)JavaでWebアプリケーションを作るための
フレームワーク」という意味です。
>質問だが、TemplateMethodとAbstractFactoryの複合パターンとフレームワークの違いは?
単にフレームワークというと色々な意味を持ちますが、Strutsのようなアプリケーション
フレームワークは、決まった形で部品を追加することで完成する、アプリケーションの
半完成品を指しますね。デザインパターンを駆使してフレームワークを設計することは
できるでしょうが、提供する解のレベルが違いますね。
staticなメソッドのみを使うときはむしろインスタンス化しないほうがよい。 むやみにインスタンスを作るとメモリを消費する。
850 :
デフォルトの名無しさん :03/11/03 22:43
クラスフィールド・クラスメソッドに動的クセスしたコードってキモイ 作成者を問いつめたら、インライン化を考慮してるとか言っていた。 enumパターン使えばいいのに。
>>841 JavaBeansそのものは単なるJavaクラスです。
ただしJavaBeansと呼ばれるには、、
・デフォルトコンストラクタでインスタンス化できること
・シリアライズ(オブジェクトの内容をバイトストリームに出力すること)可能であること
をサポートする必要があります。また、通常はsetter、getterメソッドを持ちます。
現在では、JavaBeansは主に分散オブジェクト間のデータの受け渡しや、サーブレット
->JSPでのデータの受け渡しに使用します。
852 :
デフォルトの名無しさん :03/11/03 22:52
>>843 KeyTyped()以外は拾ってみたのけ?
>>849 Javaで小さな寿命の短いインスタンスを作るのをケチるような環境で
はJava使うな。今後、オブジェクトは沢山作って直ぐ捨てるほうが主
流になる。速度の都合より設計が優先する流れから行けば、より純粋
にOO的な設計に近づいていくのは必定。
変な俺様チューンルールなんて直ぐ陳腐化するから、初心者相手に得意
げに押し付けんな。
>>850 ネックになるのかどうかも不明な主観的ボトルネックでインライン化
を期待するより、HotSpotJVMの動的チューンに任せるべし、だなあ。
853 :
デフォルトの名無しさん :03/11/03 23:06
今やってるシステムに最新のJVM使いたいな。稼働中だけどw 未だに1.2だもんな・・・・。
854 :
デフォルトの名無しさん :03/11/03 23:10
>>849 インスタンス化できないように作るのが思いやりの設計。
どうでもいいけど、java.lang.refって裏技パッケージがある限り何やっても穴開きっぱな。
double y = new Math().sqrt(x); なんて書くやつはいないね。
つうか、書けないね。
857 :
デフォルトの名無しさん :03/11/03 23:16
はじめまして 早速質問なんですが、jspからjspへ直接飛びたい場合はどのようにすればいいのでしょうか? formタグのactionに設定してもgetRequestDispatcherでも上手くいきませんでした 何か方法は無いのでしょうか?
>>857 formタグのactionに設定してもgetRequestDispatcherでもできる。
>>856 double y = (new Math()).sqrt(x);
じゃダメか?
>>859 考える頭が無いならせめて試してからにしろよ
>>852 >変な俺様チューンルールなんて直ぐ陳腐化するから、初心者相手に得意
>げに押し付けんな。
は言い過ぎじゃない?
staticなメソッドは新たにnewせずに呼ぶべきだろう。
まあ、そもそもなんでstaticか、っていう話はあるんだが。
>>858 そうなのですか・・・
ということは、恐らく指定先の階層が間違っていると思うのですが、フォルダの階層が
test1
∟test2(ここにhtmlとjspが入っている)
∟test3(ここにサーブレットが入っている)
となっている場合、どのように指定すればいいのでしょうか?
サーブレットから飛ぶ場合は
/jsp名
で飛べるので、それで試したのですが上手くいきませんでした
他にも色々試したのですが、jspはhtmlと同じ階層に居るのにjavaとしてコンパイルされるので、
いまいち階層がわからくて・・・
>>852 これを「変な俺様チューンルール」としてしまう時点で非常識だな
なぜstaticとして実装されているのかを思いっきり無視してどうする。
Eclipseのコンパイラだと露骨に警告出すな。
Mathのコンストラクタがprivateの時点で インスタンスかできないわな
>>864 852に言わせるとEclipseも「変な俺様チューンルール」に則っているのだろう。
staticメソッドしか呼ばないのにわざわざインスタンス作るのは 議論の対象外ですた。そんな奴がいると思ってなかった。 インスタンス作成を貧乏臭くけちるようなプログラミング手法は いかがなものか、って話。
>>857 >早速質問なんですが、jspからjspへ直接飛びたい場合はどのようにすればいいのでしょうか?
jsp:forwardを使えばいいのでは?
>formタグのactionに設定してもgetRequestDispatcherでも上手くいきませんでした
forwardするのと出力するページのフォームのActionに指定するのとは全然意味違うぞ。
それと、何がどう「上手くいかない」のか書かないと適切な答えが返ってこないよ。
869 :
デフォルトの名無しさん :03/11/04 00:00
JavaとJava2って具体的にどう違うのでしょうか? たとえばJava2の試験うけるのにJavaのテキストだけで十分でしょうか?
HashtableやVectorはもう時代遅れだと聞いたのですが、 使わない方がいいんでしょうか? もしかして、なくなってしまうとか?
871 :
デフォルトの名無しさん :03/11/04 00:03
>>867 だから言ってるだろ。インスタンス化できないようにクラス作れって。
Mathクラスがインスタンス化できないことはJava始めて2日の奴でも知ってるぞ。
872 :
デフォルトの名無しさん :03/11/04 00:05
873 :
デフォルトの名無しさん :03/11/04 00:06
>>870 明示的に同期化しなくていいという点では存在意義がある。
874 :
デフォルトの名無しさん :03/11/04 00:09
>>869 「Java2の試験」、「Javaのテキスト」がそれぞれ何を指しているのかを明確にしましょう。
ちなみにJava2とはバージョン1.2以降のJava(J2SE)を指します。現在行われている
試験や発売されている参考書でJava2でないものはまずないでしょう。
876 :
デフォルトの名無しさん :03/11/04 00:23
>>875 今持ってるのは一ヶ月前に買ったJava認定資格標準テキスト
これと同じJava2認定資格標準テキストというのもありました
中味をぱらぱらっと見たところそんなに変わらなかったです
資格と言うのはSUN技術者認定資格、これはJava2です
877 :
デフォルトの名無しさん :03/11/04 00:35
>>873 それは、実際には何の利点にもならない。
878 :
デフォルトの名無しさん :03/11/04 00:37
>>877 は知ったかのアホ
偉そうに発言してんじゃねぇよヴォケ。
879 :
デフォルトの名無しさん :03/11/04 00:40
>>878 じゃあ利点を挙げてみろ。
コレクションに対する参照、更新アクセス「だけ」同期化されていたって
現実問題何の意味も無いだろ。トランザクションって概念知ってます?
>>879 >コレクションに対する参照、更新アクセス「だけ」同期化されていたって
>現実問題何の意味も無いだろ。トランザクションって概念知ってます?
いや、コレクションクラスのメソッドが同期化されているだけで
十分な場合も駄目な場合もある。
なんらかのトランザクションが必要な場合は後者かな。
無意味に偉そうな香具師がいるな
882 :
デフォルトの名無しさん :03/11/04 00:51
>いや、コレクションクラスのメソッドが同期化されているだけで >十分な場合も駄目な場合もある。 もし充分な場合があるとすれば、それは複数のアクセススレッドが 互いに影響を与えない範囲にしかput,getしないわけで、だったら ThreadLocalでも使っとけ、と。それぞれのスレッドが使用する コレクションのインスタンス分けとけ、と。わざわざマルチス レッドからアクセスされることを意識したコレクションなんかに まとめんな、と思われ。 >なんらかのトランザクションが必要な場合は後者かな。 一方でputしてもう一方でイテレートかますなど、ごく一般的な用途 で、もうすでにダメダメですの。
>>881 優越感に浸れる場所を見つけて大喜びなんだろ
どうせすぐに失せる
2年前から同じノリですが。
>>885 たぶん内容じゃなくて口調のこと言ってるのでは?
深いこと語るのはいいけど、人をバカに(ry
887 :
デフォルトの名無しさん :03/11/04 00:58
なんでメソッドとかインスタンスとかシグニチャとか わけの分からん名前なの? なんで分かりやすいように日本語風にしなかったの? メソッドなら無理やり日本語化できるんだじゃないの?
人を小ばかにしたような口調で親切にするのがわが流儀です。
>>887 作った人がアメリカンだから。フジヤマとかゲイシャだと思いなさい(ワラ
>>887 メソッド→目素度
インスタンス→淫巣箪笥
シグニチャ→死国茶
>>852 はい拾ってみました。ダメです。なぞ。
今度マシン変えてみます。
893 :
デフォルトの名無しさん :03/11/04 01:44
/⌒ヽ そんな
>>877 に
/ ´_ゝ`) すいません、ちょっとSystem.out.print勃起();
| /
/ つ\
/ /~\ \
/ / > )
/ ノ / /
/ / / ./
/ ./ ( ヽ、
(___) \__つ
894 :
デフォルトの名無しさん :03/11/04 01:57
すいません org.apachejasper.runtimeのソースは どこからダウソできるのでしょうか? いまあるソフトのソースをコンパイルしようとしてるんですが、これのせいで エラーになってしまいます。
895 :
デフォルトの名無しさん :03/11/04 02:01
>>894 オプソServletエンジンとして聞いたことあるだろう、
あのTomcatが使用するJSPエンジンがJasper。
つうことで、Tomcat JSP Java あたりでググッテミソ。
896 :
デフォルトの名無しさん :03/11/04 02:20
JavaAPIって何を指してるのでしょうか? Googleで検索してもあまりに抽象的でよくわかりません おしえてください
>>849 > staticなメソッドのみを使うときはむしろインスタンス化しないほうがよい。
> むやみにインスタンスを作るとメモリを消費する。
つか、こういう使い方はどうよ?
public class StaticAndInstanceDemo{
private String[][] field;
private StaticAndInstanceDemo(){
}
public StaticAndInstanceDemo(String[][] field){
this.field = field;
}
public String[][] useInstanceMethod(String[][] a){
return useStaticMethod(a, this.field);
}
private static String[][] useStaticMethod(String[][] a, String[][] b){
//計算に多大な時間がかかり非常に複雑なアルゴリズム
}
}
//多次元配列を使っているこういうことをやりたくなることがある。
//staticは使うけれどもあくまでprivateかpackage privateで使い、
//インスタンスメソッドでラッピングする。
>>812 > java.util.prefs.Preferencesじゃだめ?
Preferences APIは設定ファイルをエディタで手軽に弄れないから微妙。
あれは設定ファイルとは違いクッキーみたいな使い方をするもんではないかと。
>>897 static メソッドである意味がわかりません
どう考えてもおかしいだろそれは
Javaの配列ってJava的でない気がする。 []なんて記号を使うあたりがキモい。 そんなふうに感じたことありません?
キモいと思うのは勝手だが 「あなたの勝手なJava像」に 対して「Java的」云々言うのはおかしい。
902 :
デフォルトの名無しさん :03/11/04 07:00
>>898 XMLに吐かしていじれるぞい。API嫁。
>>900 > []なんて記号を使うあたりがキモい。
> そんなふうに感じたことありません?
ありません。
ちなみに、どんな記号を使えば良いんで?
904 :
デフォルトの名無しさん :03/11/04 08:25
Java でファイルを読み込んで、ワード単位の処理をする場合はどうするのでしょうか? 調べても、BufferedReader.leadLine() で行単位で読むところまでしか分かりませんでした。 ご存知の方、ご教授下さい。よろしくお願いします。
>>904 ワードって空白で区切られてんの?
それなら StringTokenizer とかでできるけど。
そうでないならワード単位の切り分け方による。
>>899 複雑で時間のかかる計算のみstaticにすることに問題が?
>>906 > 複雑で時間のかかる計算のみstaticにすることに問題が?
複雑で時間がかかる : static
簡単で時間がかからない : 非static
という意味の無い切り分け方してるなら問題かも。
908 :
デフォルトの名無しさん :03/11/04 11:43
オブジェクトを格納するコンテナクラスを作りたいのですが、 VectorやHashtableを継承するしかないのでしょうか? やりたい事は、Cというコンテナクラスがあって C.setClass("任意の名前A",追加するクラス); でコンテナにクラスをセットして、 (キャスト)C.getClass("名前A"); でコンテナからとってきたいのですが
>>908 継承はだめ。getClassっていうメソッド名もだめ。
それから下記は追加する型をObjectにしているが、
自分で作ったインターフェースにしる。
public C {
private Map map = new HashMap();
public C() {}
public void set(String name, Object obj) {
map.put(name, obj);
}
public Object get(String name) {
return map.get(name);
}
}
get するときに明示的にキャストしなくてもよかったかな? あと Generics はまだ非標準?
キャストするのはあくまで呼び出し側 あと、Genericsは1.5からという噂
端末に入力した2つの値(PressureAB, PressureMId)を Panelに表示させたいのですがどうすればそれができるのか 分かりません。誰かアドバイス頂けませんか? import java.io.*; import java.util.*; import java.awt.Graphics; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.awt.FlowLayout.*; public class Shikaku11{ public static void main(String args[]) throws IOException{ JFrame frame = new Shikaku11Frame(); frame.show(); System.out.println("PressureAB PressureMidの値を入力してください"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String strAB = br.readLine(); String strMid = br.readLine(); double numAB = Integer.parseInt(strAB); double numMid = Integer.parseInt(strMid); }}
<913の続き> class Shikaku11Frame extends JFrame{ public Shikaku11Frame(){ final int X_MaxFrameSize = 1024; final int Y_MaxFrameSize = 768; setSize(X_MaxFrameSize,Y_MaxFrameSize); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); Container contentPane = getContentPane(); contentPane.add(new Shikaku11Panel()); }} class Shikaku11Panel extends JPanel{ Mh mh = null; public Shikaku11Panel(){ mh = new Mh(); mh.setPressureAB(numAB); mh.setPressureMid(numMid); } public void paintComponent(final Graphics g){ super.paintComponent(g); g.drawString(mh.getPrintStatus(), 337, 180); }}
913>>は912>>の続きです。間違えました。 続いて<913>の続きです。 class Mh{ double numAB = 0; double numMid = 0; public String getPrintStatus(){ return " " + numAB + " " + numMid; } public void setPressureAB(double pressureAB){ numAB = pressureAB; } public void setPressureMid(double pressureMid){ numMid = pressureMid; }}
915 :
デフォルトの名無しさん :03/11/04 15:37
>>909 putだけなのですが、これじゃだめですかね?
public C extend HashMap{
public C() {}
public Object put(Object key, Object obj) {
super.put(key, obj);
return obj;
}
}
916 :
デフォルトの名無しさん :03/11/04 15:38
あとどうして継承が良くないのか教えてください。
本来サポートする必要のない余計なものをサポートしなければならないから Favor composition over inheritance
>>915 java.util.Map#put(Object, Object) の仕様と矛盾するので気をつけないとバグのもとになる。
つーか
>>908 の仕様なら HashMap をそのまま使えばいいんじゃないか?
>>916 継承が良くない例は JDK の java.util.Properties。
キーは文字列しか許さないがスーパークラスの Hashtable はキーに
Object を許す。store されたらどうなるか?
リリース後、Sun はこれに気づいたが、時すでに遅し。
要は藻前の C でいえば put を提供したいだけなのに外部から
他の予想外の操作がされてしまうのが問題だということ。
スーパークラスのすべての操作や順番、その影響について
熟知しているなら継承しても良い。
>>921 java.com は Sun の所有物なので, Sun を信用するなら恐らく安全
923 :
デフォルトの名無しさん :03/11/04 18:09
JSPの事で質問なんですが、 タグや文字列と一緒の行にJavaのコードを書くと表示の時に文字化けをしたり、 表示はちゃんと出てるのにJSPから作られたJavaのコードをコンパイルしてみると コンパイルエラーになる事があります その他にも、<CENTER>あいうえお</CENTER>のように普通にタグを書くだけでもエラーが出る事があります もしかしてですが、JSPは全角と半角の文字を同じ行に書くとそのようなエラーが出る事があるのですか?
924 :
デフォルトの名無しさん :03/11/04 18:17
winXPにJava 2 SDK, Standard Editionをインストールしようとすると ”J2SDK1.4.2をインストールする準備をしています。お待ちください” とでて8%で止まっていつまでたっても進行しないのですが、何か問題があるのでしょうか? win98にインストールしたときは大丈夫だったんですが。
>>907 わかった、「複雑」はカット。
複雑とはアルゴリズムが複雑、の意味で言ったが
どうも誤解を生みそうなのでカット。
重たい処理にはstatic、
それを拡張するときはインスタンスでラップ
でよろし?
>>923 ,924
的確な回答がほしかったら環境書いてね
928 :
デフォルトの名無しさん :03/11/04 18:41
String filename = args[0]; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename))); これって何をしてるのでしょうか? ファイルへの書き込みにこんなに記述が必要なんでしょうか? 特に二行目… よくわかりません
929 :
デフォルトの名無しさん :03/11/04 18:47
こんにちは。Javaを勉強して約2年になります。 会社に入ったんですが、そのときはやめてしまいました。 で、請負とかに募集したんですが、なかなか条件とかがあわないため、 自分1人でやりたいとおもいました。 自分で安価なサーバサイドのプログラムでもつくりながら、商売したいと思ったんですが、 どうすればいいか分かりません。 どういうところから、仕事をもらえばいいんですかね?もしくは、全く自分ひとりで企業に話を 持ちかけたりすることってできるでしょうか?
930 :
Computer Security Officer :03/11/04 18:58
Thank you for reporting a computer security issue to
our office.
Due to the high volume we are currently experiencing,
we are responding to new incidents in the following
prioritized order:
Copyright, Legal, and other Conduct issues
Account Theft
System Compromises / System Audit requests
spam originating from, or being relayed through, Stanford
[Note: Please do not report that you are receiving spam.
To learn more about what you can do, and what is being
done, to reduce incoming spam, see:
http://www.stanford.edu/dept/itss/css/leland/email/antispam/#filter] You will receive this automated response each time you
send mail to security@stanford.edu. Sending email to
security-nr@stanford.edu will eliminate the auto-response.
931 :
デフォルトの名無しさん :03/11/04 19:33
String[][]のような2次元配列の各2方向の長さを調べるにはどうしたらいいのですか? 【Verは1.4.1だよ】
932 :
デフォルトの名無しさん :03/11/04 19:36
933 :
デフォルトの名無しさん :03/11/04 19:38
String[][] s; for(int i=0;i<s.length;i++){ for(int j=0;j<s[i].length;j++){ System.out.println(s.[i][j]); } }
934 :
デフォルトの名無しさん :03/11/04 19:51
Java age!
935 :
デフォルトの名無しさん :03/11/04 20:20
キャストについて質問させていただきます ちょっと前置きが長いですが、順番に説明させてください。 iアプリにちょっと手をだしていまして、そのGraphicsにちと不満を覚えました そこで下のような感じで機能を追加してみようと思いました public class GraphicsEx extends Graphics{ public void drawStar(int x, int y){ うんたらかんたら } }; そしてCanvasのpaintメソッドに以下のように書いてみました void paint(Graphics g){ GraphicsEx gEx = (GraphicsEx)g; gEx.drawStar(); }
936 :
935の続き :03/11/04 20:21
するとコンパイルは通るものの java.lang.ClassCastException Stack trace data not available となります。 NETで調べてみたところ、なるほど「サブクラス変数に、スーパークラスを入れても動くわけない。動くものもあるが」 といった感じのことが書かれていました しかし同じiアプリで void paint(Graphics g){ Graphics2 g2 = (GraphicsEx)g; g2.drawSprite(~~); } は動くのです(Graphics2 は既存で用意されているクラス) 私のGraphicsExもこのように(キャスト変換で追加メソッド使える)動作させたいのですが、どうすればよろしいのでしょうか 調べるべきワードや、Webページでもいいのでヒントを頂けたら幸いです
937 :
デフォルトの名無しさん :03/11/04 20:25
eppと呼ばれるjavaプリプロセッサを使いたいのですが、 関連スレがどこにあるかわかりません。 ここで質問してもよろしいのでしょうか? どうか教えてください。
>>936 > Graphics2 g2 = (GraphicsEx)g;
> は動くのです(Graphics2 は既存で用意されているクラス)
動きません。っつかコンパイルできないはずだが。
> 私のGraphicsExもこのように(キャスト変換で追加メソッド使える)動作させたいのですが、どうすればよろしいのでしょうか
無理。
継承で Graphics を拡張するアプローチを取れるのは AWT の実装してる連中だけだよ。
939 :
デフォルトの名無しさん :03/11/04 20:40
>>935 いっていることは非常によくわかります
paint()やpaintComponent()などのメソッドは自動的にGraphics2Dクラスのオブジェクトを受け入れるようになっている
gEx.drawStar(); がナニをやるメソッドかは知りませんが
単純にGraphicsオブジェクトを引数に取るメソッドを作ればよいのではないでしょうか?
drawStart(Graphics g,・・・・(その他引数)){
//g.drawLineなど・・・・
}
940 :
デフォルトの名無しさん :03/11/04 20:43
>>938 > Graphics2 g2 = (GraphicsEx)g;
> は動くのです(Graphics2 は既存で用意されているクラス)
動きません。っつかコンパイルできないはずだが。
この使い方自体は正しいのです
図形、領域、透明化合成アンチエイリアスなどを使用したい場合
こういうキャストを行ってプログラミングするのです
>>938 ありがとうございました
言われてさらに調べてみたところ、Graphics2をサポートしてる機種では
paint(Graphics g)のgは、実はGraphics2を送ってきてるので
Graphics2 g2 = (Graphics2)g;
が可能なのだと判明しました。羨ましい…
>Graphicsを拡張するアプローチを~
となると残された手段は
public class GraphicsEx extends Graphics{
Graphics m_Grp;
GraphicsEx(Graphics g){
m_Grp = g;
}
}
としておいて、Graphicsで実装されているメソッド
public void drawImage(Image img, int x, int y){
m_Grp.drawImage(img, x, y);
}
を片っ端からこんな風に書きつつ、追加したいメソッドを足すしかないのでしょうか?
>>940 > > Graphics2 g2 = (GraphicsEx)g;
> この使い方自体は正しいのです
ウソはいかんね。
1. Graphics2D はあるが、Graphics2 は無い。
2. Graphics2型のg2 に GraphicsEx型にキャストされた g は代入できない。
>>923 >JSPから作られたJavaのコードをコンパイルしてみるとコンパイルエラーになる事があります
この件に関してあなたの予想はおおよそ正しい。
JSP→Javaソースへの変換過程でエンコーディングがUTF-8になるので、
javacが期待するエンコーディング(システムのデフォルトエンコーディング、
WindowsならWindows-31J)と異なり正しく読み込めない。
タグの方はにゃんともかんとも。
書いてる途中で追加情報まででてきて、大変嬉しく思っております 実はi-modeのゲームをJ-Phoneに移植するのが最終的な目的でして、 オーバーライドやメソッド追加(i-modeにあってJ-Phoneにはないメソッドが多数)を使って楽ができないかと思ったのです 具体例 Graphics g.setOrigin(x, y); // i-modeの、描画原点をずらすメソッド Graphics g.translate(x, y); // J-phoneの、描画原点をずらすメソッド J-Phoneに移植する際に、 public setOrigin(int x, int y){ super.translate(x, y); } とできたら楽できるのに、といった動機です。 至極残念。何か別アプローチで良いアイデアがあると嬉しいのですが… >936に誤植 void paint(Graphics g){ Graphics2 g2 = (Graphics2)g; g2.drawSprite(~~); } 正しくはこうでした。対応機種はGraphics gの部分にGraphics2が送られてくるため キャスト変換のみで動いているように見えるそうです
945 :
デフォルトの名無しさん :03/11/04 20:54
>>942 >>935 さんの話の流れを考えると
>Graphics2 g2 = (GraphicsEx)g;
は、単なる
>>935 さんの書き間違いで
正確には
>Graphics2D g2 = (Graphics2D)g;
と、推測しての発言ですよ
946 :
デフォルトの名無しさん :03/11/04 21:41
訳のわからない我流用語は止めよう。 謎の用語使って恥じかくくらいなら、回りくどい説明の方が16倍マシ。
947 :
デフォルトの名無しさん :03/11/04 21:49
我流用語 どの言葉だよ? いまさら「ら」抜き言葉なんて言うなよ
948 :
デフォルトの名無しさん :03/11/04 22:08
949 :
デフォルトの名無しさん :03/11/04 22:19
我流用語 どの言葉だよ? いまさら『「ら」抜き言葉(我流用語)』なんて言うなよ
今電卓作ってるのですがちょっくら基本を教えてください。 最初に import java.awt.*; ・ public class ファイル名 extends Applet implements ActionListener{ ・ public void init(){ ・ } public void actionPerformed(ActionEvent e){ ・ } } とこんな感じで表示と計算するものを作りました。んで最後に 8桁以上の値を入れるとエラーを表示するようにしたいのです。 今考えているのはC言語でいう関数みたいなところで100000000で割って 商が0ならERRと表示させようと思っています。いちいちボタンのところ ですべてやるとすさまじく長くなるのでこの計算だけするやつを作りたいのです。 でききたいのはC言語でいう関数みたいなものはjavaでもあるのでしょうか? ある場合どういう風に記述するのか教えてください。 actionPerformedの中の変数を関数(あればですが)に送って関数(?)の中で計算してその値を返す。 っていう漠然としたイメージだけで教科書にどうやったらいいのか載ってないのです(´・ω・`)
>>950 関数がないの?ってことか?
メソッドのことか?
意味がぜんぜんわかんないんだが。
とりあえず「java 基本」とかぐぐってみろ。
おまえのやりたいことがのってそう
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」 ―――――――――――――‐┬┘ | ____.____ | | | | | | | ∧_∧ | | | |( ´∀`)つ ミ | | |/ ⊃ ノ | | ____  ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | /∵∴∵∴\ | /∵∴∵∴∵∴\ | /∵∴∴(・)(・)∴| | |∵∵/ ○ \| | |∵ /. ミ | 彡 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | |∵.| \___|_/| < おまえら落ち着け | \| \__ノ / \____________ | \___/
テキストファイルの中身の文字列を1行飛ばしで読み込みたいんだが、 どうしたらいいの?
954 :
デフォルトの名無しさん :03/11/04 23:12
int i=0; while(・・・){ if((i%2)==0){ // } }
アプレットで、なんも戦闘機能も無い、ただ←↑↓→と、「話す」ボタンだけの会話だけのRPGを作るとしたら、SWINGとAWTってどっちが作りやすい?
956 :
デフォルトの名無しさん :03/11/04 23:17
そんな単純な奴なら別にどっちでもいい 混在させてもいいし
>>897 =906=925
おまえ、インスタンスメソッドはインスタンスごとにコードを持ってると思ってるだろ。
958 :
デフォルトの名無しさん :03/11/04 23:33
>>957 よくいがちな馬鹿ですね。
メソッドがいっぱいあるクラスオブジェクトをnewすると
「メモリもったいないからやめろ!」とか言い出すうち
の馬鹿SEみたいなのがそこここにいますな。
959 :
デフォルトの名無しさん :03/11/04 23:34
>>956 混在はいくない。まだSwingとAWTの混在は描画がうまくいかない。
Sunが頑張って?修正中。いつ直るかは不明。
960 :
デフォルトの名無しさん :03/11/04 23:38
>>958 SEって実際何やってるの?
PGよりも頭も給料もよさそうに聞こえるんですが・・・
現場監督なんですか?
大体そんな事言う人って、クラスいっぱい作っても怒るんでしょうか?
961 :
デフォルトの名無しさん :03/11/04 23:56
指定したファイルの特定の文字列の変換ってどうするのでしょうか? 教えてください BufferedReader、PrintWriterを使うのはわかりますが どうしてもうまくいきません
962 :
デフォルトの名無しさん :03/11/05 00:21
963 :
デフォルトの名無しさん :03/11/05 00:28
>>961 ファイルの読み取り、ファイルの書き込み、文字列の変換の3つに問題を分割しましょう。
で、君が上手くいっていないっていうのは、どの問題だい?
965 :
デフォルトの名無しさん :03/11/05 00:44
>>964 書き込みです
BufferedReader、PrintWriterを使うと
ファイルの中味が全部消えてしまいます
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
967 :
デフォルトの名無しさん :03/11/05 00:55
>>965 String line;
while((line = reader.readLine()) != null){
if(line.equals(args[1])){
args[1] = args[2];
}
}
すでに"欠"いている罠w
>>967 何がやりたいコードなのやらさっぱり意味不明。
writerはどこいったんだよ・・・
>>965 おそらくこういう実行の仕方を考えていないか?
java 965のJavaプログラム file.txt < file.txt
file.txtが変換対象のファイルね。
こういうことをすると、Javaプログラム中でファイルを書き込み用に開いた
途端にファイルの中身が消えてしまわないか?
返還後のファイルを別名で保存して、変換が終わったら名前を変えるようにすれば
上手くいくと思う。
971 :
デフォルトの名無しさん :03/11/05 01:17
おまいらこの本どうよ?
http://www.oreilly.co.jp/BOOK/javaxpckbk/ JavaによるExtreme Programmingクックブック
―アジャイル開発のためのレシピ集
Eric M. Burke, Brian M. Coyner 著
長瀬 嘉秀 監訳
株式会社テクノロジックアート 訳
2003年10月発行
304ページ
本体価格3,200円
ISBN4-87311-157-9
原書:Java Extreme Programming Cookbook
972 :
デフォルトの名無しさん :03/11/05 01:19
>>968 馬鹿にするんじゃなしにどうすれば言いか教えてください
どうすればいいか教える前に、何がしたいのかを日本語で書いてください。 日本語ができない人はどんな職種でも雇ってもらえませんよ。
974 :
デフォルトの名無しさん :03/11/05 01:32
>>973 引数で指定したファイルの特定の文字列の引数で指定した文字列に変換するには
969でいうwriterはどう扱うのでしょうか?
ファイルの上の行からnullになるまで一行ずつ読み込んで参照したいです
それともBufferedReader、PrintWriterでは根本的に出来ないのでしょうか?
日本語難しいよ・・・
>>971 同じ長瀬のXPとxUnitの本を100倍にしたような本。
こう書くと比較対象があれなんであんまりたいしたことなさそうだけど、いい本ですよ。
アジャイル開発のための環境やシステムをどう作ればいいのかという点について
いつものクックブックの形式で書いてあって使えると思った。
TDDの本の次に読む本としていいんじゃないかな。
ところでこれは推薦図書スレの誤爆じゃないよね?
977 :
デフォルトの名無しさん :03/11/05 01:56
お邪魔します。 今、programaというソフトを使って、少し動かしたのですが、手間がかかる上にうまくいきませんでした。 このソフトはフローチャートを作る画面があって、そこに命令を入れていけば MSDOSプロンプトで、実行してくれるというものでした。 私はBASICなら、ある程度プログラミングができたので、 こういうソフトを使うよりはJavaを勉強したほうが、早道でしょうか? アドバイスをよろしくおねがいします。
978 :
デフォルトの名無しさん :03/11/05 02:27
>>974 がなにいってるのか分かるひとっているのかな?
>>977 何に手間が掛かって何がうまくいかないのだろうか?
何と何を比較して早道なのか?
カタワがおおいなオイ。
M=random ↓ M>0.5であれば、「1」を表示して終了 ↓ M<0.5であれば、「2」を表示して最初に戻る こんなかんじの簡単なやつなんですが何故か「2」を一度だけ表示して、無限ループのようになります。 このソフトの使い方を完璧にマスターするくらいなら、Javaをしっかりマスターするほうがいいのかと思いましてしつもんさせていただきました。
>>978 どっちもわからぬ。
みんな質問が下手糞だ。
981 :
デフォルトの名無しさん :03/11/05 03:15
>>978 お前が日本語読解能力ないだけだろ?
普通にわかると思うぞ
訳すと
一行目は引数が二つあって一つ目がファイル名、二つ目が文字列名
で一つ目で指定したファイル内に二つ目で指定した文字列名があれば、その文字列をある文字に変換したいんだろ?
それには969で指定してるwriterをどうすればいいのか?
965、967のやり方では駄目なのか?
三行目は不明だが
多分言いたいのはそういうことだろ
というか質問内容が読みにくくて質問に答えるのが面倒くさいというのがあるわな。 MLでもああいう質問は叩かれるか無視される
昔も質問したのですが、もう一度質問させてもらいます。 1、ブラウザからパラメータを受け取り足し算をして返すものと 2、エクセルからセルデータをコピーペーストできるものを くっつけたいと思っています。 1、サーブレット 2、アプレット でそれぞれ作成できたのですが。 質問A)アプレット+サーブレットは可能なのでしょうか? 質問B)その場合どこか参考になるHPなどはないでしょうか? 質問C)↑の質問とは別に、2の機能をサーブレットに直接実装できるってことはないでしょうか? これから、質問Aのように進めようと思ってるのですが、 先に進んでる先輩方の助言をよろしくお願いします。
>>983 アプレットからサーブレットに値を渡したいんだったらTomcatなりを構築
してPostやGetでできます。こっちは割と初心者向け。ただし文字列限定。
Integer.toString() や Integer.parseInt() で数値もオッケー。
/*
コンパイラがフリーな上になんでもできる言語だから様々なレベルの
人達が入り組んでて混乱してるな。
初心者用とJava2ペタペタ派とJava1.1コア派で分けないとワケワカランぞ。
*/
985 :
デフォルトの名無しさん :03/11/05 06:41
BufferedReaderで、テキストファイルを一行ずつ読み込んだりするのはよくありますが、 縦に一列ずつ読み込んでいくことって可能でしょうか?
Swing の話なのですが、Tabbedで今現在選択されている Indexが知りたいのですが、 JTabbedPane selsecttabbedPane = new JTabbedPane(); //preview tab selsecttabbedPane.setLocation(2, 7); selsecttabbedPane.setSize(300, 60); selsecttabbedPane.addTab("1", panel2); selsecttabbedPane.addTab("2", panel2_2); selsecttabbedPane.addChangeListener(this); public void stateChanged(ChangeEvent e){ System.out.println("jjj "+selsecttabbedPane.getSelectedIndex()); } にしても、ここでエラーが出てしまいます、、 どなたか教えてください
java.lang.NullPointerException at ImageColorRUN.stateChanged(ImageColorRUN.java:366) at javax.swing.JTabbedPane.fireStateChanged(Unknown Source) at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source) at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source) at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source) at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source) at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$MouseHandler.mousePressed(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
>>987 ( ・∀・)
と ) | | ガッ
Y /ノ | |
/ ) .人
_/し' < >_Λ∩
(_フ彡 V`Д´)/
/ ←
>>987
651なのですが、INIT内ではうまく数字が帰ってきますが、 stateChanged(ChangeEvent e)やactionPerformed(ActionEvent ae) のなかでは帰ってきません。。 どうしたらいいのか、解決策をお願いいたします。 なにかそれ以前のていぎほうがまちがっているのでしょうか。。 java.lang.NullPointerException at ImageColorRUN.actionPerformed(ImageColorRUN.java:321) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) がでてしまいます
651→986 でした。。すみません・・
君の書いた ImageColorRUN.java の 366行目で null 参照しているんだよ。 366行目はここだろ? >System.out.println("jjj "+selsecttabbedPane.getSelectedIndex()); ポインタ参照の対象は System. out, selsecttabbedPane だが、 System はクラスだから当然除外、ちうか System.out が null であることはまずなかろうから selsecttabbedPane が null 。 "INIT" メソッドにローカルな変数 selsecttabbedPane に入れっぱなしで、 インスタンスの変数 selsecttabbedPane (同名はよくないなぁ・・) に参照させていないから、で FA。
ぬるぽぐらいデバックで確かめろと言いたい
>>985 地球人の使う多くのテキストファイルは各行の文字数がまちまちで、
クラスを用意しても挙動に統一性がもてなくなるに決まってるから、
地球上ではニーズが無い。そういうものは Java は用意しない。
つーかファイルってのは、あとから読むことも考えて書き込むんだから、
自分の作った形式なら横に読むように改めろ。他人の作った形式なら諦めろ。
994 :
デフォルトの名無しさん :03/11/05 11:40
梅
竹
松
6つ子ザンス
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。