Java相談室 Part4

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
2名無しさん:2001/08/15(水) 02:19
ここまでくると興味も薄れるのかな?
3デフォルトの名無しさん:2001/08/15(水) 02:21
というか、いいかげんスレ統一してくれ。
4デフォルトの名無しさん:2001/08/15(水) 08:35
米国 Sun の Java サイト
http://java.sun.com/

Java2 SDK 1.3 日本語ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/

Java House メーリングリスト
http://java-house.etl.go.jp/ml/

Java FAQ のページ
http://www.gimlay.org/~javafaq/javafaq.html

Java FAQ (英語)
http://www.afu.com/javafaq.html

Java 言語規定
http://www.y-adagio.com/public/standards/tr_javalang/index.htm
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));
}
}
64。長いので続き: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
74:2001/08/15(水) 09:08
---- 実行結果 ----

Hello
Hello
true
MyClass#equals 呼ばれてるよん
MyClass@2f6684
MyClass@738798
true
MyClass@4b222f
MyClass@3169f8
false
8デフォルトの名無しさん:2001/08/15(水) 09:17
それはオーバライドではなくオーバロードです。
APIドキュメントを見直しましょう。
9デフォルトの名無しさん:2001/08/15(水) 09:19
JLS読め。
104: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;
}
}

けど、気に入らないので引続き調べます。
11おれも厨房:2001/08/15(水) 10:51
>>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の鉄則」という本にかなり詳しい。
124:2001/08/15(水) 22:09
>>11
ウヒョー、ありがとうございます!!

たしかにここで instanceof を使うとマズイですね、
派生クラスでも true になるときがあるからダメなんだ。

「Javaの鉄則」調べてみたらなかなか良さそうな本だった、今度読んでみます。
こういうTips集を読んで、いろいろ理解した方が良いかも > 自分
13Java厨房@近況報告:2001/08/15(水) 23:17
先日は大変有り難うございました!
自分は、今日からJTable戦線に突入します。

以上
(プツ)
14デフォルトの名無しさん:2001/08/16(木) 00:19
>>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造ったことある人っています?
17デフォルトの名無しさん:2001/08/16(木) 02:26
>>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しか使ったことないや。
もっといろんなものを試さねば、、。
18デフォルトの名無しさん:2001/08/16(木) 02:31
javax.swing.text
も面倒。
19デフォルトの名無しさん:2001/08/16(木) 02:46
Windows XPのIEにVMが付かなくなって良かった。
つーわけで、アプレット開発でもSwingを使っていこう。
そのために
http://java.sun.com/j2se/1.3/ja/jre/download-windows.html
http://homepage1.nifty.com/emk/vmselect.html
20デフォルトの名無しさん:2001/08/16(木) 09:02
Windows上でコンパイルし動作確認した JAVA のソースコードを
Unixにもっていき、コンパイルしました。
でも動作結果はWindows版と異なりました。

Windows上でコンパイル済みの CLASS ファイルを UNIX に
もっていって実行したらちゃんと動きました。何故ですか。
21デフォルトの名無しさん:2001/08/16(木) 09:52
コンパイラのバージョンの違いは?
22デフォルトの名無しさん:2001/08/16(木) 10:19
>>20
どんなふうに違うのだろう?
スレッド周りは、気をつけてコーディングしないと全く違った動きになるらしいよ。
2322:2001/08/16(木) 10:20
あ、オレぼけてる。VMの動作とかそういう意味じゃないのね、スマソ。
2420: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
すくなくともあんたよりは向上心ありそうだから、継続
2920:2001/08/17(金) 02:43
懲りずにレス

>通信対戦オセロのプログラムだったんですけど、
>「どの石がひっくり返せるか」の判定部分の動作が異なっており、

判定部分ってことは、基本的に
【計算・条件分岐・ループ】しかないんだろうなぁ。
確かに、違いがあると思いにくいところではある

決定的に、「この行で○○と××というふうに結果が違うんだ!」といった
目星がつかない状態なのか?>20

あと>26さんのいうJDKのバージョンは、オレも知りたい。
java -version してくれい。
3029:2001/08/17(金) 02:44
上の20は間違いで、28=23=24です。やっぱりボケテル、寝ます。
3130:2001/08/17(金) 02:45
また間違った
上の28=23=24は間違いで、29=23=24です。

こりゃ冥界にでも逝ってきますわ
3220: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
>>33
特に変数にはその辺の規定はないみたいだから好きにすれば?
canUseとかmayUseとかhaveToUseとか

SUN公式コーディング規約
http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367
非公式邦訳
ttp://kuro.mdg.human.nagoya-u.ac.jp/~tarbo/jcode/JavaCoding9.html
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();
}
42デフォルトの名無しさん:2001/08/17(金) 19:28
みんなの回答はもっともなんだけど、そもそも>>34の書いている
>>int i = 0 としたときに
という前提が激しく気になる。
43デフォルトの名無しさん:2001/08/17(金) 19:51
確かに。
44ふーん:2001/08/17(金) 23:40
Sunは先週,3つの新聞に全面広告を打ち
「Windows XPでJavaプラットフォームがサポートされるようMicrosoftに働きかけてほしい」と
消費者に訴えた。
Microsoftはこれを「前代未聞の偽善行為」と批判している。

http://www.zdnet.co.jp/news/0108/17/e_java_m.html
45デフォルトの名無しさん:2001/08/17(金) 23:44
Sunってわけわかめだね。なにがしたいんだ?
46デフォルトの名無しさん:2001/08/17(金) 23:46
ネガティブキャンペーンの一種じゃないの?
47デフォルトの名無しさん:2001/08/18(土) 00:05
Sunって韓国系企業なのかな?
48デフォルトの名無しさん:2001/08/18(土) 01:53
消費者に見せても意味ないよね。
むしろ、
Javaが不要なものだという認識を植え付けてしまうことになりかねないのに。
49net.ch2.uma:2001/08/20(月) 18:12
JHBの高木は何様のつもりなんだ、
質問者がさらしあげられてるぞ
50デフォルトの名無しさん:2001/08/20(月) 18:18
>>49
プログラマ板逝き。ちなみに高木先生(通称ひろみちゅ)はプログラマ
板でも大人気で、なんとスレッドは Part 7 まで続いてます。

高木浩光先生のスレッド Part7
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=994801263
51デフォルトの名無しさん:2001/08/20(月) 19:06
>>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
55デフォルトの名無しさん:2001/08/21(火) 13:30
■■■■■Javaスレ重複のためこちらのスレへ1本化します!■■■■■■
     以後 Java相談室はJava厨房同様 sage進行で願います

こちらへ移動して下さい : ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=993358225&ls=50

■■■■■■■■■■■■■■■■■■hoe■ ひろゆき@管直人■hoe■■
56メール:2001/08/23(木) 14:16

jdk1.1.8です。
net.*を使ってメールを送信するプログラムを作ったのですが、
相手先のメールアドレスが間違っている場合でも送信ができるみたいで、
結果的にSMTP鯖(か?)がエラーメールを返してきてから、あ、メアドが
間違っていたのねん。気づきます。

これを、Javaプログラム上で知る方法はないでしょうか。
(メールを送信するときの送信エラーをキャッチする??)

SMTPの仕様上、どうやっても不可能なことなのでしょうか。
JavaハウスのMLは検索してみましたが、どうも満足できる回答はありませんでした。
57デフォルトの名無しさん:2001/08/23(木) 14:26
>>56
アフォ!あげんな!
58メール:2001/08/23(木) 14:31
>>57
あ、このスレはあげてはいけなかったんですか。すいません、空気よんでいなくて。。。。
というわけで、下げました。ご勘弁を。

今しらべたのですが、JavaMailAPIで、上記のことが実現できるかどうかを
考えていたのですが、はじめて知ったので調べるのが大変そうです。。ご存知の方いらっしゃいませんか。
59sage:2001/08/23(木) 14:51
こちらで聞き直してください。おねがいしますです。。。

■■■■■Javaスレ重複のためこちらのスレへ1本化します!■■■■■■
     以後 Java相談室はJava厨房同様 sage進行で願います

こちらへ移動して下さい : ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=993358225&ls=50

■■■■■■■■■■■■■■■■■■hoe■ ひろゆき@管直人■hoe■■
60デフォルトの名無しさん:2001/08/23(木) 15:56
無理に誘導しなくてもいいと思うのだけど。
スレが終わりそうになったら合流すれば?
61デフォルトの名無しさん:2001/08/23(木) 20:57
と言うか普通に考えてこっちが本スレなのに
なんであっちに移動するんだ?
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
あなたの場合は、ここ
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=994801263&ls=50
とかに相談したほうが良いかもしれません。
67デフォルトの名無しさん:2001/08/24(金) 00:25
>>64
オレもそう思う。

ネタ心者スレ と 相談室 は用途がかなり違うと思うよ。
雰囲気も違うし。

というわけで、統合しないでいいだろ。
68デフォルトの名無しさん:2001/08/24(金) 00:30
>>64
本来その筈だったのに
その使い分けが破綻してるんだよね。
位置づけとしては
相談室→本スレ
ネタ心者→派生スレ
って印象なんだけど。

とりあえずどっちかのスレが終わるまで待って
その後統合したらいいのでは?

新スレは「Java相談室 Part5」で良いと思うけど
そこは立てる人の判断と言うことで。



仕切りスマソ。
69デフォルトの名無しさん:2001/08/24(金) 00:37
ほとんどネタ心者 or DQN質問だから使い分けできないのは仕方ないと思う。
どちらにするかはともかく、統合で良い。
70デフォルトの名無しさん:2001/08/24(金) 02:52
次スレタイトルを
Java相談室(上級編) Part5
とでもすればよい。
71デフォルトの名無しさん:2001/08/24(金) 03:09
>園児ニア
どうでもいいがワラタ。拙者も使わせて頂きたく。
72デフォルトの名無しさん:2001/08/24(金) 04:06
JAVAのグラッフィクライブラリにAWTというのがありますが、
これは通常の会話でなんと読むのでしょう?
Swingは「スウィング」ですよね?
AWTは「アウト」?
73デフォルトの名無しさん:2001/08/24(金) 04:07
そう
74デフォルトの名無しさん:2001/08/24(金) 08:27
アワット
75デフォルトの名無しさん:2001/08/24(金) 10:56
JUMP TO .NETっていつβ版とかまだリリースされていませんか?
情報求む!
76デフォルトの名無しさん:2001/08/24(金) 13:57
今時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
>>76はコボラーだと仮定してみる
81デフォルトの名無しさん:2001/08/25(土) 04:35
中級編も作ってクダサイ
82sa:2001/08/25(土) 08:55
javaのアプリで実用的なものつくった人いますか?
83デフォルトの名無しさん:2001/08/25(土) 11:56
マターリイコウヨ sageでね
84デフォルトの名無しさん:2001/08/25(土) 12:02
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]もね。
8987: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
>>90
「配列のnewではその各要素のnewまではなされない」↓のです。
http://java-house.etl.go.jp/ml/archive/j-h-b/001880.html#body

配列をnewした後、配列の要素を一個ずつnewしなきゃ駄目です。
add(list[i]);
の前に、
list[i] = new list();
とでもすればいいのかな。(未確認)
9187:2001/08/25(土) 17:03
なるほどできました。
これで前にすすめます。
92デフォルトの名無しさん:2001/08/25(土) 17:50
awtよりswing使ったら?
93デフォルトの名無しさん:2001/08/26(日) 04:18
この質問はここでよいのかな?
Javaのリファレンス本が欲しいんですが、何がお勧めでしょう?
目をつけてるのはオライリージャパンの虎の本なんですが、
あれって分冊でGUIなどを扱う訳本はまだでてないですよね?
なお、オンラインドキュメントは無しの方向でお願いします。目が疲れます。
>>93
そちらのレベルにもよると思うが?
9593:01/08/26 12:27
>>94
Javaは初心者です。VC++は使うけどオブジェクト指向とは無縁で、
実質Cとして使ってます。コンソールで用は済んでますからね。
今回Javaを使う理由は、主に勉強のためです。
半年後にJavaアプリケーションの簡単なゲームをフリーで公開できる、
てのを目標にしてます。
96デフォルトの名無しさん:01/08/26 13:55
>>93
アプレットじゃなくてアプリケーションですか。
9793:01/08/26 14:16
>>96
そうです。アプレットだとローカルに保存とかできないし、
別にネットゲームを作りたいわけではないですし。
98デフォルトの名無しさん:01/08/26 17:12
JavaAPIプログラミングガイドって本使ってるけど古いからなぁ。
99デフォルトの名無しさん:01/08/26 19:54 ID:lQ/95D7.
あの分厚い本全部買え
100デフォルトの名無しさん:01/08/26 23:13 ID:EpqnIirY
>>93

Swingだけなら、ソフトバンクから出ている
「速習Java Swingプログラミング」
がいいと思う。

これで概略を知って、
細かいところはオンラインリファレンス
というパターンがいいのでは?
10193:01/08/27 03:34 ID:p5SEei1c
あ、IDがついた。

