1 :
デフォルトの名無しさん :
2001/08/14(火) 21:13
2 :
名無しさん :2001/08/15(水) 02:19
ここまでくると興味も薄れるのかな?
というか、いいかげんスレ統一してくれ。
4 :
デフォルトの名無しさん :2001/08/15(水) 08:35
5 :
デフォルトの名無しさん :2001/08/15(水) 09:06
下のコードで、オーバーライドしたはずのメソッドが呼び出されません。 MyClass m1 = new MyClass("ぎこ", "はにゃーん") とすると MyClass の equals が呼び出されるのですが、 Object m1 = new MyClass("ぎこ", "はにゃーん") とすると、MyClass の equals が呼び出されてくれないみたいですが、何故だか分かりません。 3つめの equals で true にするにはどうすればいいのでしょうか、 詳しい方、教えて下さい、よろしくお願いします。 import java.util.*; class MyClass { public String a; public String b; MyClass (String a, String b) { this.a = a; this.b = b; } public boolean equals(MyClass o) { System.out.println("MyClass#equals 呼ばれてるよん"); return (a.equals(o.a)) && (b.equals(o.b)); } }
6 :
4。長いので続き :2001/08/15(水) 09:07
class Test2 { public static void main (String[] args) { try { Object s1 = new String("Hello"); Object s2 = new String("Hello"); System.out.println(s1 + "\n" + s2 + "\n" + s1.equals(s2)); MyClass m1 = new MyClass("ぎこ", "はにゃーん"); MyClass m2 = new MyClass("ぎこ", "はにゃーん"); System.out.println(m1 + "\n" + m2 + "\n" + m1.equals(m2)); Object obj1 = new MyClass("ぎこ", "はにゃーん"); Object obj2 = new MyClass("ぎこ", "はにゃーん"); System.out.println(obj1 + "\n" + obj2 + "\n" + obj1.equals(obj2)); } catch (Exception e) { System.out.println(e); } } } ---- 実行結果 ---- Hello Hello true MyClass#equals 呼ばれてるよん MyClass@2f6684 MyClass@738798 true MyClass@4b222f MyClass@3169f8 false
---- 実行結果 ---- Hello Hello true MyClass#equals 呼ばれてるよん MyClass@2f6684 MyClass@738798 true MyClass@4b222f MyClass@3169f8 false
8 :
デフォルトの名無しさん :2001/08/15(水) 09:17
それはオーバライドではなくオーバロードです。 APIドキュメントを見直しましょう。
JLS読め。
10 :
4 :2001/08/15(水) 10:33
>>8 >>9 レスどうもありがとうございます
とりあえず、こうした
public boolean equals(Object o) {
System.out.println("MyClass#equals(Object) 呼ばれてるよん");
if (o instanceof MyClass) {
MyClass x = (MyClass)o;
return (a.equals(x.a)) && (b.equals(x.b));
} else {
return false;
}
}
けど、気に入らないので引続き調べます。
>>4 =10
基本的なMyObejct.equals(Object o)の実装は以下の流れがいいよ。
public boolean equals(Object o){
if (this == o) { return true; }
if (obj != null && this.getClass() == o.getClass()) {
MyObject mo = (MyObject)o;
if( ここでthisとmo属性を比較 ) {
return true;
}
}
return false;
}
特に派生クラスについて考えがないうちは、
instanceofよりgetClass() がいいと思う。
このあたりは「Javaの鉄則」という本にかなり詳しい。
12 :
4 :2001/08/15(水) 22:09
>>11 ウヒョー、ありがとうございます!!
たしかにここで instanceof を使うとマズイですね、
派生クラスでも true になるときがあるからダメなんだ。
「Javaの鉄則」調べてみたらなかなか良さそうな本だった、今度読んでみます。
こういうTips集を読んで、いろいろ理解した方が良いかも > 自分
13 :
Java厨房@近況報告 :2001/08/15(水) 23:17
先日は大変有り難うございました! 自分は、今日からJTable戦線に突入します。 以上 (プツ)
>>13 Swing山塊の中でもJTable戦線は非常にゲリラの抵抗が強い地帯である。
中心にあるJTable山を始め
TableModel岳
TableCellRenderer渓谷
TableEvent回廊 など
守るに易く攻めるに難し地形である。注意されたし。
しかし、貴殿の力をもって慎重かつ大胆にコードーすれば、
やがて、ゲリラも貴殿の配下となり、優秀な部下となってくれるであろう。
健闘を祈る。
15 :
デフォルトの名無しさん :2001/08/16(木) 01:37
コアAPIライブラリ内で、最初はわけがわからんので手をつけ ない人が多いだろうけど、慣れると楽しいもの一覧 Javaプレイヤーの醍醐味: java.rmiパッケージ omg.org.CORBAパッケージ 初級: java.textパッケージ javax.swing.tableパッケージ java.awt.imageパッケージ 中級: java.awt.dndパッケージ javax.namingパッケージ 上級: java.securityパッケージ 穴場: java.lang.refパッケージ (使ったことない人多いかも知れないが、実は美味しい)
16 :
デフォルトの名無しさん :2001/08/16(木) 01:44
javax.swing.plafパッケージで、 オリジナルLookAndFeel造ったことある人っています?
>>15 RMI楽しいのか。
今から、サーバー&クライアントを作らねばならなくて、
Socketでシコシコ作るか、RMIか迷ってたんだけど、RMIにしよう。サンキュー
java.rmiパッケージ
omg.org.CORBAパッケージ
java.textパッケージ
javax.swing.tableパッケージ
java.awt.imageパッケージ
java.awt.dndパッケージ
javax.namingパッケージ
java.securityパッケージ
java.lang.refパッケージ
のうち、tableとimageしか使ったことないや。
もっといろんなものを試さねば、、。
javax.swing.text も面倒。
19 :
デフォルトの名無しさん :2001/08/16(木) 02:46
20 :
デフォルトの名無しさん :2001/08/16(木) 09:02
Windows上でコンパイルし動作確認した JAVA のソースコードを Unixにもっていき、コンパイルしました。 でも動作結果はWindows版と異なりました。 Windows上でコンパイル済みの CLASS ファイルを UNIX に もっていって実行したらちゃんと動きました。何故ですか。
21 :
デフォルトの名無しさん :2001/08/16(木) 09:52
コンパイラのバージョンの違いは?
>>20 どんなふうに違うのだろう?
スレッド周りは、気をつけてコーディングしないと全く違った動きになるらしいよ。
23 :
22 :2001/08/16(木) 10:20
あ、オレぼけてる。VMの動作とかそういう意味じゃないのね、スマソ。
24 :
20 :2001/08/16(木) 19:52
通信対戦オセロのプログラムだったんですけど、 「どの石がひっくり返せるか」の判定部分の動作が異なっており、 ありえない位置の石が勝手にひっくり返ったりしてたんですが。 通信部分はなんでもなかったです。
25 :
デフォルトの名無しさん :2001/08/16(木) 21:09
>>24 漢字コードの違いが影響しているとか?
単なる思い付きだけど。
26 :
デフォルトの名無しさん :2001/08/17(金) 00:44
それぞれのJDKのバージョンは?
27 :
デフォルトの名無しさん :2001/08/17(金) 00:45
20は典型的なオシエテ君なので放置よろしく>ALL
28 :
デフォルトの名無しさん :2001/08/17(金) 01:14
>>27 すくなくともあんたよりは向上心ありそうだから、継続
29 :
20 :2001/08/17(金) 02:43
懲りずにレス >通信対戦オセロのプログラムだったんですけど、 >「どの石がひっくり返せるか」の判定部分の動作が異なっており、 判定部分ってことは、基本的に 【計算・条件分岐・ループ】しかないんだろうなぁ。 確かに、違いがあると思いにくいところではある 決定的に、「この行で○○と××というふうに結果が違うんだ!」といった 目星がつかない状態なのか?>20 あと>26さんのいうJDKのバージョンは、オレも知りたい。 java -version してくれい。
30 :
29 :2001/08/17(金) 02:44
上の20は間違いで、28=23=24です。やっぱりボケテル、寝ます。
31 :
30 :2001/08/17(金) 02:45
また間違った 上の28=23=24は間違いで、29=23=24です。 こりゃ冥界にでも逝ってきますわ
32 :
20 :2001/08/17(金) 03:26
UNIXは学校にあるものを利用しており、なぜかtelnetが繋がらない ので java コマンドは実行できないのですが 手元にあるプリントに、コンパイラのパスが /usr/java/jdk1.3.0_02/bin と書いてあります。 WINDOWS のほうは java version "1.3.0_02" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_02) Java HotSpot(TM) Client VM (build 1.3.0_02, mixed mode) でした。
33 :
デフォルトの名無しさん :2001/08/17(金) 09:24
booleanの変数名ですが isTrueとかbe動詞をもてるものは良く使われますが、 動詞だとdoUseとかdoShowになるんでしょうか?
34 :
デフォルトの名無しさん :2001/08/17(金) 11:02
int i = 0 としたときにループを使わずに、 iの数だけ空白文字列を表示することできますか?
35 :
デフォルトの名無しさん :2001/08/17(金) 11:03
36 :
デフォルトの名無しさん :2001/08/17(金) 11:37
>>34 String spaces = " ";//必要なだけの長さを持つもの
String result = spaces.substring(0, i);// i は spaces.length()以下
なんてどう?
37 :
デフォルトの名無しさん :2001/08/17(金) 12:50
#define MAXSPCSIZE 1024 //必要な長さだけ用意 char spc[MAXSPCSIZE+1]; void init() { memset(spc, ' ', MAXSPCSIZE); spc[MAXSPCSIZE] = '\0'; } int getspc(char* buf, int size) { if(size > MAXSPCSIZE) return -1; strncpy(buf, spc, size); return 0; } あらかじめinit関数で初期化してgetspcでsize分のスペースを取得
38 :
デフォルトの名無しさん :2001/08/17(金) 12:51
|うぇーん、まちがえちゃったよー  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ (´Д⊂ヽ ⊂ 37 ノ 人 Y し (_)
39 :
デフォルトの名無しさん :2001/08/17(金) 14:43
>>36 なるほど、アイデアですね。
とりあえず5文字くらいの空白でいいので、その方法いただきます
40 :
デフォルトの名無しさん :2001/08/17(金) 16:32
IBMのコンパイラ「JIKES」について質問です。 Apache + Resin + JIKES (Linux) の組み合わせで、JSPページに アクセスすると、"500 Servlet Exception Charset conversion error at offset 0: Argument list too long" というエラーが出てしまいます。 JIKESではなくJDK付属のJavacを使うとエラーは出ませんが、 コンパイルにとても時間がかかります。JIKESのエラーは どうやったら取り除けるのでしょうか? 英語は苦手では ないのですが、このエラー文の意味がよく理解できません。
41 :
デフォルトの名無しさん :2001/08/17(金) 17:30
>>39 そんな、空白文字の十分な長さのハードコーディングが必要な
ロジックを必要もないのに使うべきではないとおもわれ。
スケーラビリティという言葉の意味を考えれ。
String spaces(int count){
StringBuffer buf = new StringBuffer();
for(int i = 0;i< count ;i++)buf.append(" ");
return buf.toString();
}
みんなの回答はもっともなんだけど、そもそも
>>34 の書いている
>>int i = 0 としたときに
という前提が激しく気になる。
確かに。
44 :
ふーん :2001/08/17(金) 23:40
Sunってわけわかめだね。なにがしたいんだ?
ネガティブキャンペーンの一種じゃないの?
47 :
デフォルトの名無しさん :2001/08/18(土) 00:05
Sunって韓国系企業なのかな?
消費者に見せても意味ないよね。 むしろ、 Javaが不要なものだという認識を植え付けてしまうことになりかねないのに。
49 :
net.ch2.uma :2001/08/20(月) 18:12
JHBの高木は何様のつもりなんだ、 質問者がさらしあげられてるぞ
>>49 まああの人のメールは大人気ないけど、うんざりしているであろう
ことも事実。JHは本当は質問箱じゃないはずだったのに。
ひろみちゅ先生は、最近それは諦めて、一応相手もしてくれている。
検索エンジンのつかいかたも知らない園児ニアは首吊って死ねという
ひろみちゅ先生の意見には同意。
52 :
デフォルトの名無しさん :2001/08/20(月) 22:40
質問なんですが、 String(byte[] bytes, String enc) のencに入れる文字列の表とかってあります??
53 :
デフォルトの名無しさん :2001/08/20(月) 22:52
54 :
デフォルトの名無しさん :2001/08/20(月) 22:53
ありがとうございます >53
56 :
メール :2001/08/23(木) 14:16
jdk1.1.8です。 net.*を使ってメールを送信するプログラムを作ったのですが、 相手先のメールアドレスが間違っている場合でも送信ができるみたいで、 結果的にSMTP鯖(か?)がエラーメールを返してきてから、あ、メアドが 間違っていたのねん。気づきます。 これを、Javaプログラム上で知る方法はないでしょうか。 (メールを送信するときの送信エラーをキャッチする??) SMTPの仕様上、どうやっても不可能なことなのでしょうか。 JavaハウスのMLは検索してみましたが、どうも満足できる回答はありませんでした。
58 :
メール :2001/08/23(木) 14:31
>>57 あ、このスレはあげてはいけなかったんですか。すいません、空気よんでいなくて。。。。
というわけで、下げました。ご勘弁を。
今しらべたのですが、JavaMailAPIで、上記のことが実現できるかどうかを
考えていたのですが、はじめて知ったので調べるのが大変そうです。。ご存知の方いらっしゃいませんか。
無理に誘導しなくてもいいと思うのだけど。 スレが終わりそうになったら合流すれば?
と言うか普通に考えてこっちが本スレなのに なんであっちに移動するんだ?
62 :
:2001/08/23(木) 21:40
こっちの方が古いし、ネタは歓迎したくないのでこちらにしたら?
63 :
デフォルトの名無しさん :2001/08/23(木) 22:01
>>62 じゃあネタを書くところがなくなるじゃん。
統合はできないね。
64 :
デフォルトの名無しさん :2001/08/23(木) 22:01
普通の質問 -> こっち ネタ心者 or DQN質問 -> あっち でいいんじゃないの?
65 :
名無しさん@XEmacs :2001/08/23(木) 22:27
ジャワハウスの高木さんコアイのですが、 なんとかなりませんか?
66 :
:2001/08/23(木) 22:54
>>64 オレもそう思う。
ネタ心者スレ と 相談室 は用途がかなり違うと思うよ。
雰囲気も違うし。
というわけで、統合しないでいいだろ。
>>64 本来その筈だったのに
その使い分けが破綻してるんだよね。
位置づけとしては
相談室→本スレ
ネタ心者→派生スレ
って印象なんだけど。
とりあえずどっちかのスレが終わるまで待って
その後統合したらいいのでは?
新スレは「Java相談室 Part5」で良いと思うけど
そこは立てる人の判断と言うことで。
仕切りスマソ。
ほとんどネタ心者 or DQN質問だから使い分けできないのは仕方ないと思う。 どちらにするかはともかく、統合で良い。
70 :
デフォルトの名無しさん :2001/08/24(金) 02:52
次スレタイトルを Java相談室(上級編) Part5 とでもすればよい。
>園児ニア どうでもいいがワラタ。拙者も使わせて頂きたく。
72 :
デフォルトの名無しさん :2001/08/24(金) 04:06
JAVAのグラッフィクライブラリにAWTというのがありますが、 これは通常の会話でなんと読むのでしょう? Swingは「スウィング」ですよね? AWTは「アウト」?
そう
アワット
75 :
デフォルトの名無しさん :2001/08/24(金) 10:56
JUMP TO .NETっていつβ版とかまだリリースされていませんか? 情報求む!
今時Javaを初めて学ぶっつーこと自体ネタだ・・
しかもネーミングにひねりのない *相談室 をsageるのは納得
Java相談室(上級)==JavaHouse==ぶ板ひろみちゅスレでよし!
よってsage
>>72 ネタ?
77 :
デフォルトの名無しさん :2001/08/24(金) 14:50
76がむかつくのでage.
78 :
デフォルトの名無しさん :2001/08/24(金) 16:44
煽りにのったら負けだよん。無視無視。
79 :
デフォルトの名無しさん :2001/08/25(土) 04:10
>>47 Sunは副社長が印度人じゃなかったかな?
80 :
デフォルトの名無しさん :2001/08/25(土) 04:15
81 :
デフォルトの名無しさん :2001/08/25(土) 04:35
中級編も作ってクダサイ
82 :
sa :2001/08/25(土) 08:55
javaのアプリで実用的なものつくった人いますか?
マターリイコウヨ sageでね
Javaやっているうちに、昔さんざんやっていたC/C++のソースを見ても、 なにがなんだか解らなくなっている自分に気がついたのですが・・・ 皆さんはどうですか?
85 :
デフォルトの名無しさん :2001/08/25(土) 14:04
>>82 今まさに作ってるよ。
正月くらいに完成する予定。
初期出荷はたぶん1万台くらい。
86 :
デフォルトの名無しさん :2001/08/25(土) 14:22
SunOfficeの開発はどうなってますか?
87 :
デフォルトの名無しさん :2001/08/25(土) 14:26
Javaアプレットで以下のソースを実行すると java.lang.NullPointerException at java.awt.Container.addImpl(Container.java:341) at java.awt.Container.add(Container.java:228) at UnitPict.init(UnitPict.java:126) at sun.applet.AppletPanel.run(AppletPanel.java:344) at java.lang.Thread.run(Thread.java:484) のエラーとなるんですがこんなことはできないのでしょうか? <ソース> import java.awt.List; public class test extends java.applet.Applet { private List[] list; public void init () { int i; for(i = 0; i < 5; i++){ add(list[i]); } } }
88 :
デフォルトの名無しさん :2001/08/25(土) 14:43
>>87 Appletってあまりしらないけど、
listってどこかでnewしてる? list[i]もね。
89 :
87 :2001/08/25(土) 14:50
すいませんソース再度アップします。 newはしてます。 import java.awt.List; public class test extends java.applet.Applet { private List[] list; public void init () { int i; list = new List[5]; for(i = 0; i < 5; i++){ add(list[i]); } } }
90 :
デフォルトの名無しさん :2001/08/25(土) 15:33
91 :
87 :2001/08/25(土) 17:03
なるほどできました。 これで前にすすめます。
awtよりswing使ったら?
93 :
デフォルトの名無しさん :2001/08/26(日) 04:18
この質問はここでよいのかな? Javaのリファレンス本が欲しいんですが、何がお勧めでしょう? 目をつけてるのはオライリージャパンの虎の本なんですが、 あれって分冊でGUIなどを扱う訳本はまだでてないですよね? なお、オンラインドキュメントは無しの方向でお願いします。目が疲れます。
>>94 Javaは初心者です。VC++は使うけどオブジェクト指向とは無縁で、
実質Cとして使ってます。コンソールで用は済んでますからね。
今回Javaを使う理由は、主に勉強のためです。
半年後にJavaアプリケーションの簡単なゲームをフリーで公開できる、
てのを目標にしてます。
96 :
デフォルトの名無しさん :01/08/26 13:55
>>93 アプレットじゃなくてアプリケーションですか。
>>96 そうです。アプレットだとローカルに保存とかできないし、
別にネットゲームを作りたいわけではないですし。
98 :
デフォルトの名無しさん :01/08/26 17:12
JavaAPIプログラミングガイドって本使ってるけど古いからなぁ。
あの分厚い本全部買え
>>93 Swingだけなら、ソフトバンクから出ている
「速習Java Swingプログラミング」
がいいと思う。
これで概略を知って、
細かいところはオンラインリファレンス
というパターンがいいのでは?
101 :
93 :01/08/27 03:34 ID:p5SEei1c
あ、IDがついた。
回答ありがとうございます。
全部…だと結構お金がかかりそうなので貧乏学生には厳しい…。
とりあえず
>>100 のお勧めを考慮して本屋へ行ってきます。
>>101 貧乏でもひまがある学生には、言語仕様だけ理解したら、あとはAPI
ドキュメントとにらめっこしながらトライアンドエラーで片っ端から
試してみるのが良いと思われ。
どうせ入門書なんて、java.awt.*,java.lang.*,java.io.*あたりの
ライブラリのうちのほんのちょっとくらいしか説明していないと思われ。
ネットワーク関係とマルチスレッド関係は、Java言語に拠らないので
抽象的な概念レベルは他で勉強するのもあり。
103 :
名無しさん :01/08/27 12:37 ID:0AZt6oQw
dwaImageしたgifに、カラーキー(みたいの) を適用できる関数の名前をおしえてください。
104 :
デフォルトの名無しさん :01/08/27 14:24 ID:iwLjBB9c
>>103 dwaImageしたgifって何?
カラーキー(みたいの)って何?
>>103 createImageで取得したBufferedImageはカラーキーをもてないはず。
別のアプローチで行きませう。
106 :
103 :01/08/27 16:57 ID:0AZt6oQw
え、できないんですか? それじゃ、どーすりゃいいんだ・・・・
107 :
103 :01/08/27 18:56 ID:0AZt6oQw
あの、いま、gifをフォトエディタで開いて、透過色を指定したら、 そのまま透明になったみたいなんですが、 プログラムの方では指定する必要はないんですか?
>>93 GUI(Swing)やるんなら グラフィックJAVA2 Vol.2 Swing編 上巻・下巻
が良くできていると思います。
あとは、トラよりもワニの方がいいかなぁと。
トラ = JAVAクイックリファレンス (現在 第3版?)
ワニ = JAVAプログラムクイックリファレンス
トラ読むのも、オンラインリファレンス読んでも一緒。
ワニは、ちと内容が古いけれどもね。
109 :
デフォルトの名無しさん :01/08/27 20:28 ID:iwLjBB9c
>>107 言っている意味が不明だけど、gifイメージを読み込んで、その背景を
透明にしたい、とか言うこと?
BufferedImageはアルファ値を含んでいるので、これを0にすれば透明
になるけど、gifから読み込んだ画像の特定の色を透明にするには、多
分IndexColorModelなんかをいじる必要があると思うよ。
まあ、頑張ってね。
110 :
:01/08/27 20:39 ID:6Dum1ROk
>>108 あの本って、画像に某アニメの物を小さく使用してるけど、
著作権上問題ねーのかな?
112 :
デフォルトの名無しさん :01/08/28 02:41 ID:Zh6hAVDo
SDK1.3+Windows98の話です。 JFrameを拡張したクラスに以下のメソッドを付けました。 Windowを閉じるときに、本当に閉じても良いか確認をする為の ダイアログを表示しようと思ったからです。 protected void processWindowEvent(WindowEvent e){ if (e.getID() == WindowEvent.WINDOW_CLOSING) { int i = JOptionPane.showConfirmDialog( getContentPane(), "終了しますか?", "確認", JOptionPane.YES_NO_OPTION); if(i != JOptionPane.YES_OPTION) return; } super.processWindowEvent(e); } しかし、実行すると「Javaのページ違反です」というエラーが出てしまいます。 何か対処方法や別なやり方があるでしょうか?
113 :
93 :01/08/28 04:02 ID:2e02HzLc
色々お答えいただいてありがとうございます。 まだ本屋は行ってないんでお勧めいただいた本やサイトを チェックしてみます。 オンラインは検索性では優れてるんだけど読みやすさでは 厳しいですね。読む場所もラックの前に限られますし。 まあ一長一短なのでどちらか一方というのではなく 適宜使いやすい方を使っていきます。
114 :
デフォルトの名無しさん :01/08/28 10:35 ID:KIHiAtKE
>>112 Windows98はないので、Windows2000で確認しましたが、問題は出ません。
多分、コードの問題より、環境の問題ではないでしょうか。
javaのページ違反って、よくIMEとの相性で発生していた気もします。
115 :
112 :01/08/28 12:14 ID:18PS4fPM
>>114 そうですか。ワザワザテストまでしてもらって有難う御座いました。
116 :
デフォルトの名無しさん :01/08/28 14:52 ID:9tYsESVU
フリーソフトで、Javaのコードから、UMLのシーケンス図を自動生成する のありません?
117 :
デフォルトの名無しさん :01/08/28 18:15 ID:cbSdBiME
>>116 あるとしたら、すごいUMLになるほげ。
118 :
デフォルトの名無しさん :01/08/28 23:47 ID:yKYsvzrg
119 :
デフォルトの名無しさん :01/08/29 06:19 ID:PAVB.Id.
JPanelにJButtonなどを入れてremoveした後repaintすると表示が消えたんですが その後に他のJButtonなんかをaddしても表示されないっす! ウィンドウサイズを手動で変更すると表示されます 組込んだボタンを表示させるにはどうしたらいいのですか?
>>116 MagicDrawは、うまくいかないことが多いよ。
複雑なクラスを読み込ませると、解析不可になる。
>>119 その場合、
Jpanel.validate()
じゃないか?
122 :
119 :01/08/29 07:00 ID:PAVB.Id.
123 :
119 :01/08/29 07:04 ID:PAVB.Id.
124 :
デフォルトの名無しさん :01/08/29 07:43 ID:j0A/fmuE
結城 浩さんの「Java言語プログラミングレッスン」を読んでるんですが 56ページのthis("NO NAME")の意味がわからなかったが 独習javaを立読みしたら意味がわかった(金ない)
>>124 thisやsuperで?になるなら、
正直、金を借りてでも、
もう1冊本買って、Javaの全体像をつかんだ方がいいと思う。
126 :
121 :01/08/29 09:55 ID:U4n7tREo
>>119 「Javaの落とし穴」の第31項そのままの問題っす。
(Javaの落とし穴 --ソフトバンクパブリッシング ISBN4797313587)
127 :
デフォルトの名無しさん :01/08/29 10:43 ID:FJKf36QE
仕事上、iアプリをやる羽目になってしまいました。 しかし携帯の端末IDを取得する方法がわからず、かなり困っています。 ご存知の方、いらっしゃったら教えてください。お願いします。 検索しても、HTMLタグで取得する方法しかヒットしないし・・・泣きたいです。
128 :
DB :01/08/29 16:08 ID:6xt9nRfo
SQL Server 7.0(2000)をJDBCでアクセスしたいのですが、ODBC-JDBCブリッジでなく、 NativeのJDBCドライバ(SQL Server用)というのは、ないのでしょうか。
初歩的な質問です。 なぜ、Javaには unsigned な型がないのでしょうか?
130 :
デフォルトの名無しさん :01/08/29 21:16 ID:7L0go79A
unsignedな数値が入っている型はないわけじゃないよね。
132 :
119 :01/08/29 22:09 ID:eftNAd.2
>>121 何から何までアリガト!
さっそく購入します
SoftRefferenceが参照クリアされるタイミングって コントロールできないでしょうか? オンメモリキャッシュを実装したいのですが、Soft Refferenceをそのまま使うと、自分にとっては都合の 悪いタイミングでクリアされてしまうので、意味なく なってしまいます。
134 :
124 :01/08/31 03:45 ID:VsZf0TtE
>>125 プログラムは最近始めたんで、わからないことばっかですん
> thisやsuperで?になるなら、
> 正直、金を借りてでも、
> もう1冊本買って、Javaの全体像をつかんだ方がいいと思う。
どんな本を買えばいいですか?
そこんとこを、もう少し詳しく教えてくださいm(__)m
135 :
125 :01/08/31 14:34 ID:g32sIM5c
>>134 オレは高いけど、この本がおすすめ
「Bruce EckelのJavaプログラミングマスターコース(上・下)」
ISBNは、 上が4894711443 下が4894711451
でもね、、、、高いんだ。(上・下)で\9000くらいする。
とりあえず、124さんのレベルを見る限り、上巻だけでいいかも知れない。
「この本見て、分かんなかったらJava諦めろ」とオレは断言してぇ。
この本の特徴は、とにかく例題がめちゃめちゃ多いこと。
使い方は、ひとつひとつ例題を読んで、
頭の中でどういうふうに実行されるのか、追うこと。
ただし、実行結果の図がないから、それは不満。
(しかし、その分、ソースコード追いに熱中?できる)
書店の棚では、多分置いてない。
置いてあるのは、Laoxのザコム1階とか書泉とか、そんな感じっす。
136 :
134 :01/08/31 18:32 ID:Oqg4yKRI
>>125 昨日が誕生日だったん出
誕生日プレゼントとして買ってもらいます。
137 :
デフォルトの名無しさん :01/08/31 19:46 ID:3vYzxI62
アプリケーションで、drawString使って、 日本語表示(SJIS)したいんだけど、 文字化けしてしまいます。Byteに入れてから 元に戻す方法もやったけど、ダメでした。なぜにでしょう?
Unicodeにしとけ。
139 :
漏れ :01/08/31 22:33 ID:pE65iCCQ
>>137 文字列コード変換はJDK1.4にあると思うよ。1.4β使ったら?
>>137 アプリケーションでなぜSJISを表示する?
142 :
134 :01/09/01 16:58 ID:XhGErCWU
143 :
137 :01/09/03 11:42 ID:CwY//GjA
>>140 ,141
開発の制限で、JDK1.3.1縛りなので・・・。
と言うか、Linux上のアプリで、文字化けさえ直って
くれれば問題ないのですが、Win2000では、ちゃんと表示できたんだけど
String st = "ほげ"として、Byte化するときに"EUCJP"にして取り込んで
String("ほげ","EUCJP")として表示したけど、まずいっすか?
144 :
デフォルトの名無しさん :01/09/03 14:03 ID:OdRBrtXY
>>143 環境変数 LANG=ja_JPはちゃんと設定してる?
っていうか自分がかつてこれでハマッタ(汗
それから日本語フォント関係とかも要チェックかも
(自分も良く分かってないんだけど)
ちなみに最近のオラクルはインストーラがJavaなんだけど
ORACLE8をVineLinuxFTP版にインストールしようとしたら
日本語フォントが足りないらしくてぐちゃぐちゃに文字化けした
その時はLANG=Cでにして英語モードにしてインストールした
145 :
. :01/09/03 20:14 ID:M6keYyO2
<html> <head><title>kuidhfv</title> </head> <body> <SCRIPT Language="javascript"> <!-- function inputCheck(strName) { if (strName == "") { window.alert("?"); } else { window.alert("[" + document.from1.txtName.valur + "]"); } } //--> </script> <center> <br> <from name = "from1"> <input type="text" size="40" name="txtName"> <input type="button" value="CLICK" onclock=inputCheck(document.from1.txtName.value)> </from> </center> </body> </html> これのいったいどこがいけないノデ? 誰か教えてくれないノデ?
147 :
145 :01/09/03 22:38 ID:RA.qLofM
誰か教えてくれないノデ?
148 :
デフォルトの名無しさん :01/09/04 00:19 ID:wt87u7r2
はじめまして。ぜんぜんド素人なんですけど、 Javaって何かパッケージソフトみたいなの 買わないといけないのですか。 また、もしそうなら値段高いですか。
149 :
148 :01/09/04 00:30 ID:wt87u7r2
スミマセン、スレ違いですね。 すれ立てるまでも〜スレにコピペしまーす。
150 :
学生 :01/09/04 01:57 ID:sYlbmBZA
Javaの開発環境にForteかJBuilderかで悩んでます。 どちらがオススメですか?
>>150 私はJBuilderを使って勉強しておりForteは使ったことないんだけど
どっちも無料で試せるよね?(確か
試して好きなほう使えばいんじゃないですか
しかしながら個人でちゃちいプログラムしか組めてないので
開発環境はGUI部分だけ使っってたりする・・・
>>150 両方使ってみて、自分の好みを選べばいいと思うけど、
オレはJBuilder派。
エディタとしての動きが秀逸だと思う。
153 :
デフォルトの名無しさん :01/09/04 05:36 ID:aP.zwmOM
Forte重い。 やっぱ、メモリ128Mしか積んでないからか。。。
154 :
学生 :01/09/04 08:44 ID:sYlbmBZA
そんなに重いんですか? 僕のPCもメモリ128Mなんですが・・・
155 :
デフォルトの名無しさん :01/09/04 10:44 ID:x6d7eKIA
156 :
デフォルトの名無しさん :01/09/05 00:44 ID:FfgftmWM
>>154 アプリケーションサーバーとウェブサーバも動かしながら
使ってるから重いのは仕方ないと思うが、確か推奨256M
だったと思う。
>>155 同感
157 :
学生2 :01/09/05 06:48 ID:H6UTYNUo
>>155 ,156
なぜドキュメントを、DLしなきゃいけないんですか?
ドキュメントってナニに役に立つのやら・・・・・
ものすごく記憶力の良い奴なんだろう
160 :
学生3 :01/09/05 09:28 ID:ClRjd6/6
APIドキュメントやらチュートリアルなしにどうやんだYO! コピペできないじゃんかYO!
161 :
学生2 :01/09/05 11:36 ID:9QIzIM3g
>>157 2ch=AIドキュメントだと思ってるな貴様
たっぷり煽り騙りを入れてやるから覚悟しろ!
163 :
デフォルトの名無しさん :01/09/05 11:55 ID:2jrQB/6A
>>157 まず落としてみなよ。役に立つから。
ナニの役に立つものが欲しいなら、その後で半角板に行きなよ
なよ。
彼はきっとドキュメントの内容をすべて記憶している 天才なのですよ。
165 :
初心者A :01/09/05 13:52 ID:01yEZVP6
ライブカメラ映像を表示するJavaアプレットの作り方教えて下さい! 参考になるHP知ってたら教えて! お願いします。
>>165 1から作るのはかなり大変だよ。
WindowsMediaとかReal使えば?
>>165 -166
というか、そういう機能を持ったJavaBeanがガイシュツで流通していれば一発解決なんだろうな。
ついでにソースも有りならば(後から)勉強する役にも立つんで超ウマー
で。
delでいうDelphianWorldみたいに、JavaBeanを山ほど集めたwwwサイトって、
どっかに有ったら教えてくださいm(__)m
168 :
デフォルトの名無しさん :01/09/05 15:52 ID:DtBIACGY
MacでJavaアプレットの読み込みが遅いんで困っています。 Macでjavaアプレットを読み込むと最初のinit()が開始されるまで約5秒程度かかります。 ちなみにWindowsだと表示まで1秒もかかりません。 環境はIE4.5+MRJ2.2.4を使用してます。 ためしにHotJava(英語版)をダウンロードしてみましたがこちらだと2秒程度で表示してくれます。 今の環境でなにか解決する方法はないでしょうか?
>Windowsだと表示まで1秒もかかりません ネスケでやってみよー 遅くて普通、アプレットなんてそんなもんだ
170 :
lisper :01/09/05 17:03 ID:K4QyhwUw
ドラッグ&ドロップの実装のメカニズムがわからん 誰か教えてー
172 :
lisper :01/09/05 19:53 ID:K4QyhwUw
>171 上のページ見てもわからんし、リファレンス見てもよくわからんのです。 わかりやすい日本語で噛み砕いて説明してくれませんか?
173 :
学生2 :01/09/05 20:12 ID:cK/uBqXs
174 :
_ :01/09/05 20:58 ID:5Rk4ItjA
175 :
デフォルトの名無しさん :01/09/05 21:57 ID:apkAnBaA
JDK1.4ベータを試したいんですが、今使ってるJDK1.3はアンインストールしないと駄目ですか?
ドラッグ&ドロップって、JavaWorldに最近載ってたような。
>>170 176に同意、あれはわかりやすくて良かったよ
178 :
afro :01/09/06 19:37 ID:Xp5cqXJw
ごめんください。 Observableの使い方が申し訳なくも全然分かりません。 Observable 継承したクラスの、ボタンのActionListener 内 setChanged(); notifyObservers(this.vector); 別クラス implements Observer update(Observable obs, Object o){ this.vector = o; } エラーはでてないけど、Observerの方に値が届いていないくさいっす。 これは、Observable の使い方がおかしいのか、Vector の使い方がおかしいのか、 結局、一人では何が何なのかわかりません。 時間のある方、誰か助けてください・・。
180 :
スポイラー :01/09/06 20:49
どんぞ。
>>170 おれはいいかげんな説明のwebページにやられてたクチ。
final DropTargetListener dtl = new DropTargetListener() {
public synchronized void dragEnter(DropTargetDragEvent dtde) {
/**/System.out.println(count() +" dragEnter");
}
public synchronized void dragExit(DropTargetEvent dte) {
/**/System.out.println(count() +" dragExit");
}
public synchronized void dragOver(DropTargetDragEvent dtde) {
/**/System.out.println(count() +" dragOver");
}
public synchronized void drop(DropTargetDropEvent dtde) {
/**/System.out.println(count() +" drop");
// (1)対象物のサポート可能性を判定する。dtde.isDataFlavorSupported()。
if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
// (2)ドロップを受け入れるか、または拒否する。dtde.acceptDrop()またはrejectDrop()。
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
// (3)(受け入れた後に)データ変換。tr = dtde.getTransferable()、tr.getTransferData()。
final Transferable tr = dtde.getTransferable();
//
try {
final java.util.List fileList; {
fileList = (java.util.List)tr.getTransferData(DataFlavor.javaFileListFlavor);
}
/**/System.out.println("files = "+ fileList);
// (4)(完了時に)ドロップの成功または失敗を通知。dtde.dropComplete()。
dtde.dropComplete(true);
} catch (Exception ex) {
// (4')〜。
dtde.dropComplete(false);
}
} else {
// (2')〜。
dtde.rejectDrop();
}
}
public synchronized void dropActionChanged(DropTargetDragEvent dtde) {
/**/System.out.println(count() +" dropActionChanged");
}
//
private int count = 0;
private int count() {
return ++count;
}
};
181 :
デフォルトの名無しさん :01/09/06 21:18
>>178 よくわからんが、Observableを継承したクラスの方で、
ちゃんとaddObserver(Observer o)をやってるよね?
182 :
スポイラー2nd :01/09/06 21:27
同じよなやりかたでうまくいったけど?
>>178 import java.util.*;
class Observee extends Observable {
private Vector vector = new Vector ();
public void makeSomeChanges () {
vector.add ("(blah, balh, bhal..)");
vector.add ("(something newly added)");
setChanged ();
notifyObservers (vector);
}
public static void main (String[] args) {
final Observee observee = new Observee ();
final Observer observer = new Observer () {
public void update (Observable o, Object arg) {
System.out.println ("observer.update() has called");
System.out.println (" arg = "+ arg );
}
};
observee.addObserver (observer);
observee.makeSomeChanges ();
}
}
$ javac Observee.java
$ java Observee
observer.update() has called
arg = [(blah, balh, bhal..), (something newly added)]
$
183 :
class noName :01/09/07 00:35
こんばんは。 Java勉強し始めたばかりです。 ドキュメントやWebで調べたのですが、解決できなかったので教えてください。 class replaceTest{ public static void main(String[] argc){ String s1 = new String("Yahoo! Japan"); System.out.println(s1); System.out.println(s1.replace('Yahoo!', 'google')); } } 上記のコードだと私が望む結果は、 google Japanと表示されることなのですが、 「replaceTest.java:5: 文字リテラルが閉じられていません。」 というエラーが出てしまいます。 どこがいけないのか、ご教授ください。
184 :
優しいおにいさん :01/09/07 00:41
charとStringは全く違います。 charは1バイト。文字列は扱えません。
185 :
デフォルトの名無しさん :01/09/07 01:16
すいません、初心者です。 先日「速習JavaSwingプログラミング」なる本を入手して早速APIドキュメント、及び他のJava参考書 をゲットし、色々勉強しながらswingのフレームのところを勉強しています。 この本の45ページからあるSwingのレイヤードペインに内部フレームを乗せる、というプログラムで 下記の不具合が出て、その原因が分からず苦慮しています。 <プログラムの概要:ボタン(JButton)を押すと内部フレームがレイヤ層(全部で5層)に表示される。> <不具合> ・フレームは表示されるがボタンを押してもその内部のレイヤに表示される(という)内部フレームが 表示されない <対策> ・ソースの見直し ・当該書籍に付属のCDROMにあるソース(このプログラムのソース)をそのままコンパイルしても不具 合解消せず。 <私の環境> ・JDK ver1.3.1 ・Windows ・エディタ:フリーのエディタ(SJIS仕様) エラーメッセージでも出ればやりがいがあるのですが、何も表示されません。(鬱 またこの書籍はJDK1.2の環境を前提に考えられているようですので、もしかしたら仕様の違いなので しょうか? このエラーでずいぶん勉強していますが、正直そろそろ答えを知りたいと思います。 教えて君ですが、どうかこの不具合の解消方法を教えて下さい。 (必要あらばソースも掲載します。ただ少々長いかもしれませんが・・・100行弱)
186 :
デフォルトの名無しさん :01/09/07 01:20
>>184 javaのcharは2バイト。
>>183 replaceは文字列の中の特定の1文字を別の1文字に変えるメソッド。
System.out.println(s1.replace('!', '?')); ==> "Yahoo? Japan"
↑こういう風に使う。
もちろん、望む結果にはならない。
特定の文字列を別の文字列に変えるメソッドは……
探したけど見付からなかったな
187 :
優しいおにいさん :01/09/07 01:21
ソース貼ってください。
188 :
優しいおにいさん :01/09/07 01:25
>>186 そうでしたね。'\u0000'〜'\uFFFF'ですね。すみません。
文字列replaceはStringクラスに存在しないので、僕は
専ら自作メソッドつかってます。
>>186 > 特定の文字列を別の文字列に変えるメソッドは……
> 探したけど見付からなかったな
作るのはたいしたことないけど,「え?こんなの無いの?」って感じだね。
String って文字列定数で変更できない文字列のはずなのに 何で、replace メソッドが備わってるの? > 特定の文字列を別の文字列に変えるメソッドは > 探したけど見付からなかったな 自己レスだけど、いろんなアルゴリズムがあるから、だよね
>>187 早速有難うございます。すいませんソースですが、どうも
・長すぎる
・改行が多すぎる
とのエラーが出て、書きこみ出来ないようです。
いくつかのスレに分割すればいいのでしょうが、そうすると他の皆さんに
ご迷惑がかかるのでやや憚れます。それでも乗せても良いですか?
では、半分ずつをsageでどうでしょう。
import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class TJLayeredPane extends JFrame implements ActionListener { JButton button; JLayeredPane layeredPane; static int frameCount = 0; static final int xOffSet = 25; static final int yOffSet = 25; int numFrames = 1; Integer[] layerConstants = { JLayeredPane.DEFAULT_LAYER,JLayeredPane.PALETTE_LAYER, JLayeredPane.MODAL_LAYER,JLayeredPane.POPUP_LAYER, JLayeredPane.DRAG_LAYER }; String[] layerNames = { "Default Layer", "Palette Layer","Modal Layer", "Popup Layer","Drag Layer" }; Vector framesVector = new Vector(); public TJLayeredPane(){ super("TJLayeredPane"); JPanel panel = new JPanel(new GridLayout(3,3)); panel.setBorder(BorderFactory.createTitledBorder("Click the Specific Button to Add Frames or Clear Frames")); for (int i=0; i<layerNames.length+1; i++) { if (i < layerNames.length) { button = new JButton("Add to "+layerNames[i] ); button.setActionCommand(layerNames[i]); } else { button = new JButton("Clear the Frames"); button.setActionCommand("Clear"); button.setForeground(Color.red); } button.addActionListener(this); panel.add(button); } getContentPane().add(panel, BorderLayout.SOUTH); layeredPane = getLayeredPane(); addWindowListener(new WindowEventHandler()); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setSize(400, 400); show(); }
public void actionPerformed(ActionEvent e) { JButton tempButton = (JButton) e.getSource(); if (tempButton.getActionCommand() == layerNames[0]) { // for default layer. addInternalFrame(0); } else if (tempButton.getActionCommand() == layerNames[1]) { // for palette layer. addInternalFrame(1); } else if (tempButton.getActionCommand() == layerNames[2]) { // for Modal layer. addInternalFrame(2); } else if (tempButton.getActionCommand() == layerNames[3]) { // for pop-up layer. addInternalFrame(3); } else if (tempButton.getActionCommand() == layerNames[4]) { // for Drag layer. addInternalFrame(4); } else if (tempButton.getActionCommand() == "Clear") { for (Enumeration enum = framesVector.elements(); enum.hasMoreElements();) { ((JInternalFrame) enum.nextElement()).dispose(); } frameCount = 0; } } public void addInternalFrame(int index) { JInternalFrame iFrame = new JInternalFrame( "In " + layerNames[index], true, // can be resized true, // can be closed true, // can be maximized true); // can be iconified framesVector.addElement(iFrame); iFrame.setLocation(xOffSet*(frameCount),yOffSet*(frameCount++)); iFrame.setSize(200,150); iFrame.setDefaultCloseOperation(iFrame.DO_NOTHING_ON_CLOSE); iFrame.setFrameIcon(new ImageIcon("smiley.gif")); layeredPane.add(iFrame, layerConstants[index]); } class WindowEventHandler extends WindowAdapter { public void windowClosing(WindowEvent evt) { System.exit(0); } } public static void main(String[] args) { TJLayeredPane frame = new TJLayeredPane(); } }
以上2つです。宜しくお願いします。>優しいおにいさん様
196 :
優しいおにいさん :01/09/07 02:36
JInternalFrameの可視化をしてないですね。 addInternalFrame()ので、最後に iFrame.setVisible(true)してみましょう。
しまった、上げてしまった。ごめんなさい。
>>190 この文字列内にあるすべての oldChar を newChar に置換した結果生成される、新しい文字列を返します。
だから、変更するんじゃない。
StringBufferのreplaceも文字列置き換えとはちと違う。
199 :
lisper :01/09/07 06:58
センキュ>176,177,180 今GUIのFTPクライアント作ってんの。 完成したらソースフリーで公開するね。
>>196 やっと解決しました。ありがとうございました!
しかしsetVisbleメソッドは一度APIドキュソメントで見たはずなのに・・・
まったく使い方分かってなかったようですね。逝ってきます。
あと長いソースでご迷惑をおかけしました。>皆様
皆様ありがとうございました。 たしかにcharだから、一文字ですね。 もっと精進します。 では。
202 :
デフォルトの名無しさん :01/09/07 07:54
JAVAゲームの事で教えて欲しいのですが、 お気に入りのJAvaゲームのあったHPが閉鎖しちゃいまして それで、そんな事もあろうかとIEのキャッシュからコピーして とっておいたんですが、どうもうまく立ち上がらず困ってます。 HTMファイルは開くんですが、JAVAアプレットが開かないんです。 どうやったらうまくいくのか教えてください。 因みに「ワイヤーハング」ってゲームです。
203 :
デフォルトの名無しさん :01/09/07 09:00
>>202 エラーメッセージは?
クラスファイルもキャッシュからみつけてリネームした甲斐?
204 :
デフォルトの名無しさん :01/09/07 12:42
>>203 はい。
エラーメッセージは「無効なパス」とかなんとか。
クラスファイルも入れました。
クラスファイルだけをリネームするんですか?
すいません、よく解らないです
キャッシュからファイルを抜くと、[1]って言うのが
すべてのファイルの名前についてたので、
それをもとにリネームして
あとはHTMファイルをクリックしたんです。
もしかして「とんちんかん」なことしてます?
抜いたファイルをどうするか?−から教えていただければ
助かるのですが。すいません、注文しちゃって。
>>204 まずさ、htmlでそのゲームアプレットはどういうふうにかかれてるよ?
<applet ...とかかかれてるっしょ?それをここにはってみ。
>>181 addObserver は別クラスの main でやってます。
分かりにくい書き方しちゃって申し訳ないです。
>>182 ソース例、参考になります、ありがとうございます。
やっぱりちょっと原因がわからないのですが、もう少し頑張ってみて事後報告いたします。
まじ分かんなかったら、ソースちゃんとのっけてみます。
207 :
デフォルトの名無しさん :01/09/07 13:56
>>205 <APPLET CODE="WireHang.class" WIDTH="240" HEIGHT="320">
です。
208 :
coelacanth :01/09/07 14:10
Javaアプリケーションで"C:/temp"に保存してあるtest.gifを読込み、 表示させる方法がわかりません。 教えてください。
209 :
デフォルトの名無しさん :01/09/07 14:44
>>207 では、そのhtmlファイルのあるディレクトリ(フォルダ)に
WireHang.classってのがあるんだよね?
210 :
デフォルトの名無しさん :01/09/07 14:53
211 :
デフォルトの名無しさん :01/09/07 15:01
>>208 なんとかToolKitクラスを使うんじゃなかったっけ。
APIリファレンスの索引で「getImage」とかのメソッド名を
探してみれば?Appletクラス以外にもあるはずだ。
212 :
デフォルトの名無しさん :01/09/07 15:22
>>210 その状態で出るエラーメッセージを正確にここにかいてみてちょ。
エラーはブラウザのステータス行?それともJavaコンソール?
213 :
デフォルトの名無しさん :01/09/07 15:34
>>211 そんで、ImageIconコンポーネントに孕ませて、
コンテナにaddすればいいでしょ。
214 :
デフォルトの名無しさん :01/09/07 15:45
>>212 exception: com.ms.security SecurityExceptionEX[WireHung.init]:
java.io.IOException:bad path: D\oo\i\ringray.gif
desu!
215 :
デフォルトの名無しさん :01/09/07 15:59
>>214 WireHang.classのpublic void init()メソッドでかつてサーバにあった
ringray.gifって画像ファイル読み込んでいたんだね。
で、このgifファイルが必要なことはもちろんだけど
WireHang.classを逆コンパイルしてその部分を書き換えないことにはだめそうだね。
とりあえず mochaなんかでWireHang.classを逆コンパイルするしかないね。
逆コンパイルしていいかどうかは自分で判断してね。
216 :
デフォルトの名無しさん :01/09/07 16:02
>>215 画像へのURLを絶対で「/oo/i/...gif」とかハードコードしてるのかな?
ひょっとすると「コピーしちゃいや!」の意志表示とも解釈できるが。。
>>216 いやgetCodebase()からのパスで指定してるんだと思われ
たぶん214さんはローカルにhtmlおいてfile:///で読み込んでいるものと思われーよ
218 :
デフォルトの名無しさん :01/09/07 16:10
>>215 ringray.gifも抜いたんであります。
他にも背景やらキャラ画なんかも。
あ、そうか。 じゃーhttpサーバたててやったらSecurithExceptionは回避できるかも。 あとはgifファイルを正しい場所におけば。
httpサーバたてずとも、appletviewerでやるとうまくいくカモ!
221 :
デフォルトの名無しさん :01/09/07 16:19
>>219 あ、出来た!
元々Dドライブの00ってフォルダに全部置いてあったんですが、
iフォルダをそこに作って画像ファイルを入れたら動きました!
どうもありがとうございました、助かりました。
222 :
デフォルトの名無しさん :01/09/07 16:31
ディレクトリの構成まちがっただけなのね。。
223 :
デフォルトの名無しさん :01/09/07 18:31
ASCIIのグラフィックJAVA2 vol3 はいつでるのでしょうか?
224 :
デフォルトの名無しさん :01/09/07 18:32
死ね>222
>> 181
Observable継承したクラスにaddObserverしたら上手くいきました。
なんで別クラスのmainからじゃ駄目なんですか。
public class test {
public static void main (String[] args) {
O1 o1 = new O1();
O2 o2 = new O2();
o1.addObserver(o2);
}
}
public class O1 extends Observable {
Vector vc = new Vector();
vc に色々代入
setChanged();
notifyObservers(this.vc);
}
public class O2 implements Observer {
public void update (Observable obs, Object obj) {
objを受け取りたい
}
}
これって何かおかしいすか?
update自体が呼び出されてないみたいなんです。
きっとおかしいのに違いない。
こんな駄目駄目なのにつき合わせてごめんさい。
>>181 >>182
修正>225 3行目、Observable継承したクラス「で」です。 おかげさまで今は上手くいっています。 ありがとうございました。>181>182 でも、原因は分からないままなの・・。
>>225 Observableの派生クラス「から」addObserver呼び出し?
別クラスのmainからだとだめって?なんのこと?
(
>>182 のつづき)
import java.util.*;
class test {
public static void main (String[] args) {
final Observee observee = new Observee ();
final Observer observer = new Observer () {
public void update (Observable o, Object arg) {
System.out.println ("observer has notified: arg = "+ arg);
}
};
observee.addObserver (observer);
observee.makeSomeChanges ();
}
}
$ java test
observer has notified: arg = [(blah, balh, bhal..), (something newly added)]
関係ないみたいよ?つかどーいうテストしてんのさ。
>>225 class O1 (extends Observable)のナカミがへん。メソッドがないぞ。
ひょっとして、addObserverする以前にnotifyObserversしてるとか。。
まさかな。
はっ。まさかネタ??初心者を甘やかしてダメにしてやろうって遊び心を快く思わない正義の人がおれを弄んでるのかまさかそうかいやきっとしかしなんでくそだはあ(泣)
230 :
デフォルトの名無しさん :01/09/07 21:02
インスタンスがつかってるメモリの容量を調べることってできますか? できれば無料のAPIがいいのですが
>>230 おれはSystemクラスのアレでナニしたが、
正しい方法なのかはしらん。
>>182 >>228 本当、申し訳ないんですが、そのまさかかもす。
いや、でもそんなことは無いようにも思います。
O1 {
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
vc.setElementAt(data);
setChanged();
notifyObservers(vc);
}
});
}
ボタンを押したときにnotifyObserversしてるので、addObserverした後ですよね。
afroはただの初心者です。
安心してダメにしてください。
233 :
元スポイラー :01/09/07 22:14
まず、イベントによって、どこまでのコードが 確実に呼ばれてるの。答えられなければおかしいぞ。
234 :
デフォルトの名無しさん :01/09/07 22:35
よーするに判断力不足、判断の材料の集め方がわるいと思われ。そこ押えれば効率あがるよ。
やっぱり、addObserverする前にnotifyObserversしてました。
ごめんなさい。
>>234 の通り、結局、分かってなかったのはそういった順番とか受け渡し方だったくさいです。
ActionListenerを内部クラスにしたりしたら上手くいきました。
それさえなぜかも分からないし、かなり混乱してきたんで、
ちゃんと勉強してきます。
お騒がせしました。>元スポイラーさん
>>235 悪いことは言わないから、JBuilderとかの無料版のIDEを手に入れて、
actionPerformed()の内部にブレークポイントを張ってステップ実行
してみましょう。実行時のフローがよく分かりますよ。
237 :
デフォルトの名無しさん :01/09/07 23:52
>>232 ちなみに、O1クラスってObservableを継承しているんだよね。
とすると、buttonは、O1クラスのメンバとしてframeを作って、
それにaddしてる訳け? それでも問題なく意図した動作するは
ずだけど、でも、何か変な感じだね。
普通は、frameを継承したクラスの中で、別に作ったObservable
を継承したクラスのオプジェクトを使うと思うけどね。
それから、VectorのsetElementAtは
setElementAt(Object obj, int index) だよ。
いずれにしても、貼り付けたコードは、実際のものとは違うようだ
から、よくわからん。
238 :
デフォルトの名無しさん :01/09/08 02:46
インスタンスとオブジェクトは違うのですか?
同じようなもののようですが、厳密なニュアンス?をとると オブジェクト:モノ(具象抽象を含む全ての概念) インスタンス:存在、実在 と言う感じだと思っています。 オブジェクトの(例えばメモリ上、又はストレージ内での) インスタンス、と言う言い方がよく使われます。
Javaだと同じだけど、見方によって言い分けされてる かもしれないな。 単に「オブジェクト」といえばただの「対象」だけど、 「インスタンス」(=例、場合)といえば、その背後に その特殊な例の属する大きな、一般的なグループ(つまり「クラス」) があるってことを意識することになる。 Java以外ではそれだけの問題じゃないことがあるから注意。 たとえばある種のオブジェクト指向言語だと、 クラスもインスタンスもみんな「オブジェクト」だ、ていう 扱い方をするから、「インスタンス=オブジェクト」では ぜんぜんまずい。そんなとき、 「インスタンスオブジェクト」 「クラスオブジェクト」 って言い分けると便利。てなこともあるらしい。 (実はあまりよく知らないのでほとんど想像)
具体的には、 「××クラスのインスタンス」 「××のインスタンス」 というふうに使うことが多いよね。 例をあげると、 「Stringクラスのインスタンスを生成する」 「なんらかのオブジェクトを生成する」 は自然にきこえると思う。 でも、 「Stringクラスのオブジェクトを生成する」 「なんらかのインスタンスを生成する」 は、どこか不自然。なぜか?て考えると、やっぱり クラスを意識するかってところにかかってるんじゃないかな?
242 :
デフォルトの名無しさん :01/09/08 07:05
ASCIIのグラフィックスJAVA2 vol3はいつでるのでしょうか?
>239,240 ありがとうございます。 自分の認識が的外れではなさそうだということが分かりました。
あれは的外れというより、出来損ないのネタスレの例だ炉!
246 :
デフォルトの名無しさん :01/09/08 17:57
JavaにはPentiumV、Pentium4、Athlonのどれが向いてます? メモリはあればあるほど良いですよね?
>>246 SunのワークステーションにSunのOSを入れるのが一番よい
248 :
デフォルトの名無しさん :01/09/08 21:24
>>247 メンテコスト考えたら、PenマシンでWinにしときな
はったほうがよかとおもいもんす。
>>246 -248
前提無しに何を話しておるのかね
250 :
デフォルトの名無しさん :01/09/12 13:47
age
251 :
デフォルトの名無しさん :01/09/12 18:19
リンクリストの質問なんですけど、 下のように iterator を取得してループを回してるときに、 リストを変更すると、ConcurrentModificationException 例外が 投げられてしまいます。 LinkedList list = new LinkedList(); :// なんかリストに追加したりする ListIterator i = list.listIterator(); while (i.hasNext()) { Integer obj = (Integer)i.next(); // ここで例外が投げられる if (...) { list.add(new Integer(...)); // リストを変更する } } 調べたところ、 iterator は i.next() のときにリスト内の要素の数を覚えている 次に i.next() が呼ばれたときに、要素の数がさっきと違うのであれば 例外を投げる。みたいです。 例外を捕捉するように try ブロックを書いてみたところ、 延々と例外が投げられてループから抜けれなくなりました。 ループ中に要素を追加したり、削除したりしたいんですが どうすればできますか?長くなってすみませんが、わかる方アドバイス下さい。
252 :
デフォルトの名無しさん :01/09/12 18:39
>>251 せっかくListIteratorを使ってんだから、ListIteratorの
addとremove、setを使えばいいんじゃねーの。
>>252 ありがとう
add は iteratorの直後に要素を追加するメソッドだから
目的とは違う、と思って却下してました。
やりたいのは、新しい要素をリストの最後尾に追加することです。。
これは iterator 2つ使えばできる?
やっぱり例外投げられそうだけどやってみよう。。
254 :
251(自己レス :01/09/12 18:49
んー。 別に空リンクリストを用意して、そっちに新しい要素を追加する ようにしとく。 それでループが終了したら、新しく作ったリストの全部要素を 元のリストに追加する。…これで解決か。 もし251の方針でできるよ、ってのがあれば教えてほしいです
>>251 チョーダサいけど、Iteratorを使わないで、forでループする、って
いうのはドウよ。
単に最初から最後までループするだけなら、これでもできるよ。
256 :
デフォルトの名無しさん :01/09/13 02:56
ListIterator i = ((LinkedList)list.clone()).listIterator(); コレじゃダメか? リストのシャローコピー作っておいて、そっちでイテレータ廻す。 本体側には影響なしなはず。
>>255 -256
for-eachみたいな内部イテレータ無いの?
>>257 残念ながらないよー
そのうちテンプレートがサポートされるらしいから
そしたらできるかもねー(いつになるやら)
259 :
デフォルトの名無しさん :01/09/13 11:32
インターフェースについて質問です. Iterator iterator; iterator = allArrayList.listIterator(); while( iterator.hasNext() ) { ..... みたいなのありますよね. インターフェースってのはメソッドは定義しかされていないはずなのに この場合の hasNext() メソッドの内容はどこに記述してあるのですか? それと関連して、Iterator が、インターフェースである意義がわかりません.
260 :
デフォルトの名無しさん :01/09/13 11:46
>>259 hasNext()が実際やらなきゃいけない処理は
相手がArrayListかHashMapかLinkedListかによってまったく違う
だからlistIterator()等でで取得されるオブジェクトは
実際にはIteratorを実装したArrayやHashごとの別の
種類のオブジェクトなんだよ
でもインターフェースが統一されていれば操作を統一できるし
あとからArrayListからLinkedListに変更とかも簡単だろ?
つーか「ポリモーフィズム(多態)」の書き取り100回!
261 :
デフォルトの名無しさん :01/09/13 11:55
Visual Age for JAVA の使い方がサパーリわかりません。 初心者向けの解説ページはないですか。
262 :
デフォルトの名無しさん :01/09/13 13:33
>>260 どうもありがとうございます.
ほんとによくわかりました.
つまり、それぞれのクラスの中で
Iteretor を実装したクラスが定義されていて
それを生成してリターンしているわけですね.
2ちゃんすばらしいって思ってしまった
じゃあ、今から書き取りするのでこれで・・・
263 :
わからんちん :01/09/13 15:46
Statement stat; (DBにJDBC.ODBC経由でコネクトして) ResultSet rs = stmt.executeQuery(strHogeSQL); こんな感じでDBから取得したResultSetの中身を Stringの二次配列に格納しようとするとき、 二次配列の領域確保のために、行数・列数が 欲しいのですが、レコード数を取得する方法 が見つかりません。ドキュメントを見た限りでは ResultSetのレコード数を取得するメソッド見つからなかった のですが、こういうとき普通はどうするんでしょうか? 世界が大変なときにドキュソでスイマセン。
264 :
デフォルトの名無しさん :01/09/13 20:00
>>263 わちきもResultSetは知らんけど、ずいぶんほっとかれてるみたいから、一言。
Vectorでいいんじゃねーの。必要なら、その後で配列に入れれば。
>>263 どーしてもということなら、行数は
Select Count(*) From ... で取る。
列数は ResultSetMetaData を作って getColumnCount() を使う。
多言語で ADO とか使うときも、たいていそーなんだけど,
行数の取得は API を使わない(or 使えない)と思うのが吉。
まぁ、結局 ループで全レコード舐めるんだから
263の言う通り、Vector に順次 突っ込んでいくのが楽で良い。
>>264 重箱の隅だけど自分で配列にコピーしなくても
VectorにはtoArray()またはtoArray(Object[])ってのがあるよ
267 :
デフォルトの名無しさん :01/09/13 20:57
きっと初心者板にいけといわれるのを覚悟で伺いに来ました。 WIN2KでのPATHの設定方法又はその方法が判るページを教えていただけないでしょうか? WIN2KですとATOEXEC.BATを開けないのです。 どうかよろしくお願いします。
>>267 スタート>設定>コントロールパネル>システム>詳細>環境変数
>>267 なければ作れそれでも問題ない
もしくはコントロールパネルのシステムを捜せ
>267・268 早速探してみます。 本当にありがとうございました。
実はautoexecにpath書いとけば追加されたりする(2000でも
272 :
デフォルトの名無しさん :01/09/13 21:29
なるほど NT使った事ないので、 私も前前から疑問に思ってました
273 :
デフォルトの名無しさん :01/09/14 00:24
ポリモーフィズムって必須なの?なきゃないでいいんじゃん?<結構マジ思い
>>273 演算子オーバーロードも、構造体も、Cコンパイラも、
Javaも、VBも、Perlも、TCP/IPも、ExcelもWordも、
OSも、みんななきゃないで「なんとかする」ことは
可能です。
サルですみませんでした。好き嫌いせず学びます。 効果のほどを聞きたかったんですよ。 (T T) <古
>>275 入出力ストリーム関係のポリモーフィズムのおかげでおいらの作ったソフトは
Httpサーバーにあるファイルもローカルディスクにあるファイルも
まったく同じ処理ルーチンで扱えておかげでデバッグもえらく楽チンですが?
>>264 ,265,266
ご教授ありがとう御座います。
はじめselect count(*) でやろうとしたんですけど、order by
があってだめだったんですよね。Vectorでやってみます。ありがとう御座います。
ところでtoArray()って2次配列に使うときってどうすれば良いんでしょ?
Vectorの一次配列にすれば良い?とりあえず、全部一つのVectorに突っ込んで
ループさせときます(^^;
278 :
デフォルトの名無しさん :01/09/14 19:06
>>277 >>ところでtoArray()って2次配列に使うときってどうすれば良いんでしょ?
例えば、以下のようにするとか。
import java.util.*;
public class TestVec{
public static void main (String[] args) {
Vector vec = new Vector();
vec.add(new String[]{"hoge","foo","bar"});
vec.add(new String[]{"I","my","me","you","your","you","yours"});
String[][] array = (String[][])vec.toArray(new String[][]{});
for (int i=0; i<array.length; i++) {
for (int j=0; j<array[i].length; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
279 :
デフォルトの名無しさん :01/09/14 20:03
>>261 www.ibm.com
にチュートリアルとかPDFマニュアルが転がってるよ
ちゅーか製品版ならマニュアルあるし、ヘルプもひけるじゃん
使い方なんて覚えようとしないで、とにかく何か作るべし
気が付いたらこれなしではじゃヴぁできない体になります
280 :
デフォルトの名無しさん :01/09/14 20:41
void tower( int a, int b, int c, int d ) { if( a == 1 ) System.out.println( b + "→" + c ); else { tower( a-1, b, d, c ); System.out.println( b + "→" + c ); tower( a-1, d, c, b ); } という再起メソッドを反復処理にするにはどうすれば良いでしょうか?
281 :
名無しさん :01/09/14 21:54
フリーのコンパイラ&アプレットビューアってある?
282 :
デフォルトの名無しさん :01/09/14 21:57
283 :
名無しさん :01/09/14 21:59
では、教えてください
284 :
デフォルトの名無しさん :01/09/14 22:00
>>283 javac と appletviewer (大爆笑)
285 :
名無しさん :01/09/14 22:02
ありがとうございます(大爆笑)
286 :
デフォルトの名無しさん :01/09/15 00:56
ファイル構造を表すJTreeではまっています。多分単純なミスだとは思うのですが、全く解決できません。 ネタだと思わず何とか教えて下さい(Javaはじめて2週間のレベルです) ●したいこと ・JTree中の任意のノードをクリックしてそのパス文字列を任意の場所に返す(例えば同フレーム内のテキストフィールドとか) ●問題 ・JTreeコンポーネントのノードの部分をクリック(シングル及びダブルクリック)するとエラーが表示される。 ●動作状態 ・ローカルマシンのファイル構造(ディレクトリ)をJTreeに表示するためのTreeModelは書籍を参考にして何とか自作。後述しますがJTreeにaddTreeSelectionListenerしなければ、何をどうクリックしようがエラーは発生しませんでした(正常動作)。 ・importしているものの一覧 import javax.swing.*; import javax.swing.border.*; import javax.swing.text.html.*; import javax.swing.plaf.basic.*; import javax.swing.tree.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.util.*; ・ところがリスナをこのツリーに登録して、いざvalueChangedメソッドを使って変更された値を取ろうとすると、フレーム起動中に表示されているMSDOSの画面にエラーが出るのです(ちなみにどういうわけかコンパイルは全く問題なくコンパイルされます)。 ・手元の参考書・sunのチュートリアル・各Javaのサイトを覗いても、同じソース(sunのチュートリアル)を使っているみたいで全く参考になりません。 ●リスナのソースなど(フレームなどのソースは省きます) FileSystemModel fileSystemDataModel = new FileSystemModel(); // FileSystemModel(自作クラス=ツリーモデル) final JTree treeBox = new JTree(fileSystemDataModel); treeBox.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); treeBox.addTreeSelectionListener(new TreeSelectionListener() { String selectedDirectory; public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) treeBox.getLastPathComponent(); // この上にあるDefault...からgetLastPathComponent()の行に問題があるみたいですが??? if (selectedNode == null) { System.out.println("何もなし"); } else if(selectedNode.isRoot()){ System.out.println("ディレクトリだから逝ってよし"); selectedDirectory = ( "file:" + System.getProperty("user.dir") + System.getProperty("file.separator")); System.out.println(selectedDirectory); } else { System.out.println("その他だよ"); selectedNode = null; } }); <マシン環境> Windows 98 JDK1.3.1 どうか皆さんの知恵を初心者バカに貸してください。よろしくお願い致します。
TreeのNodeが、DefaultMutableTreeNode(又は そのサブクラス)じゃないんじゃないですか? キャスト失敗例外あがってませんか? エラーのスタックとレースと、Nodeをaddしてるところを 見せていただければはっきりすると思いますよ。
>>287 超速レスありがとうございます。「nodeをaddしている」ところってこのソースでいうところのclass FileSystemModel implements TreeModel だと思いますので、とりあえずその部分のコードとエラーをこれを含めて3つに分けて送信します。
長くなりますが、よろしくお願いします。(ちなみに286のコードはフレームのコンストラクタに記載しています(エラーは発生していません))
class FileSystemModel implements TreeModel {
private String root;
private Vector listeners;
public FileSystemModel(){
root = System.getProperty("user.home");
File tempFile = new File(root);
root = tempFile.getParent();
listeners = new Vector();
}
public Object getRoot() {
return (new File(root));
}
public Object getChild(Object parent, int index) {
File directory = (File) parent;
String[] directoryMembers = directory.list();
return (new File(directory, directoryMembers[index]));
}
public int getChildCount(Object parent) {
File fileSystemMember = (File) parent; // fileSystemMemberはフォルダ若しくはファイル
if (fileSystemMember.isDirectory()) {
String[] directoryMembers = fileSystemMember.list();
return directoryMembers.length;
} else {
return 0;
}
}
public int getIndexOfChild(Object parent, Object child) {
File directory = (File) parent;
File directoryMember = (File) child;
String[] directoryMemberNames = directory.list();
int result = -1;
for (int i = 0; i<directoryMemberNames.length; ++i) {
if (directoryMember.getName().equals(directoryMemberNames[i])){
result = i;
break;
}
}
return result;
}
public boolean isLeaf(Object node) {
return ((File) node).isFile();
}
public void addTreeModelListener(TreeModelListener l) {
if (l != null && !listeners.contains(l)) {
listeners.addElement(l);
}
}
public void removeTreeModelListener(TreeModelListener l) {
if (l != null) {
listeners.removeElement(l);
}
}
public void valueForPathChanged(TreePath path, Object newValue) {
// Does Nothing!
}
(つづく)
289 :
286その2 :01/09/15 01:30
(288のつづき) public void fireTreeNodesInserted(TreeModelEvent e) { Enumeration listenerCount = listeners.elements(); while (listenerCount.hasMoreElements()) { TreeModelListener listener = (TreeModelListener) listenerCount.nextElement(); listener.treeNodesInserted(e); } } public void fireTreeNodesRemoved(TreeModelEvent e) { Enumeration listenerCount = listeners.elements(); while (listenerCount.hasMoreElements()) { TreeModelListener listener = (TreeModelListener) listenerCount.nextElement(); listener.treeNodesRemoved(e); } } public void fireTreeNodesChanged(TreeModelEvent e) { Enumeration listenerCount = listeners.elements(); while (listenerCount.hasMoreElements()) { TreeModelListener listener = (TreeModelListener) listenerCount.nextElement(); listener.treeNodesChanged(e); } } public void fireTreeStructureChanged(TreeModelEvent e) { Enumeration listenerCount = listeners.elements(); while (listenerCount.hasMoreElements()) { TreeModelListener listener = (TreeModelListener) listenerCount.nextElement(); listener.treeStructureChanged(e); } } } (終わり) ●続いてエラーの表示の部分 (前半部分は途切れています・・・a:2117) at javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(BasicTreeUI.java:2683) at java.awt.Component.processMouseEvent(Component.java:3712) at java.awt.Component.processEvent(Component.java:3544) at java.awt.Container.processEvent(Container.java:1164) at java.awt.Component.dispatchEventImpl(Component.java:2593) at java.awt.Container.dispatchEventImpl(Container.java:1213) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2210) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125) at java.awt.Container.dispatchEventImpl(Container.java:1200) at java.awt.Window.dispatchEventImpl(Window.java:914) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.EventQueue.dispatchEvent(EventQueue.java:339) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
とりあえず以上です。 よろしくお願いします。(289 sageわすれて本当にすいません。。。)
>>290 ModelがDefaultMutableTreeNodeによるツリー構造に
なってないです。DefaultMutableTreeNodeへのキャスト
は必ず失敗します。
あなたのTreeModelの実装は、特に内部データ構造が
ノード操作をするためには圧倒的に不足しています。
とりあえず、自力でimplementするのは諦めてください。
モデルにはDefaultTreeModelをそのまま使用し、コンストラクタ
引数にDefaultMutableTreeNodeを与えてください。
FileインスタンスをDefaultMutableTreeNode.userObject
に保存するようにしてみましょう。setterとgetterがありますので
それで入出力できます。
DefaultMutableTreeNodeを継承したクラスを作成し、 toString()をオーバーライドしてください。 このメソッドによる出力が、JTreeのビューにおける ノードの表示内容になります。 FileインスタンスをuserObjectに格納しているのでしたら 例えばこんな感じでよいでしょう。 public class FileNode extends DefaultMutableTreeNode{ public FileNode(File file){ super(file); } public File getFile(){return (File)getUserObject();} public String toString(){ ((File)getUserObject()).getName(); } }
子ノードを追加したい時は、親のFileNodeに対して、子ノード (これもFileNodeにする)オブジェクト生成し、addしていく ようにしていってください。これで準備は完了です。 あとは、APIドキュメントとにらめっこです。
>>291 >>292 また超速レスありがとうございます。なんかものすごく逝けないことをやっていたみたいで・・・
初心者ですのでちょっと分からない部分があります。急ぎませんのでもしお時間があったら教えて下さい。
>ModelがDefaultMutableTreeNodeによるツリー構造になってないです。DefaultMutableTreeNodeへのキャストは必ず失敗します。
ということはせこせこノードをルートに加えていく作業が基本となるということでしょうか?
>特に内部データ構造がノード操作をするためには圧倒的に不足しています。とりあえず、自力でimplementするのは諦めてください。
速攻あきらめます(かなり時間がかかったのですが・・・)。また「圧倒的に不足」の意味が分からないので、何かわかるドキュメントとかありますか?
>モデルにはDefaultTreeModelをそのまま使用し、コンストラクタ引数にDefaultMutableTreeNodeを与えてください。
286のソースは下記の様に変更するということですよね?
(変更前)
FileSystemModel fileSystemDataModel = new FileSystemModel();
final JTree treeBox = new JTree(fileSystemDataModel);
(変更後:292参照)
FileNode fooModel = new FileNode();
final JTree treeBox = new JTree(FileNode);
またFileNodeクラスはフレンドリクラスでもいいんですよね(この辺が初心者的なんでしょうか?)
>FileインスタンスをDefaultMutableTreeNode.userObjectに保存するようにしてみましょう。setterとgetterがありますので
それで入出力できます。
この辺や292については明日以降の宿題としてちょっと頑張ってみます。
夜更けにも関わらず丁寧なレスを頂き本当に有難うございました。またこの件でわからなくなりましたら(多分明日??)
お願いします。
訂正です × final JTree treeBox = new JTree(FileNode); ○ final JTree treeBox = new JTree(fooModel); すいませんです
ダブルバッファやりたいんですがうまくできません。 ご教授のほどよろしくお願い致します。 import java.applet.*; import java.awt.*; public class Applet1 extends Applet implements Runnable { int x = 0; Thread t; Image buffer; Graphics bufferg; public void init() { // スレッドを開始する t = new Thread(this); t.start(); // バッファを作成する Dimension d = getSize(); buffer = createImage(d.width, d.height); } public void run() { try { while(true) { // 再描画を要求する repaint(); // ウィンドウを更新する前に休止する Thread.sleep(1000); } } catch(Exception e) { } } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { // バッファのグラフィックコンテキストを取得する if(bufferg == null) bufferg = buffer.getGraphics(); // バッファを描画する Dimension d = getSize(); bufferg.setColor(Color.white); bufferg.fillRect(0, 0, d.width, d.height); bufferg.setColor(Color.black); bufferg.fillOval(x, d.height/4, 50, 50); // ウィンドウを更新する g.drawImage(buffer, 0, 0, this); // x座標を増やす x += 5; if(x + 50 > d.width) x = 0; } }
297 :
デフォルトの名無しさん :01/09/15 11:45
>>296 うまくいかないっていうのは、具体的にどういうこと?
このアプレットの実行結果が、あなたの意図とどう違うのか、
それがわからないと応えにくいと思うけど。
説明が足りなくてごめんなさい。これをJbuilder5で実行するとエラーが出ます。 Exception occurred during event dispatching: java.lang.NullPointerException at Applet1.paint(Applet1.java:37) at sun.awt.RepaintArea.paint(RepaintArea.java:298) at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:196) at java.awt.Component.dispatchEventImpl(Component.java:2663) at java.awt.Container.dispatchEventImpl(Container.java:1213) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.EventQueue.dispatchEvent(EventQueue.java:339) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:85) Exception occurred during event dispatching: java.lang.NullPointerException at Applet1.paint(Applet1.java:37) at Applet1.update(Applet1.java:32) at sun.awt.RepaintArea.update(RepaintArea.java:337) at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:200) at java.awt.Component.dispatchEventImpl(Component.java:2663) at java.awt.Container.dispatchEventImpl(Container.java:1213) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.EventQueue.dispatchEvent(EventQueue.java:339) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
独習Javaと言う本の406ページのなんですが。
あと、2つほど教えていただきたいのですが、上のようなエラーが出たとき
どこをみたらいいのでしょうか? たとえば、
java.lang.NullPointerException
at Applet1.paint(Applet1.java:37)
だと、Applet1.javaの37行目がおかしいということでしょうか?
あと、Jbuilder5でVisual Basicのように途中の計算値をデバッグ画面等に
表示するにはどうしたらいいのでしょうか?
(VBでは、debug.print 変数名 で出来るんですが・・・)
>>298 さん
googleで検索したんですがわかりませんでした。JBHって何ですか?
301 :
デフォルトの名無しさん :01/09/15 19:34
>>296 まず、このアプレットが実行できないのは、JBuilderから実行したときで、
直接htmlファイルをブラウザで開けば実行できるよ。
classesディレクトリのApplet1.htmlをクリックしてみれ。
エラーは、
>>java.lang.NullPointerException
>>at Applet1.paint(Applet1.java:37)
>>だと、Applet1.javaの37行目がおかしいということでしょうか?
その通りで、ここではbufferがnullだということ。実際はinit()で
作成しているのに、何故かJBuilderでは出来ていない。もしかして、init()
が呼ばれていないのかも。
Jbuilderでアプレット作ったことがないから、バグなのか、何か設定がいるのか
わからないけどね。
で、JBuilderで動かすには、
>>if(bufferg == null)
>>bufferg = buffer.getGraphics();
の部分を、
if(buffer == null){
Dimension d = getSize();
buffer = createImage(d.width, d.height);
bufferg = buffer.getGraphics();
}
でいいけど・・・。いずれにしても、ちょっとぐずぐずなコードだね。
bufferへの描画は、runの中でやったほうがいいかも。
>>あと、Jbuilder5でVisual Basicのように途中の計算値をデバッグ画面等に
>>表示するにはどうしたらいいのでしょうか?
これは、やはりわからない。あまりJBuilder使ってないんで。
>>296 paint()でNullPointerExceptionが発生する可能性がある部分は
bufferg = buffer.getGraphics();
ですね。最初にpaint()が呼び出される時点では、
(その時点では、まだJVMはApplet1.init()をコール
していないためと思われます)buffergもbufferもnull
なのでしょう。bufferのnullチェック分岐してみてください。
かぶっちゃいましたね。ごめんなさい。
私は今大学4年で、卒業製作(美大なので)で何か作らなければいけないんですけど、
テーマを「触覚」ということにしまして、
web上で体験できるインタラクティブムービー的なものというか、
ユーザーのマウス操作に画像が反応して動くもの作ろうとしています。
最初はFLASHのアクションスクリプトなんとか作ろうとしてたのですが、
限界を感じ、javaでやってみようと思うようになったわけです。
まったくの素人なのですが、何からはじめていいのやら、
とりあえず本を探そうと思っているのですが、何かおすすめの書籍があったら
教えてほしいのです。ちなみにマジで素人なので
自分がやろうとしていること+初歩的基本的な技術解説が書いてあるやつがいいんですけど。
サンプルとして自分がやろうとしているのに近いことをやっているサイトをかいときます。
ttp://www.singlecell.org/january/index.html ttp://www.singlecell.org/may/
304のリンク先おもしろいネ
>優しいおにいさん ローカルのディレクトリ構造をJTreeで表示することについて質問させて頂いた者です。 その節はありがとうございました。 とりあえずオブジェクト指向プログラミングとは程遠い以下の様な石器時代的な手続き型 プログラミングで、DefaultMutableTreeNodeをつかい、何とか雛形を表示することが出来ました。 ---------------------------------------------- 親ノードのString型のパスを取ってFileインスタンス(hoge)を作って、hoge.list()で子ノードの 候補名をString型配列で受け取ってから、その配列の要素(=子ノード)ごとにfor文とif文 のネスト(今見たら6段)で、ノードかリーフかどうか判断したりして、最後に親ノードに くっつける。初期画面ではこんな方法でルートノードとその子ノードだけ作っておいて、その後は MouseListenerを使って任意のノードをクリックするたびに、そのノードの子を前述のように for文やif文などで条件判断して最終的にDefaultMutableTreeNodeとして、クリックされたノード にくっつけます。またクリックしたノードのパスはstaticとしてクラス宣言された変数に格納 するようにして再利用をはかる、という感じです。 --------------------------------------------- ですのでせっかく頂いたソースなのに、不勉強のためその内容がまだ分からないでいます。 クラスの継承の理解に非常に手間取っています。 まだまだ勉強不足のようです。ありがとうございました。 (ちなみに質問した時のソースは70%くらいがパクリです)
308 :
デフォルトの名無しさん :01/09/17 05:35
>304
http://www.njk.co.jp/otg/Study/JavaStudy/ ちと古いが、API1.1なのでまだ使えるじゃろう。
Swingのが良いのかも知れん。
グラフィックの表現力が格段に違うから。
ちょい前は劇重だったが、今時のマシンなら問題なかろう。
対応ブラウザで余計な心配しそうという問題はあるのだが。
あと、巷にAPI1.02対応となっている本を見かけたら、絶対に近寄ってはならん。
>>307 ご苦労様です。
JTreeには、ノードへのパスをオブジェクト化した、
javax.swing.tree.TreePathがあります。
TreePathオブジェクトから、そのTreeNodeを取得する
メソッドなどがあります。
今選択されているノードのTreePathを取得するメソッド
が、DefaultTreeModelのなかにあります。
また、DefaultMutableTreeNodeには、配下の全Node、
すぐ下の子供NodeなどのEnumerationを取得する方法など
もあります。
DefaultTreeModelにたいして、Nodeをつけたり外したり
すると、内部でイベント生成や通知を行うロジックが
自動的にJTreeのViewに通知を行い、表示がかわってくれ
ます。
このように、基本的にSwingでは欲しいものは大抵メソッド
として揃っているので、苦労して実装するひまがあるなら
APIライブラリを眺めてたたいてみるほうが遥かに効率的です。
(車輪の最発明が好きだというなら止めませんが。)
ということで、Javaを短期間にマスターするコツは、Cチック
にガリガリコーディングする事より、APIドキュメントを読む
ことに時間を割くことが第一だったりします。
コアAPIライブラリは、使っているうちにデザインパターンの
実装例として、OOPのテクニックを効率的に理解できる副作用
もあります。(コードの実装ではなくて、あくまでクラスの
構成や関係について。実装はあまり参考にしないほうが良いです。)
一度慣れてしまえば、ありすぎて困るとかよく言われる拡張
ライブラリの使い方なども、実はどれも似たようなものでしか
ないので、怖いもの無しになれるはずです。
その頃になれば、DefaultXXXでは物足りなくなって、自分用
カスタマイズクラスを華麗に実装できるようになるはずですよ。
ということで、頑張ってくださいませ。
>>309 レスありがとうございます。
>ガリガリコーディングする事より、APIドキュメントを読む
>ことに時間を割くことが第一だったりします。
APIドキュは穴のあくほど見ているはずなのですが・・・頭が硬いんですかね・・・
どうしてもCチックというよりBasicチック(しかもN88!笑)な考え方がこびりついて
いるようで、あの膨大なオブジェクト(クラス)の継承とやらの利用方法がいまいち
理解できていないようです。これがわかれば千人力なんでしょうね。
クラスの継承ってJavaのメリットの1つですもんね。
JTreeは勉強になります(苦笑)。
311 :
デフォルトの名無しさん :01/09/17 14:19
スレッドに関する質問です。 public synchronized String getText() { return this.text; } こういう、一行で単純に値を返すのみのメソッドを synchronizedにする必要ってあるんですか?
312 :
デフォルトの名無しさん :01/09/17 18:42
>>311 >>一行で単純に値を返すのみ
という条件だけでは、synchronizedが不要とは言えない。
その値が別のスレッドで変更されるかどうか、変更される場合は、値を返す
メソッドが、変更途中の無意味な値を返すことがないか、などが関係するから。
まったく変更されない値なら、synchronizedは必要ないけどね。
313 :
デフォルトの名無しさん :01/09/17 18:56
初歩的な質問をさせてください。 たとえばjava.util.LinkedList を使って整数の羅列を作りたいとき、import java.util.*; public class List { public static void main(String args[]) { LinkedList ll = new LinkedList(); for (int i = 0; i < 5; i++) { ll.addFirst(i); } } } これじゃだめなのはなぜですか? どうすればいいのですか?
iはintなんで無理、プリミティブ型とオブジェクト型は違う
レスありがとうございました。解けました。
316 :
デフォルトの名無しさん :01/09/17 20:03
エラーが起こる可能性がある処理をコンストラクラに記述するのはありですか?
コンストラクタで例外投げることは可能だよ たとえばjava.io.FileInputStreamとかがそうだし。
319 :
デフォルトの名無しさん :01/09/17 23:26
>>318 それが作法としていいものかどうか、ということだよね・・・
ものによりけりか。
Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java
Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java Ruby >>>>>>>>>>>>>>>> Java
322 :
デフォルトの名無しさん :01/09/18 00:17
323 :
デフォルトの名無しさん :01/09/18 00:20
>>322 ファウンデーションってどういうスペルだっけ?
324 :
デフォルトの名無しさん :01/09/18 00:21
foundationだろ
325 :
デフォルトの名無しさん :01/09/18 17:07
StringBuffer sbを int divisionValueで割った値を Stringで得たいのです。 LISPみたいです。スマートなやり方ないでしょうか? Integer.toString(Integer.valueOf(sb.toString()).intValue()) / divisionValue);
326 :
デフォルトの名無しさん :01/09/18 18:33
JDBC なんですが、 ResultSet rs = stmt.executeQuery( "SELECT COUNT(*) cnt from table;" ); int cnt = rs.getInt( "cnt" ); というのは何かおかしいですか? MySQL で直接 SQL 文を実行すると適当な値になるのですが、 上のコードだと 0 になってしまいます。
書いてからふと気づいた。 getInt の前に rs.next(); を入れたらとりあえず出た。
328 :
デフォルトの名無しさん :01/09/18 19:22
>>325 StringBufferを intで割った値を Stringで得るということ自体が
まったくスマートではないよね。
だから、スマートな方法なんてないと思うよ。
というのは、チャチャだけど、
>>Integer.valueOf(sb.toString()).intValue())
は、Integer.parseInt(sb.toString())でいいんじゃない?
>>308 レス有り難うございます。
足がかりには最適っぽいので、
ぜひ読んでみます。なんだか道が険しいそうなんですけど。
だめだったらFLASHに引き返します。
330 :
デフォルトの名無しさん :01/09/18 20:12
>>328 ありがとう!
型変換しまくる必要があるコードって確かにスマートじゃないですね
ローカルマシンのディレクトリをExplorerライクに表示するswing JTreeの利用に ついて下記のようなことが分かりましたのでご報告させて頂きます。 諸先輩方には笑われてしまいますが、私の様な初心者(私の場合Cもやっていないので ドキュソ)もいると思いますので少しスペースをお借りします。 ●TreeModelを自作、あるいはDefaultMutableTreeNodeでツリーを構成してい き、そのモデルあるいはノードを元にしたJTreeの任意のノード(ファイルもし くはディレクトリ)をクリックすると、以下の処置をしないとエラーが出るよう です。(ただ私の勘違いかもしれません) ・隠しファイル(hoge.isHidden()がtrue)、拡張子のない特殊ファイルを表示させない(クリックさせない)。 (これらをクリックすると私の環境では必ずエラーがコンソールに出力されます) ・選択されたノードからパスを得ようとする場合、その得たパス(TreePath)がnull(-1)の 場合もあるみたい(これはツリーの縮小・展開を担う小さなアイコン(虫眼鏡や小さなフォ ルダなどのアイコン画像)をクリックしたりすると場合により出るようです。)なので、 そのチェックは必ず行う。←気付けば「な〜んだ」でしたが、かなりバカな盲点でした。 以前よりJTreeについて長々と質問させて頂いた私ですが、BASIC(PC98 MSX X68K)→perl→ VB→Java と、まだまだ不勉強です。えらそうに書いてしまいましたが、何卒お許し下さい>皆様。
332 :
デフォルトの名無しさん :01/09/19 20:10
外部コマンドが認識するカレントディレクトリを変更するにはどうすればよいのでしょうか? System.setProperty("user.dir",System.getProperty("user.home"));↑こうしてもVM内部でしかカレントディレクトリの変更は認識されないようです。
333 :
デフォルトの名無しさん :01/09/19 21:58
>>332 言ってる意味が、javaから実行する外部プログラムに与えるディレクトリという
ことなら、Runtime#exec(String command, String[] envp, File dir)でdir
を指定すればいいと思うけど。それではマズイのかな。
334 :
デフォルトの名無しさん :01/09/19 22:28
実はJavaでFTPクライアントを作っているのですがサーバーからファイルを取得するとカレントディレクトリに保存されます。 それで他のディレクトリにファイルを保存したくて上のコードを実行してみたのですが、サーバーはカレントディレクトリの変更を認識しないようなので、上のコードではVM内部でしかカレントディレクトリの変更を認識しないようである、と思ったわけです。 で、どうすればいいんでしょうね?
>>334 好きなディレクトリのファイルを開いてそのストリームに書き込め
336 :
デフォルトの名無しさん :01/09/19 22:45
>>334 >>JavaでFTPクライアントを作っている
のであれば、好きなディレクトリに保存すればいいと思うけど、
そうできない訳があるの?
337 :
デフォルトの名無しさん :01/09/19 23:17
>>335 336
普通に絶対パスでファイル指定して書き込めば良かったですね。
阿呆でした。
338 :
デフォルトの名無しさん :01/09/20 15:18
JTreeでファイルエクスプローラを作っているのですが、 ファイル名を変更してそのファイル名をDefaultMutableTreeNodeのサブクラスの toStringで反映させるようにしたのですが、JTreeのupdateUIやrepaintを 呼び出しても変更後のファイル名が表示されません。 これはなぜでしょうか?
339 :
デフォルトの名無しさん :01/09/20 15:19
↑変更前のファイル名のまま、という意味です。
public void actionPerformed(ActionEvent e){ String name = JOptionPane.showInputDialog(LocalTree.getTree(),"ファイル名","ファイル名を変更",JOptionPane.QUESTION_MESSAGE); if(name != null && !name.equals("")){ FileNode node = (FileNode)LocalTree.getTree().getLastSelectedPathComponent(); node.getFile().renameTo(new File(System.getProperty("user.dir") + File.separator + name)); LocalTree.getTree().updateUI(); } } ↑こうしてもJTreeでのファイル名の表示が変わらないのです。 どうすればいいのでしょうね?
質問があります。 ディレクトリのFileオブジェクトをdelete()するとディレクトリの中にある ファイルは再帰的に削除されるのでしょうか?
343 :
デフォルトの名無しさん :01/09/20 20:29
>>338 正直、FileNodeの仕組などがわからないから、何とも言えないけど、
node.getFile().renameToがきちんと動作して、nodeのtoString
がちゃんとファイル名を返すと仮定した上で、
例えば、JTreeのupdateUIでなくて、それが配置されているコンポー
ネントのupdateUIしてみるとか。まあ、あてずっぽうだけどね。
Fileオブジェクトはつまるところファイルハンドルだとかアクセサだとかいう類のもの。
>>344 Fileオブジェクトはファイルハンドルじゃないだろ(それはIOストリーム)
Fileはパス名とかフォルダとか呼ばれる物を抽象化したもでわ?
ファイルの削除等ができるからアクセサではあるだろうけど。
#まあたいした話じゃないけどね
347 :
デフォルトの名無しさん :01/09/20 21:31
初心者というか入門したばかり何ですが javaのアプリケーションというのはDOSからしか 実行できないんですか またWINDOWS以外のOSで実行するにはどうしたらよいのでしょうか ネタじゃなくてマジです。おしえてくださいませ。
348 :
デフォルトの名無しさん :01/09/20 23:05
すごーーく、初歩的で申し訳ないですが教えてください。 Javaに関する本は、何冊か読んだのですが、 たしか文字列を比較するのはequalsを使うはずですよね? 今読んでいるBlack Bookでは==で比較しています。 試しにif文で==を使い文字列を比較しましたところ、どうやら比較されているようでした。 equalsと==では何が違うのでしょうか? 知っていましたら教えてください。
351 :
デフォルトの名無しさん :01/09/21 00:26
>>348 ==は、インスタンス参照またはプリミティブ値自体の比較。
オブジェクトが同じインスタンスの時に限りtrue。
String a = new String("hoge");
String b = a;
ならば、a==bはTRUE。
equals()は、中身を比較する機能を持つという事で一応
約束事にしている、単なるメソッド。
String#equals()は、引数がStringでしかも文字列の内容を
比較して同じならTRUE、という実装に、今のところなっている。
(dでもないequals()を実装しても別に構わないが、そんな
クラスは誰も使わない。ハッシュテーブルなどのコレクション
のキー値比較など、いろいろなところでAPIが呼んでいるので、
変な実装をするとえらいことになる。)
String a = new String("hoge");
String b = new String("hoge");
ならば、a==bはfalseだが、a.equals(b)はtrue。
多くのクラスでオーバーライドされているはず。
なにをもって「中身が等しい」ということにするかは、その
クラスの実装者の責任ということ。当たり前だよね。
JEditorPaneの利用方法について質問です。 以下の処理内容をしたいのですが、私のやっていることは無駄ばかりでしょうか? <やりたいこと> 「検索対象ファイル 任意の数のhtmlファイル(ex hoge[0].html〜hoge[n].html)」からあるキーワードに合致するreadLineを ひぱってくるようにして、その結果をHTMLとしてJEditorPaneに表示したい。 <私のやっていること> あるキーワードに合致するreadLineをとりあえずバッファhogeStringbufferとして格納し、適切な文字処理を施した上で createNewFile()メソッドでtmpファイルをカレントディレクトリに作成した後、そのtmpHoge.htmlに先ほどのバッファをfilewriter で書きこんでおいて、それが終了したらsetPageでJEditorPaneに出力する。tmpHoge.htmlはその後にdeleteする。 ネタではありませんので、どなたかご教授の程よろしくお願い致します。
秘密のコーナー ところが、Stringには特別ルールがある。 newを使用せず、operator=(というのか?)でString オブジェクトが作成された場合、インスタンスはstatic に作成され、Flyweightとして扱われる。 String a ="hoge"; String b = "hoge"; なら、a==bはtrue。なんでだかわかるか?aとbが 同じStringインスタンスだから(単に内容が同じ じゃなくて、同じ"インスタンス")。 String a = new String("hoge"); String b = new String("hoge"); このときは、aとbは違うインスタンス。意味わかる?
>>353 なんでテンポラリファイルなんか作るんだ?
setText()でいいじゃん。
だから、 String a ="hoge"; String b = "hoge"; というやり方で作成されたStringオブジェクトは==とequalsが 同じ戻り値になる。で、そのBlackBookとやらは、其の辺の秘密 を理解したうえで確信犯なのか、あるいは単なる知識=経験則野郎 で書いていると思われる。 おいらは、そんな作者が糞な本は買わない。どちらにしてもロクな 奴じゃない事は確かだから。
>>355 353です。まだ膨大なメソッドを把握しきれていませんでした。
非常に単純なことだったんですね。自分の勉強不足が恥ずかしいです。
穴があったら容れたい、いや入りたい(サム
#ありがとうございました。
>>347 厳密に言うと
アプリの起動方法はOSの操作体系依存だから
各OS用のJDKまたはJREの説明を読め!ってことなんだけど
DOS窓でJavaアプリを起動できるのであれば
LinuxでもSolarisでもコンソールを持ったOSなら
ほぼ同じコマンドラインとオプションでできるよ。
ただMacだけは俺も謎 マク使いの登場を待て
359 :
Java初心者 :01/09/21 17:50
文字列の中の改行コードを削除する方法を教えてください。 (replaceとか使えるのでしょうか?) 初歩的な質問ですがご回答よろしくお願いします。
>>359 StringBufferに入れて’¥n’をdeleteChatAtで削除、とか。
もしファイルとかから読み込んでるなら
BufferedReaderのreadLineで読み込めば
最初から改行コードが入らないよ
361 :
優しいおにいさん :01/09/22 00:58
>>360 既にStringで内部にあるデータの場合は、
java.io.StringReaderという選択肢もあります。
文字列同士のマージ、置換や環境依存の改行コード
関係の変換などでこのクラスを使うと便利です。
362 :
デフォルトの名無しさん :01/09/22 08:13
363 :
JAVA厨房ですよ :01/09/22 10:56
すごくあたりまえのことなんだけど public static mona uma()というのは ほかのクラスからアクセスできて 戻り値の型がmona型なクラスメソッドですよね!
あなた達には分からないでしょうが、Rubyは素晴らしい言語です。 オブジェクト指向スクリプト言語として他のスクリプト言語を圧倒する性能と美しい言語仕様を持っています。 例えば、SchemeやSmallTalkなどは比較的美しい言語だと言われていますが、後発である優位さでRubyは さらなる美しさと実用性を備えています。 もちろんPerlやPythonなど問題外です。 日本語との親和性ではRubyしか選択肢がないでしょう。 LinuxのディストリビューションもRubyの採用例が増えてきています。 1年後には全てのディストリビューションがRubyを標準採用するでしょう。 Rubyは未来のスクリプト言語なのです。 長くなりましたが、コピペではありません。 賛同していただける方はRubyの事を分かっていただけない人に出会ったら、 この発言をコピペしていただければ幸いです。 Javaなんて糞ですが。
SMTPサーバでなくて、Exchangeサーバ経由で メール出す処理って、難しいの? 本とかWebで探してもSMTPばっかりなんだけど。
367 :
デフォルトの名無しさん :01/09/22 14:33
質問があります。 String str = ""; while((str = ctr.readLine() != null) System.out.println(str); とするとctrが空になるとループから抜けるはずですよね? でもアイドル状態になってループから抜けないのですがなぜでしょうか?
368 :
デフォルトの名無しさん :01/09/22 14:46
>>367 ctrってのはなんだ?BufferedReaderか?
括弧の対応があってないんだが。
369 :
デフォルトの名無しさん :01/09/22 16:56
>>368 while((str = ctr.readLine()) != null)でした
ctrはbufferedReaderです
>>369 readLine()メソッドがあるんだからBufferedReaderなん
だろうけど、元はなんなのよ?File?Socket?
371 :
デフォルトの名無しさん :01/09/22 17:24
Rubyはクソです。ゴミ箱逝きです。 いじょ この発言をコピペしていただければ幸いです。
373 :
デフォルトの名無しさん :01/09/22 17:32
Socketです。FTPクライアント作ってるのだよ。
>>370
>>367 間違ってたらごめんだけど
nullと空文字列("")を混同してない?
376 :
デフォルトの名無しさん :01/09/22 17:46
>>374 混同してない。
readLine()ってストリームの終りに達するとnullを返すんだよね?
でもなぜかループから抜けないの。
それで困ってるのです。
>>367 ごめん、ちょっと勘違い。
これ試してみて
while(ctr.ready()) {
str = ctr.readLine();
System.out.println(str);
}
>>376 じゃあ、Socketがストリームの終わりを検知してないんじゃないの。
ちゃんと書き出し側が書き終わってるかチェックしてみそ。
379 :
デフォルトの名無しさん :01/09/22 17:52
書き出し側がclose()してないに一票
380 :
デフォルトの名無しさん :01/09/22 18:05
>>377 上のコード実行してみたら一度も読み込まないで流れてった。
>>379 FTPクライアントのコントロール接続だからclose()しないでつなぎっぱなのだ。
www.kernel.orgのanonymousFTPで実験してるからサーバー側がおかしいということはないはず。
>>380 アホカ。。。close()されないなら、ずっとアイドル状態になっても
なんの不思議もないだろ。
382 :
デフォルトの名無しさん :01/09/22 18:32
>>381 あのさ、サーバーではなくてクライアントを実装しているわけ。
この場合
while((str = ctr.readLine()) != null)
System.out.println(str);
は、なぜに無限ループなにるのでしょうか?
それからアホというような中傷はやめましょうね、大人気ないです。
383 :
デフォルトの名無しさん :01/09/22 18:34
↑無限になる
384 :
デフォルトの名無しさん :01/09/22 18:35
↑無限ループになるでした。 失礼しました。
Rubyはクソです。ゴミ箱逝きです。 いじょ この発言をコピペしていただければ幸いです。
>>382 socketに対して読み書きしていて、相手がもうこれ以上書かないよ、
というのをsocketのclose()以外にどうやって検地するつもりなのか
まずそれを教えてくれ。
387 :
デフォルトの名無しさん :01/09/22 19:17
あげ
388 :
デフォルトの名無しさん :01/09/22 19:21
>>386 これ以上書かないよ、というのではなくて
どこまで書きこんだかを知りたいわけ。
だから
while((str = ctr.readLine()) != null)
で現在書き込んだところまで読み込んでループを終了すると思ったんだけど終了しないから困ってんの。
389 :
デフォルトの名無しさん :01/09/22 20:36
>>388 終了しない、無限ループ、というのは、改行が出力されつづけているということ?
それともフリーズしているの?
390 :
デフォルトの名無しさん :01/09/22 21:05
391 :
デフォルトの名無しさん :01/09/22 21:10
>>388 であれば、それは、readLineがデータを待ってブロックしているだ
けみたいね。
readLineがnullを返すのは、ストリームが終った時だから、相手が
closeしないとね。
392 :
デフォルトの名無しさん :01/09/22 21:22
>>391 なるほど納得
では現在書き込んだとこまで読み込んでループを終了するにはどうすればいいでしょうか?
380はやっぱあほじゃん
>>388 相手がclose()に起因するソケットクローズ処理をしない限り、
readLine()がブロックするのは当たり前。ストリームの終了を
検知した時だけnullを返すという仕様なんだから、ストリームが
終了しない限りIOブロックかかりっぱなし、というのはJavaの
ネットワークプログラミング上の常識でしょう…
ソケットを繋ぎっぱなしでファイル毎の終了検知したいなら、それが
検知できるようなデータで判別するしかない。
ファイルのバイト長を事前に調べておいて、その長さを読み終わったら
ループを強制的にでてしまうとかするしかないんじゃないの?
あとは、ソケットリード専用スレッド別に作って外から読み込み済み
データ見に行くとか。
知識不足の馬鹿のくせに厚意で教えてくれる奇特な人間の善意に
子供っぽい反論するのは損だよ。反感買うだけ。あんたがガキじゃ
ないなら気をつけれ。
395 :
デフォルトの名無しさん :01/09/22 21:30
>>392 現在書き込んだ、というのを、ブロックせずに読み込める、と解釈すれば、
readLineでなく、read(char[] cbuf, int off, int len) を使えば
いいような気もするけど、「現在書き込んだ」ということが、意味ない気も
するね。何をしたいのか、再考した方がいいんじゃない?
396 :
デフォルトの名無しさん :01/09/22 21:37
>>393 意味のない中傷はやめましょう、見苦しいです。
>>394 なるほど以後気を付けます。
>>395 ふーん、そのメソッド使ってみようかしら。
397 :
デフォルトの名無しさん :01/09/22 21:44
しかし解決はしていないのであった
>>396 意味もなく人を煽るのもやめましょう、見苦しいです。
自覚がないならなおさらです
399 :
デフォルトの名無しさん :01/09/22 21:51
別に煽ったつもりはない
>>398 気に触ったのならすまんですね。
みんなデリケートなのね。
>ふーん、そのメソッド使ってみようかしら。 ものすごく感じ悪いんですけど。無自覚みたいなのがすごいね。
>>400 この業界にはこういう奴がおおい。
周りに与える心象とか影響とかを考える事のできない
真性オコサマ。
抜け毛が多くて困ってるんですけどどうしたらいいですか?
403 :
デフォルトの名無しさん :01/09/22 23:50
SocketのshutdownInputってのを使うといいみたいなんだけど よくわからんので詳しい人解説して下さいよ。 煽りではないので下らん中傷はやめてね。
404 :
デフォルトの名無しさん :01/09/22 23:54
上のメソッドって現在の入力ストリームをフラッシュするというのとは違うのでしょ? そういうメソッドないんかねえ。
>>403 サーバ側が切ってくれないなら、こっちで切るしかねえっしょ。
切る方法がclose()なのかそれ以外のメソッドなのかは、試して
みりゃ分かる事。そんなもん人に聞くな。
問題は、「何時をもって切ると決定するか」のロジックだよ。
それが決まれば、ループ条件にするなり、リードブロック中の
スレッドに対してInterruptで割り込みかけるなりできるだろ。
主観的に煽りかどうかとは関係ねえよ。 あんたが匿名板で質問する時に人に与える印象を計算 できないお馬鹿だという話で、煽りでも悪口でもないよ。 馬鹿に馬鹿というのは煽りじゃない。
407 :
デフォルトの名無しさん :01/09/23 00:24
>>405 ストリームを閉じるのではなくて現在のストリームの内容をクリアしたいわけ。
説明ヘタクソでごめんよ
408 :
デフォルトの名無しさん :01/09/23 00:31
みなさんデリケートな人達のようなので、もちょっとやわらかい口調で言ったほうがよかったですね。 すまんす
何がしたいのかぜんぜんわからん。 ストリームがなんであるかも理解してないんじゃないのか?
410 :
デフォルトの名無しさん :01/09/23 00:41
なんであるの?
>>409 と言うとそれぐらい自分で調べろと言うのでしょ。
あなたもわかってないくせに。
わかってるのなら説明してみて。
InputStreamをフラッシュする? ハァ?アタマダイジョウブ???
>>410 あなたは早く消えて欲しいので、もうちょっとわかりやすく自分のしたいことを説明してください。
ストリームをクリア?するとどのインスタンスがどうなるんですか。
そしてそれをどんなタイミングでしたいんですか。
413 :
デフォルトの名無しさん :01/09/23 00:50
409ストリームがなんであるかの説明まだかー 本当にわかってんのかー
414 :
デフォルトの名無しさん :01/09/23 00:52
>>411 412
だからそういう中傷はやめましょうね、大人気ないってば。
一回で理解しましょうね。
そんな事はどうでもいいので早く説明してください。 自分のしたいことも説明できないんですか?
416 :
デフォルトの名無しさん :01/09/23 01:00
>>415 ようするにwww.kernel.orgにFTPで接続すると普通の応答コードの他に変な文章を返して来るわけ。
それを無視したいのです。
わかりましたでしょうか?
変な中傷はナシね、へこんじゃうから
strの中身を見て変な文章だったら処理しなければいいんじゃないの?
418 :
デフォルトの名無しさん :01/09/23 01:06
>>409 ストリームがなんであるかの説明早くしてね
419 :
デフォルトの名無しさん :01/09/23 01:11
>>417 現在のストリームの内容を空にしてからPASVコマンドを送信して
応答コードを解析したいわけ。
色々やってるけどうまくいかんのよ。
ちなみに学校のサーバーとか家のLinuxに接続するとうまくいくの
www.kernel.orgは変な文章返して来るからうまくいかない。
420 :
デフォルトの名無しさん :01/09/23 01:14
>>417 それまではコマンド送信するごとにreadLine()で
一行づつ応答コードを解析してうまくいってたんだけどね。
www.kernel.orgのanonymousFTPは変な文章返して来るからうまくいかんのだよ。
伝わりますでしょうか?
>>419 じゃあBufferedReaderなんか使うの辞めればいいじゃん。
コマンド送信する直前に、RECVバッファにたまってるデータ
を1バイトずつ全部読んで捨てといたらええやん。
一行ずつしか処理できないから上手くいかないってことか? それなら、複数行読んでから処理すればいいだろ。 だいたい、変な文章とかいう説明で他人がわかると思ってるのか?
423 :
デフォルトの名無しさん :01/09/23 01:19
ちなみにRECVバッファとはなんでしょうか? 煽りではなくマジレスですが
424 :
デフォルトの名無しさん :01/09/23 01:20
スレが重なりますなあ(照
425 :
デフォルトの名無しさん :01/09/23 01:22
>>422 伝わってないようなので実際にwww.kernel.orgにanonymousFTPで入ってみてよ。
あなたならどうやって処理しますか?
断固煽りではない
>>423 そういう発言する人は、FTPクライアント作成禁止。
あんたソケットの仕組み知らないでソケットつかってんのか?
変な文章ってWelcome to〜のことか? 変な文章が終わるまで読み飛ばすだけじゃダメなのか?
428 :
デフォルトの名無しさん :01/09/23 01:27
>>426 ソケットの仕組みしらないとソケット使えないの?
煽りではない
429 :
デフォルトの名無しさん :01/09/23 01:31
>>427 それそれ
あなたならどうやって飛ばす?
甘えてすまんす。
こっちから書く前にctr.reset()するようにすれば良いんじゃないの? 毎回一行しか応答読めなくなるが。 //俺はJavaはよく知らんのであってるかどうかしらんよ
431 :
デフォルトの名無しさん :01/09/23 01:52
reset()ってAPIリファレンスによると、 もっとも新しいマーク位置にリセットするのでしょ? ストリームの内容をクリアするのではないらしい。
うわ、ほんとだ。 じゃあ、やっぱり、何が来たら応答するかわかってるだろうから、 readLineをその文字列がくるまでまわしてからbreakかな。
433 :
デフォルトの名無しさん :01/09/23 02:02
>>431 単にコマンドを発行して、そのレスポンスが現れるまで読み飛ばすのではまずい?
434 :
デフォルトの名無しさん :01/09/23 02:17
今日はもう寝まする
435 :
デフォルトの名無しさん :01/09/23 02:18
>>408 周りがみんなデリケートに見えるのは
あんた一人がおかしいから
もうこの甘えん坊に構うの馬鹿らしいからやめないか?>>all
ずっと甘やかされた環境にいた真性か、
ネタで遊ばれてるとしか思えないんだけど。
437 :
デフォルトの名無しさん :01/09/23 06:42
Javaのいい例題が たくさん載っている教本があったら教えてください。 後、オブジェクト指向について 初心者が分かりやすい本があったら教えてください。
438 :
OO逝って良しの1 :01/09/23 07:00
オブジェクト指向の概念は危険です。 言語だけ見ましょう。 オブジェクト=扱うべきデータ(たまにハード)ぐらいに捕らえていた方が 無難です。 「扱うべきデータとそれを操作する関数のパッケージがクラス。 クラスに操作入出力関数を埋めこんで、クラスからクラスへデータ を渡すだけで必要なプログラム動作が得られるような構造」 と理解すればOK。 解説本読んでも混乱するだけです。
439 :
デフォルトの名無しさん :01/09/23 10:44
>>437 javaの基本は、
「プログラミング言語Java」
が一番。プログラム例では、
「JAVAプログラムクイックリファレンス」
がいい。
あと、オプジェクト指向の解説ではないけれど、javaでオブジェクト
指向プログラミングするなら(って、他にしようもないけれど)、
「Bruce EckelのJavaプログラミングマスターコース―徹底探究!
Javaのしくみとオブジェクト作法」
がいいと思うよ。
どれも内容が濃いから、買って損はしないよ。まあ、今、読めなくても
そのうち、良さがわかるから。
へヘ /〃⌒⌒ヽ / ̄ ̄ ̄ ̄ ̄ ̄ 〈〈 ノノノハ))) < Rubyはクソです。ゴミ箱逝きです。 いじょ |ヽ||´ ∀`|| \______ ⊂[リ∨╂リ]つ リ /リリリリリ U U  ̄ ̄ ̄ ̄ ̄\ この発言をコピペしていただければ幸いです。 > ∧_∧ _____/ (´∀` ) ( ) | │ | (_(__)
441 :
デフォルトの名無しさん :01/09/23 14:09
private boolean isNumberPrefix(String str){
return Character.isDigit(str.charAt(0)) &&
Character.isDigit(str.charAt(1)) &&
Character.isDigit(str.charAt(2));
}
public String getResponse(){
String msg = "";
try{
while(!isNumberPrefix(msg = ctr.readLine()));
}catch(IOException e){}
return msg;
}
↑応答コードだけ返すメソッド、これでいけました。
>>412 つき合ってくれてありがとね
--------------------------------------
OOPならRubyだね。
Java
なにかと話題のオブジェクト指向言語であるJavaとRubyを比較すると:
* Rubyはインタプリタ型言語。
* Rubyではすべてのデータがオブジェクトである。
* Rubyではモジュールを使って実装を共有できる。
* Rubyの変数や式には静的な型がない。
* Rubyでは正規表現が文法としてサポートされている。
http://www.ruby-lang.org/ja/compar.html Rubyを知ってもらうためにもこの文をコピペしてください。
>>438 貴方こそ、よくおわかりのようで。
どうにも、変な誤解を読者に与える糞な参考書が
OOP関係には多いんだよね。
プログラマー的には、その程度と理解しておく
のが実践のうえでは過不足ないレベルだよねー。
――――――――――――――――――――――― それでは次のコーナーです __ ____________________ .|/ ‖ ‖ ____ ‖ ‖ | ON AIR.| ∧ ∧ θ ‖  ̄ ̄ ̄ ̄ (,,゚Д゚)__ /[] ̄ ̄θΛ_Λ ||(. つ_/ //(´∀` )/| ┗┳ /  ̄/⊂ ||_/ ┻| ̄ ̄ ̄ ̄ ̄| ( ━┳┛ |_____| /ヽ」┘┻ ____________|\____ 「Rubyはクソです。ゴミ箱逝きです。 いじょ 」 この発言をコピペしていただければ幸いです。
シゲの地道な工作が着実に実を結びつつあるな
―――――――――――――――――――――――
それでは次のコーナーです
__ ____________________
.|/ ‖ ‖ ____
‖ ‖ | ON AIR.|
∧ ∧ θ .‖  ̄ ̄ ̄ ̄
(,,゚Д゚)__ /[] ̄  ̄θ Λ_Λ
||(. つ_/ //(´∀` ) /|
┗┳ /  ̄/⊂ ||_/
┻| ̄ ̄ ̄ ̄ ̄| ( ━┳┛
|_____| /ヽ」┘┻
____________|\____
「
>>444 はクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
447 :
デフォルトの名無しさん :01/09/24 17:44
ageとくね。
448 :
デフォルトの名無しさん :01/09/24 17:51
>>445 そうか?Rubyがどれほど良い言語なのか知らんけど、
変な信者がひとりいて、この板に迷惑掛けているというだけで、
自分としての評価が最低ランクまで落ちるんだけど…
450 :
デフォルトの名無しさん :01/09/24 18:13
451 :
デフォルトの名無しさん :01/09/24 18:50
>>450 あらら。世の中には、馬鹿で暇で無駄飯ぐらいで陰湿で
生きていてもしょうがない人種ってのが、いるんだねえ。
453 :
長文スマソ :01/09/24 23:06
いろいろ調べたけどわかんなかったので,はずかしい質問す。 スタートアップJava 技術評論社 平成13年8月発行つー本をさっき買ったんですが, p.20に書いてあるように, import javax.swing.*; import java.awt.*; public class FirstProgram{ public static void main(String[] args){ JFrame myFrame = new JFrame("きぼーん"); myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myFrame.setSize(350,200); myFrame.setVisible(true); } } をFirstProgram.javaに書いた後, D:\Data\Java>javac FirstProgram.java は通りますが, D:\Data\Java>java FirstProgram すると, Exception in thread "main" java.lang.NoClassDefFoundError: FirstProgram となります。本に書いてあるようにやったのに,それにSDK2以上だと-CLASSPATHは 設定しなくてよいよと書いてあるHPもありました。 但し,set PATH=************;c:\jdk1.3.1\bin autoexec.batに全部書きました。 OS:Windows98 Javaのバージョンは, D:\Data\Java>java -version java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24) Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode) 過去ログにも書いてありましたが,わからんのでお願い縞ッス.
454 :
長文スマソ :01/09/24 23:08
455 :
デフォルトの名無しさん :01/09/24 23:25
>>453 D:\Data\Javaに FirstProgram.classは
ちゃんとできた?そのディレクトリにできた?
もしできてるなら、CLASSPATHが変なところを
見ているかもしれないので、
D:¥Data\Java>java -cp . FirstProgram
とやってみて。
それでダメならインストールミスだな。
そんなことは起きないと思うんだが。
>>453 そのままで出来るYO!!
OS:win2k
java version "1.3.1"
457 :
デフォルトの名無しさん :01/09/24 23:42
458 :
長文スマソ :01/09/25 00:14
445さん ありがとう. >D:\Data\Javaに FirstProgram.classは >ちゃんとできた?そのディレクトリにできた? できてる.で,−cpコマンドかけたら”きぼーん”と出てよかったよ. 456さんもレスありがとう.
459 :
長文スマソ :01/09/25 00:15
↑455さんのマチガイでした.
460 :
助けてください :01/09/25 11:59
jdk1.3をインストールして、サンプルにhelloworld.java と言うファイルを作成したのですが、コンパイルできません。 ドスコマンドラインから 「javac helloworld.java」 と入力すると、 「コマンドまたはファイル名が正しくありません。」 と言う表示が出てきてコンパイルされません。 本当に困っています。どなたかご教授お願いします。 OSはMeです。
462 :
デフォルトの名無しさん :01/09/25 18:07
463 :
デフォルトの名無しさん :01/09/25 20:09
464 :
デフォルトの名無しさん :01/09/25 20:32
Forteつかおうとしたんですが突然エラーが起こったりしてうまく動きません。 やはりWindows98せはだめなのでしょうか? WinsowsNt,2000とかいてあったもんで・・・
>466 何人?
468 :
デフォルトの名無しさん :01/09/26 16:00
>466 なんか俺と同じ道を辿りそうだね。 ForteとJBuilder、Win98環境で試してみたところ。結果は JBuilder>>Forte だった。Forteは、Ver1.0しか98に対応 していないし、将来も対応しないらしい。 OSを乗りかえるまでは、当分JBuilderで逝こうと思う。
469 :
デフォルトの名無しさん :01/09/27 00:29
sort と uniq と grep で作れそうだな…
while(<>){ chop; $urls{$_}++; } foreach $url ( keys %urls ) { $surls{sprintf("%05d%s",$urls{$url},$url)}++; } foreach $surl ( reverse sort keys %surls ) { printf("%s ---- %d\n",substr($surl,5),substr($surl,0,5)); }
sort < url.txt | uniq -c | sort -r
473 :
デフォルトの名無しさん :01/09/27 03:15
ラジオボタンを下の様に並べたいんです。 ラジオボタンはCheckBoxで作ります。 ○5 ○5 ○4 ○4 ○3 ○3 ○2 ○2 ○1 ○1 ちなみにグループは左の縦5つと、右の縦5つです。 setLayout(5,2)でやってみたんですが、うまくいきません。 どうしたらいいんでしょうか?
474 :
デフォルトの名無しさん :01/09/27 03:41
>>469 宿題ですか?
とりあえず機能の半分だけロジックだけですが、どうぞ。
ソートの方法は考えなさい。
import java.util.*;
import java.io.*;
Map urls = new HashMap();
BufferedReader reader =
new BufferedReader(new FileReader("filename"));
String line = null;
for((line = reader.readLine())!=null){
Integer count = (Integer)urls.get(line);
if( count == null )urls.put(line,new Integer(1));
else urls.put(line,new Integer(count.intValue()+1));
}
for(Iterator iter= urls.keySet().iterator();iter.hasNext();){
Strig line = (String)iter.next();
System.out.println(line +"---"+urls.get(line));
}
475 :
デフォルトの名無しさん :01/09/27 03:44
>for((line = reader.readLine())!=null){
しまった、whileですな。
>>473 ネタですか?
setLayout(new java.awt.GridLayout(x,y));
あと、ラジオボタンとチェックボックスは違うぞ。
476 :
デフォルトの名無しさん :01/09/27 04:47
Forte? JBuilder? なんだそりゃ? EMACS+ANT+CVSで十分だろ(糞
>>476 そうだね。十分だね。
けど君と違って、全てのメソッドの
全ての引数を覚えられるほど
頭がよくないんだよ。
これって違うものなの? String ss = null; String ss = new String(); String ss = new String("");
>>478 String ss = null;
------------------------
String ss = new String();
String ss = new String("");
480 :
名無しさん :01/09/27 17:03
HashMap と Hashtable 違いを教えてください
481 :
デフォルトの名無しさん :01/09/27 18:04
インターフェイスというのがよく分かりません。 独習ジャヴァを何回も読んだんですが 教えてください。
誰も教えてくれなくても(゚ε゚)キニシナイ!!
>480 機能的には同じ Hashtableはレガシー(JDK1.0からか? VectorとArrayListも同様の関係 あ、HashMapのアクセスメソッドはsynchronizedされてないって違いがあったっけか
>>483 教えてくれてありがとう!
わいの理解力が無いからその教え方ではわからんのよ
もう一回説明してクレ〜
>>481 独習ジャヴァは呼んだこと外ので、interfaceをどう説明しているか
知らないけれど、javaにとっては非常に重要なものなので、しっかり
学習するように。
って、これだけではチャチャだけど、簡単に言えば、多重継承を許さない
javaで、ひとつのオブジェクトに複数の型を持たせることができる仕組。
ポリモーフィズムにとって重要な役割を果たす。
んーん、これではますます分からないよね。
続けるね。 例えば、GUIでボタンを押したら何かするというとき、ActionListener というインターフェイスをimplementsするけど、ActionListenerには actionPerformedというメソッドが宣言されているから、このインターフェイス を実装したオブジェクトなら、どれでもactionPerformedを呼び出すことが できるわけ。 だから、そのオブジェクトについて他のことは知らなくても、ActionListener を実装しているということだけで、安心してactionPerformedを呼び出すことが できる(って、また同じこと言ってるけど)。 それがなぜ重要なことなのかを理解できるまでには、まだまだ道のりは長い。
487 :
デフォルトの名無しさん :01/09/27 20:36
>>481 読むよりも実際につかってみたら?
初歩的なことを聞くようですけど
interface以前にclassってわかりますか?
488 :
デフォルトの名無しさん :01/09/27 21:07
ObjectInputStreamでファイルを読み込むとファイルの終端では何が返されるのでしょうか?
489 :
デフォルトの名無しさん :01/09/27 21:12
static関数を多用する理由はなんですか? class A{ private static A a; public staic A getA(){ if(a==null)a=new A(); return a; } ...... public static void f1(){...} public void f2(){...}//f1と同じ動作 } 使用する際には A.f1(); よりも A.getA().f2(); の方がずっと応用範囲が広いと思うのですがどうでしょうか?
491 :
デフォルトの名無しさん :01/09/27 21:34
Java使ってる人で、実行時ポリモーフィズムがわかってないのって・・・・ Java使ってる意味ないって(笑)
私の質問にも答えて欲しい
493 :
デフォルトの名無しさん :01/09/27 21:39
ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File("filename"))); Data data; while((data = in.readObject()) != null); ていう感じでやってたらIOExceptionがthrowされた。
CやC++だったらEOFだよね、javaも同じではないの?
496 :
デフォルトの名無しさん :01/09/27 21:50
ClassNotFoundException - 直列化されたオブジェクトのクラスが見つからなかった場合 InvalidClassException - 直列化で使用されるクラスになんらかの不具合があった場合 StreamCorruptedException - ストリームの制御情報に一貫性がない場合 OptionalDataException - プリミティブデータが、オブジェクトではなくストリームに見つかった場合 IOException - 通常の入出力関連の例外のどれかが発生した場合
Objectがもう無いのに読み込んだから、例外が出るんでいいんでないの?
>>497 ではどうやってファイルの終端を判断してループを抜ければよいのでしょうか?
500 :
デフォルトの名無しさん :01/09/27 21:55
>>498 いや、自分でプログラミングできないから
ライブラリを使うというタイプの人でしょう
501 :
デフォルトの名無しさん :01/09/27 21:58
少なくともIOExceptionのときは別の処理をする必要がありますよね。 <pre> while(true){ try{ data = in.readObject(); if(data==null)break; ... }catch(IOException e){...} } </pre> とやったらどうでしょうか?
<pre></pre>は余計でした。
505 :
デフォルトの名無しさん :01/09/27 22:04
catch節がないとコンパイルエラーになるわけだから どっかに書くだろ
>>502 それはwhile((data = in.readObject()) != null)
と同じことではないの?
ファイルの終端でnullを返すのではないのでしょうかねえ
507 :
デフォルトの名無しさん :01/09/27 22:08
>歯車の再発明がんばってくださいよ コンピューターの仕組みもある程度わかっていないと、 まともなJavaプログラムはかけないのだが まあ、VB厨房がけなされる理由がわからない人間には 言っても無駄なんだろうな
>>505 そりゃそうですね!
でもIOExceptionが
ループのどこで発生したかを知るには
こんな感じにやることもできるってことですよ。
509 :
デフォルトの名無しさん :01/09/27 22:11
というかwhileなんて使わずにifでいいんでないの?
while((data = (Data)in.readObject()) != null) System.out.println(data.toString()); とやるとファイルの終端までのデータは出力されるから 終端でIOExceptionが発生しているらしい
無視ですか(笑)
オブジェクトシリアライズってあんまり使わんのかなあ
ちなみに何回ループした? 2回以上であることを期待・・・・
リンク先クリックするだけだと()が抜けちゃいますから・・・
>>513 必要なデータだけ書き出すのに慣れてるので、
あまり使われないだけではないでしょうか?
ObjectInputStreamはあくまで1つのオブジェクトを扱うのでは?
書き込みが止まったとこをみると 理解してもらえたようで 良かったです それでは
>>519 まだわかってないさ
501見たけどそれがどうしたの?
何が言いたいわけ?
521 :
デフォルトの名無しさん :01/09/27 22:39
swingアプリを使っていると、全ウインドウ(他アプリ、デスクトップ含む) に対して再描画が行われて、ちらつく事があるのですが、防げないの でしょうか。Forteのソースエディタをスクロールさせているだけでも 起きるものです。 win2k、jdk1.3.1_01にて。
swingは標準でダブルバッファリングされてるらしいけどね。 ある程度のちらつきはしょうがないんじゃないかな。 Forteは重いよねえ。
>>522 ダブルバッファリングは関係ないです。
再描画が起きるのは別のアプリにもですから。
俺もやってみるわ。ObjectInputStream
525 :
デフォルトの名無しさん :01/09/27 22:46
読もうとしているファイルは、 ObjectOutputStream.writeObject()で書き込んだ データなの? それ以外なら、readObject()がIOExceptionかその派生 例外投げるのは当たり前だと思うが。 ストリームから読んだ情報にオブジェクト復帰に必要な データがかいてなければ、そりゃ例外発生するさね。 (クラスによるけど) で、ネタでしょ?
やってみたよ、再現したよ。いまどうすればいいか試しているよ。
でもこちらはEOFException だよね そこがちがうな。
528 :
デフォルトの名無しさん :01/09/27 23:13
>>527 EOFException extends IOExceptionです。
原因判明ですな。
try{ while(true){ data = in.readObject() } }catch(EOFException e){} ってやったら問題無く動作したよ。 でも例外をこんな使い方していいもんかな?
>>527 例外発生させずにループを終了させることはできないのでしょうか?
531 :
デフォルトの名無しさん :01/09/27 23:16
linuxで開発しましょう>521
532 :
デフォルトの名無しさん :01/09/27 23:17
>>529 InterruptedException(スレッド割り込みで発生)、
InterruptedIOException(ソケットリードブロック割り込みで発生)
など、エラーではない例外はコアにもいっぱいあります。
この辺は、キャッチしてそのまま流す事も多いです。
ということで、正しい使い方でしょう。
533 :
デフォルトの名無しさん :01/09/27 23:18
while(0!=in.available())
534 :
デフォルトの名無しさん :01/09/27 23:20
>>531 開発してる物がswingアプリなので、開発環境が問題になっているのではないです。
forteは使っていません。例として出しました。分かりにくかったです。
535 :
デフォルトの名無しさん :01/09/27 23:22
swingのソースコードに手を入れてあげればいいのでは? win2000で上手く表示できるように、しつこくrepaint()するだけでしょ?
repaint()しても一度背景色で塗りつぶされてしまえばちらつきますから、 あまり意味がないと思います。 jdk1.4b2を試してみます。
おいらが言うのもなんだけど、日本語おかしいよ
>>534
イベントで java.awt.event.WindowAdapter の関数windowDeactivated を使っていませんか? この関数でActivate処理をしていませんか?
画面がチラツく原因は色々考えられるのでなんともいえません。
540 :
デフォルトの名無しさん :01/09/27 23:50
オブジェクトのシリアライズはネットワークごしのデータ受け渡しにべんり!!
541 :
デフォルトの名無しさん :01/09/27 23:51
>>530 >>533 で解決しましたか??
>repaint()しても一度背景色で塗りつぶされてしまえばちらつきますから
その程度のレベルだと、まずswingが扱えないと思いますが
まず、AWTで基礎を学んでみてください
アプリって何作っとんのだ。
すみやかに答えよ
>>534
543 :
デフォルトの名無しさん :01/09/27 23:52
>540 RMI
544 :
デフォルトの名無しさん :01/09/27 23:53
あの、、、マックを使ってる人はどうすれば、、、
545 :
デフォルトの名無しさん :01/09/27 23:57
>544 あきらめるしかないでしょ
SocketからObjectInputStreamでデータ受け取ると最後はnull返される?
>>540 日本語へたくそですまん
>>544 あの、、、マックを食ってプリオンに感染した人はどうすれば、、、
550 :
デフォルトの名無しさん :01/09/28 00:05
488はAPIリファレンス知らないのか? ソケットなんだから、ずっとブロックされっぱなしだろ
>>538 使っていません。
>>541 仰っているのはダブルバッファリング周りの事ですね。
自分で作ったアプリだけがちらつくのならデバッグも楽なのですが、
同じ時にデスクトップまでちらつくのです。
Forteでも他のウインドウに隠れている部分が表示される時、
隠れていた部分は灰色で、すぐに通常の絵が描かれます。
これが、普通に使っている時にウインドウ全体に対して起きるます。
デスクトップや一部他のアプリに対しても起きます。
ただ、他になっておられる方はいないようなので、javaアプリ以外の
私の環境に原因があるのかもしれません。
ちらつき対策 1)ハードのアクセス制限によりちらつく場合(ごま塩ノイズ) 垂直ブランキング期間に転送すればちらつかない場合があります。 2)書き換えが表示期間中に行われる場合(書き換えの境界が見える) 表示をいくつかに分割して、VBLANK待ちを各描画の頭に入れましょう。
修正 > 仰っているのはダブルバッファリング周りの事ですね。 update()のオーバーライドです。 ダブルバッファリングはその時のpaint()での話でした。 たびたびすいません。
toFront() toBack() などを多用していませんか?
555 :
デフォルトの名無しさん :01/09/28 00:13
forteのバージョン低いんじゃない? うちは大丈夫だけど・・・ >仰っているのはダブルバッファリング周りの事ですね。 俺もあの発言はまずいと思うよ AWT使ったことありませんって感じの発言だもん 車輪の・・・とかってのがあったけど 結局、原点がわかってないと駄目だよね 気になったんだけど、一部他のアプリ・・・って Javaアプリじゃないんなら・・・ レスして損した気分になるんですが
もう少し考えてから書き込んで下さいね
>>553 ここは感情の発露の場ではないのですよ。
公共の場ですからね、気を付けて。
paint()をオーバーライドして済むことを update()をオーバーライドしてやっていませんか?
558 :
デフォルトの名無しさん :01/09/28 00:15
>>553 それをふまえて
自分の言いたいことを書き直せば??
日本語痛すぎですよ
自作自演くさい
560 :
デフォルトの名無しさん :01/09/28 00:25
Java入門の良い本ありますか?
ASCIIのcoreJAVA2とgraphicsJAVA2がいいと思う
>>560 Java言語プログラミングレッスン(上下)結城浩
なんてどう?あまり読んでないけど。
>>561 なんか初心者を煙に巻くのがはやっているみたいね
あまりに初歩的な質問がくると次のように思うよね! 「お前やる気があんのか?」 「マニュアル読め」 煙に巻きたくなる気持ちわかるよ・・・現に自分もやってるし。
ホント あふぉバッカリ
今日はもう寝ますね ちんこまんこでおやすみなさい。
>>554 どちらも使用していません。
>>555 ForteはRELEASE 2.0を使用しています。
javaアプリを使用していると、他アプリも含めて、再描画が起きます。
javaアプリにも起きます。
顕著なのがデスクトップです。
他のアプリを使用している場合は起きない上に、javaアプリに描画で
負荷をかけると起きるので、javaアプリに原因があると思ったのです。
ただ、他に起きている方がおられないので、一般的には起きないものな
のかと思いました。
>>557 update()のオーバーライドはしていません。
swingのupdate()はpaint()を呼び出すだけなので、オーバーライドする
必要が無いのは分かっています。
>>558 発端となった物を書き直すと、
私の環境では他のウインドウに隠れている部分が表示される時、
隠れていた部分は灰色で、すぐに通常の絵が描かれます。
swingのコンポーネントで、です。
swingのupdate()はpaint()を呼び出すだけで、背景色で塗りつぶしてはいません。
ですからこの実装をしても、ウインドウの再描画をする場合には一瞬背景色で
塗りつぶされてしまうものだと思いました。
だから、repaint()しても一度背景色で塗りつぶされてしまい、ちらつきます。
となります。
ですが、そもそも私が前提としていた
> 他のウインドウに隠れている部分が表示される時、
> 隠れていた部分は灰色で、すぐに通常の絵が描かれます。
が他の方の環境では起きないようなので、上記は誤りとなります。
ウインドウ全体の再描画によるちらつきは普通、起きないようですので気にしない事にします。
お騒がせしてすいませんでした。
Forteなんてよく使うね 自分も前は使ってたけど糞なのでやめた 今はemacs+ant+cvs
>>572 JBuilderつかっているけどどう思う?
再描画が気にならなくなるくらい速いマシン使う PCの能力くらい書いとけ
576 :
デフォルトの名無しさん :01/09/28 01:33
>488 作ってるアプリが違うんだから・・・・ とりあえず、571は「ちらつき」という単語の意味を間違って認識している そして、AWTを使ったことがない可能性が高い という事実が明らかになっただけだな そして、swingに関しても使い方しか知らないようでして 使いやすいライブラリは、くそプログラマを量産してしまうという面があるようで
お詫びに参りました。 思いつきで常駐ソフトを全て終了させた所、再描画によるちらつきが 一切なくなりました。 やはり原因が私の環境にありました。 申し訳ない。
i-appliのJavaについて質問させてください。 com.nttdocomo.ui の Fontクラスなのですが、 どうしてもフォントのサイズを大きくしたいのです。 Font.SIZE_LARGE などを指定しても、機種依存で まちまちであるということは調べました。 他に大きくする方法はないのでしょうか? 自作クラスなどを作って大きくするなど、 アドバイスがあればお願いいたします。
579 :
へたれ大学生 :01/09/28 03:15
580 :
デフォルトの名無しさん :01/09/28 03:54
581 :
デフォルトの名無しさん :01/09/28 03:58
481 :デフォルトの名無しさん :01/09/27 18:04
インターフェイスというのがよく分かりません。
独習ジャヴァを何回も読んだんですが
教えてください。
485 :デフォルトの名無しさん :01/09/27 20:07
>>481 独習ジャヴァは呼んだこと外ので、interfaceをどう説明しているか
知らないけれど、javaにとっては非常に重要なものなので、しっかり
学習するように。
って、これだけではチャチャだけど、簡単に言えば、多重継承を許さない
javaで、ひとつのオブジェクトに複数の型を持たせることができる仕組。
ポリモーフィズムにとって重要な役割を果たす。
んーん、これではますます分からないよね。
486 :485 :01/09/27 20:18
続けるね。
例えば、GUIでボタンを押したら何かするというとき、ActionListener
というインターフェイスをimplementsするけど、ActionListenerには
actionPerformedというメソッドが宣言されているから、このインターフェイス
を実装したオブジェクトなら、どれでもactionPerformedを呼び出すことが
できるわけ。
だから、そのオブジェクトについて他のことは知らなくても、ActionListener
を実装しているということだけで、安心してactionPerformedを呼び出すことが
できる(って、また同じこと言ってるけど)。
それがなぜ重要なことなのかを理解できるまでには、まだまだ道のりは長い。
487 :デフォルトの名無しさん :01/09/27 20:36
>>481 読むよりも実際につかってみたら?
初歩的なことを聞くようですけど
interface以前にclassってわかりますか?
>>486 :485
説明読んだのですが、知らない言葉ばっかりでよけい頭が混乱(TT)
implementsってなんですか?
>487
>interface以前にclassってわかりますか?
クラスというのは、メソッドなどが入ってる入れ物だと思われ。
584 :
デフォルトの名無しさん :01/09/28 07:05
>>578 大きい文字を描いた gif を用意する。ってのはどうだ。
585 :
デフォルトの名無しさん :01/09/28 07:08
>>583 >説明読んだのですが、知らない言葉ばっかりでよけい頭が混乱(TT) implementsってなんですか?
implements はインタフェイスを実装するときに使う。例えば
interface A{
int method(int);
}
class B implments A{
public int method(int a){ return a*2; }
}
class C implments A{
public int method(int a){ return a*3; }
}
こんな感じ
>>583 補足:インタフェイスとクラスの違い
(1)インタフェイスはメソッドの中身を書けない
(2)インタフェイスのメソッドはすべてpublic
(3)いくつでもインタフェイスをimplementsできる
(3)は例えばこんな感じ
class B implements A1, A2, A3{
>>581 情報ありがとうございます!
試した後で報告させていただきます。
>>584 残念ながら、文字は固定ではないので
gifでは無理なんです。
>>585 :586
わかった!ありがとうございました。
インターフェースを使えば一つのクラスに
いっぱい継承ができるんですね。
独習ジャバに書いてるのもなんとなく理解できますYO!
でわ!
>>583 >implementsってなんですか?
って、独習Javaを繰り返し読んだんじゃないのか?
P196からをちゃんと読め。
それでも判らなければ、プログラミングレッスン(下)
さらに判らなければあきらめ
592 :
デフォルトの名無しさん :01/09/28 11:00
>>589 むしろ複数のクラスで一つのインターフェイスを使い回せることが
嬉しいと思ったり。
593 :
デフォルトの名無しさん :01/09/28 11:05
>>488 亀レスだけど・・・。
ObjectInputStreamのドキュメントを見たけれど、ストリームの終わりで
何が返されるのか、見つけられなかった。
例外を補足するか、または、書き込む側が、最後にnullを書くなどの工夫が
いるみたい。
availableは機能しなかった。どうもInputStreamのものをオーバーライド
してないみたい。
誰か他の方法わかる人、教えて。
>>592 一つのクラスで複数のインターフェイスを使えるのが嬉しかったです。
596 :
デフォルトの名無しさん :01/09/28 12:23
>>595 >一つのクラスで複数のインターフェイスを使えるのが嬉しかったです。
C++は普通に複数のクラスを継承(多重継承)できるんで、いっそのことC++に乗り換えれば、嬉しさ倍増?
class (゚д゚)ウマー extends (・∀・)イイッ だったら(・∀・)イイッを(゚д゚)ウマーに継承するって言えるけど class (゚д゚)ウマー extends implements (・∀・)イイッ,(゚ε゚)キニシナイ!! だったらなんていうんですか? (・∀・)イイッと(゚ε゚)キニシナイ!! を(゚д゚)ウマーに継承するって言うんですか?
>>597 読みにく・・・
私は implements を直訳して実装と呼んでますが、本当のところはどうなんだろー。
> class (゚д゚)ウマー extends implements (・∀・)イイッ,(゚ε゚)キニシナイ!!
この書き方は間違い
インタフェイスの実装だけなら
class (゚д゚)ウマー implements (・∀・)イイッ,(゚ε゚)キニシナイ!!
継承+実装なら
class (゚д゚)ウマー extends Σ(゚д゚lll)ガーン implements (・∀・)イイッ,(゚ε゚)キニシナイ!!
んで「クラス (゚д゚)ウマー はインタフェイス (・∀・)イイッ と(゚ε゚)キニシナイ!! を実装する」(もはや意味不明)
599 :
デフォルトの名無しさん :01/09/28 13:00
>>597 読みにく・・・
インタフェイスは「実装する」などと言います。
> class (゚д゚)ウマー extends implements (・∀・)イイッ,(゚ε゚)キニシナイ!!
この書き方は間違い
インタフェイスの実装だけなら
class (゚д゚)ウマー implements (・∀・)イイッ,(゚ε゚)キニシナイ!!
継承+実装なら
class (゚д゚)ウマー extends Σ(゚д゚lll)ガーン implements (・∀・)イイッ,(゚ε゚)キニシナイ!!
んで「クラス (゚д゚)ウマー はインタフェイス (・∀・)イイッ と(゚ε゚)キニシナイ!! を実装する」とか(もはや意味不明)
600 :
デフォルトの名無しさん :01/09/28 13:14
2回書き込んでしまった・・・鬱だ。
恥を書いてしまったよ。 鬱だ死ぬね。。。。。
602 :
デフォルトの名無しさん :01/09/28 17:01
public interface 普通車 { void 運転(); }
603 :
デフォルトの名無しさん :01/09/28 17:01
public class マーチ implements 普通車 { public void 運転() { .... } } public class カローラ implements 普通車 { public void 運転() { .... } }
604 :
デフォルトの名無しさん :01/09/28 17:02
public class 車泥棒 { public void 盗む() { 普通車 car = 駐車場.getCar(); car.運転(); } } public void 運転() { .... } }
605 :
602-604 :01/09/28 17:04
>>604 の後ろから4行は見なかったことにしてくれ(´Д`)
606 :
デフォルトの名無しさん :01/09/28 17:52
>602-604 こーいう場合、私なら public abstract class 普通車 implements 車 { void 運転(){ //普通車なら同じ処理 実装 } void abstract カーステ(); // 車種固有処理 } public class ソアラ extends 普通車 {
608 :
デフォルトの名無しさん :01/09/28 17:54
う、606ミスったヨー >602-604 こーいう場合、私なら public abstract class 普通車 implements 車 { void 運転(){ //普通車なら同じ処理 実装 } void abstract カーステ(); // 車種固有処理 } public class ソアラ extends 普通車 { void カーステ(){ 実装 } } って感じにしたくなるんだけど。 普通はどういう風にするもんなんでしょう?
609 :
デフォルトの名無しさん :01/09/28 18:28
ここレベル低いなあ
>>604 まー、ふつうはそう書くね。
インタフェイスの説明のつもりだったんだけど、抽象クラスも入れといたほうがよかったね。
>>607 山に篭るから勘弁してくれ。
611 :
java見習い :01/09/28 18:47
javaのプログラムについて質問させてください。 アプレットの方なんですが、repaint(){}が作動してくれないんです。 いろいろな可能性があるでしょうが、ソースがちょっと長いので 全部は張りつけられません。 考えられる可能性を教えていただけないでしょうか? 必要であるならばソースの一部を張ります。
612 :
java見習い :01/09/28 18:50
間違えました。訂正です。 repaint();で呼び出すupdate(Graphics g){}が作動してくれないんです。
>>612 まず聞きたいのですが、
update()が作動しないとはどのような状況ですか?
update()はオーバーライドしていますか?
614 :
java見習い :01/09/28 19:06
>>613 public void update(Graphics g){
Main.t2.setText(String.valueOf(Main.a));//作動確認
gg=g;
drawGraph();
}
こんな感じなんですが、これってもしかしてオーバーライドできてないですか?
>>612 JDK1.0の頃にJDKがバグってて
たまにupdateをすっ飛ばしてpaintが呼び出された経験があるが、、、
まあ根性いれて再現するようにソースを削ってあぷしろ。
(だいたいやってるうちに原因がわかってあぷする必要もなくなるんだけどな)
日本語もなんか変なので君は本当に初心者みたいね 作動→動作 ちょっと聞きたいのですがggは何のために使っていますか?
618 :
java見習い :01/09/28 19:10
これをオーバーライドするにはどうすればいいのでしょう?
619 :
java見習い :01/09/28 19:13
public class Graph extends java.awt.Panel{ int ox,oy; Graphics gg; public void update(Graphics g){ gg=g; drawGraph(); } public void paint(Graphics g){ //g.drawLine等 gg=g; } public void drawGraph(){ //gg.drawLine(x1,y1,x2,y2);等 } }
620 :
デフォルトの名無しさん :01/09/28 19:14
>>618 おまえはすでにオバーライドしている。(ケンシロウ)
621 :
java見習い :01/09/28 19:15
public class Enzan implements ActionListener{ public void actionPerformed(ActionEvent evt){ if(evt.getSource()==Main.b1){ Main.hensu(); Graph g=new Graph(200,200); g.repaint(); }else if(evt.getSource()==Main.b2){ } } }
>>619 初歩的なことを聞きますが
paintとupdateの違いがわかりますか?
またそれをオーバーライドする理由がわかりますか?
623 :
java見習い :01/09/28 19:23
paintはアプレット開始時に呼び出されるもので、 updateは中断や更新するときに呼び出されるもの。 updateはpaintで描いたものを一回消してもう一回paintを呼び出す。 だと思っています。 オーバーライドする理由はよくわかりません。
624 :
java見習い :01/09/28 19:26
オーバーライドしてメソッドを追加することにより、 paintで呼び出さないメソッドを読み出す。 ・・・のつもりで使っていました。
普通はpaintまたはどちらか一方のみオーバーライドするだけで目的は果たせます。 updateもオーバーライドしているというのは何か理由があるのでしょうか? スーパークラスの再描画はちゃんとやっていますか? super.paint(g)などという感じで、
スーパークラスのupdateを上書き(オーバーライド) するわけですからupdateの記述の中に super.update(g)を書くのが普通なのでは?
627 :
java見習い :01/09/28 19:36
>>625 paintで関数の軸の部分等を描いて、
repaintでupdateを呼び出すことによって2次関数を描いています。
スーパークラスというのはこの場合Panelのことですか?
super.paint(g)のようなものは入っていません。
スーパークラスの再描写も必要なんですか?
628 :
java見習い :01/09/28 19:37
とりあえずそれで試してみます。
>>623 ぜんぜん違う
paintもupdateも
Windowシステムが画面を描画する必要があると判断したときに
いつでも任意のタイミングで呼ばれるものだ。
たとえばウィンドウがいったん後ろに隠れてまた表になったときとか。
updateのデフォルトの実装では背景を塗りつぶしたあと
paintを呼び出すようになっている
背景の塗りつぶしを含めて描画を全部のカスタマイズしたいときはupdateをオーバーライドする。
背景描画をシステムに任せてもいいときはpaintだけをオーバーライドする。
630 :
java見習い :01/09/28 19:43
やはり動作しませんでした。 そもそも、 public void update(Graphics g){ Main.t2.setText(String.valueOf(Main.a));//この部分 gg=g; drawGraph(); } //の部分が動作してくれないので、update自体呼び出されていない気がします。 public class Enzan implements ActionListener{ public void actionPerformed(ActionEvent evt){ //この部分 g.repaint(); //この部分 } } //の部分に先ほどの記述をいれたらその記述は動作してくれるんです。
いまのところupdateをオバーライドしている理由がわかりません。 updateに書いてあることをpaintにまとめても差し支えないはずです。 super.update(g)をやっていなかったせいでpaint()がよびだされていない だけとか?
632 :
デフォルトの名無しさん :01/09/28 19:50
import java.applet.Applet; import java.awt.*; public class test extends Applet{ public void init(){ int i=getWidth(); add(new Button()); } } appletviewerだとできるけどブラウザだとできないのはなぜ???
633 :
java見習い :01/09/28 19:51
最初にpaintを呼び出して、後にボタンを押すことによってupdateを呼び出すことによって 最初のpaintとは別な描写をしているつもりなんです。 updateをオーバーライドしないとするならば、 ボタンを押すときに何かの変数をオンにして、 repaintでpaintを呼び出してその変数がオンのとき違う描写をする 、とするべきでしょうか?
>>633 まずむやみにオーバーライドしているのは
無理に問題を難しくするためなのですか?
mypaint()という独自の関数せやればいいではないですか?
あくまでpaintやupdateはWindowが隠れたときなど再描画のための関数です。
訂正「せ」→「で」
636 :
java見習い :01/09/28 19:59
>>634 paint()やupdate()以外では描画することができないと思っていましたが、
そんなこと無いんですね。
今試してみます。
>>636 mypaint()内でグラッフィックスを取得するためには
this.getGraphics()を使います。
訂正 jPanel1へ描画するならば jPanel1.getGraphics()を使います
あのさ、チャットじゃないんだから…
>>639 すみません。原因追求のレスはいけない?
>>639 それとも初歩的な質問に対してはお茶を濁す?
642 :
java見習い :01/09/28 20:20
>>637 ありがとうございます。
もしかしたら上手く行くかもしれません。
なんとかメソッド内に行きました。
>>639 2chはチャットだと思った方がいい気がします
>>640 , 642
いや、原因究明のためのレスは別に問題ないんだけど、
お互いもうちょっと情報を整理してからの方がいいんじゃないかな。
まぁ、解決したのならもういいけど。
644 :
デフォルトの名無しさん :01/09/28 21:11
だいたい、Graphicsオブジェクトを描画関数に渡してない時点で ネタだろ(笑)
645 :
デフォルトの名無しさん :01/09/28 21:16
>>642 そんな考え方はやめたほうが・・・
2chでチャットしたら鯖さんに高付加がかかって
また2chが潰れそうになると思われ
646 :
デフォルトの名無しさん :01/09/28 23:14
ミ´∇`彡にゃーん
>>468 ありがとうございます。すいませんおくれました。
648 :
デフォルトの名無しさん :01/09/29 04:46
IDE選びは、自分がどういうプログラム書くかで違ってくるぞ とりあえず、今回のJavaPressでも参考にしな
―――――――――――――――――――――― 臨時ニュースです。 「Rubyはクソです。ゴミ箱逝きです。 いじょ 」 この発言をコピペしていただければ幸いです。 ___________ __________ ‖ \|________ ‖ | ON AIR.| ‖  ̄ ̄ ̄ ̄ ./ ̄ ̄θ ∧_∧ .../ //(^∀^ )/| ./  ̄/⊂ ||_/ | ̄ ̄ ̄ ̄ ̄| ( ━┳┛ |_____| /ヽ」┘┻
650 :
デフォルトの名無しさん :01/09/29 20:11
651 :
デフォルトの名無しさん :01/09/29 20:21
class A{...} class B{ void f(){ A a=new A(){ int x; }; ... //ここでxに割り当てられている4バイト?を解放したい //つまりメモリを節約したいときどうすればいいのですか? } }
652 :
デフォルトの名無しさん :01/09/29 20:56
4バイトを開放するとメモリの節約になると思ってるのかな この画面であなたが読まない文字情報は何バイトでしょう? ってな事もわかってないんだろうな テキストエディタでも作ってみれば、 メモリの節約と、プログラムの高速化がどんなもんかわかるんじゃない?
>>652 サンプルは簡略化したものです、
実際にはもっと大きなデータ(数MB)を扱います。
これも簡略化したサンプルですが、 A[] al=new A[100000]; for(int i=0;i<al.length;i++) { al[i]=new A(){int x;}; } のようにつかいます。 al[0.....100000]は解放せずに 各々のxを解放したいのですが。ただしxは基本型です。
655 :
デフォルトの名無しさん :01/09/29 21:23
al[i]=new A(){int x;} ↑これなあに? 意味わかんないでちゅう ここよりも病院いくべきでちゅう
>>655 大丈夫ですか?突然幼児語になってしまいました。
657 :
デフォルトの名無しさん :01/09/29 21:30
とりあえず、君は仮想空間とかわかってるのかな? 連続したメモリ空間を使ってるなら プログラムが読みに行かなきゃ関係ないんだけど Winは・・・どうなんだろ まあ、そういう事も気にしないという事で話を進めると プログラムの流れによって適切なデータ構造を選んだ方が いいと思う 特に使用メモリサイズを気にするプログラムであれば データ構造のプログラムサイズだけでかなりいくと思うんだよね ただ、いきなり100000の配列なんて作っちゃうプログラムって・・・ まあ、なくはないか
私の求める安直な方法は存在しないのかもしれません。レス頂いた方ありがとうございました。
al[i]=new A(){int x;}; なんでわざわざこんなことしてんの?
>>654 は疎行列みたいなことがやりたいんでは?
簡略化しすぎました実際には al[i]=new A(al[i]){...};のようにしています。 Aのコンストラクタは単なるコピーをします。 al[i]は画素1ドットに対応します。rgbをintで保持していますが・・・ 本題から外れるのでこれ以上は言いません。失礼しました逝きます。
662 :
デフォルトの名無しさん :01/09/29 23:50
class Foo1{ Foo2[] x=new Foo2[2]; } class Foo2{ Foo1[] x=new Foo1[2]; } というデータ構造を作ったのですが、 Foo1 root=new Foo1(); と宣言して使用した後に root=null; System.gc(); とすればちゃんとgcされるのでしょうか?
失礼しましたこれはスタックオーバーフローしてしまいます。 class Foo1{ Foo2[] x; Foo1(){x=new Foo2[2];} } class Foo2{ Foo1[] x; Foo2(){x=new Foo1[2];} } と訂正します。
664 :
デフォルトの名無しさん :01/09/30 00:17
なんか・・・ 画像処理だったらなおさら節約の必要ないって(笑)
665 :
デフォルトの名無しさん :01/09/30 01:16
ていうかネタだろ。 具体的に何がやりたいんだかさっぱりわからない。
666 :
デフォルトの名無しさん :01/09/30 01:19
667 :
デフォルトの名無しさん :01/09/30 01:34
>>662 されます。
ただし、System.gc()が必ずすぐにgcするとは限らないのは、このケースに
限りません。
そもそも、
>>663 がgcされないかもって考えた理由は何?
669 :
かめうさぎ :01/09/30 07:55
今秋に発売になるWindows xpにはなぜ、JAVAのMVが ないのでしょう・・・ これでJAVAも終わりになるのでしょうか?
670 :
デフォルトの名無しさん :01/09/30 09:39
なぜかエラーが起きてコンパイルできないんだけど、どうして? ConsoleReader console = new ConsoleReader(System.in); int n = console.readInt(); どこが間違いなんだああああ。
671 :
デフォルトの名無しさん :01/09/30 10:22
>>670 ConsoleReaderって何よ?
エラーってどんな?
672 :
デフォルトの名無しさん :01/09/30 15:13
>>669 MSの戦略でしょう。sunのサイトから自分でダウンロードしてください。
スレ違いなので終わり
673 :
デフォルトの名無しさん :01/09/30 15:50
今の主人と結婚して3年目になります。 結婚当初は「一度書けばどこでも動くようにする」と言ってたのですが、 うまくいかなかったらしく、最近は約束を守る気配が見えません。 近頃は夜遅く帰宅する事が多く、だんだんライブラリの量も増えてきました。 得意先と喧嘩したらしく、仕事の契約先も近々打ちきられるみたいで この先どうなるか不安です。
674 :
デフォルトの名無しさん :01/09/30 16:06
>>674 Anfy java チームに聞いてください。
>>673 不安を煽っているのはMSでは?別のスレでお願いします。
678 :
デフォルトの名無しさん :01/09/30 17:01
679 :
デフォルトの名無しさん :01/09/30 17:19
>この人は、JavaがC++より速いことを見事に実証した英雄!! そうなの?? まあ、速さにこだわってるようなレベルの人ではないと思うので とりあえず、偏見を持ったC++プログラマーとかは見たほうがいいです 実行時ポリモーフィズムを使いこなしたい、C++PGは是非JAVAを
683 :
デフォルトの名無しさん :01/09/30 19:36
>680 俺はこの作者の業務履歴見たときから気付いていてたね。
684 :
デフォルトの名無しさん :01/09/30 20:25
誰かソースコード読んだ? マイクロソフトのC++のコンパイラが 32bit用(またはintel用)に最適化されてないんじゃない? 単純な計算だったら、インタープリターが損する部分なんて 特にないわけだから、事実だとすればそういった部分かな?
685 :
デフォルトの名無しさん :01/09/30 20:42
がーん 巨人負け。 長島に快い勝ちを与えたかった。
686 :
デフォルトの名無しさん :01/09/30 23:41
↑こいつさぶすぎマジ死んで欲しい
687 :
デフォルトの名無しさん :01/09/30 23:58
富士通がJAVAにシフトするそうですが、 それってどうなのぉ?
688 :
デフォルトの名無しさん :01/10/01 00:05
ネットワーク重視って事じゃないの?
689 :
デフォルトの名無しさん :01/10/01 00:18
すいませんちょっと教えて頂きたいのですが Vectorの配列にint型の値を入れたい時はどうすればいいのでしょうか add()では出来なかったんですが・・・
690 :
デフォルトの名無しさん :01/10/01 00:34
Integer型にキャストしましょう
>>687 >富士通がJAVAにシフトするそうですが、
>それってどうなのぉ?
今まで COBOL だったのが, という枕をつければ
特に不思議でもないかと。
692 :
デフォルトの名無しさん :01/10/01 00:51
>>690 Integer型にキャストってなに?
偉そうに間違った事教えないように
693 :
デフォルトの名無しさん :01/10/01 00:59
Integer オブジェクトを生成がより正しいか?
695 :
デフォルトの名無しさん :01/10/01 01:23
キャストでいいんじゃない? インタプリタからの扱いが変わるだけだし
696 :
デフォルトの名無しさん :01/10/01 01:34
697 :
デフォルトの名無しさん :01/10/01 01:39
>>695 キャストとImmutableオブジェクト生成は全く違うことだろが。
アホ。勉強せい。
698 :
デフォルトの名無しさん :01/10/01 02:12
どこが違うのか教えて欲しいもんだ
699 :
デフォルトの名無しさん :01/10/01 02:26
すみません。教えて下さい。 catch (Exception e) でExceptionを捕まえたあとで、 何のExceptionが発生したかの判断を行いたいのですが、 どうすれば良いのでしょうか?
700 :
デフォルトの名無しさん :01/10/01 02:44
>>699 1.Exceptionでcatchすんな。
どんな例外がそのブロックで投げられる可能性が
あるのかは、決まってるでしょ。
2.(本末転倒だが)instanceof
3.(知ってるよね?)Exception#printStackTrace()
701 :
デフォルトの名無しさん :01/10/01 03:05
>>699 googleで「java Exception」を調べよ。
通常は
try{
}catch(IOException e1){
}catch(NullPointerException e2){
}catch(Exception e){}
のようにして分岐する。
e.getMessage()でメッセージを調べたり、
e.getException()で例外クラスを調べたり
if(e.getException() instanceof IOException){}
で分岐したりできる。
702 :
デフォルトの名無しさん :01/10/01 03:07
>>700 朝までに動かさなきゃいけなかったので、助かりました。
Exceptionでcatchしろって上司から教わったんだけど
違うのですね。
とにかく、助かりました。ありがとうございました。
703 :
デフォルトの名無しさん :01/10/01 03:12
>>701 ありがとうございました。
google等で調べたのですが、見つからなかったのです。
調べ方が悪かったようですね。
以後気をつけます。
あほ上司・・ Exceptionは他の例外の基底クラスなんであらゆる例外を補足してしまう C++で言うcatch(...)みたいなもの。 例外の種類が違えば当然catchでの処理も変わるわけで 何でもExceptionで取ってしまうのは問題あり。
>>702 通常は
try{}catch(Excepiton e){e.printStackTrace();]
で殆ど事足りると思うのだが。
早いうちにきちんと教育しといた方がいいんだよ、このばあいは。
Object型のオブジェクトを、文字列で名前が与えられたクラスにキャストする にはどうすればいいの?
呼び出したいメソッドも文字列で与えられるから、getMethodの invoke使って解決したづら。
709 :
デフォルトの名無しさん :01/10/01 16:28
キャストの必要のない場合 double←float←long←int←short←byte char は何処に入る?
711 :
デフォルトの名無しさん :01/10/01 21:32
Javaのマルチスレッドは糞だな
無いよりマシ
714 :
デフォルトの名無しさん :01/10/01 22:05
716 :
デフォルトの名無しさん :01/10/02 00:07
Vectorの配列に入ってる要素を int型配列に入れるにはどうしたらいいのでしょうか
717 :
デフォルトの名無しさん :01/10/02 01:57
>>716 Vector v には、Integerが入っていると仮定して、
int[] a = new int[v.size()];
for(int i=0; i<v.size(); i++){
a[i] = ((Integer)v.get(i)).intValue();
}
718 :
デフォルトの名無しさん :01/10/02 04:18
Apache + Tomcat でServletを起動すると、FileOutputStreamとかで 書き出したファイルのownerはrootになっちゃうんですが、これを防止 させるにはどうしたらいいですか? Tomcatをnobodyとかで起動してみたものの、上手く行かず。 マルチユーザ環境だからrootのままじゃ非常にまずいのですが、 セキュリティポリシーだけで何とか出来るものでしょうか?
719 :
デフォルトの名無しさん :01/10/02 15:15
>>716 これじゃだめかな?試してないけど。
java.util.List#toArray(Object[] a)
Vector vec;
//中身しまう処理
int[] a = (int[])vec.toArray(new int[0]);
あ、だめか。Integer[]になっちまうな。
722 :
デフォルトの名無しさん :01/10/02 22:30
>書き出したファイルのownerはrootになっちゃうんですが、これを防 owner変えるだけでいいんじゃない? 1分毎に更新ファイルだけ調べれば、大抵の場合何とかなると思うんだけど 人間の感覚にあわせたら1秒毎くらいかもしれないけど それでもたいした負荷にはならないと思うしね
723 :
デフォルトの名無しさん :01/10/02 23:29
初診謝な質問ですが、 g.drawline()とかで線を引けるのはわかったのですが、 この線の太さって変えられないんですか?
>723 1.2以降なら変えられる Graphics2D.setStroke(Stroke) サンプルのJava2Demoあたり見るのがよいかと
725 :
不真面目な文系学生 :01/10/03 00:02
あのーすぐ返事がくるようなので質問させてください。 システムエンジニア職にないていしていて、会社に情報処理の資格の勉強 しておけゆわれたんですが、言語はCobolかjavaで、ということなんです。 でも、内定しておきながら初心者でどっちがいいんかわからんです。どっちがいいんでしょう?
Cobolがお勧め
Cobolは前世代の言語ながら言語仕様が覚えやすい。 JavaはC言語やC++をやってきた人にはなじみやすい。 Cobol は銀行のシステム関係、Javaの場合、Web関係の仕事。
Cobolなら一週間も学習しとけば使いモンになるコードが書けるか。
COBOLいけ。 COBOLはおいしい
730 :
デフォルトの名無しさん :01/10/03 00:47
JavaでSocketを非ブロックでI/Oしたいんだけど、どうすればいい のでしょうか?
731 :
デフォルトの名無しさん :01/10/03 00:49
プログラミングを勉強しようと思い、SDK1.3.1をダウンロードしました。 参考書を見てHellow Worldは書けるようになりました。 線も好きな様に書ける様になりました。 クラスはいまいち理解できません。 そして、そこから先に進みません。 ゲームを作ろうと思っているんですが、JAVA 以外にどのような勉強をすればよいのでしょうか? ネタではないです。 XMLなんでしょうか? JAVA Script? それとも、やっぱりCとかVBとかの方が良いのでしょうか?
732 :
デフォルトの名無しさん :01/10/03 00:49
普通何もしなくても待ち状態ではスレッド切り替えやるだろ。
733 :
デフォルトの名無しさん :01/10/03 00:51
>>732 もう少し詳しく教えていただけないでしょうか?
>>730 非ブロックI/Oはありません。
将来対応するらしいですが、定かではありません。
735 :
デフォルトの名無しさん :01/10/03 00:57
>>731 ゲーム作るには参考本を買えばいい。
JAVA以外の言語やるのは構わないがゲーム作りとは関連ない。
733,735さん、ありがとう。 地道に精進して、いろんな参考書とか雑誌を見て勉強して一歩一歩進んでいけば良いのでしょうけど、飽きてしまったので(ワラ 例えばweb上で動くゲームとかを作りたいんです。 とりあえずjavaをもう少し勉強したほうが良いということですよね? 未だゲームのソースとか見てもチンプンカンプンで理解できないし、先が見えてこないので・・・ 我の知識としては、大昔にベーシック少々、マシンゴ途中挫折、フォートラン少々・・・歳がばれるー
738 :
デフォルトの名無しさん :01/10/03 01:11
JavaでUNIX環境固有のものを呼び出したいのです。以下のものは 利用できますか? - FIFO - 共有メモリ、セマフォ - UNIXドメイン また、スレッド間通信にはパイプ通信以外にありますか? イベントなどを通常のスレッドでも利用できますか? よろしくお願いします。 -
>>738 どれもこれもできねえよ
他の言語でやった方がイイヨ
740 :
デフォルトの名無しさん :01/10/03 01:15
>>739 いや、言語指定されてしまったので。。。反対したのですが、
無駄でした。
くそおおおおおおおお!!
ご愁傷様
>>738 上3つは、仕方ないのでJNIつかえ。最早Java使う意味無いけど。
ただ、ライブラリ化しておくとあとで楽ができるかも知れんぞ。
スレッドは、APIでサポートされてて、JVMのヒープ内でインス
タンスがいくらでも生成できるので、通信を気にする必要は無いよ。
精密な同期処理を実装してないので同期がつらいけど。
743 :
inakamono :01/10/03 04:09
OSはWindows2000ProでJDK1.3を使ってて、暗号の勉強をしようと思って Cryptixをダウンロードしたんですが、ホームページで書かれてるように やってもインストールができないんです。どうやったらいいのか教えて ください。
ここはjavaの相談室です。インストールの仕方の相談室ではありません。 このスレでCryptixを使った人がいるならば教えてくれるかもしれませんが、 いるかどうかはわかりません。
745 :
デフォルトの名無しさん :01/10/03 15:56
プラグイン入れないとアプレットでPointは使えないのでしょうか? JavaAppletは廃れるのでしょうか?
>745 Pointってjava.awt.Pointのこと? 使えるはずだよ 個人的にはWebページの飾りつけはFlashとかがいいと思う・・・
747 :
デフォルトの名無しさん :01/10/03 16:27
appletの復活希望
748 :
デフォルトの名無しさん :01/10/03 16:38
ふと、こんなことを考えてみたんだけど。 アプレットでネットワーク対戦型ゲームをつくるとしたらさ やっぱりサーバーを通さなきゃできないよね? スタンドアロンのアプリならいろいろ出来るだろうけど・・・
>>748 ゲームのユーザーにJavaのセキュリティレベルの設定を自分で
下げてもらうとか?
750 :
デフォルトの名無しさん :01/10/03 18:12
Appletはポップアップなウインドウ作って酷い目にあった。 ブラウザ、OSのバージョンで、できたりできなかったりすることが あるから非常に萎えた記憶が多い。 SUNが悪いのか、ブラウザ、OS側が悪いのか、煮え切らない状況で イラついたよ。
>>749 セキュリティレベルを下げなきゃいけないようじゃ、誰もやらないんじゃないか?
どうせサーブレット経由になるなら、ここはいっちょSOAPを使って・・・
って、んなことしたらPlugInにしなきゃいけないじゃないか。
jarアーカイブもめちゃくちゃデカくなりそうだし・・・
無難なのはCGIのサーバでも置いとくことなんだけどねぇ。
javac -bootclasspath %DOJAAPI% -encoding SJIS_i -g:none -J-Xbootclasspath/a:%DOJA%/lib/dojaconv.jar IAppli.java これってAntのBuilt-in Taskのjavacでは書けないよねえ?
753 :
デフォルトの名無しさん :01/10/03 18:37
APIのドキュメントを読んでも使い方がよく分からないときはどうすれば?
>>753 ・試しに使ってみる
・googleで調べる
・2chで聞く
755 :
デフォルトの名無しさん :01/10/03 18:40
使わない
756 :
デフォルトの名無しさん :01/10/03 22:12
java graphics でスポイト的なメソッドってあります? ピクセルの色調べるようなやつです
758 :
デフォルトの名無しさん :01/10/04 02:01
>>757 GraphicsにもImageにもそういう関数はないような気がした。
java.awt.image.BufferedImage の getRGB(int,int)
をつかうのはどうかな?
>>758 しらべてみまふ サンクス!
761 :
デフォルトの名無しさん :01/10/04 02:08
>>753 SUNのJavaのAPIのHPはAPIの設計書であって説明書ではない。
クラスライブラリの設計者同士の覚書みたいなもので、
利用者に向かって書かれていない。(MFCの文章と比べて見よう)
HP巡りとか本買うとかして習得すべし。
>>756 ありがとう!調べてみます!!!
(ナニカラ?
763 :
デフォルトの名無しさん :01/10/04 02:22
>>757 とりあえずまず「グラフィックJava2 Vol1. AWT編」くらいは
買おう。きっとこれから出てくる同種の疑問にも答えてくれるぞ。
ただ、前も誰かが書いていたけど、Vol3. Java2D編がなかなか
でないんだよなぁ。
JAVAのダイレクトXって使っていいの? なんか、使ってるひといないけど
765 :
デフォルトの名無しさん :01/10/04 21:57
JTextFieldのテキストが変更されたタイミングに呼び出されるリスナーとかある?
767 :
デフォルトの名無しさん :01/10/04 22:39
>>763 >ただ、前も誰かが書いていたけど、Vol3. Java2D編がなかなか
>でないんだよなぁ。
それはおいらが二回も言ってたのに無視されてた。
で、いつでるのでしょうか?
769 :
超初心者ですみませぬ :01/10/05 00:40
ものっすごい厨房な質問で気が引けるが、勇気を出します。 俺、いままでコンピューターなんてネット以外に触った事もなかったんだけど 一念発起してjavaの入門書みたいなの読んでちょっとやってみたのね? そいで、まあ今日がはじめて2日目なんだけど、もう壁にぶつかっちゃったの。 class Sample4e { public static void main(String args[]) { int ten=1; System.out.println("オマエを"+ten+"発なぐる"); switch(ten){ case1: System.out.println("つーか痛いだろ"); break; case2: System.out.println("つーか死ぬだろ"); break; case3: System.out.println("つーか消滅するって"); break; default: System.out.println("もうホント勘弁して"); break; } } } というように打ちこんだのね。ほとんどテキストの通り。 でもどうしてもコンパイルできないのです。間違ってるみたいなんです。 俺は本の通りやってるんです。 どこが間違っているのでしょう。 お願いします。教えてくださいませ。
ファイル名は何にしてる public classにすること
771 :
超初心者ですみませぬ :01/10/05 01:00
>>770 そういうのではないようです。
プログラム自体に9個のエラーがあるようです。(MS−DOSがいってた)
772 :
TINI :01/10/05 01:02
現在、TINI Boardという米DALLAS社のマイコン・ボードを使って いるんですが、これのセットアップの仕方がまるで分からない。 基本的にはJavaのJDKやAPIを使ってセットアップしていくんだけど、 理解に苦しむこの頃。 誰かこのTINIをパソコン上で使えるようにするためのセットアップ 方法を詳しく知っている方、教えてください。お願い。
>771 うーんと、じゃぁcaseの後にスペース入ってるか? >772 マニュアル読めとしか言い様が無い
>>771 全角スペースとかじゃ無いよね?
ここにコンパイラの文句コピペしたら?
775 :
デフォルトの名無しさん :01/10/05 01:23
caseと数字の間にスペース入れよう。 つうかエラーメッセージぐらい読め。
776 :
超初心者ですみませぬ :01/10/05 01:35
caseのあとにスペースいれたら解決しました。
みなさまありがとう。
>>775 ゴメソ、エラーメッセージの意味がわからなかった…
777 :
デフォルトの名無しさん :01/10/05 01:54
>>772 tini.org行ったか?
Javakitの設定が少々面倒だけどあとはすんなりだよ
>>777 そう、そこ!!
JavaKitの設定のところがいまいちよく分からない。
BATファイルを作成するとか書いてあったけど、
Autoexecを編集するだけでいいのかな?
何度やっても"No responce TINI Board!"とエラーメッセージが
返ってくる始末。
>>778 JavaKitは起動してるみたいだな。
つーことはDTRのカットだな。多分。
これでピンときたらいいんだけど、意味不明なら
スレッド立てなさい。これ以上ここでやるのは気が引ける。
780 :
デフォルトの名無しさん :01/10/05 17:06
GraphicsJava2 vol3はいつでるのでしょうか? また無視されるのかなあ
781 :
通りすがり :01/10/05 17:06
あ、俺もTINIもってるよ。だけど、俺のはTINIボードをACアダプタで 電源入れても緑のパワーランプが点灯しない。なんでだろ? あれってコンセントにつなぐと自動的に電源が入ってパワーランプがつくんだよね? なんで俺のはつかないんだ?
782 :
デフォルトの名無しさん :01/10/05 19:50
ここのやつらはレベル低すぎ、マジで。 君達ちゃんとした大学の情報科でコンピューターサイエンス習ってきた? 数学はわかってる? 文脈自由文法とかわかる? くだらん意見吐く前にちゃんとした教育を受けて下さいよ、マジで。 ちなみに専門は糞ですんで
783 :
デフォルトの名無しさん :01/10/05 19:52
↑でも仕事は一緒(藁
>>782 人のこと言うまえに自分はどうなんだよ。
どこかの研究機関にいて博識かもしれんけど。
だいたい2chに高レベル求めんのもどうかな?
学会逝け!
そんなの今時の高校生だってしってるぞ。 もっと「CS学科でしか学べない」ようなレベルの高い例を出せよ>782
786 :
デフォルトの名無しさん :01/10/05 21:59
文脈自由文法、オートマトンがわかると なんの役に立つのか知ってるのかな? 情報科で習うことって、 ほとんどある分野でしか使えないような知識だと思うけど
状態遷移図を上手に書きたい。 ところがオレは書き方を知らない。 オートマトンを勉強すれば自然に身につくと聞いた。 なんかいい本あったら教えて。
788 :
デフォルトの名無しさん :01/10/05 22:33
状態遷移図ってメチャメチャ簡単じゃん オートマトン勉強するのと 状態遷移図勉強するのって 大変さがけた違い
>>788 その辺を学生に戻った気で本気で勉強しなおしたいの。
今作らせてるシステムが不調で、原因を聞くと
「変なステートに落ち込んだみたいですね・・・」
どんなステートなんだと聞いてもそうなる条件を聞いてもあやふや。
仕様書もソースもぐちゃぐちゃだし。
ならば一度システム全体をぶっ壊して、見直してやろうと思って・・・
790 :
デフォルトの名無しさん :01/10/05 23:23
>>789 いいと思いますぶっ壊しましょう。
最初からやり直した方が意外に早くできるかもしれません。
仕様書やソースはいいとして設計書を忘れていませんか?
状態遷移図、フローチャートなどの技術は基本設計の技術です。
すれ違いなので以上
792 :
デフォルトの名無しさん :01/10/06 00:07
>>782 自分は高校生だからよくわかんないけど、プログラマーなんてプログラムだけできればいいんじゃないの?
プロの方の意見が聞きたいなあ
>>792 プログラム=コードが書ける
という認識は間違っています。
プログラマとは、今世間で言うところのSEと同程度の
ことはできなければなりません。
企画、設計もプログラムのうちです。
797 :
デフォルトの名無しさん :01/10/06 02:12
javaで3D画像を描きたいのですが、どのようにやったらよいのでしょうか? またおすすめの勉強サイトなどはありますか?
800 :
デフォルトの名無しさん :01/10/06 03:16
GraphicsJava2 vol3 はいつでるのでしょうか? なぜみなさん無視するのでしょうか? 自分は変な事言ってますでしょうか? スレ違いなのでしょうか? 心が痛いんですけど
>>800 出ない、というのが大人の意見。
あきらめろって。
802 :
デフォルトの名無しさん :01/10/06 04:23
みんな情報系の学科出てるの?
803 :
デフォルトの名無しさん :01/10/06 07:37
>>802 情報系の落ちこぼれってとこじゃない
まあ、俺の定義だと東工大の8割が落ちこぼれになっちゃうけど(笑)
優秀なのは開発系に行くね
コーディングよりも、数学っていうのかな?
数学みたいなのをやってることの方が多いみたい
804 :
デフォルトの名無しさん :01/10/06 08:05
昔はコンピューターサイエンスみたいなのってそんなに確立されて なかったからなぁ、俺も普通の電気工学だからコンピューターは ほんの1部でしかなかったし。 最近の専門学科ってどんなのやってんの? オートマトンは常識?
805 :
文系エログラマー :01/10/06 11:36
「オートマトン」って?
おー、トマト! ンーまい! (トマトがとてもおいしゅうございました。)
オート→自動 マトン→羊肉
マジレスキボン(´д`;)
809 :
デフォルトの名無しさん :01/10/06 15:16
Oreillyの『Java Cookbook』読んだ人いる?
810 :
デフォルトの名無しさん :01/10/06 16:02
>>804 automaton または automataと言いたかったのだと思う。
811 :
オートマータ :01/10/06 16:26
からくりサーカス(少年ジャンプ)参照
812 :
デフォルトの名無しさん :01/10/06 16:26
サンデーだったかな?
813 :
デフォルトの名無しさん :01/10/06 17:19
814 :
デフォルトの名無しさん :01/10/07 00:21
教えてください。 ファイルA (/path/to/fileA) を丸々ファイルB (/path/to/fileB) に コピーしたいのですが、手っ取り早く行う方法はあるのでしょうか。 FileInputStreamで一文字ずつ読み取って、FileOutputStreamに書き出す、 なんて方法しか思いつかないのですが・・・
815 :
デフォルトの名無しさん :01/10/07 00:24
>>814 結局コピーってそうやることなんじゃないの。
ただ、一文字ずつというのは何だから、一度にたくさん読み込んだら。
816 :
デフォルトの名無しさん :01/10/07 00:36
情報科の優秀な奴はプログラマーなんかにはならないよ。 落ちこぼれがなるのがプログラマー。 数学できない奴とかね。
817 :
デフォルトの名無しさん :01/10/07 00:58
ボケ言語だよな。 全然オブジェクト指向じゃないじゃん。 作ってる内に忘れるのかね? FileInputStream fis >> FileOutputStream fos; ぐらいに作るのがオブジェクト指向だろが。
818 :
デフォルトの名無しさん :01/10/07 00:59
あ、817はJavaの言語設計者への非難ね。
研修医の優秀な奴はERなんかになんか入らないよ。 落ちこぼれがなるのが外傷外科。 それと政治とかやりたくない奴とかね。
>>817 申し訳ないんだけど、それのどこがオブジェクト指向なのか
説明してください。よく分かりませんでした。
821 :
デフォルトの名無しさん :01/10/07 01:15
数学を勉強しろ>817
822 :
デフォルトの名無しさん :01/10/07 01:26
823 :
デフォルトの名無しさん :01/10/07 01:35
>>817 はC++のiostreamマンセーと言ってるのかな?
違ってたらゴメン。
おれは、アレは演算子多重定義びっくりコンテストだと思うんだけど。
設計という点でも、初期の頃は菱形継承してたり結構混乱してるような。
どっかにオブジェクト指向という観点から見た、
javaとC++のストリームライブラリの比較なんて無いかな?
確かにコピーするときは byte buf[ BUFSIZE ]; while ( ! in.isEof ) { int size = in.read(buf, BUFSIZE); out.write(buf, size); } になっちゃうよね。 これってアセンブラでもCでもC++でもJavaでも同じなんだよなあ。 ちなみに挙げた全部の言語で書いたことあるわ。 BUFSIZEの最適な値もこれというものがないし。 ダサいね。
825 :
デフォルトの名無しさん :01/10/07 01:47
>>824 >これってアセンブラでもCでもC++でもJavaでも同じなんだよなあ。
確かにそうだけど、OOならそれがファイルでもソケットでもメモリでも
いい、ということはあるよね。
>>824 そういうのは大抵バッファサイズを隠蔽するよね。
構造体なりオブジェクトなりで。
>>825 たしかにストリームという形での抽象化は有用なんだけど、
このレベルならアセンブラやCでもやってた気がする。
ここでダサく感じているのは、
オブジェクト間の相互作用の記述について、旧態依然なところかなあ。
828 :
デフォルトの名無しさん :01/10/07 03:43
>>820 ストリームこそオブジェクトらしいオブジェクトなのに
なんで手続き型で、しかも下位構造意識しないと渡せないのか不思議。
不細工な作りだということ。
>> が どうにもしっくりこない、むしろ許せない、という人は 意外と多いと思う。
830 :
デフォルトの名無しさん :01/10/07 04:30
フリーでJavaの逆コンパイラーってないんでしょうか? いくつか検索掛けてみたけどダウンロードできなくなってるんで それってダメってことになったんでしょうか?
833 :
デフォルトの名無しさん :01/10/07 12:24
線や絵を描くプログラムを作っているのですが アプレットビューアで見たり、アプリケーションで実行すれば ちゃんと表示されるのに、HTMLファイルに組み込むと表示されません。 ちなみにテキスト文字やボタンなどはちゃんと表示されます。 どこが悪いのでしょうか?
834 :
デフォルトの名無しさん :01/10/07 12:49
Javaは少しでも環境が変わると動きません。 あきらめましょう。
835 :
デフォルトの名無しさん :01/10/07 12:59
>>833 >どこが悪いのでしょうか?
質問の仕方。
もっと具体的に症状を書かないと分からん。
あと、ブラウザのjavaコンソールを表示して、何か出ないかみてみれば。
836 :
デフォルトの名無しさん :01/10/07 13:56
Write Once, Run On One Place. To Run Anywhere, Write Anytime.
837 :
デフォルトの名無しさん :01/10/07 15:06
ホームページからユーザー登録を行うサーブレットを作ってます。 入力してもらったメールアドレスの有効性を調べるために、 まず正規表現で文法をチェックして、その後、@以下のホスト名を 抜き出して、そのホストが存在するかどうかDNSで調べようと しているのですが、ホスト存在チェックがうまくいきません。 (MXレコードではなく存在だけチェックできればOK) java.net.InetAddress ip = java.net.InetAddress.getByName(hostname); 上記のようにやると、hoge.comのホスト名はちゃんとIPを取得できるんだけど、 fuga.co.jpのホスト名だとダメです。www.fuga.co.jpというようにwww.くっつけると 取得できたりします。 どうしたものでしょう。マジレス待ってます。
補足 .co.jpや.ne.jpだとダメで、.comや.netだとIPを取得できるということ。
839 :
デフォルトの名無しさん :01/10/07 15:17
>>837 >.co.jpや.ne.jpだとダメで、.comや.netだとIPを取得できるということ
ではなくて、単にfuga.co.jpは登録されてなくて、www.fuga.co.jpは登録
されているということでしょ。
登録されてない名前ではIPは取得できないよ。
>>839 でもさ、例えばWin2kのコマンドプロンプトやLinuxのコマンドで
nslookup fuga.co.jp
ってやればIP取得できるでしょ。それと同じようなことはJavaじゃ
できないのかな?
841 :
デフォルトの名無しさん :01/10/07 15:32
>まず正規表現で文法をチェックして メールアドレスのために正規表現って・・・ パフォーマンス無視ですか(笑)
>> 840 ゴメン、うそついた。nslookupじゃできない。
PHPで checkdnsrr(hostname, ANY) っていう関数が あって、それだと簡単にホスト名の存在チェックが できたんだ。ドメイン名の種類に問わず。 そんなのをJavaで実現したいわけなんです。
845 :
デフォルトの名無しさん :01/10/07 15:45
Write Once, Run Anywhere. 「納入したらトンヅラしなさい」と訳す。
846 :
デフォルトの名無しさん :01/10/07 16:06
>>837 ドメイン名にIPアドレスは対応してないですよ
メールアドレスの文字表現を解析するなら
charで@の前と後ろで動作を分けて
不正な文字が入ってないか調べるのが普通じゃないかな?
文字列処理はLISPでしかやったこと無いので、なんとも言えませんが
ついでに、正規表現って呼んでいる処理は
正規表現で書かれた文字列に対して行う処理なので
perlを使う人が正規表現を多用しているのには、ちょっと疑問を感じます
それこそ、上ででてきたオートマトンを勉強する必要があると思います
847 :
デフォルトの名無しさん :01/10/07 18:04
848 :
デフォルトの名無しさん :01/10/07 18:57
■■■■■■■■■■■■■■■■■■■■■ RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!! RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
>>848 全然詳しくないんだけどRMI over IIOP とかは?
851 :
デフォルトの名無しさん :01/10/07 23:12
≫850 そりは単にRMIの下位プロトコルがIIOPだつうことでCORBAと話が出来るだけ。SOCKETほど間口が広くない。
852 :
デフォルトの名無しさん :01/10/07 23:16
RMIやCORBAはブロトコルオーバーヘッドがでかい。
りもーとメソッドインポテーション
そしてJavaのsocketは弱い。
>>RMIやCORBAはブロトコルオーバーヘッドがでかい。 Java自体もともと実行効率よりもシステム開発の生産性upを主眼に置いてるわけだし カリカリにやりたければCでゴリゴリど〜ぞ、みたいなもんでしょ。
856 :
デフォルトの名無しさん :01/10/08 00:04
>>854 そこ、詳しく聞きたい。Socketが弱いってのは?
selectねーし。 REUSEオプション指定できねーし。
>>856 ソケットに限らないけどJDK1.3まで非同期IOという概念がJavaにはすっぽり抜けていた。
たぶんそれぞれの入出力ストリームにスレッド1つ張り付かせればほぼ
同等の処理ができるから故意に省かれていたんだろう。
さすがにスレッドの乱用は
重いってんでJDK1.4で非同期IOは追加されるらしいけど。
859 :
デフォルトの名無しさん :01/10/08 02:09
非同期IOというと非同期シリアルとかの事?
>>859 Read/Writeだけ切って、すぐに戻り、あとで結果を取りに逝くやつ。
861 :
デフォルトの名無しさん :01/10/08 02:33
862 :
デフォルトの名無しさん :01/10/08 02:40
832さんへ やっぱここもリンクが切れてますね なんでだろ?他のフリーの逆コンパイラのところもリンクがことごとく 切れてます。何かあるんでしょうか?
863 :
デフォルトの名無しさん :01/10/08 10:08
864 :
デフォルトの名無しさん :01/10/08 12:46
865 :
デフォルトの名無しさん :01/10/08 12:54
>>864 なんか、アクセス量が規定を超えたから、後1時間ぐらいまて
との表示だね。
待ってみて。
866 :
デフォルトの名無しさん :01/10/08 17:23
Sunが圧力でもかけてんじゃねーの(藁)
869 :
デフォルトの名無しさん :01/10/08 21:31
わらいごとじゃねーな
870 :
デフォルトの名無しさん :01/10/08 21:55
jar.exeを使って実行可能なjarファイルを精製したいんですがどうもうまくいきません。 参考になるサイトなどはないでしょうか?
871 :
デフォルトの名無しさん :01/10/08 23:47
ResultSet rs = statement.executeQuery("select name from 名簿;"); こうやって検索した結果を String[] names に収めたいんだけど、ResultSetには何件あるか分からないから String配列を初期化できないよねぇ? なんかいい方法ないの?
872 :
デフォルトの名無しさん :01/10/08 23:52
>>870 justsystem.co.jp
>>871 別にわかんなくてもいいだろ
Vectorは?
873 :
デフォルトの名無しさん :01/10/08 23:55
【質問】Windows環境限定と思いますが、JDialogの右上の「x」ボタンを 無効化し、「押せなくする」方法はありますでしょうか。
874 :
デフォルトの名無しさん :01/10/08 23:56
875 :
デフォルトの名無しさん :01/10/09 00:00
消すんじゃなくて押せなくするの?
876 :
デフォルトの名無しさん :01/10/09 00:30
>>872 どうもありがとうございます。なんとか解決しました。
>875 消す方法でも構いません。 ていうか、そっちの方がありがたいです。 よろしくお願いします。
878 :
デフォルトの名無しさん :01/10/09 08:08
>>877 JFrame.setDefaultCloseOperation()
でいいのか?
879 :
デフォルトの名無しさん :01/10/09 08:12
>>877 ドキュメント読めよ
setDefaultCloseOperation
public void setDefaultCloseOperation(int operation)
ユーザがこのダイアログで「クローズ」を開始したときに、デフォルトで実行される処理を設定します。以下の値を選択できます。
* DO_NOTHING_ON_CLOSE - 何も行わない - プログラムは登録されている WindowListener オブジェクトの windowClosing メソッドで処理を行う必要がある
* HIDE_ON_CLOSE - 登録されている WindowListener オブジェクトを呼び出したあとで、自動的にダイアログを隠す
* DISPOSE_ON_CLOSE - 登録されている WindowListener オブジェクトを呼び出したあとで、自動的にダイアログを隠し、破棄する
デフォルト値は HIDE_ON_CLOSE です。
880 :
デフォルトの名無しさん :01/10/09 09:38
this の意味がよくわかりません。どなたかわかりやすく教えてくれませんでしょうか?
881 :
デフォルトの名無しさん :01/10/09 09:40
>>880 thisってのはね、あなたのチムポのこと
あんまりいじめんどけや
882 :
デフォルトの名無しさん :01/10/09 09:54
this pointer HA SONO class NO instance HENO pointer DE C++ GA KANRI SITE IMASU.
883 :
デフォルトの名無しさん :01/10/09 09:58
>>880 thisは、そのthisを含むオブジェクトの自分自身への参照だけど、
オブジェクトの参照って分る? これが分らないとthisも分らないから
分かっていることにしておいて、例えば、
class foo{
int value;
void hoge(int value){
this.value=value;
}
}
なんてやる。もしthisがなかったら、パラメータのvalueとメンバ変数
のthisを区別できない。
>なんてやる。もしthisがなかったら、パラメータのvalueとメンバ変数 のthisを区別できない。 は、 >なんてやる。もしthisがなかったら、パラメータのvalueとメンバ変数 のvalueを区別できない。 ^^^^^^ の誤り。_(..)_
885 :
デフォルトの名無しさん :01/10/09 22:48
>879 DO_NOTHING_ON_CLOSEでは「x」ボタン自体は有効で、 単に「押しても何もおきない」だけですので希望する動作 ではありません。 ・「x」ボタン自体を無効状態で押せなくする または ・「x」ボタンそのものを消す(表示しない) 方法はあるかと >873 で質問しました。 >874で 「ある」と レスがつき、 また >875 で「消すんじゃなくて押せなくする のか」とありましたので、「x」ボタンそのものを消せるので あればと 再度 >877 でお尋ねしました。 判りにくくてすみません。
886 :
デフォルトの名無しさん :01/10/09 22:56
887 :
デフォルトの名無しさん :01/10/10 07:54
>>885 たぶんJWindowつかうと吉なのにゃー
888 :
デフォルトの名無しさん :01/10/10 10:26
889 :
デフォルトの名無しさん :01/10/10 11:09
JWindowにJDesktopPane張ってJInternalFrameをいっぱいに張ってごまかせ。
891 :
デフォルトの名無しさん :01/10/11 16:35
小数点以下10桁の数字を小数点以下3桁まで表示したいのですが どうしたらいいでしょうか? どなたか教えてください。
892 :
J2EEチューボー :01/10/11 17:13
WebLogic使っている人いましたらしつもーん。 WebLogicのWebServerでURLアドレスにWORDのdocファイルを指定すると 文字化けバイナリでブラウザに表示されちゃうのですが、 どこかにMIMEタイプとか設定できるのでしょうか?
893 :
デフォルトの名無しさん :01/10/11 17:42
>>891 String s;
DecimalFormat fmt = new DecimalFormat("#.###");
s = fmt.format(dn);
あ、四捨五入しちゃだめなの?
894 :
デフォルトの名無しさん :01/10/11 17:46
あ、double dn; ね。 DecimalFormat("0.000"); //これだと、末尾のゼロサプレスをしない。
895 :
デフォルトの名無しさん :01/10/12 07:49
すいません、JEditorPaneについて質問です。 JEditoPaneで表示されたHTML文書のハイパーリンクの挙動とフォント設定について 分からないことがあります。 次のレスにソースを乗せますが、現段階の状況としては・・・ (1)JEditoPaneにHTML文書を表示しているが、フォントを設定できない。 フォントの設定は、hoge.setFont(new java.awt.Font("Dialog", Font.PLAIN, 14)); などとしていますが、明朝体のフォントでのみHTMLが表示され、ゴシック体に変更できない。 (2))ハイパーリンクイベントは基本的に正しく発生していますが、納得できない挙動がある。 ・ハイパーリンクをシングルクリックした段階で、HyperLinkEventが発生してしまう ・JEditorPane内の適当なところをクリックすると、適当なところのハイパーリンクを読みこんでしまう。 ・従ってダブルクリックすると、2回イベントが発生してしまいます。 (3)やりたいこととしては、ブラウザのようにダブルクリックしたうえで、イベント発生+プロセスコマンドによる新規ブラウザの起動 というものです。もちろん表示フォントはゴシック体で。 皆さんのお知恵をどうかお貸し下さい。よろしくお願いします。 少々長いかもしれませんが、次レスにソースを掲載します。
import javax.swing.*; import javax.swing.border.*; import javax.swing.text.html.*; import javax.swing.text.EditorKit.*; import javax.swing.plaf.basic.*; import javax.swing.tree.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.util.*; public class foo_Frame extends JFrame { JEditorPane hogePane; public foo_Frame{ HTMLEditorKit thisEditorkit = new HTMLEditorKit(); hogePane = new JEditorPane(); hogePane.setEditorKit(thisEditorkit); hogePane.setContentType("text/html"); hogePane.addHyperlinkListener(new linkClicked()); hogePane.setEditable(false); hogePane.setText(ほにゃらにゃら); // 初期画面としてJEditorPaneに表示するHTML文書です。 } class linkClicked implements HyperlinkListener{ public void hyperlinkUpdate(HyperlinkEvent e) { URL clickedHyperLinkURL; String clickedHyperLinkString = null; if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { JEditorPane pane = (JEditorPane) e.getSource(); try { clickedHyperLinkURL = e.getURL(); clickedHyperLinkString = clickedHyperLinkURL.toString(); // ブラウザ立ちあげのプロセスコマンドに使用 try{ // ブラウザを立ち上げて、リンク先を表示 }catch(IOException be){ // ダイアログを表示して終了 } } catch (Throwable t) { // ダイアログを表示して終了 } } } } }
897 :
デフォルトの名無しさん :01/10/12 20:25
>>891 ある数字を、1桁づつcharにしていく方法わかる?
それができれば、できるよね
ライブラリーにいちいち頼らな無い方がいいと思うよ
>>895 JAVAのデモって
確かソースついてたけど(バージョンが違うと無いかも)
デモに同じようなプログラムあったよ
デモのほうが数倍高度だったよ
そっち使った方が・・・
>>897 レス有難うございます。
バージョンは1.3.1ですが、付属のdemoを見まわしても該当するような
ソースが見当たらなかった記憶があります。ただあやふやなのでもう一回
見てみます。
それでも分からなかったら再度upします。
899 :
デフォルトの名無しさん :01/10/13 10:32
Javaの初心者向けのWeb Siteってどこにある?
900 :
デフォルトの名無しさん :01/10/13 13:21
901 :
デフォルトの名無しさん :01/10/13 17:10
902 :
デフォルトの名無しさん :01/10/13 18:50
IDとパスワードを保護するために 簡単な暗号を用いて保護したいのですが、今自分が考えている方法は ・IDとパスワードが対になったファイルを用意 ・パスワード生成クラス、可逆クラスを作成 という手法をとろうかなと考えています。 素人考えですが普通どのような手法をとるのでしょうか? 専門家、及びその筋の意見が聞けたら幸いです。
903 :
デフォルトの名無しさん :01/10/13 19:00
可逆は必要なし
MessageDigest#getInstance("MD5") を使ってハッシュ化。
>>904 のとおり可逆は不要。
906 :
デフォルトの名無しさん :01/10/14 01:40
テキストフィールドの文字列の表示を左よりではなく右寄りにしたいのですが どうしたらいいでしょうか?
907 :
デフォルトの名無しさん :01/10/14 01:49
908 :
デフォルトの名無しさん :01/10/14 01:49
909 :
名無しさん@XEmacs :01/10/14 03:03
>>892 >どこかにMIMEタイプとか設定できるのでしょうか?
5.1ならweblogic.properties、6.xならwebappのWEB-INF/web.xmlだと思うが。
910 :
デフォルトの名無しさん :01/10/14 04:45
>>907 モニタをひっくりかえすとは,如何様なものぞな?
911 :
デフォルトの名無しさん :01/10/14 04:56
WinでSunのJDKをインストールすると どうして%SystemRoot%にjava.exeのショートカットができるのだろ。 Sunもいやらしい。
912 :
デフォルトの名無しさん :01/10/14 09:12
>>912 Sunも嫌らしい。って
好きでやってんだろ?
ところで、そのショートカットって1度実行してるからじゃなくて?
あげついでにあげあしとり。
>>911 の Sun もいやらしいってのは
Sun も汚いことをするとの意味だと思うが?
914 :
デフォルトの名無しさん :01/10/14 20:20
917 :
デフォルトの名無しさん :01/10/14 21:08
918 :
デフォルトの名無しさん :01/10/14 21:21
まえから疑問に思っていたのだけど、javaって 一度書いたら、そのバイトコードを他の環境に そのままもっていけるはずですよね。ではWinで 作ったJavaアプリをMSXに持っていきたいのだけど これって無理でしょ?MSXにはJavaVMがないから・・。 じゃ大昔、PC9801のROM-BASIC用のBASICプログラムは そのままではシャープのX1に持っていけなかったのと同じ だと思うけど、どこが革新的なんですか????? 全てのマシンに同質のjavaVMが搭載されているわけないから 昔のBASICプログラムの互換性問題(同じインタプリタが内蔵 されていない)と全く同じ問題点を抱えていると思います。 しかも自分のつくったJavaアプリをきちんと作動させるために JavaVMを同梱したいけど著作権の問題で簡単に配布できない。 これでどうやって普及するというのでしょう?????
919 :
デフォルトの名無しさん :01/10/14 21:29
>918 君はJavaはMSXで動かないから革新的じゃないと言いたいのか? 趣旨がよく解らん。
「一度書いたら、どこでも動く」などといいながら、 それは全てのマシンに同質のVMが搭載されている ことが大前提である。 しかし、実際はVMが搭載されていないマシンもあるし、 Win、MAC、Solaris・・・。同バージョンなのにVMの 振る舞いやGUIの見栄えがビミョーに違う。 ということだよ。 >>君はJavaはMSXで動かないから革新的じゃないと言いたいのか? 後半の文章もよく読んで、頭の中で整理する練習を心がければ もう少し現代国語の点数があがりますよ。
921 :
デフォルトの名無しさん :01/10/14 21:57
>しかし、実際はVMが搭載されていないマシンもあるし、 >Win、MAC、Solaris・・・。同バージョンなのにVMの >振る舞いやGUIの見栄えがビミョーに違う。 そりゃ、君の勉強不足 じゃあ、もっといいクロスプラットフォームの方法を君が提案してください GUIなんてプログラムの本質じゃない事もわからないなんて・・・・ >「一度書いたら、どこでも動く」 これが目的なわけだけど UNIXでもMacでも、OSとハードウエアの能力を引き出しつつ 全く同じに動いたらすごいね でも、そんな事はいつまでたっても無理 だから、今のJAVAで十分なんだよ もしいやだったら、どこでも動くbasicとか作って使えば(笑)
>>918 >しかも自分のつくったJavaアプリをきちんと作動させるために
>JavaVMを同梱したいけど著作権の問題で簡単に配布できない。
元ネタはどこから?
923 :
デフォルトの名無しさん :01/10/14 21:58
VMとコンパイラってどっちも作るの大変だよな JAVAみたいな高度抽象ができる言語だと
>>920 人の揚げ足とる前に自分の文章を読み直して、
文意を把握しやすいようにリファクタリングしてくれ。
というか、Javaが発表されたときから分かっていた問題点を 今さら大声で語られてもなあ。
>しかも自分のつくったJavaアプリをきちんと作動させるために >JavaVMを同梱したいけど著作権の問題で簡単に配布できない。 その断定口調と自信はいったい何処から.. 知り合いとか学校の先生から聞いた話とか言わないでよ
私が理解した君の前半の発言の要旨は以下の通り。間違っていたら指摘してくださいませ。 1、「java」はバイトコードをそのまま他の機種に流用できる筈だ。 2、でも、現実はそれは無理だ。(例:Winで作ったものをMSXに持っていけない) 3、よって、革新的でない。 以上から「MSXでJavaが動かないから革新的でない」と解釈するのはごく自然なように読めますが。 >>後半の文章もよく読んで、頭の中で整理する練習を心がければ >>もう少し現代国語の点数があがりますよ。 後半は前半の補足でしかないように思えますが。後半の文章によって 「君はJavaはMSXで動かないから革新的じゃないと言いたいのか?」 と言う言葉が的はずれになるのですか? 説明プリーズ。
>>928 920は、
「MSX」はJavaVMの無いマシンの例であってMSXそれ自体に深い意味はない、と言いたいのでは?
どうもすみませんでした。今、担任の先生に携帯電話で 確認したら「Javaプログラマ&Java信者と会話すなvoke!」と 怒鳴られました。高校を卒業してからまた2chに来ます。シクシク。
>>921 >そりゃ、君の勉強不足
>じゃあ、もっといいクロスプラットフォームの方法を君が提案してください
>GUIなんてプログラムの本質じゃない事もわからないなんて・・・・
GUIもプログラムの本質だと思いますけど、だったらWinやMACでは
プログラムの本質では無い、いわばどうでもよいおまけで盛り上がって
いる奇妙なOSというわけですか・・・・???。
> 全く同じに動いたらすごいね
>でも、そんな事はいつまでたっても無理
つまりjavaの理想はDQNだったということが証明された訳ですね。
どうもありがとうございました。
>>931 もちろんユーザインタフェイスはソフトウェアにとって重要だ。
(ヒューメイン・インタフェイスを読むべし)
が、純粋な機能要件の視点からはそうではない。
MVC アーキテクチャを勉強すれ。
>>918 Squeakはキミの理想に近いのでは?
但しMSXでは動かないがな。
934 :
デフォルトの名無しさん :01/10/14 23:54
javaでコンソールアプリを作ってるような気がします。 で、j2seとjikesはインストロールしました。 あとこれはインストロールしとけってのはありますか?
936 :
名無しさん :01/10/15 00:04
public static void main(String args[]) と public static void main(String[] args) の違いは何?
見栄え。
938 :
デフォルトの名無しさん :01/10/15 00:09
型名称型 型型名称
939 :
デフォルトの名無しさん :01/10/15 00:09
>つまりjavaの理想はDQNだったということが証明された訳ですね。 つまりって・・・激しい論理飛躍ですな 全ては性能とのトレードオフだってことに気づかないのかな? コンパイラとかは、全くもって無視みたいだしね ユーザーインターフェースとメインルーチンの区別もできない小学生相手にしても 仕方ないね(笑)
931はネタ。 名前が981だしね。
941 :
名無しさん :01/10/15 00:23
deprecated 警告ってどう思いますか? 俺たちの作った新しい仕様に従え、従え、って洗脳してる感じよね。
944 :
デフォルトの名無しさん :01/10/15 05:12
>>911 俺も思った
JDK の /bin に PATH 通してない状態で
コンソールから MS の java.exe 実行したいのに
なぜか JDK の java が実行されちゃって悩んだよ
945 :
デフォルトの名無しさん :01/10/15 06:44
http://www2n.biglobe.ne.jp/~ezaki/i-appli/ というサイトに掲載されている方法(非公式の方)で
iアプリを作成しようとしているのですが、かなり忠実に
書かれた通りの作業をしてもうまくいきません。
まずDOSプロンプトで
「C:\java\code\test>javac -bootclasspath \i-jade\classes test.java」
と入力し、実行すると
「致命的エラー: クラスパスまたはブートクラスパスで
パッケージ java.lang を検出できません。」
と出てしまいます。
すみません、誰か助けてください。
お願いします。
946 :
Rubyハート :01/10/15 07:44
>939 >>全ては性能とのトレードオフだってことに気づかないのかな? トレードオフしなければならない言語って・・・(以下略) そんな言語を使う人って・・・・・・・・・・・(以下略) iアプリしか元気のない言語って・・・・・・・(以下略) ま、どうでもいいか。
947 :
デフォルトの名無しさん :01/10/15 09:59
カンタンにtelnetできるAPIってない?
パソ初心者なんですけど教えてください・・・ チャットとかでJAVAを使って色々遊べるって聞いたんですけど 例えばレスを全部消したりとかそんな程度なんですけど 誰か御存知の方いらっしゃいましたら 関連サイトでもいいので教えてください・・・ よろしくお願いします☆
950 :
デフォルトの名無しさん :01/10/15 10:38
>>947 netを検索すれば、たくさん出てくるよ。
951 :
デフォルトの名無しさん :01/10/15 11:00
そろそろ次スレだけど、ネタ心者スレとの統合を考えないと。 1、適当なとこでこのスレをsage進行にしてネタ心者スレが埋まったら次スレをたてる 2、このスレの950が次スレたててネタ心者スレからそっちに誘導する 3、何もせず現状維持 こんなとこですか? 仕切るようでスマソ。
952 :
デフォルトの名無しさん :01/10/15 11:06
>>950 うん、いっぱいでてくるんだけどスタンダード的なものはあるの?
関係ないけどちょっと聞いてくれよ1よ jxta.orgからダウンロードできないんだよ。 どーなってんの?
955 :
デフォルトの名無しさん :01/10/15 12:37
>>954 ありがd
コレなら前に落として遊んでた。
よし、これを俺の中でスタンダードと認定しよう。
ほんとだ、ダウンロードできないや。
前に落としたやつがHDDに残ってるといいな。。。
>951 応援あげ ちなみに1で。 初心者も入ってきやすいようにと。
ネタ心者 の方が今は本スレかと思ってた。 雰囲気的に初心者にはあっちの方が聞きやすいかと。 タイトルに ネタ心者歓迎! とつけると 合流しやすいかと。
958 :
ひげおやじ ★ :01/10/16 02:14
申し訳ありません。JBuilder4でホイールマウスを使うPluginがあったという話があったのですが そのpluginは本当にあったのでしょうか? googleで検索してみたり、色々と探してみたのですが情報が見つからなかったもので。。。 ご存知の方、是非お願い致しますです。 んじゃ
>959 ありがとう。 かなりいい感じだと思う。
>>959 のがばろんさん
JBuilder4でホイールを使用できるようにするプラグインを探していたのですが
過去ログより見つけられました。ありがとうございます。
Java相談室2より
74 名前:壊れプログラマ〜 投稿日:2001/02/22(木) 06:00
ぐるぐるでけた! 便利すぎて涙でそう。
http://www.developpez.com/java/opentools/jbWheel.zip を展開して、
jarをJBuilderの/lib/extにコピー
dllをJBuilderの/jdk1.3/binにコピーしたら動いた。
早速試してみます。ありがとうございました。
んじゃ
962 :
デフォルトの名無しさん :01/10/17 23:49
Buttonを一度押すと、その後ボタンを押せない状態(凹)にするには どうしたらいいのでしょうか。
button.setEnabled(false);
はじめましてだけど教えてくだsai win98で、J2EEのdeploytoolが、動かない(GUIがみれない) パスも、環境変数もとおしたけど駄目 やっぱJ2EEでサポートされてるOSでないと駄目なんでしょうか。
966 :
デフォルトの名無しさん :01/10/18 12:27
Sringでわたされた日付がJSTを使用して、 Mon Oct 15, 10:00:00 JST 2001 であった場合、これをGMTに変換するのはどうすればいいのでしょうか? Mon Oct 15, 10:00:00 GMT+9 2001 ストリングとしてのJSTをGMT+9に常に変換するのではなく、 動いているロケーるにあわせて、計算したいのです。
968 :
デフォルトの名無しさん :01/10/18 16:59
SimpleDateFormat使ってたんだけど、うまくいかないんだよなあ。 Date sysDate = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd, yyyy hh:mm:ss a z",new Locale("en","US")); String sysDateStr = formatter.format(sysDate); System.out.println("############" + sysDateStr); JSTのまま。 そもそもnew Date()でいつもJST表現になるのもわからんし。
>968 タイムゾーンはLocaleとは別に指定するのでわ? formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
>968 でけたよ String input = "Mon Oct 15, 10:00:00 JST 2001"; DateFormat formatter = new SimpleDateFormat("EEE MMM dd, hh:mm:ss zzz yyyy", new Locale("en", "US")); Date date = formatter.parse(input); formatter.setTimeZone(TimeZone.getTimeZone("GMT")); System.out.println(formatter.format(date));
971 :
デフォルトの名無しさん :01/10/18 23:12
Tomcatつかってるんすが、 コンパイルしても、結果が反映されないんですよ、 Tomcatを再起動すると、反映されるんで、 キャッシュに取り込まれれて、更新されないような、 感じとおもうんですけど、 どなたか、情報ありませんか?
972 :
デフォルトの名無しさん :01/10/19 00:51
Imageを含んだクラスを作りたいのですが、以下のようにすると img = getImage(getDocumentBase,s)でNullPointerErrorがでます。 なぜなんでしょうか・・・・・・ class myImage{ Image img; myImage(String s){ img = getImage(getDocumentBase(),s); } }
973 :
デフォルトの名無しさん :01/10/19 01:22
>>971 ふつーは初期に読み込んだまま動くだろ。
どこかで自動リロードみたいな設定なかったっけ?
974 :
デフォルトの名無しさん :01/10/19 01:28
>>791 フォルダのファイルを一度全部削除してみましょう。
975 :
デフォルトの名無しさん :01/10/19 10:44
>>969 ありがとうございました!!
なるほど、こうやって使えば良いんですね。
勉強になりました。
976 :
デフォルトの名無しさん :01/10/19 11:02
WinにおけるFORTE for JAVAのシステム要件は Pentium3 450MHz メモリ 256M ってあるけど、これでサクサク? アスロンのオーバークロック(1GHz)にいれているけど かったるい。。。
>>972 どうせドキュメントベースにsのファイル名の
イメージファイルがみつからないかsがNullなんだろ
978 :
悩める名無しさん :01/10/19 18:32
RMIの質問なんですけど
_Stub.classのロードについて悩んでいます。
Server側のコードベースに
-Djava.rmi.server.codebase=file:/c:/server/ < _Stub.classの存在場所
と指定すると、ローカル環境では動作に成功しました。
しかし上記の設定でリモートで動作させると、_Stub.classのDLに失敗して例外が出るので
-Djava.rmi.server.codebase=
http://XXXXXXXXXXXX < _Stub.classの存在場所
と指定すると、リモートでの動作に成功しました。
ここで質問なんですけど、
リモート環境で_Stub.classをクライアントにダウンロードさせるには
サーバ側にWebサーバーを導入して、codebaseにhttpを使用するしか方法が無いのでしょうか?
サーバ側にWebサーバが導入しないで動作させる事は無理でしょうか?
それともクライアント側に_Stubをあらかじめ入れておくしかないのでしょうか?
現在、アプレットでゲームを作成しています。 音を出そうと思うのですが、auファイル以外に wav 、mid などファイルは使えないんでしょうか?
980 :
デフォルトの名無しさん :01/10/19 19:51
>>976 うちはペンIII 1GHz、メモリ512Mbだが、
さくさくとはいえないなあ。
起動は遅いし。
981 :
デフォルトの名無しさん :01/10/19 20:49
>977 ちゃうんですよ。ちゃんとappletのinit() いかに書くと作動するんです。 でも複数画像を扱いたいので、 Imageクラスを変数としてクラスにしたいんですよ。 Image img[4] とかで配列を使えばできるんですけど、これだと、 数が固定になってしまうので・・・
982 :
デフォルトの名無しさん :01/10/19 23:12
■質問■ JDialogでsetDefaultButton()したのだけど、JComboBoxにフォーカスが あたってるとEnterKey押下イベントを横取りされてしまふのである。 なんとかならぬでせうか。 → JComboBoxにフォーカスが当たっていてもsetDefaultButton()で指定した ボタンの押下イベント処理を実行させたい。 誰ぞ解決策を知らぬか。
>>982 JDialogのprocessKeyEventで無理やりボタンのイベントを実行させるっつうのは
駄目?
>>981 あーそうか。おれもよくソース見ればよかった。
ところで
以下の二つの関数はmyImageにちゃんと定義してあるんだろうな?
getImage()
getDocumentBase()
私の記憶が確かならば
これらはAppletクラスのメンバーだから
生きたAppletクラスのインスタンスを通して呼び出すか
同じ名前の関数を自分のクラスに定義するかしないと
ならないはずだが?
もし、アプしたサンプルがクラス定義のすべてなら
そもそもコンパイルすら通らない
swingを使ってアプレットを作ったのですが。コンパイルはできるのに HTMLを作るとload: class 〜.class not found とでて起動してくれません。 JAppletクラスを継承してつくったのですが、Appletクラスを継承させて swingでなくGUI部品を使ったら起動しました。JAppletじゃあだめなの でしょうか?
986 :
デフォルトの名無しさん :01/10/20 00:28
>>985 駄目じゃない。でも、そのアプレットの実行環境がわからないので
それ以上のアドバイスはできない。appletviewer? IE?
AWTのことをGUI部品といっているんだろうと考えると、なにかのRAD
環境?
>>986 IE6.0をつかっています。
JBuilderのappletviewerだとちゃんと動くんです。
あとGUI部品はまさしくAWTのことです。
Jbuilderのコンパイラがいけないのかと思ってjdk1.3.1のjavacでもやってみたんですがだめでした
988 :
デフォルトの名無しさん :01/10/20 00:58
>>985 IEなら,お決まりのSwing周りのクラスがみつからんとか
だろうとおもうけど、エラーメッセージは正確にはどう出ているの?
load:class App1.class not found とでてきました。App1はクラスのなまえなんですけれど・・・ クラスが見つからないってことですよね。 でもあきらかにあるんですよ。 あとJAppletをやめてAppletくらすを継承するとgetContentPane()が見つからないというので JApplet ap; ap.getContentPane()としたらjavax.swing.JApplet ClassNotFoundExceptionがでて、 getContentPane()をつかわないでやってみたらJPanel でClassNotFoundExceptionがでました。
>>986 load:class App1.class not found
とでてきました。App1はクラスのなまえなんですけれど・・・
クラスが見つからないってことですよね。
でもあきらかにあるんですよ。
あとJAppletをやめてAppletくらすを継承するとgetContentPane()が見つからないというので
JApplet ap;
ap.getContentPane()としたらjavax.swing.JApplet ClassNotFoundExceptionがでて、
getContentPane()をつかわないでやってみたらJPanel でClassNotFoundExceptionがでました。
991 :
デフォルトの名無しさん :01/10/20 01:36
思いっきりFAQの領域なので、googleあたりで IE, applet, swing, ClassNotFoundException 程度のキーワードで検索してみよう。ここで一問一答すると、スレの命が尽きるからね。 ところで、次スレは立てないで、ネタ初心者スレに統合ってことでよいの?
992 :
名無しさん :01/10/20 03:53
Javaでタイムアウトてどうやって実装するんですか? java.util.Timerあたりがそれぽいんですかね? ある処理がn秒いないに終わらなかったらキャンセルするってのをやりたい。
994 :
デフォルトの名無しさん :01/10/20 11:34
前に、質問したんだけど、 一応解決したんで、ここにフィードバックしときます。 Tomcat4 にしたらうまくいった! いじょう!
>>971 server.xml のContext の設定のところで reloadable="true" にしないと駄目よ。
などと今さら答えるのもバカみたいだな (自嘲
今だ!1000番ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
今だ!1000番ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
今だ!1000番ゲットォォォォ!!  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡  ̄ ̄ (´⌒(´⌒;; ズザーーーーーッ
1000 :
デフォルトの名無しさん :01/10/20 17:35
いただきっ♪
1001 :
1001 :Over 1000 Thread
このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1002 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。