回答ありがとうございます。
全部…だと結構お金がかかりそうなので貧乏学生には厳しい…。
とりあえず>>100のお勧めを考慮して本屋へ行ってきます。
102デフォルトの名無しさん:01/08/27 05:50 ID:8jNUMhPQ
>>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って何?
カラーキー(みたいの)って何?
105デフォルトの名無しさん:01/08/27 15:52 ID:hwuGtq3c
>>103
createImageで取得したBufferedImageはカラーキーをもてないはず。
別のアプローチで行きませう。
106103:01/08/27 16:57 ID:0AZt6oQw
え、できないんですか?
それじゃ、どーすりゃいいんだ・・・・
107103:01/08/27 18:56 ID:0AZt6oQw
あの、いま、gifをフォトエディタで開いて、透過色を指定したら、
そのまま透明になったみたいなんですが、
プログラムの方では指定する必要はないんですか?
108デフォルトの名無しさん:01/08/27 19:44 ID:q2h0e7iE
>>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
あの本って、画像に某アニメの物を小さく使用してるけど、
著作権上問題ねーのかな?
111デフォルトの名無しさん:01/08/28 00:06 ID:YyraRtmM
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のページ違反です」というエラーが出てしまいます。
何か対処方法や別なやり方があるでしょうか?
11393:01/08/28 04:02 ID:2e02HzLc
色々お答えいただいてありがとうございます。
まだ本屋は行ってないんでお勧めいただいた本やサイトを
チェックしてみます。
オンラインは検索性では優れてるんだけど読みやすさでは
厳しいですね。読む場所もラックの前に限られますし。
まあ一長一短なのでどちらか一方というのではなく
適宜使いやすい方を使っていきます。
114デフォルトの名無しさん:01/08/28 10:35 ID:KIHiAtKE
>>112
Windows98はないので、Windows2000で確認しましたが、問題は出ません。
多分、コードの問題より、環境の問題ではないでしょうか。
javaのページ違反って、よくIMEとの相性で発生していた気もします。
115112: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
>>116
IIOSSでできるよ。
119デフォルトの名無しさん:01/08/29 06:19 ID:PAVB.Id.
JPanelにJButtonなどを入れてremoveした後repaintすると表示が消えたんですが
その後に他のJButtonなんかをaddしても表示されないっす!
ウィンドウサイズを手動で変更すると表示されます
組込んだボタンを表示させるにはどうしたらいいのですか?
120デフォルトの名無しさん:01/08/29 06:54 ID:J4d5NCoo
>>116
MagicDrawは、うまくいかないことが多いよ。
複雑なクラスを読み込ませると、解析不可になる。
121デフォルトの名無しさん:01/08/29 06:57 ID:J4d5NCoo
>>119
その場合、
Jpanel.validate()
じゃないか?
122119:01/08/29 07:00 ID:PAVB.Id.
>>121
ありがと!
さっそくやってみる
123119:01/08/29 07:04 ID:PAVB.Id.
>>121
出来た
感激です
124デフォルトの名無しさん:01/08/29 07:43 ID:j0A/fmuE
結城 浩さんの「Java言語プログラミングレッスン」を読んでるんですが
56ページのthis("NO NAME")の意味がわからなかったが
独習javaを立読みしたら意味がわかった(金ない)
125デフォルトの名無しさん:01/08/29 09:53 ID:U4n7tREo
>>124

thisやsuperで?になるなら、
正直、金を借りてでも、
もう1冊本買って、Javaの全体像をつかんだ方がいいと思う。
126121:01/08/29 09:55 ID:U4n7tREo
>>119
「Javaの落とし穴」の第31項そのままの問題っす。
(Javaの落とし穴 --ソフトバンクパブリッシング ISBN4797313587)
127デフォルトの名無しさん:01/08/29 10:43 ID:FJKf36QE
仕事上、iアプリをやる羽目になってしまいました。
しかし携帯の端末IDを取得する方法がわからず、かなり困っています。
ご存知の方、いらっしゃったら教えてください。お願いします。
検索しても、HTMLタグで取得する方法しかヒットしないし・・・泣きたいです。
128DB:01/08/29 16:08 ID:6xt9nRfo

SQL Server 7.0(2000)をJDBCでアクセスしたいのですが、ODBC-JDBCブリッジでなく、
NativeのJDBCドライバ(SQL Server用)というのは、ないのでしょうか。
129デフォルトの名無しさん:01/08/29 21:02 ID:MMa2AA9g
初歩的な質問です。
なぜ、Javaには unsigned な型がないのでしょうか?
130デフォルトの名無しさん:01/08/29 21:16 ID:7L0go79A
unsignedな数値が入っている型はないわけじゃないよね。
131デフォルトの名無しさん:01/08/29 21:24 ID:GpMNQkHk
>>128
うーむ。SQL Server用 TYPE 4 ドライバは有料のものしかなかった気がする。
とりあえず ↓ で探してみて。
http://industry.java.sun.com/products/jdbc/drivers

WebLogicは期限付き体験版をダウンロードできるので
以前、SQL Server 7.0 の接続を試したことあります。
けど、期限が切れたら ODBC-JDBC TYPE 1 に変えちゃったなぁ。
132119:01/08/29 22:09 ID:eftNAd.2
>>121
何から何までアリガト!
さっそく購入します
133デフォルトの名無しさん:01/08/29 22:31 ID:JwGymOpM
SoftRefferenceが参照クリアされるタイミングって
コントロールできないでしょうか?

オンメモリキャッシュを実装したいのですが、Soft
Refferenceをそのまま使うと、自分にとっては都合の
悪いタイミングでクリアされてしまうので、意味なく
なってしまいます。
134124:01/08/31 03:45 ID:VsZf0TtE
>>125
プログラムは最近始めたんで、わからないことばっかですん

> thisやsuperで?になるなら、
> 正直、金を借りてでも、
> もう1冊本買って、Javaの全体像をつかんだ方がいいと思う。
どんな本を買えばいいですか?
そこんとこを、もう少し詳しく教えてくださいm(__)m
135125:01/08/31 14:34 ID:g32sIM5c
>>134
オレは高いけど、この本がおすすめ
「Bruce EckelのJavaプログラミングマスターコース(上・下)」
ISBNは、 上が4894711443 下が4894711451
でもね、、、、高いんだ。(上・下)で\9000くらいする。

とりあえず、124さんのレベルを見る限り、上巻だけでいいかも知れない。

「この本見て、分かんなかったらJava諦めろ」とオレは断言してぇ。

この本の特徴は、とにかく例題がめちゃめちゃ多いこと。
使い方は、ひとつひとつ例題を読んで、
頭の中でどういうふうに実行されるのか、追うこと。

ただし、実行結果の図がないから、それは不満。
(しかし、その分、ソースコード追いに熱中?できる)

書店の棚では、多分置いてない。
置いてあるのは、Laoxのザコム1階とか書泉とか、そんな感じっす。
136134:01/08/31 18:32 ID:Oqg4yKRI
>>125
昨日が誕生日だったん出
誕生日プレゼントとして買ってもらいます。
137デフォルトの名無しさん:01/08/31 19:46 ID:3vYzxI62
アプリケーションで、drawString使って、
日本語表示(SJIS)したいんだけど、
文字化けしてしまいます。Byteに入れてから
元に戻す方法もやったけど、ダメでした。なぜにでしょう?
138デフォルトの名無しさん:01/08/31 20:34 ID:ZJ8uYfJs
Unicodeにしとけ。
139漏れ:01/08/31 22:33 ID:pE65iCCQ
>>135
漏れもその本に一票
140デフォルトの名無しさん:01/08/31 23:36 ID:l23fvLAE
>>137
文字列コード変換はJDK1.4にあると思うよ。1.4β使ったら?
141デフォルトの名無しさん:01/09/01 00:01 ID:vKcNWrFA
>>137
アプリケーションでなぜSJISを表示する?
142134:01/09/01 16:58 ID:XhGErCWU
>>135
おしえてくれて、ありがとう。
143137: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>
これのいったいどこがいけないノデ?
誰か教えてくれないノデ?
146デフォルトの名無しさん:01/09/03 20:35 ID:fa0ZOwho
>>145
激しく板違い
147145:01/09/03 22:38 ID:RA.qLofM
誰か教えてくれないノデ?
148デフォルトの名無しさん:01/09/04 00:19 ID:wt87u7r2
はじめまして。ぜんぜんド素人なんですけど、
Javaって何かパッケージソフトみたいなの
買わないといけないのですか。
また、もしそうなら値段高いですか。
149148:01/09/04 00:30 ID:wt87u7r2
スミマセン、スレ違いですね。
すれ立てるまでも〜スレにコピペしまーす。
150学生:01/09/04 01:57 ID:sYlbmBZA
Javaの開発環境にForteかJBuilderかで悩んでます。
どちらがオススメですか?
151デフォルトの名無しさん:01/09/04 02:45 ID:Q.T9Ixn.
>>150
私はJBuilderを使って勉強しておりForteは使ったことないんだけど
どっちも無料で試せるよね?(確か
試して好きなほう使えばいんじゃないですか
しかしながら個人でちゃちいプログラムしか組めてないので
開発環境はGUI部分だけ使っってたりする・・・
152デフォルトの名無しさん:01/09/04 03:48 ID:HvJfdEUA
>>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
>>150 学生
最初はJDK+使い慣れたエディタで十分。もちろんタダ
ドキュメントもちゃんとダウンロードしとけよ
http://java.sun.com/j2se/1.3/ja/
http://java.sun.com/j2se/1.3/ja/docs.html
156デフォルトの名無しさん:01/09/05 00:44 ID:FfgftmWM
>>154
アプリケーションサーバーとウェブサーバも動かしながら
使ってるから重いのは仕方ないと思うが、確か推奨256M
だったと思う。
>>155
同感
157学生2:01/09/05 06:48 ID:H6UTYNUo
>>155,156
なぜドキュメントを、DLしなきゃいけないんですか?
ドキュメントってナニに役に立つのやら・・・・・
158デフォルトの名無しさん:01/09/05 06:52 ID:RgMRPKXI
>>157
頼む、ネタだと言ってくれ。
159デフォルトの名無しさん:01/09/05 08:35 ID:64a.ANYA
ものすごく記憶力の良い奴なんだろう
160学生3:01/09/05 09:28 ID:ClRjd6/6
APIドキュメントやらチュートリアルなしにどうやんだYO!
コピペできないじゃんかYO!
161学生2:01/09/05 11:36 ID:9QIzIM3g
>>158
ネタじゃないっす。
162デフォルトの名無しさん:01/09/05 11:37 ID:qZJvlE5Y
>>157
2ch=AIドキュメントだと思ってるな貴様
たっぷり煽り騙りを入れてやるから覚悟しろ!
163デフォルトの名無しさん:01/09/05 11:55 ID:2jrQB/6A
>>157
まず落としてみなよ。役に立つから。
ナニの役に立つものが欲しいなら、その後で半角板に行きなよ
なよ。
164デフォルトの名無しさん:01/09/05 12:55 ID:ItVgRyKg
彼はきっとドキュメントの内容をすべて記憶している
天才なのですよ。
165初心者A:01/09/05 13:52 ID:01yEZVP6
ライブカメラ映像を表示するJavaアプレットの作り方教えて下さい!
参考になるHP知ってたら教えて!
お願いします。
166(・ε・):01/09/05 14:46 ID:2jrQB/6A
>>165
1から作るのはかなり大変だよ。
WindowsMediaとかReal使えば?
167デフォルトの名無しさん:01/09/05 15:28 ID:iUZCS8gE
>>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秒程度で表示してくれます。
今の環境でなにか解決する方法はないでしょうか?
169デフォルトの名無しさん:01/09/05 16:10 ID:64a.ANYA
>Windowsだと表示まで1秒もかかりません
ネスケでやってみよー
遅くて普通、アプレットなんてそんなもんだ
170lisper:01/09/05 17:03 ID:K4QyhwUw
ドラッグ&ドロップの実装のメカニズムがわからん
誰か教えてー
171デフォルトの名無しさん:01/09/05 17:12 ID:qZJvlE5Y
>>170
既に見てるかもしれないけれどとりあえず、、、
ttp://www.dmz.hitachi-sk.co.jp/Java/Tech/transferable/index.html#dnd
172lisper:01/09/05 19:53 ID:K4QyhwUw
>171
上のページ見てもわからんし、リファレンス見てもよくわからんのです。
わかりやすい日本語で噛み砕いて説明してくれませんか?
173学生2:01/09/05 20:12 ID:cK/uBqXs
>>164
メールアドレス見てね★
174_:01/09/05 20:58 ID:5Rk4ItjA
>>167
>delでいうDelphianWorldみたいに、JavaBeanを山ほど集めたwwwサイトって、

http://www.javacats.com/JP/search/index.html
JavaBean じゃないけど、けっこう役に立つよ。
175デフォルトの名無しさん:01/09/05 21:57 ID:apkAnBaA
JDK1.4ベータを試したいんですが、今使ってるJDK1.3はアンインストールしないと駄目ですか?
176デフォルトの名無しさん:01/09/05 21:59 ID:3DS2pgNU
ドラッグ&ドロップって、JavaWorldに最近載ってたような。
177デフォルトの名無しさん:01/09/06 06:49 ID:OxoGCL8A
>>170
176に同意、あれはわかりやすくて良かったよ
178afro: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 の使い方がおかしいのか、
結局、一人では何が何なのかわかりません。
時間のある方、誰か助けてください・・。
179164:01/09/06 20:40
>>173
メールアドレス見てね★
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)]
$
183class 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

> 特定の文字列を別の文字列に変えるメソッドは……
> 探したけど見付からなかったな

作るのはたいしたことないけど,「え?こんなの無いの?」って感じだね。
190186:01/09/07 01:34
String って文字列定数で変更できない文字列のはずなのに
何で、replace メソッドが備わってるの?

> 特定の文字列を別の文字列に変えるメソッドは
> 探したけど見付からなかったな
自己レスだけど、いろんなアルゴリズムがあるから、だよね
191185:01/09/07 01:40
>>187
早速有難うございます。すいませんソースですが、どうも
・長すぎる
・改行が多すぎる
とのエラーが出て、書きこみ出来ないようです。
いくつかのスレに分割すればいいのでしょうが、そうすると他の皆さんに
ご迷惑がかかるのでやや憚れます。それでも乗せても良いですか?
192優しいおにいさん:01/09/07 01:57
では、半分ずつをsageでどうでしょう。
193185その1:01/09/07 02:22
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();
}
194185その2:01/09/07 02:24
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();
}
}
195185:01/09/07 02:26
以上2つです。宜しくお願いします。>優しいおにいさん様
196優しいおにいさん:01/09/07 02:36
JInternalFrameの可視化をしてないですね。

addInternalFrame()ので、最後に
iFrame.setVisible(true)してみましょう。
197優しいおにいさん:01/09/07 02:37
しまった、上げてしまった。ごめんなさい。
>>190
この文字列内にあるすべての oldChar を newChar に置換した結果生成される、新しい文字列を返します。
だから、変更するんじゃない。

StringBufferのreplaceも文字列置き換えとはちと違う。
199lisper:01/09/07 06:58
センキュ>176,177,180

今GUIのFTPクライアント作ってんの。
完成したらソースフリーで公開するね。
200185:01/09/07 07:32
>>196
やっと解決しました。ありがとうございました!
しかしsetVisbleメソッドは一度APIドキュソメントで見たはずなのに・・・
まったく使い方分かってなかったようですね。逝ってきます。
あと長いソースでご迷惑をおかけしました。>皆様
201183:01/09/07 07:44
皆様ありがとうございました。
たしかに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 ...とかかかれてるっしょ?それをここにはってみ。
206afro:01/09/07 13:18
>>181

addObserver は別クラスの main でやってます。
分かりにくい書き方しちゃって申し訳ないです。

>>182

ソース例、参考になります、ありがとうございます。
やっぱりちょっと原因がわからないのですが、もう少し頑張ってみて事後報告いたします。
まじ分かんなかったら、ソースちゃんとのっけてみます。
207デフォルトの名無しさん:01/09/07 13:56
>>205

<APPLET CODE="WireHang.class" WIDTH="240" HEIGHT="320">

です。
208coelacanth: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
>>209イエス

あります。
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」とかハードコードしてるのかな?
ひょっとすると「コピーしちゃいや!」の意志表示とも解釈できるが。。
217215:01/09/07 16:07
>>216
いやgetCodebase()からのパスで指定してるんだと思われ

たぶん214さんはローカルにhtmlおいてfile:///で読み込んでいるものと思われーよ
218デフォルトの名無しさん:01/09/07 16:10
>>215
ringray.gifも抜いたんであります。
他にも背景やらキャラ画なんかも。
219215:01/09/07 16:11
あ、そうか。
じゃーhttpサーバたててやったらSecurithExceptionは回避できるかも。
あとはgifファイルを正しい場所におけば。
220215:01/09/07 16:14
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
225afro:01/09/07 19:15
>> 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
226afro:01/09/07 19:20
修正>225
3行目、Observable継承したクラス「で」です。
おかげさまで今は上手くいっています。
ありがとうございました。>181>182
でも、原因は分からないままなの・・。
227182:01/09/07 19:57
>>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)]

関係ないみたいよ?つかどーいうテストしてんのさ。
228182:01/09/07 20:03
>>225
class O1 (extends Observable)のナカミがへん。メソッドがないぞ。

ひょっとして、addObserverする以前にnotifyObserversしてるとか。。
まさかな。
229182:01/09/07 20:06
はっ。まさかネタ??初心者を甘やかしてダメにしてやろうって遊び心を快く思わない正義の人がおれを弄んでるのかまさかそうかいやきっとしかしなんでくそだはあ(泣)
230デフォルトの名無しさん:01/09/07 21:02
インスタンスがつかってるメモリの容量を調べることってできますか?
できれば無料のAPIがいいのですが
>>230
おれはSystemクラスのアレでナニしたが、
正しい方法なのかはしらん。
232afro:01/09/07 21:45
>>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
よーするに判断力不足、判断の材料の集め方がわるいと思われ。そこ押えれば効率あがるよ。
235afro:01/09/07 23:39
やっぱり、addObserverする前にnotifyObserversしてました。
ごめんなさい。
>>234
の通り、結局、分かってなかったのはそういった順番とか受け渡し方だったくさいです。
ActionListenerを内部クラスにしたりしたら上手くいきました。
それさえなぜかも分からないし、かなり混乱してきたんで、
ちゃんと勉強してきます。
お騒がせしました。>元スポイラーさん
236優しいおにいさん:01/09/07 23:42
>>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
インスタンスとオブジェクトは違うのですか?
239優しいおにいさん :01/09/08 03:20
同じようなもののようですが、厳密なニュアンス?をとると

オブジェクト:モノ(具象抽象を含む全ての概念)
インスタンス:存在、実在

と言う感じだと思っています。
オブジェクトの(例えばメモリ上、又はストレージ内での)
インスタンス、と言う言い方がよく使われます。
Javaだと同じだけど、見方によって言い分けされてる
かもしれないな。

単に「オブジェクト」といえばただの「対象」だけど、
「インスタンス」(=例、場合)といえば、その背後に
その特殊な例の属する大きな、一般的なグループ(つまり「クラス」)
があるってことを意識することになる。

Java以外ではそれだけの問題じゃないことがあるから注意。
たとえばある種のオブジェクト指向言語だと、
クラスもインスタンスもみんな「オブジェクト」だ、ていう
扱い方をするから、「インスタンス=オブジェクト」では
ぜんぜんまずい。そんなとき、
「インスタンスオブジェクト」
「クラスオブジェクト」
って言い分けると便利。てなこともあるらしい。
(実はあまりよく知らないのでほとんど想像)
241240:01/09/08 03:36
具体的には、
「××クラスのインスタンス」
「××のインスタンス」
というふうに使うことが多いよね。

例をあげると、
「Stringクラスのインスタンスを生成する」
「なんらかのオブジェクトを生成する」
は自然にきこえると思う。

でも、
「Stringクラスのオブジェクトを生成する」
「なんらかのインスタンスを生成する」
は、どこか不自然。なぜか?て考えると、やっぱり
クラスを意識するかってところにかかってるんじゃないかな?
242デフォルトの名無しさん:01/09/08 07:05
ASCIIのグラフィックスJAVA2 vol3はいつでるのでしょうか?
243238:01/09/08 16:09
>239,240
ありがとうございます。
自分の認識が的外れではなさそうだということが分かりました。
的外れな認識の例:

オブジェクトはどうやって作りますか?
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=999862274&ls=50
あれは的外れというより、出来損ないのネタスレの例だ炉!
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を使えばいいんじゃねーの。
2532561:01/09/12 18:47
>>252 ありがとう
add は iteratorの直後に要素を追加するメソッドだから
目的とは違う、と思って却下してました。
やりたいのは、新しい要素をリストの最後尾に追加することです。。

これは iterator 2つ使えばできる?
やっぱり例外投げられそうだけどやってみよう。。
254251(自己レス:01/09/12 18:49
んー。
別に空リンクリストを用意して、そっちに新しい要素を追加する
ようにしとく。
それでループが終了したら、新しく作ったリストの全部要素を
元のリストに追加する。…これで解決か。

もし251の方針でできるよ、ってのがあれば教えてほしいです
255252:01/09/12 19:19
>>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も、みんななきゃないで「なんとかする」ことは
可能です。
275273:01/09/14 00:52
サルですみませんでした。好き嫌いせず学びます。
効果のほどを聞きたかったんですよ。 (T T) <古
>>275
入出力ストリーム関係のポリモーフィズムのおかげでおいらの作ったソフトは
Httpサーバーにあるファイルもローカルディスクにあるファイルも
まったく同じ処理ルーチンで扱えておかげでデバッグもえらく楽チンですが?
277わからんちん:01/09/14 14:15
>>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
>>281
ある (大爆笑)
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
どうか皆さんの知恵を初心者バカに貸してください。よろしくお願い致します。
287優しいおにいさん:01/09/15 01:04
TreeのNodeが、DefaultMutableTreeNode(又は
そのサブクラス)じゃないんじゃないですか?
キャスト失敗例外あがってませんか?

エラーのスタックとレースと、Nodeをaddしてるところを
見せていただければはっきりすると思いますよ。
288286:01/09/15 01:27
>>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!
}
(つづく)
289286その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)
290286:01/09/15 01:31
とりあえず以上です。
よろしくお願いします。(289 sageわすれて本当にすいません。。。)
291優しいおにいさん:01/09/15 01:51
>>290
ModelがDefaultMutableTreeNodeによるツリー構造に
なってないです。DefaultMutableTreeNodeへのキャスト
は必ず失敗します。

あなたのTreeModelの実装は、特に内部データ構造が
ノード操作をするためには圧倒的に不足しています。
とりあえず、自力でimplementするのは諦めてください。

モデルにはDefaultTreeModelをそのまま使用し、コンストラクタ
引数にDefaultMutableTreeNodeを与えてください。
FileインスタンスをDefaultMutableTreeNode.userObject
に保存するようにしてみましょう。setterとgetterがありますので
それで入出力できます。
292優しいおにいさん:01/09/15 01:56
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();
 }
}
293優しいおにいさん:01/09/15 02:05
子ノードを追加したい時は、親のFileNodeに対して、子ノード
(これもFileNodeにする)オブジェクト生成し、addしていく
ようにしていってください。これで準備は完了です。
あとは、APIドキュメントとにらめっこです。
294286:01/09/15 02:27
>>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については明日以降の宿題としてちょっと頑張ってみます。

 夜更けにも関わらず丁寧なレスを頂き本当に有難うございました。またこの件でわからなくなりましたら(多分明日??)
お願いします。
295294:01/09/15 02:29
訂正です
× 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
うまくいかないっていうのは、具体的にどういうこと?
このアプレットの実行結果が、あなたの意図とどう違うのか、
それがわからないと応えにくいと思うけど。
>>296
JBHなら丁寧に教えてくれるYO!
299296:01/09/15 16:40
説明が足りなくてごめんなさい。これを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)
300296:01/09/15 16:59
独習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使ってないんで。
302優しいおにいさん:01/09/15 19:35
>>296
paint()でNullPointerExceptionが発生する可能性がある部分は
bufferg = buffer.getGraphics();
ですね。最初にpaint()が呼び出される時点では、
(その時点では、まだJVMはApplet1.init()をコール
していないためと思われます)buffergもbufferもnull
なのでしょう。bufferのnullチェック分岐してみてください。
303優しいおにいさん:01/09/15 19:49
かぶっちゃいましたね。ごめんなさい。
私は今大学4年で、卒業製作(美大なので)で何か作らなければいけないんですけど、
テーマを「触覚」ということにしまして、
web上で体験できるインタラクティブムービー的なものというか、
ユーザーのマウス操作に画像が反応して動くもの作ろうとしています。
最初はFLASHのアクションスクリプトなんとか作ろうとしてたのですが、
限界を感じ、javaでやってみようと思うようになったわけです。
まったくの素人なのですが、何からはじめていいのやら、
とりあえず本を探そうと思っているのですが、何かおすすめの書籍があったら
教えてほしいのです。ちなみにマジで素人なので
自分がやろうとしていること+初歩的基本的な技術解説が書いてあるやつがいいんですけど。

サンプルとして自分がやろうとしているのに近いことをやっているサイトをかいときます。
ttp://www.singlecell.org/january/index.html
ttp://www.singlecell.org/may/
>>304
エロいの頼むわ!よろしく
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対応となっている本を見かけたら、絶対に近寄ってはならん。
309優しいおにいさん:01/09/17 06:50
>>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では物足りなくなって、自分用
カスタマイズクラスを華麗に実装できるようになるはずですよ。

ということで、頑張ってくださいませ。
310307:01/09/17 10:36
>>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なんで無理、プリミティブ型とオブジェクト型は違う
315313:01/09/17 19:13
レスありがとうございました。解けました。
316デフォルトの名無しさん:01/09/17 20:03
エラーが起こる可能性がある処理をコンストラクラに記述するのはありですか?
>>316
なし
コンストラクタで例外投げることは可能だよ
たとえば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
WinでJbuilderPersonal(無料版)つかっている人とかはココ
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000737906
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 になってしまいます。
327326:01/09/18 18:47
書いてからふと気づいた。

getInt の前に

 rs.next();

を入れたらとりあえず出た。
328デフォルトの名無しさん:01/09/18 19:22
>>325
StringBufferを intで割った値を Stringで得るということ自体が
まったくスマートではないよね。
だから、スマートな方法なんてないと思うよ。
というのは、チャチャだけど、
>>Integer.valueOf(sb.toString()).intValue())
は、Integer.parseInt(sb.toString())でいいんじゃない?
329304:01/09/18 19:56
>>308
レス有り難うございます。
足がかりには最適っぽいので、
ぜひ読んでみます。なんだか道が険しいそうなんですけど。
だめだったらFLASHに引き返します。
330デフォルトの名無しさん:01/09/18 20:12
>>328
ありがとう!

型変換しまくる必要があるコードって確かにスマートじゃないですね
331JTree:01/09/19 00:10
 ローカルマシンのディレクトリを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
↑変更前のファイル名のまま、という意味です。
340338:01/09/20 16:29
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でのファイル名の表示が変わらないのです。
どうすればいいのでしょうね?
341338:01/09/20 20:20
質問があります。
ディレクトリのFileオブジェクトをdelete()するとディレクトリの中にある
ファイルは再帰的に削除されるのでしょうか?
>>341
されないよ。んで返り値はfalseになる。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/io/File.html#delete()
343デフォルトの名無しさん:01/09/20 20:29
>>338
正直、FileNodeの仕組などがわからないから、何とも言えないけど、
node.getFile().renameToがきちんと動作して、nodeのtoString
がちゃんとファイル名を返すと仮定した上で、
例えば、JTreeのupdateUIでなくて、それが配置されているコンポー
ネントのupdateUIしてみるとか。まあ、あてずっぽうだけどね。
Fileオブジェクトはつまるところファイルハンドルだとかアクセサだとかいう類のもの。
>>338
DefaultTreeModel継承してモデル作ってるなら多分
DefaultTreeModel.fireTreeNodesChanged
http://java.sun.com/j2se/1.3/ja/docs/ja/api/javax/swing/tree/DefaultTreeModel.html#fireTreeNodesChanged(java.lang.Object, java.lang.Object[], int[], java.lang.Object[])
とかを呼べばいいんだと思う。

直接TreeModelをimplementsしてるなら
登録されたTreeModelListenerのtreeNodesChangedを自分で呼ぶ必要があるはず

ちなみに俺もよく知らないので間違ってるかも
>>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と==では何が違うのでしょうか?
知っていましたら教えてください。
>>347
[j-h-b:26374]
WindowsでJavaアプリケーションを実行するとき
にコマンドプロンプトを出さないようにするには
http://java-house.etl.go.jp/ml/archive/j-h-b/026374.html#body
>>348
JavaFAQ S008-01
"文字列の内容の比較はどのように行えば良いのでしょうか?"
http://www.gimlay.org/~javafaq/S008.html#S008-01
351デフォルトの名無しさん:01/09/21 00:26
>>347
ハングリー精神がなくなるから教えたいくないけど
こんなソフトがあるぞよ(F9でコンパイルできるぞよ)
http://hp.vector.co.jp/authors/VA017148/
>>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する。

 ネタではありませんので、どなたかご教授の程よろしくお願い致します。
354352:01/09/21 00:54
秘密のコーナー

ところが、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()でいいじゃん。
356352:01/09/21 01:00
だから、
String a ="hoge";
String b = "hoge";

というやり方で作成されたStringオブジェクトは==とequalsが
同じ戻り値になる。で、そのBlackBookとやらは、其の辺の秘密
を理解したうえで確信犯なのか、あるいは単なる知識=経験則野郎
で書いていると思われる。

おいらは、そんな作者が糞な本は買わない。どちらにしてもロクな
奴じゃない事は確かだから。
>>355

353です。まだ膨大なメソッドを把握しきれていませんでした。
非常に単純なことだったんですね。自分の勉強不足が恥ずかしいです。
穴があったら容れたい、いや入りたい(サム
#ありがとうございました。
>>347 厳密に言うと
アプリの起動方法はOSの操作体系依存だから
各OS用のJDKまたはJREの説明を読め!ってことなんだけど

DOS窓でJavaアプリを起動できるのであれば
LinuxでもSolarisでもコンソールを持ったOSなら
ほぼ同じコマンドラインとオプションでできるよ。

ただMacだけは俺も謎 マク使いの登場を待て
359Java初心者: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
363JAVA厨房ですよ:01/09/22 10:56
すごくあたりまえのことなんだけど
public static mona uma()というのは
ほかのクラスからアクセスできて
戻り値の型がmona型なクラスメソッドですよね!
364 :01/09/22 13:47
>>363
もしかしてBlackBook読んだ?
3651Rubyユーザ:01/09/22 14:05
あなた達には分からないでしょうが、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と空文字列("")を混同してない?
375-:01/09/22 17:37
その画像ならココ
http://members.tripod.co.jp/bingo852/
376デフォルトの名無しさん:01/09/22 17:46
>>374
混同してない。
readLine()ってストリームの終りに達するとnullを返すんだよね?
でもなぜかループから抜けないの。
それで困ってるのです。
377374:01/09/22 17:48
>>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
フリーズ>>389
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
しかし解決はしていないのであった
398横槍君:01/09/22 21:46
>>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で割り込みかけるなりできるだろ。
406405:01/09/23 00:22
主観的に煽りかどうかとは関係ねえよ。
あんたが匿名板で質問する時に人に与える印象を計算
できないお馬鹿だという話で、煽りでも悪口でもないよ。

馬鹿に馬鹿というのは煽りじゃない。
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
だからそういう中傷はやめましょうね、大人気ないってば。
一回で理解しましょうね。
415412:01/09/23 00:55
そんな事はどうでもいいので早く説明してください。
自分のしたいことも説明できないんですか?
416デフォルトの名無しさん:01/09/23 01:00
>>415
ようするにwww.kernel.orgにFTPで接続すると普通の応答コードの他に変な文章を返して来るわけ。
それを無視したいのです。
わかりましたでしょうか?

変な中傷はナシね、へこんじゃうから
417412:01/09/23 01:05
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バイトずつ全部読んで捨てといたらええやん。
422412:01/09/23 01:19
一行ずつしか処理できないから上手くいかないってことか?
それなら、複数行読んでから処理すればいいだろ。
だいたい、変な文章とかいう説明で他人がわかると思ってるのか?
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クライアント作成禁止。

あんたソケットの仕組み知らないでソケットつかってんのか?
427412:01/09/23 01:27
変な文章ってWelcome to〜のことか?
変な文章が終わるまで読み飛ばすだけじゃダメなのか?
428デフォルトの名無しさん:01/09/23 01:27
>>426
ソケットの仕組みしらないとソケット使えないの?
煽りではない
429デフォルトの名無しさん:01/09/23 01:31
>>427
それそれ
あなたならどうやって飛ばす?

甘えてすまんす。
430412:01/09/23 01:37
こっちから書く前にctr.reset()するようにすれば良いんじゃないの?
毎回一行しか応答読めなくなるが。
//俺はJavaはよく知らんのであってるかどうかしらんよ
431デフォルトの名無しさん:01/09/23 01:52
reset()ってAPIリファレンスによると、
もっとも新しいマーク位置にリセットするのでしょ?
ストリームの内容をクリアするのではないらしい。
432412:01/09/23 02:01
うわ、ほんとだ。
じゃあ、やっぱり、何が来たら応答するかわかってるだろうから、
readLineをその文字列がくるまでまわしてからbreakかな。
433デフォルトの名無しさん:01/09/23 02:02
>>431
単にコマンドを発行して、そのレスポンスが現れるまで読み飛ばすのではまずい?
434デフォルトの名無しさん:01/09/23 02:17
今日はもう寝まする
435デフォルトの名無しさん:01/09/23 02:18
>>431
Welcome to の文章なら、以下のページの「レスポンス」という
記事を見ればわかるのでは?
http://www2.startshop.co.jp/~68user/net/ftp-4.html
>>408 周りがみんなデリケートに見えるのは
あんた一人がおかしいから

もうこの甘えん坊に構うの馬鹿らしいからやめないか?>>all
ずっと甘やかされた環境にいた真性か、
ネタで遊ばれてるとしか思えないんだけど。
437デフォルトの名無しさん:01/09/23 06:42
Javaのいい例題が
たくさん載っている教本があったら教えてください。
後、オブジェクト指向について
初心者が分かりやすい本があったら教えてください。
438OO逝って良しの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 つき合ってくれてありがとね
442Ruby!:01/09/23 15:22
--------------------------------------
OOPならRubyだね。
Java

なにかと話題のオブジェクト指向言語であるJavaとRubyを比較すると:

* Rubyはインタプリタ型言語。
* Rubyではすべてのデータがオブジェクトである。
* Rubyではモジュールを使って実装を共有できる。
* Rubyの変数や式には静的な型がない。
* Rubyでは正規表現が文法としてサポートされている。


http://www.ruby-lang.org/ja/compar.html

Rubyを知ってもらうためにもこの文をコピペしてください。
>>438
貴方こそ、よくおわかりのようで。

どうにも、変な誤解を読者に与える糞な参考書が
OOP関係には多いんだよね。
プログラマー的には、その程度と理解しておく
のが実践のうえでは過不足ないレベルだよねー。
                        
             
     
―――――――――――――――――――――――
それでは次のコーナーです
__  ____________________
    .|/   ‖      ‖ ____   
        ‖      ‖ | ON AIR.|
   ∧ ∧ θ     ‖  ̄ ̄ ̄ ̄
   (,,゚Д゚)__ /[] ̄ ̄θΛ_Λ
  ||(.  つ_/    //(´∀` )/|  
  ┗┳ /      ̄/⊂    ||_/
    ┻| ̄ ̄ ̄ ̄ ̄|  (  ━┳┛      
      |_____| /ヽ」┘┻
____________|\____

「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
シゲの地道な工作が着実に実を結びつつあるな
446 :01/09/24 11:10
―――――――――――――――――――――――
それでは次のコーナーです
__  ____________________
    .|/   ‖      ‖ ____  
        ‖      ‖ | ON AIR.|
   ∧ ∧  θ     .‖  ̄ ̄ ̄ ̄
   (,,゚Д゚)__ /[] ̄  ̄θ Λ_Λ
  ||(.  つ_/     //(´∀` ) /|
  ┗┳ /      ̄/⊂    ||_/
    ┻| ̄ ̄ ̄ ̄ ̄|  (  ━┳┛    
      |_____| /ヽ」┘┻
____________|\____

>>444はクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
447デフォルトの名無しさん:01/09/24 17:44
ageとくね。
448デフォルトの名無しさん:01/09/24 17:51
>>445

そうか?Rubyがどれほど良い言語なのか知らんけど、
変な信者がひとりいて、この板に迷惑掛けているというだけで、
自分としての評価が最低ランクまで落ちるんだけど…
449-:01/09/24 17:56
俺、このHP大好き!
http://members.tripod.co.jp/bingo852/
450デフォルトの名無しさん:01/09/24 18:13
>>448
それが狙いなんだろ
信者を装うアンチ
451デフォルトの名無しさん:01/09/24 18:50
>>450
あらら。世の中には、馬鹿で暇で無駄飯ぐらいで陰湿で
生きていてもしょうがない人種ってのが、いるんだねえ。
>>451
2chの帯域も浪費しています。
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
http://hp.vector.co.jp/authors/VA013059/jq/jq0006.txt
によるとインストるミスではないかということでした。
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
http://java.sun.com/j2se/1.4/
JavaTM 2 SDK, Standard Edition,v 1.4.0 Beta 2 (J2SETM)
の正規版いつ出るか知りませんか?
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
>>460
初心者さんがんばれぇ
463デフォルトの名無しさん:01/09/25 20:09
>>460
パス通した?
464デフォルトの名無しさん:01/09/25 20:32
>>460
厨房うざい、氏ね
465 :01/09/25 23:09
>>464 ruby?
466tyv:01/09/26 04:55
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
以下のような事をやりたいんですが
分かる方いらっしゃたら教えてください!

1.URLがただ羅列してある「url.txt」ファイル
(1行に1つのURLが書かれていて、それが何行もある。)
2.「url.txt」から一行ごとにURLを読み込む
3.同じURLがあればカウントする
4.「url.txt」から読み込んだURLをカウント数が多い順に上から(昇順で)表示。
5.URLの横にそのURLに対応するカウント数を表示。
※ 最終的に↓みたいな感じで表示させたいんですが・・

http://www.****.ne.jp/***.cgi ---- 10
http://www.****.com/***.html   ---- 7
http://www.****.ne.jp/***.html ---- 1
http://www.****.co.uk/*****.cgi ---- 1

どうやればいいんでしょうか・・
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
そうだね。十分だね。
けど君と違って、全てのメソッドの
全ての引数を覚えられるほど
頭がよくないんだよ。
478SSH:01/09/27 14:31
これって違うものなの?

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
インターフェイスというのがよく分かりません。
独習ジャヴァを何回も読んだんですが
教えてください。
482481:01/09/27 18:59
誰も教えてくれなくても(゚ε゚)キニシナイ!!
>480
機能的には同じ
Hashtableはレガシー(JDK1.0からか?
VectorとArrayListも同様の関係

あ、HashMapのアクセスメソッドはsynchronizedされてないって違いがあったっけか
484481:01/09/27 19:55
>>483
教えてくれてありがとう!
わいの理解力が無いからその教え方ではわからんのよ
もう一回説明してクレ〜
>>481
独習ジャヴァは呼んだこと外ので、interfaceをどう説明しているか
知らないけれど、javaにとっては非常に重要なものなので、しっかり
学習するように。
って、これだけではチャチャだけど、簡単に言えば、多重継承を許さない
javaで、ひとつのオブジェクトに複数の型を持たせることができる仕組。
ポリモーフィズムにとって重要な役割を果たす。
んーん、これではますます分からないよね。
486485:01/09/27 20:18
続けるね。
例えば、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();
の方がずっと応用範囲が広いと思うのですがどうでしょうか?
490488:01/09/27 21:13
>>489
singletonですな
491デフォルトの名無しさん:01/09/27 21:34
Java使ってる人で、実行時ポリモーフィズムがわかってないのって・・・・
Java使ってる意味ないって(笑)
492488:01/09/27 21:38
私の質問にも答えて欲しい
493デフォルトの名無しさん:01/09/27 21:39
>>492 試してみた?
494488:01/09/27 21:44
ObjectInputStream in = new ObjectInputStream(new FileInputStream(new File("filename")));

Data data;
while((data = in.readObject()) != null);
ていう感じでやってたらIOExceptionがthrowされた。
495492:01/09/27 21:46
CやC++だったらEOFだよね、javaも同じではないの?
496デフォルトの名無しさん:01/09/27 21:50
ClassNotFoundException - 直列化されたオブジェクトのクラスが見つからなかった場合
InvalidClassException - 直列化で使用されるクラスになんらかの不具合があった場合
StreamCorruptedException - ストリームの制御情報に一貫性がない場合
OptionalDataException - プリミティブデータが、オブジェクトではなくストリームに見つかった場合
IOException - 通常の入出力関連の例外のどれかが発生した場合
Objectがもう無いのに読み込んだから、例外が出るんでいいんでないの?
498出馬鹿ー:01/09/27 21:53
>>494 ふ〜んネタですか?
499488:01/09/27 21:54
>>497
ではどうやってファイルの終端を判断してループを抜ければよいのでしょうか?
500デフォルトの名無しさん:01/09/27 21:55
>>498
いや、自分でプログラミングできないから
ライブラリを使うというタイプの人でしょう
501デフォルトの名無しさん:01/09/27 21:58
502出馬鹿ー:01/09/27 22:01
少なくともIOExceptionのときは別の処理をする必要がありますよね。
<pre>
while(true){
try{
data = in.readObject();
if(data==null)break;
...
}catch(IOException e){...}
}
</pre>
とやったらどうでしょうか?
503出馬鹿ー:01/09/27 22:02
<pre></pre>は余計でした。
504488:01/09/27 22:03
>>500
歯車の再発明がんばってくださいよ
505デフォルトの名無しさん:01/09/27 22:04
catch節がないとコンパイルエラーになるわけだから
どっかに書くだろ
506488:01/09/27 22:06
>>502
それはwhile((data = in.readObject()) != null)
と同じことではないの?

ファイルの終端でnullを返すのではないのでしょうかねえ
507デフォルトの名無しさん:01/09/27 22:08
>歯車の再発明がんばってくださいよ
コンピューターの仕組みもある程度わかっていないと、
まともなJavaプログラムはかけないのだが
まあ、VB厨房がけなされる理由がわからない人間には
言っても無駄なんだろうな
508出馬鹿ー:01/09/27 22:08
>>505 そりゃそうですね!
でもIOExceptionが
ループのどこで発生したかを知るには
こんな感じにやることもできるってことですよ。
509デフォルトの名無しさん:01/09/27 22:11
>>501
はつかえないの?
510出馬鹿ー:01/09/27 22:12
というかwhileなんて使わずにifでいいんでないの?
511488:01/09/27 22:13
while((data = (Data)in.readObject()) != null)
System.out.println(data.toString());
とやるとファイルの終端までのデータは出力されるから
終端でIOExceptionが発生しているらしい
512509:01/09/27 22:13
無視ですか(笑)
513488:01/09/27 22:17
オブジェクトシリアライズってあんまり使わんのかなあ
514出馬鹿ー:01/09/27 22:20
ちなみに何回ループした?
2回以上であることを期待・・・・
515509:01/09/27 22:21
リンク先クリックするだけだと()が抜けちゃいますから・・・

>>513
必要なデータだけ書き出すのに慣れてるので、
あまり使われないだけではないでしょうか?
516出馬鹿ー:01/09/27 22:22
ObjectInputStreamはあくまで1つのオブジェクトを扱うのでは?
517509:01/09/27 22:23
あのーー
>>501
見たほうがいいですよ(笑)
518出馬鹿ー:01/09/27 22:24
>>516馬鹿言っちゃいけないね何個でも扱えるな
519509:01/09/27 22:29
書き込みが止まったとこをみると
理解してもらえたようで
良かったです
それでは
520488:01/09/27 22:36
>>519
まだわかってないさ
501見たけどそれがどうしたの?
何が言いたいわけ?
521デフォルトの名無しさん:01/09/27 22:39
swingアプリを使っていると、全ウインドウ(他アプリ、デスクトップ含む)
に対して再描画が行われて、ちらつく事があるのですが、防げないの
でしょうか。Forteのソースエディタをスクロールさせているだけでも
起きるものです。

win2k、jdk1.3.1_01にて。
522488:01/09/27 22:42
swingは標準でダブルバッファリングされてるらしいけどね。
ある程度のちらつきはしょうがないんじゃないかな。
Forteは重いよねえ。
523521:01/09/27 22:44
>>522
ダブルバッファリングは関係ないです。
再描画が起きるのは別のアプリにもですから。
524出馬鹿ー:01/09/27 22:45
俺もやってみるわ。ObjectInputStream
525デフォルトの名無しさん:01/09/27 22:46
読もうとしているファイルは、
ObjectOutputStream.writeObject()で書き込んだ
データなの?

それ以外なら、readObject()がIOExceptionかその派生
例外投げるのは当たり前だと思うが。
ストリームから読んだ情報にオブジェクト復帰に必要な
データがかいてなければ、そりゃ例外発生するさね。
(クラスによるけど)

で、ネタでしょ?
526出馬鹿ー:01/09/27 23:04
やってみたよ、再現したよ。いまどうすればいいか試しているよ。
527出馬鹿ー:01/09/27 23:07
でもこちらはEOFException だよね
そこがちがうな。
528デフォルトの名無しさん:01/09/27 23:13
>>527
EOFException extends IOExceptionです。
原因判明ですな。
529出馬鹿ー:01/09/27 23:15
try{
 while(true){
  data = in.readObject()
 }
}catch(EOFException e){}
ってやったら問題無く動作したよ。
でも例外をこんな使い方していいもんかな?
530488:01/09/27 23:16
>>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を試してみます。
537488:01/09/27 23:37
おいらが言うのもなんだけど、日本語おかしいよ>>534
538出馬鹿ー:01/09/27 23:39
イベントで
java.awt.event.WindowAdapter
の関数windowDeactivated
を使っていませんか?
この関数でActivate処理をしていませんか?
539出馬鹿ー:01/09/27 23:40
画面がチラツく原因は色々考えられるのでなんともいえません。
540デフォルトの名無しさん:01/09/27 23:50
オブジェクトのシリアライズはネットワークごしのデータ受け渡しにべんり!!
541デフォルトの名無しさん:01/09/27 23:51
>>530
>>533で解決しましたか??

>repaint()しても一度背景色で塗りつぶされてしまえばちらつきますから
その程度のレベルだと、まずswingが扱えないと思いますが
まず、AWTで基礎を学んでみてください
542488:01/09/27 23:51
アプリって何作っとんのだ。
すみやかに答えよ>>534
543デフォルトの名無しさん:01/09/27 23:52
>540
RMI
544デフォルトの名無しさん:01/09/27 23:53
あの、、、マックを使ってる人はどうすれば、、、
545デフォルトの名無しさん:01/09/27 23:57
>544
あきらめるしかないでしょ
546488:01/09/27 23:59
SocketからObjectInputStreamでデータ受け取ると最後はnull返される?>>540

日本語へたくそですまん
>>544 あの、、、マックを食ってプリオンに感染した人はどうすれば、、、
548544:01/09/28 00:00
>>574
あきらめるしかないでしょ
549488:01/09/28 00:05
>>548
>>574て誰だよ、お前阿呆か?
550デフォルトの名無しさん:01/09/28 00:05
488はAPIリファレンス知らないのか?
ソケットなんだから、ずっとブロックされっぱなしだろ
>>538
使っていません。

>>541
仰っているのはダブルバッファリング周りの事ですね。
自分で作ったアプリだけがちらつくのならデバッグも楽なのですが、
同じ時にデスクトップまでちらつくのです。

Forteでも他のウインドウに隠れている部分が表示される時、
隠れていた部分は灰色で、すぐに通常の絵が描かれます。
これが、普通に使っている時にウインドウ全体に対して起きるます。
デスクトップや一部他のアプリに対しても起きます。

ただ、他になっておられる方はいないようなので、javaアプリ以外の
私の環境に原因があるのかもしれません。
552 :01/09/28 00:07
ちらつき対策

1)ハードのアクセス制限によりちらつく場合(ごま塩ノイズ)
垂直ブランキング期間に転送すればちらつかない場合があります。

2)書き換えが表示期間中に行われる場合(書き換えの境界が見える)
表示をいくつかに分割して、VBLANK待ちを各描画の頭に入れましょう。
553551:01/09/28 00:09
修正
> 仰っているのはダブルバッファリング周りの事ですね。
update()のオーバーライドです。
ダブルバッファリングはその時のpaint()での話でした。
たびたびすいません。
554出馬鹿ー:01/09/28 00:11
toFront()
toBack()
などを多用していませんか?
555デフォルトの名無しさん:01/09/28 00:13
forteのバージョン低いんじゃない?
うちは大丈夫だけど・・・

>仰っているのはダブルバッファリング周りの事ですね。
俺もあの発言はまずいと思うよ
AWT使ったことありませんって感じの発言だもん
車輪の・・・とかってのがあったけど
結局、原点がわかってないと駄目だよね

気になったんだけど、一部他のアプリ・・・って
Javaアプリじゃないんなら・・・
レスして損した気分になるんですが
556488:01/09/28 00:13
もう少し考えてから書き込んで下さいね>>553
ここは感情の発露の場ではないのですよ。
公共の場ですからね、気を付けて。
557出馬鹿ー:01/09/28 00:13
paint()をオーバーライドして済むことを
update()をオーバーライドしてやっていませんか?
558デフォルトの名無しさん:01/09/28 00:15
>>553
それをふまえて
自分の言いたいことを書き直せば??
日本語痛すぎですよ
559488:01/09/28 00:17
自作自演くさい
560デフォルトの名無しさん:01/09/28 00:25
Java入門の良い本ありますか?
561488:01/09/28 00:28
ASCIIのcoreJAVA2とgraphicsJAVA2がいいと思う
562出馬鹿ー:01/09/28 00:28
>>560 Java言語プログラミングレッスン(上下)結城浩
なんてどう?あまり読んでないけど。
>>562
読んでない本薦めるなよ
564出馬鹿ー:01/09/28 00:30
>>561 なんか初心者を煙に巻くのがはやっているみたいね
>>564
オマエモナー
566出馬鹿ー:01/09/28 00:34
あまりに初歩的な質問がくると次のように思うよね!
「お前やる気があんのか?」
「マニュアル読め」
煙に巻きたくなる気持ちわかるよ・・・現に自分もやってるし。
ホント
あふぉバッカリ
568488:01/09/28 00:44
今日はもう寝ますね
ちんこまんこでおやすみなさい。
>>568
もう来ないでね。
>>554
どちらも使用していません。

>>555
ForteはRELEASE 2.0を使用しています。

javaアプリを使用していると、他アプリも含めて、再描画が起きます。
javaアプリにも起きます。
顕著なのがデスクトップです。
他のアプリを使用している場合は起きない上に、javaアプリに描画で
負荷をかけると起きるので、javaアプリに原因があると思ったのです。
ただ、他に起きている方がおられないので、一般的には起きないものな
のかと思いました。

>>557
update()のオーバーライドはしていません。
swingのupdate()はpaint()を呼び出すだけなので、オーバーライドする
必要が無いのは分かっています。

>>558
発端となった物を書き直すと、

私の環境では他のウインドウに隠れている部分が表示される時、
隠れていた部分は灰色で、すぐに通常の絵が描かれます。
swingのコンポーネントで、です。
swingのupdate()はpaint()を呼び出すだけで、背景色で塗りつぶしてはいません。
ですからこの実装をしても、ウインドウの再描画をする場合には一瞬背景色で
塗りつぶされてしまうものだと思いました。
だから、repaint()しても一度背景色で塗りつぶされてしまい、ちらつきます。

となります。

ですが、そもそも私が前提としていた
> 他のウインドウに隠れている部分が表示される時、
> 隠れていた部分は灰色で、すぐに通常の絵が描かれます。
が他の方の環境では起きないようなので、上記は誤りとなります。


ウインドウ全体の再描画によるちらつきは普通、起きないようですので気にしない事にします。
お騒がせしてすいませんでした。
572488:01/09/28 01:02
Forteなんてよく使うね
自分も前は使ってたけど糞なのでやめた
今はemacs+ant+cvs
573488:01/09/28 01:03
あなたの発言省略されてるよ>>571
574出馬鹿ー:01/09/28 01:05
>>572 JBuilderつかっているけどどう思う?
再描画が気にならなくなるくらい速いマシン使う
PCの能力くらい書いとけ
576デフォルトの名無しさん:01/09/28 01:33
>488
作ってるアプリが違うんだから・・・・

とりあえず、571は「ちらつき」という単語の意味を間違って認識している
そして、AWTを使ったことがない可能性が高い
という事実が明らかになっただけだな
そして、swingに関しても使い方しか知らないようでして
使いやすいライブラリは、くそプログラマを量産してしまうという面があるようで
577571:01/09/28 02:28
お詫びに参りました。

思いつきで常駐ソフトを全て終了させた所、再描画によるちらつきが
一切なくなりました。
やはり原因が私の環境にありました。

申し訳ない。
578ぐぐ:01/09/28 03:03
i-appliのJavaについて質問させてください。
com.nttdocomo.ui の Fontクラスなのですが、
どうしてもフォントのサイズを大きくしたいのです。
Font.SIZE_LARGE などを指定しても、機種依存で
まちまちであるということは調べました。
他に大きくする方法はないのでしょうか?
自作クラスなどを作って大きくするなど、
アドバイスがあればお願いいたします。
579へたれ大学生:01/09/28 03:15
JAVA API仕様のページ(http://java.sun.com/products/jdk/1.2/ja/docs/ja/api/)を
読んでいるのですがどうもとっつきにくいです… こんな自分にも理解できるようなAPI解説
ページでいいところをご存知でしたら教えてください
580デフォルトの名無しさん:01/09/28 03:54
581デフォルトの名無しさん:01/09/28 03:58
582481:01/09/28 05:29
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ってわかりますか?
583481:01/09/28 05:39
>>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; }
}

こんな感じ
586585:01/09/28 07:12
>>583
補足:インタフェイスとクラスの違い

(1)インタフェイスはメソッドの中身を書けない
(2)インタフェイスのメソッドはすべてpublic
(3)いくつでもインタフェイスをimplementsできる

(3)は例えばこんな感じ

class B implements A1, A2, A3{
587ぐぐ:01/09/28 08:06
>>581
情報ありがとうございます!
試した後で報告させていただきます。

>>584
残念ながら、文字は固定ではないので
gifでは無理なんです。
588481:01/09/28 09:18
>>585:586
わかった!ありがとうございました。
インターフェースを使えば一つのクラスに
いっぱい継承ができるんですね。
独習ジャバに書いてるのもなんとなく理解できますYO!
でわ!
>>583
>implementsってなんですか?
って、独習Javaを繰り返し読んだんじゃないのか?
P196からをちゃんと読め。
それでも判らなければ、プログラミングレッスン(下)
さらに判らなければあきらめ
590481:01/09/28 10:24
>>589
結城さんのですか?
591584:01/09/28 10:55
>>587
じゃあ無理です。あきらめれ。
592デフォルトの名無しさん:01/09/28 11:00
>>589
むしろ複数のクラスで一つのインターフェイスを使い回せることが
嬉しいと思ったり。
593デフォルトの名無しさん:01/09/28 11:05
>>488
亀レスだけど・・・。
ObjectInputStreamのドキュメントを見たけれど、ストリームの終わりで
何が返されるのか、見つけられなかった。
例外を補足するか、または、書き込む側が、最後にnullを書くなどの工夫が
いるみたい。
availableは機能しなかった。どうもInputStreamのものをオーバーライド
してないみたい。
誰か他の方法わかる人、教えて。
594ぐぐ:01/09/28 11:43
>>581
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/awt/FontMetrics.html
はフォントを表示するために大きさを取得するものですよね?
i-appliのjavaのFontクラスにも似たようなメソッドはあるのですが、
Fontの大きさそのものはかえられません。

>>591
ですか。。。
ルパン・サブタイトルみたいなi-appliを作りたかったんですけど。。。
ノーマルフォントじゃしょぼすぎる。。。
595481:01/09/28 12:09
>>592
一つのクラスで複数のインターフェイスを使えるのが嬉しかったです。
596デフォルトの名無しさん:01/09/28 12:23
>>595
>一つのクラスで複数のインターフェイスを使えるのが嬉しかったです。

C++は普通に複数のクラスを継承(多重継承)できるんで、いっそのことC++に乗り換えれば、嬉しさ倍増?
597481:01/09/28 12:43
class (゚д゚)ウマー extends (・∀・)イイッ
だったら(・∀・)イイッを(゚д゚)ウマーに継承するって言えるけど

class (゚д゚)ウマー extends implements (・∀・)イイッ,(゚ε゚)キニシナイ!!
だったらなんていうんですか?
(・∀・)イイッと(゚ε゚)キニシナイ!! を(゚д゚)ウマーに継承するって言うんですか?
598585:01/09/28 12:56
>>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回書き込んでしまった・・・鬱だ。
601481:01/09/28 13:59
恥を書いてしまったよ。
鬱だ死ぬね。。。。。
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 運転() {
  ....
 }
}
605602-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 普通車 {
>>604の後ろ四行に注目!
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
ここレベル低いなあ
610604:01/09/28 18:41
>>604
まー、ふつうはそう書くね。
インタフェイスの説明のつもりだったんだけど、抽象クラスも入れといたほうがよかったね。

>>607
山に篭るから勘弁してくれ。
611java見習い:01/09/28 18:47
javaのプログラムについて質問させてください。
アプレットの方なんですが、repaint(){}が作動してくれないんです。

いろいろな可能性があるでしょうが、ソースがちょっと長いので
全部は張りつけられません。

考えられる可能性を教えていただけないでしょうか?
必要であるならばソースの一部を張ります。
612java見習い:01/09/28 18:50
間違えました。訂正です。
repaint();で呼び出すupdate(Graphics g){}が作動してくれないんです。
613出馬鹿ー:01/09/28 19:01
>>612
まず聞きたいのですが、
update()が作動しないとはどのような状況ですか?
update()はオーバーライドしていますか?
614java見習い:01/09/28 19:06
>>613
public void update(Graphics g){
Main.t2.setText(String.valueOf(Main.a));//作動確認
gg=g;
drawGraph();
}

こんな感じなんですが、これってもしかしてオーバーライドできてないですか?
615出馬鹿ー:01/09/28 19:07
>>614
>>612
JDK1.0の頃にJDKがバグってて
たまにupdateをすっ飛ばしてpaintが呼び出された経験があるが、、、

まあ根性いれて再現するようにソースを削ってあぷしろ。
(だいたいやってるうちに原因がわかってあぷする必要もなくなるんだけどな)
617出馬鹿ー:01/09/28 19:09
日本語もなんか変なので君は本当に初心者みたいね
作動→動作
ちょっと聞きたいのですがggは何のために使っていますか?
618java見習い:01/09/28 19:10
これをオーバーライドするにはどうすればいいのでしょう?
619java見習い: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 おまえはすでにオバーライドしている。(ケンシロウ)
621java見習い: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){
}
}
}
622出馬鹿ー:01/09/28 19:18
>>619 初歩的なことを聞きますが
paintとupdateの違いがわかりますか?
またそれをオーバーライドする理由がわかりますか?
623java見習い:01/09/28 19:23
paintはアプレット開始時に呼び出されるもので、
updateは中断や更新するときに呼び出されるもの。
updateはpaintで描いたものを一回消してもう一回paintを呼び出す。
だと思っています。
オーバーライドする理由はよくわかりません。
624java見習い:01/09/28 19:26
オーバーライドしてメソッドを追加することにより、
paintで呼び出さないメソッドを読み出す。
・・・のつもりで使っていました。
625出馬鹿ー:01/09/28 19:29
普通はpaintまたはどちらか一方のみオーバーライドするだけで目的は果たせます。
updateもオーバーライドしているというのは何か理由があるのでしょうか?
スーパークラスの再描画はちゃんとやっていますか?
super.paint(g)などという感じで、
626出馬鹿ー:01/09/28 19:35
スーパークラスのupdateを上書き(オーバーライド)
するわけですからupdateの記述の中に
super.update(g)を書くのが普通なのでは?
627java見習い:01/09/28 19:36
>>625
paintで関数の軸の部分等を描いて、
repaintでupdateを呼び出すことによって2次関数を描いています。

スーパークラスというのはこの場合Panelのことですか?
super.paint(g)のようなものは入っていません。
スーパークラスの再描写も必要なんですか?
628java見習い:01/09/28 19:37
とりあえずそれで試してみます。
>>623
ぜんぜん違う
paintもupdateも
Windowシステムが画面を描画する必要があると判断したときに
いつでも任意のタイミングで呼ばれるものだ。
たとえばウィンドウがいったん後ろに隠れてまた表になったときとか。

updateのデフォルトの実装では背景を塗りつぶしたあと
paintを呼び出すようになっている


背景の塗りつぶしを含めて描画を全部のカスタマイズしたいときはupdateをオーバーライドする。
背景描画をシステムに任せてもいいときはpaintだけをオーバーライドする。
630java見習い: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();
//この部分
}
}
//の部分に先ほどの記述をいれたらその記述は動作してくれるんです。
631出馬鹿ー:01/09/28 19:45
いまのところ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だとできるけどブラウザだとできないのはなぜ???
633java見習い:01/09/28 19:51
最初にpaintを呼び出して、後にボタンを押すことによってupdateを呼び出すことによって
最初のpaintとは別な描写をしているつもりなんです。

updateをオーバーライドしないとするならば、
ボタンを押すときに何かの変数をオンにして、
repaintでpaintを呼び出してその変数がオンのとき違う描写をする
、とするべきでしょうか?
634出馬鹿ー:01/09/28 19:55
>>633 まずむやみにオーバーライドしているのは
無理に問題を難しくするためなのですか?
mypaint()という独自の関数せやればいいではないですか?
あくまでpaintやupdateはWindowが隠れたときなど再描画のための関数です。
635出馬鹿ー:01/09/28 19:58
訂正「せ」→「で」
636java見習い:01/09/28 19:59
>>634
paint()やupdate()以外では描画することができないと思っていましたが、
そんなこと無いんですね。
今試してみます。
637出馬鹿ー:01/09/28 20:01
>>636
mypaint()内でグラッフィックスを取得するためには
this.getGraphics()を使います。
638出馬鹿ー:01/09/28 20:03
訂正
jPanel1へ描画するならば
jPanel1.getGraphics()を使います
あのさ、チャットじゃないんだから…
640出馬鹿ー:01/09/28 20:07
>>639 すみません。原因追求のレスはいけない?
641出馬鹿ー:01/09/28 20:09
>>639 それとも初歩的な質問に対してはお茶を濁す?
642java見習い: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
ミ´∇`彡にゃーん
647tyv:01/09/29 03:02
>>468
ありがとうございます。すいませんおくれました。
648デフォルトの名無しさん:01/09/29 04:46
IDE選びは、自分がどういうプログラム書くかで違ってくるぞ
とりあえず、今回のJavaPressでも参考にしな


――――――――――――――――――――――
臨時ニュースです。
「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
___________   __________
             ‖ \|________
             ‖ | ON AIR.|
             ‖  ̄ ̄ ̄ ̄
        ./ ̄ ̄θ  ∧_∧
      .../   //(^∀^ )/|
     ./      ̄/⊂    ||_/
     | ̄ ̄ ̄ ̄ ̄|  (  ━┳┛
     |_____| /ヽ」┘┻
650デフォルトの名無しさん:01/09/29 20:11
>>648
あなた誰に言ってるの?
頭大丈夫?
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バイトを開放するとメモリの節約になると思ってるのかな
この画面であなたが読まない文字情報は何バイトでしょう?
ってな事もわかってないんだろうな
テキストエディタでも作ってみれば、
メモリの節約と、プログラムの高速化がどんなもんかわかるんじゃない?
653651:01/09/29 21:01
>>652 サンプルは簡略化したものです、
実際にはもっと大きなデータ(数MB)を扱います。
654651:01/09/29 21:12
これも簡略化したサンプルですが、
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;}
↑これなあに?
意味わかんないでちゅう
ここよりも病院いくべきでちゅう
656654:01/09/29 21:26
>>655 大丈夫ですか?突然幼児語になってしまいました。
657デフォルトの名無しさん:01/09/29 21:30
とりあえず、君は仮想空間とかわかってるのかな?
連続したメモリ空間を使ってるなら
プログラムが読みに行かなきゃ関係ないんだけど
Winは・・・どうなんだろ
まあ、そういう事も気にしないという事で話を進めると
プログラムの流れによって適切なデータ構造を選んだ方が
いいと思う
特に使用メモリサイズを気にするプログラムであれば
データ構造のプログラムサイズだけでかなりいくと思うんだよね
ただ、いきなり100000の配列なんて作っちゃうプログラムって・・・
まあ、なくはないか
658654:01/09/29 22:01
私の求める安直な方法は存在しないのかもしれません。レス頂いた方ありがとうございました。
al[i]=new A(){int x;};

なんでわざわざこんなことしてんの?
660どーでもいいけど:01/09/29 23:09
>>654 は疎行列みたいなことがやりたいんでは?
661654:01/09/29 23:10
簡略化しすぎました実際には
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されるのでしょうか?
663662:01/09/29 23:54
失礼しましたこれはスタックオーバーフローしてしまいます。
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
まんこちんこでコンニチワって感じかな>>663
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
http://www.ukikusa.jp/
ここの、波紋が広がっていくアプレットのアルゴリズムは、どうやっているのでしょうか。
>>674 Anfy java チームに聞いてください。
>>673 不安を煽っているのはMSでは?別のスレでお願いします。
>674
GameProgrammingGemsに解説あったけど
要するに質点を格子状に並べて
上下左右同士をばねでつなげてやればいいらしいよ

あとHimatsubushiで似たようなのをソースつきで公開してる(VB)
http://page.freett.com/bee0001/cnt_bin/water.lzh
678デフォルトの名無しさん:01/09/30 17:01
>JAVAのMV
(笑)
世の中にはDLLが必要なソフトがいっぱいあるわけだけど
それでも、使われるソフトっていっぱいあるし
JREは勝手に配っていいんだよ

>>673
http://www.nsg.co.jp/nbb/ss/joy/idxall.html
この人に相談するといいでしょう
ホームページで情報発信をしているPGの中では
かなりのレベルです
679デフォルトの名無しさん:01/09/30 17:19
> ホームページで情報発信をしているPGの中では
> かなりのレベルです

激しく同意!!
この人は、JavaがC++より速いことを見事に実証した英雄!!

http://www.nsg.co.jp/nbb/ss/joy/ig980706.htm
680678:01/09/30 17:38
>この人は、JavaがC++より速いことを見事に実証した英雄!!
そうなの??
まあ、速さにこだわってるようなレベルの人ではないと思うので
とりあえず、偏見を持ったC++プログラマーとかは見たほうがいいです
実行時ポリモーフィズムを使いこなしたい、C++PGは是非JAVAを
>>680
ネタに気づけよ。(プ
> http://www.nsg.co.jp/nbb/ss/joy/ig980706.htm

やっぱこいつ真性だな。
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();]
で殆ど事足りると思うのだが。
早いうちにきちんと教育しといた方がいいんだよ、このばあいは。
707こめ:01/10/01 06:11
Object型のオブジェクトを、文字列で名前が与えられたクラスにキャストする
にはどうすればいいの?
708こめ:01/10/01 08:24
呼び出したいメソッドも文字列で与えられるから、getMethodの
invoke使って解決したづら。
709デフォルトの名無しさん:01/10/01 16:28
キャストの必要のない場合
double←float←long←int←short←byte

char は何処に入る?
711デフォルトの名無しさん:01/10/01 21:32
Javaのマルチスレッドは糞だな
無いよりマシ
713709:01/10/01 21:50
>>710
Thank you
714デフォルトの名無しさん:01/10/01 22:05
>>711
どこが。
7151:01/10/01 22:09
その画像ならココ
http://www.f2.dion.ne.jp/~impact14/
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]);
720719:01/10/02 15:16
あ、だめか。Integer[]になっちまうな。
7211:01/10/02 15:20
その画像ならココ
http://www.h2.dion.ne.jp/~goldman/
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以外の言語やるのは構わないがゲーム作りとは関連ない。
>734
1.4から追加されました

new I/O API
http://java.sun.com/j2se/1.4/docs/guide/nio/index.html

現在J2SE 1.4Beta2がリリースされています
737731:01/10/03 01:08
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のヒープ内でインス
タンスがいくらでも生成できるので、通信を気にする必要は無いよ。
精密な同期処理を実装してないので同期がつらいけど。
743inakamono: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側が悪いのか、煮え切らない状況で
イラついたよ。
751748:01/10/03 18:12
>>749
セキュリティレベルを下げなきゃいけないようじゃ、誰もやらないんじゃないか?

どうせサーブレット経由になるなら、ここはいっちょSOAPを使って・・・
って、んなことしたらPlugInにしなきゃいけないじゃないか。
jarアーカイブもめちゃくちゃデカくなりそうだし・・・

無難なのはCGIのサーバでも置いとくことなんだけどねぇ。
752鬱だ氏のうiアプリ:01/10/03 18:34
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
まんこにちんこブチこむ要領で>>753
757 :01/10/04 01:32
java graphics でスポイト的なメソッドってあります?
ピクセルの色調べるようなやつです
758デフォルトの名無しさん:01/10/04 02:01
>>757
GraphicsにもImageにもそういう関数はないような気がした。
java.awt.image.BufferedImage の getRGB(int,int)
をつかうのはどうかな?
759  :01/10/04 02:06
>>758
しらべてみまふ
サンクス!
761デフォルトの名無しさん:01/10/04 02:08
>>753
SUNのJavaのAPIのHPはAPIの設計書であって説明書ではない。
クラスライブラリの設計者同士の覚書みたいなもので、
利用者に向かって書かれていない。(MFCの文章と比べて見よう)

HP巡りとか本買うとかして習得すべし。
762753:01/10/04 02:15
>>756
ありがとう!調べてみます!!!
(ナニカラ?
763デフォルトの名無しさん:01/10/04 02:22
>>757
とりあえずまず「グラフィックJava2 Vol1. AWT編」くらいは
買おう。きっとこれから出てくる同種の疑問にも答えてくれるぞ。
ただ、前も誰かが書いていたけど、Vol3. Java2D編がなかなか
でないんだよなぁ。
764  :01/10/04 12:37
JAVAのダイレクトXって使っていいの?

なんか、使ってるひといないけど
765デフォルトの名無しさん:01/10/04 21:57
JTextFieldのテキストが変更されたタイミングに呼び出されるリスナーとかある?
>765
Documentオブジェクト取得してaddDocumentListenerかな。よく知らないけど

http://java.sun.com/j2se/1.3/ja/docs/ja/api/javax/swing/JTextField.html
http://java.sun.com/j2se/1.3/ja/docs/ja/api/javax/swing/text/Document.html
767デフォルトの名無しさん:01/10/04 22:39
>>763
>ただ、前も誰かが書いていたけど、Vol3. Java2D編がなかなか
>でないんだよなぁ。

それはおいらが二回も言ってたのに無視されてた。
で、いつでるのでしょうか?
768765:01/10/04 22:55
>>766
サンクス。できたできた。
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がいってた)
772TINI :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の設定が少々面倒だけどあとはすんなりだよ
778TINI:01/10/05 13:07
>>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に高レベル求めんのもどうかな?
学会逝け!
785学部4年:01/10/05 20:09
そんなの今時の高校生だってしってるぞ。
もっと「CS学科でしか学べない」ようなレベルの高い例を出せよ>782
786デフォルトの名無しさん:01/10/05 21:59
文脈自由文法、オートマトンがわかると
なんの役に立つのか知ってるのかな?
情報科で習うことって、
ほとんどある分野でしか使えないような知識だと思うけど
状態遷移図を上手に書きたい。
ところがオレは書き方を知らない。
オートマトンを勉強すれば自然に身につくと聞いた。
なんかいい本あったら教えて。
788デフォルトの名無しさん:01/10/05 22:33
状態遷移図ってメチャメチャ簡単じゃん
オートマトン勉強するのと
状態遷移図勉強するのって
大変さがけた違い
>>788
その辺を学生に戻った気で本気で勉強しなおしたいの。

今作らせてるシステムが不調で、原因を聞くと
「変なステートに落ち込んだみたいですね・・・」
どんなステートなんだと聞いてもそうなる条件を聞いてもあやふや。
仕様書もソースもぐちゃぐちゃだし。

ならば一度システム全体をぶっ壊して、見直してやろうと思って・・・
790デフォルトの名無しさん:01/10/05 23:23
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Del厨断末鬼の叫び!!!
拙い言いがかりからRubyを必死に煽ろうとしたDel厨が逆襲を受けて死亡!
理論的にDelphiはRubyの足元にも及ばないことが証明された!!!
「Ruby撲滅スレ」
http://piza2.2ch.net/test/read.cgi/tech/1001125342/
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
791788とは別人:01/10/05 23:51
>>789
いいと思いますぶっ壊しましょう。
最初からやり直した方が意外に早くできるかもしれません。
仕様書やソースはいいとして設計書を忘れていませんか?
状態遷移図、フローチャートなどの技術は基本設計の技術です。

すれ違いなので以上
792デフォルトの名無しさん:01/10/06 00:07
>>782
自分は高校生だからよくわかんないけど、プログラマーなんてプログラムだけできればいいんじゃないの?
プロの方の意見が聞きたいなあ
793プロ:01/10/06 00:13
>>792
プログラム=コードが書ける
という認識は間違っています。
プログラマとは、今世間で言うところのSEと同程度の
ことはできなければなりません。
企画、設計もプログラムのうちです。
>>792
答えはノー
http://piza2.2ch.net/test/read.cgi&bbs=tech&key=1002160961&st=229&to=229
でいいことを言っているが、
企業の規模によって一概にはいえないが、
PGも一人ではなく複数で分業するかもしれない。
PGだけでは仕事は回らない。
企業で求められるのは、
要求(入力)に対して適切な仕事(出力)が期限内にできることです。
SEが作った設計書が読めなければX
期限を守らなければX
できたものが趣味に走っていればX

スレ違いなので続きは↓
http://piza2.2ch.net/test/read.cgi&bbs=tech&key=1002160961
795794:01/10/06 00:30
あら?昔とやり方が変わったのかな?
いいこと言ってます↓
http://piza2.2ch.net/test/read.cgi/tech/1002160961/229
続きはこちらで↓
http://piza2.2ch.net/test/read.cgi/tech/1002160961
796794:01/10/06 00:33
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
「オートマトン」って?
おー、トマト!
ンーまい!
(トマトがとてもおいしゅうございました。)
オート→自動
マトン→羊肉
808804:01/10/06 13:52
マジレスキボン(´д`;)
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
>>804
http://yoshida-www.ss.titech.ac.jp/H13_syllabus/
頭いい人に言わせると、カリキュラム構成には
教授が自分の分野を廃れさせないようにとか、
そんなような意図が含まれてるそうです
ほとんどの人が全ての科目を履修するみたいですが
なんとなくでやってる人が多いので
身についてる人は少ないかもしれません
まあ、知らないよりましですが
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の言語設計者への非難ね。
819カーター:01/10/07 01:04
研修医の優秀な奴はERなんかになんか入らないよ。
落ちこぼれがなるのが外傷外科。
それと政治とかやりたくない奴とかね。
>>817
申し訳ないんだけど、それのどこがオブジェクト指向なのか
説明してください。よく分かりませんでした。
821デフォルトの名無しさん:01/10/07 01:15
数学を勉強しろ>817
822デフォルトの名無しさん:01/10/07 01:26
>>800
別に無視してんじゃなくて、誰も知らないだけなんじゃないの?
http://www.sun.com/books/books_by_alpha.html;$sessionid$MUN3Z0IAABQHJAMTA1FU45Q#g
を見る限り、洋書でもまだ出てない状態だしね。
http://www.sun.com/books/catalog/hardy/
でも買ったら?
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の逆コンパイラーってないんでしょうか?
いくつか検索掛けてみたけどダウンロードできなくなってるんで
それってダメってことになったんでしょうか?
>>830
標準でついてるけど・・・
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.くっつけると
取得できたりします。

どうしたものでしょう。マジレス待ってます。
838837:01/10/07 15:07
補足
.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は取得できないよ。
840837:01/10/07 15:32
>>839
でもさ、例えばWin2kのコマンドプロンプトやLinuxのコマンドで

nslookup fuga.co.jp

ってやればIP取得できるでしょ。それと同じようなことはJavaじゃ
できないのかな?
841デフォルトの名無しさん:01/10/07 15:32
>まず正規表現で文法をチェックして
メールアドレスのために正規表現って・・・
パフォーマンス無視ですか(笑)
842837:01/10/07 15:40
>> 840
ゴメン、うそついた。nslookupじゃできない。
843837:01/10/07 15:41
>>841
一般的にはどうするべき?
844837:01/10/07 15:44
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
RMIのことが知りたかったんで、
ちょろちょろとWebで調べてみました。

そしたら、ここ↓に
http://www.dmz.hitachi-sk.co.jp/Java/Tech/rmi/rmi.html#dev
「通信部分のコードを作成することなく、
クライアント・サーバ機能を実現することができることがメリットである」
って書いてありますけど、
こんなメリットがあったらソケットを用いた通信なんて、
まったくいらないような気がするんですが、実際はそうじゃないですよね。

どういうことなんでしょうか?
RMIを使う上でのデメリットってなんなんでしょう?
848デフォルトの名無しさん:01/10/07 18:57
>>847
java同士でしか通信できない。
                 
■■■■■■■■■■■■■■■■■■■■■
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!
RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!RubyUzai!!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が弱いってのは?
857 :01/10/08 01:41
selectねーし。
REUSEオプション指定できねーし。
858横槍君:01/10/08 01:56
>>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
>>831
>>832
どうもありがとうございます
862デフォルトの名無しさん:01/10/08 02:40
832さんへ

やっぱここもリンクが切れてますね

なんでだろ?他のフリーの逆コンパイラのところもリンクがことごとく
切れてます。何かあるんでしょうか?
863デフォルトの名無しさん:01/10/08 10:08
>>862
とりあえず、以下は大丈夫。
http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
864デフォルトの名無しさん:01/10/08 12:46
>>863
ないよ?
865デフォルトの名無しさん:01/10/08 12:54
>>864
なんか、アクセス量が規定を超えたから、後1時間ぐらいまて
との表示だね。
待ってみて。
866デフォルトの名無しさん:01/10/08 17:23
いろいろ検索してみましたが

http://www.javacats.com/JP/Search/dir239.html
http://www.freedownloadscenter.com/Programming/Java/Java_Class_Viewer_and_Disasembler.html

もことごとくリンク切れ

オンライン逆コンパイラ

http://www.ahpah.com/product.html

は見つかったけど、他のフリーところはことごとくリンク切ればっか

どうなってるの?
Sunが圧力でもかけてんじゃねーの(藁)
>>867
正解。
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
>>873ある。
875デフォルトの名無しさん:01/10/09 00:00
消すんじゃなくて押せなくするの?
876デフォルトの名無しさん:01/10/09 00:30
>>872
どうもありがとうございます。なんとか解決しました。
877873:01/10/09 07:02
>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を区別できない。
884883:01/10/09 10:00
>なんてやる。もし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
>>885
じゃあ、無理
887デフォルトの名無しさん:01/10/10 07:54
>>885
たぶんJWindowつかうと吉なのにゃー
888デフォルトの名無しさん :01/10/10 10:26
>>887
DesktopPane?
889デフォルトの名無しさん:01/10/10 11:09
JWindowにJDesktopPane張ってJInternalFrameをいっぱいに張ってごまかせ。
>>870たん。
実行可能なjarファイルって、こんなかんじのやつのこと?
http://ymizoguchi.hoops.ne.jp/tips.html
http://java-house.etl.go.jp/ml/archive/j-h-b/036505.html

#ちがってたら、ごめんね。
891デフォルトの名無しさん:01/10/11 16:35
小数点以下10桁の数字を小数点以下3桁まで表示したいのですが
どうしたらいいでしょうか?
どなたか教えてください。
892J2EEチューボー: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)やりたいこととしては、ブラウザのようにダブルクリックしたうえで、イベント発生+プロセスコマンドによる新規ブラウザの起動
というものです。もちろん表示フォントはゴシック体で。

 皆さんのお知恵をどうかお貸し下さい。よろしくお願いします。
 少々長いかもしれませんが、次レスにソースを掲載します。
896895:01/10/12 07:50
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のデモって
確かソースついてたけど(バージョンが違うと無いかも)
デモに同じようなプログラムあったよ
デモのほうが数倍高度だったよ
そっち使った方が・・・
898895:01/10/12 23:19
>>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
>>900
現時点で、39300件
あなドレン
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
>>906
モニタをひっくり返す
908デフォルトの名無しさん:01/10/14 01:49
>>902
passwdコマンドをJNIで使う
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
>>913
あげあしとりの基礎を
勉強し直せ
>>914
どこで勉強すればよいですか?
>>915
木曽
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で動かないから革新的じゃないと言いたいのか?
趣旨がよく解らん。
920918:01/10/14 21:47
「一度書いたら、どこでも動く」などといいながら、
それは全てのマシンに同質の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が発表されたときから分かっていた問題点を
今さら大声で語られてもなあ。
>>923
はげしくどうい
>しかも自分のつくったJavaアプリをきちんと作動させるために
>JavaVMを同梱したいけど著作権の問題で簡単に配布できない。

その断定口調と自信はいったい何処から..
知り合いとか学校の先生から聞いた話とか言わないでよ
928919:01/10/14 22:23
 私が理解した君の前半の発言の要旨は以下の通り。間違っていたら指摘してくださいませ。
1、「java」はバイトコードをそのまま他の機種に流用できる筈だ。
2、でも、現実はそれは無理だ。(例:Winで作ったものをMSXに持っていけない)
3、よって、革新的でない。

 以上から「MSXでJavaが動かないから革新的でない」と解釈するのはごく自然なように読めますが。


>>後半の文章もよく読んで、頭の中で整理する練習を心がければ
>>もう少し現代国語の点数があがりますよ。
 後半は前半の補足でしかないように思えますが。後半の文章によって
「君はJavaはMSXで動かないから革新的じゃないと言いたいのか?」
と言う言葉が的はずれになるのですか? 説明プリーズ。
>>928
920は、
「MSX」はJavaVMの無いマシンの例であってMSXそれ自体に深い意味はない、と言いたいのでは?
930918:01/10/14 23:06
どうもすみませんでした。今、担任の先生に携帯電話で
確認したら「Javaプログラマ&Java信者と会話すなvoke!」と
怒鳴られました。高校を卒業してからまた2chに来ます。シクシク。
931981:01/10/14 23:16
>>921
>そりゃ、君の勉強不足
>じゃあ、もっといいクロスプラットフォームの方法を君が提案してください
>GUIなんてプログラムの本質じゃない事もわからないなんて・・・・

GUIもプログラムの本質だと思いますけど、だったらWinやMACでは
プログラムの本質では無い、いわばどうでもよいおまけで盛り上がって
いる奇妙なOSというわけですか・・・・???。

> 全く同じに動いたらすごいね
>でも、そんな事はいつまでたっても無理

つまりjavaの理想はDQNだったということが証明された訳ですね。
どうもありがとうございました。
>>931
もちろんユーザインタフェイスはソフトウェアにとって重要だ。
(ヒューメイン・インタフェイスを読むべし)
が、純粋な機能要件の視点からはそうではない。
MVC アーキテクチャを勉強すれ。
>>918
Squeakはキミの理想に近いのでは?
但しMSXでは動かないがな。
934デフォルトの名無しさん:01/10/14 23:54
javaでコンソールアプリを作ってるような気がします。
で、j2seとjikesはインストロールしました。
あとこれはインストロールしとけってのはありますか?
>>934
APIドキュメントとテキストエディタ
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
>>937

あなたはどっち使ってるの?
String args[]はCの名残で意味なし。
String[] args使え。
↑ってのをどっかで見たようなきがする。
なんとなく、Kurasu[] namaeっての使ってる。

http://www.gimlay.org/~javafaq/S006.html#S006-13
ht tp://java-house.etl.go.jp/ml/archive/j-h-b/004419.html#body
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 を検出できません。」
と出てしまいます。

すみません、誰か助けてください。
お願いします。
946Rubyハート:01/10/15 07:44
>939
>>全ては性能とのトレードオフだってことに気づかないのかな?

トレードオフしなければならない言語って・・・(以下略)
そんな言語を使う人って・・・・・・・・・・・(以下略)
iアプリしか元気のない言語って・・・・・・・(以下略)

ま、どうでもいいか。
947デフォルトの名無しさん:01/10/15 09:59
カンタンにtelnetできるAPIってない?
>>946 小学生
949阿修羅:01/10/15 10:29
パソ初心者なんですけど教えてください・・・
チャットとかで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からダウンロードできないんだよ。
どーなってんの?
954950:01/10/15 12:13
>>952
スタンダードかどうかは知らないけど、
http://www.first.gmd.de/persons/leo/java/Telnet/
にあるのはちょっと使ったことがあるよ。ライセンスはGPL。
ただ、最新版はダウンロードできないみたい。
上記のページの真中当たりにあるdownloadのリンクは古いものだけど、
ダウンロードできた。残念だけど、これ以上は情報ない。
955デフォルトの名無しさん:01/10/15 12:37
>>954
ありがd
コレなら前に落として遊んでた。
よし、これを俺の中でスタンダードと認定しよう。

ほんとだ、ダウンロードできないや。
前に落としたやつがHDDに残ってるといいな。。。
956age:01/10/16 00:35
>951 応援あげ
ちなみに1で。
初心者も入ってきやすいようにと。
ネタ心者 の方が今は本スレかと思ってた。
雰囲気的に初心者にはあっちの方が聞きやすいかと。

タイトルに ネタ心者歓迎! とつけると
合流しやすいかと。
958ひげおやじ ★:01/10/16 02:14
申し訳ありません。JBuilder4でホイールマウスを使うPluginがあったという話があったのですが
そのpluginは本当にあったのでしょうか?
googleで検索してみたり、色々と探してみたのですが情報が見つからなかったもので。。。
ご存知の方、是非お願い致しますです。
 んじゃ
>959
ありがとう。
かなりいい感じだと思う。
961ひげおやじ ★:01/10/16 10:41
>>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);
964sage:01/10/18 08:14
>>963
DQNな質問に答えてくれてありがとう
965avaj:01/10/18 10:27
はじめましてだけど教えてくだ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"));
970969:01/10/18 18:26
>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をあらかじめ入れておくしかないのでしょうか?
979ひよこ:01/10/19 19:34
現在、アプレットでゲームを作成しています。
音を出そうと思うのですが、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()で指定した
  ボタンの押下イベント処理を実行させたい。

誰ぞ解決策を知らぬか。
983 :01/10/19 23:49
>>982
JDialogのprocessKeyEventで無理やりボタンのイベントを実行させるっつうのは
駄目?
>>981
あーそうか。おれもよくソース見ればよかった。

ところで
以下の二つの関数はmyImageにちゃんと定義してあるんだろうな?
getImage()
getDocumentBase()

私の記憶が確かならば
これらはAppletクラスのメンバーだから
生きたAppletクラスのインスタンスを通して呼び出すか
同じ名前の関数を自分のクラスに定義するかしないと
ならないはずだが?

もし、アプしたサンプルがクラス定義のすべてなら
そもそもコンパイルすら通らない
985tyv:01/10/20 00:01
 swingを使ってアプレットを作ったのですが。コンパイルはできるのに
HTMLを作るとload: class 〜.class not found とでて起動してくれません。
JAppletクラスを継承してつくったのですが、Appletクラスを継承させて
swingでなくGUI部品を使ったら起動しました。JAppletじゃあだめなの
でしょうか?
986デフォルトの名無しさん:01/10/20 00:28
>>985
駄目じゃない。でも、そのアプレットの実行環境がわからないので
それ以上のアドバイスはできない。appletviewer? IE?
AWTのことをGUI部品といっているんだろうと考えると、なにかのRAD
環境?
987tyv:01/10/20 00:33
>>986
IE6.0をつかっています。
JBuilderのappletviewerだとちゃんと動くんです。
あとGUI部品はまさしくAWTのことです。
Jbuilderのコンパイラがいけないのかと思ってjdk1.3.1のjavacでもやってみたんですがだめでした
988デフォルトの名無しさん:01/10/20 00:58
>>985
IEなら,お決まりのSwing周りのクラスがみつからんとか
だろうとおもうけど、エラーメッセージは正確にはどう出ているの?
989tyv:01/10/20 01:10
load:class App1.class not found
とでてきました。App1はクラスのなまえなんですけれど・・・
クラスが見つからないってことですよね。
でもあきらかにあるんですよ。
あとJAppletをやめてAppletくらすを継承するとgetContentPane()が見つからないというので
JApplet ap;
ap.getContentPane()としたらjavax.swing.JApplet ClassNotFoundExceptionがでて、
getContentPane()をつかわないでやってみたらJPanel でClassNotFoundExceptionがでました。
990tyv:01/10/20 01:33
>>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秒いないに終わらなかったらキャンセルするってのをやりたい。
>>991
次スレはネタ心者と統合です。

一応誘導
ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://piza2.2ch.net/test/read.cgi/tech/993358225/
994デフォルトの名無しさん:01/10/20 11:34
>991
で、ネタ心者スレが埋まったら統合スレをたてましょう。
新スレのタイトルは「ネタ心者歓迎! 今更ながらにJava相談室 Part7」あたりで。
#がばろんさんThanks! >>959

以下、次スレ1〜2の案。
----------------------------
Java関連の質問はここでお願いします。

厨房な質問も恥ずかしがらずにここで聞こう!


過去スレ

Java相談室
http://piza.2ch.net/tech/kako/971/971960169.html
http://mimizun2.mine.nu:81/2chlog/tech/piza.2ch.net/tech/kako/971/971960169.html

Java相談室 Part2
http://piza.2ch.net/tech/kako/980/980858322.html
http://mimizun2.mine.nu:81/2chlog/tech/piza.2ch.net/tech/kako/980/980858322.html

Java相談室 Part3
http://piza.2ch.net/tech/kako/994/994150280.html
http://piza2.2ch.net/tech/kako/994/994150280.html
http://mimizun2.mine.nu:81/2chlog/tech/piza.2ch.net/tech/kako/994/994150280.html

Java相談室 Part4
http://piza2.2ch.net/test/read.cgi/tech/997791189/

ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza.2ch.net/tech/kako/981/981424252.html
http://mimizun2.mine.nu:81/2chlog/tech/piza.2ch.net/tech/kako/981/981424252.html

ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://piza.2ch.net/tech/kako/993/993358225.html
http://piza2.2ch.net/test/read.cgi/tech/993358225/
http://mimizun2.mine.nu:81/2chlog/tech/piza.2ch.net/tech/kako/993/993358225.html

#いくつか遺漏や、ひらけないのもあるけど。
995971:01/10/20 11:56
前に、質問したんだけど、
一応解決したんで、ここにフィードバックしときます。

Tomcat4 にしたらうまくいった!

いじょう!
996名無しプログラマ:01/10/20 14:23
>>971
server.xml のContext の設定のところで reloadable="true" にしないと駄目よ。

などと今さら答えるのもバカみたいだな (自嘲
今だ!1000番ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
今だ!1000番ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
今だ!1000番ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
1000デフォルトの名無しさん:01/10/20 17:35
いただきっ♪
10011001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
10021001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。