【初心者】Java質問・相談スレッド116【歓迎】at TECH
【初心者】Java質問・相談スレッド116【歓迎】 - 暇つぶし2ch321:デフォルトの名無しさん
08/06/18 00:15:54
>>316
あまり厳密に突っ込みを入れたくは無いだが、それは「インスタンスの」じゃないの?

322:デフォルトの名無しさん
08/06/18 00:17:34
>>314 みたいなのが出てくるから
Java は参照渡しとか言うのは邪悪としか言いようが無いんだよな。

323:デフォルトの名無しさん
08/06/18 00:19:12
Javaやる前にCを勉強してください。それも鬼門とか超難関といわれる「ポインタ」(と参照)についてしっかりやっておかないとついてこれなくなります。

324:デフォルトの名無しさん
08/06/18 00:20:57
>>315
参照の値渡しでいいんじゃね?

325:デフォルトの名無しさん
08/06/18 00:21:17
Cに参照はないし
別にポインタは難関でもなんでもない。

326:デフォルトの名無しさん
08/06/18 00:23:45
アパマンの奴はDQNしかない。「とーちゃん。派遣面接受かったみたいだよー」のあの派遣会社のCMと同程度のDQNしかいない。

327:デフォルトの名無しさん
08/06/18 00:33:46
>>326
なにいってんだ?同じ人間だし、確かに変なやつだとしてもな、どこかにいいところがあるだろ。
そういうところを互いに評価しないといけないんじゃないのか?

328:デフォルトの名無しさん
08/06/18 00:38:13
>>321
URLリンク(java.sun.com)
> An object is a class instance or an array.

だから「オブジェクト」のほうが正確なんじゃないかな?

329:デフォルトの名無しさん
08/06/18 00:44:08
いや、Java的にはね

330:デフォルトの名無しさん
08/06/18 01:00:22
>>328
たぶん君もアパマンのDQNと同等と思ったけどね、そう噛み付きなさんなw

331:デフォルトの名無しさん
08/06/18 01:03:15
「アパマン」「DQN」がマイブームの香具師がいるな

332:デフォルトの名無しさん
08/06/18 01:03:53
オレ的解釈だと、C的にはオブジェクトの」、Java的にはインスタンスの」かな。
オブジェクトの単語自体があいまだからなんともいえないけど。>>328の引用は単なる君が権威主義(英語とかSUNとか)が好きなだけじゃないのかな?

333:デフォルトの名無しさん
08/06/18 01:05:57
よくわからんw

334:デフォルトの名無しさん
08/06/18 01:09:26
>>328は権威にあこがれるDQNってことじゃないの?

335:デフォルトの名無しさん
08/06/18 01:17:09
>>328,331,333
食わず嫌いはいけませんね。
そうなってしまったのは、あなたの人格が歪んでるからでしょうか?

336:デフォルトの名無しさん
08/06/18 01:55:47
権威も何も、Sunが作った言語なんだから、
Sunの見解を参照するのは当然でしょ。

337:デフォルトの名無しさん
08/06/18 02:26:01
英語の文脈で使われるobjectと日本語の文脈で使われるオブジェクトは違うでしょ
javaを使うならJLSは当然第一に参考にすべき文書だけど日本語に訳する時に直訳はいかんよ

338:デフォルトの名無しさん
08/06/18 06:28:49
>>268 >Cに参照渡しはない
>>270 >用語は違うがあるけど?
Javaでいう参照渡しはC/C++でいうアドレス渡し

ところで、
>>270 >Cやったこと無いくせにに、適当なこと言う言うな
??

339:デフォルトの名無しさん
08/06/18 09:11:17
toStringで任意の型のオブジェクトを文字列に変換することができますが、
逆に、Type型の値と文字列からオブジェクトを作成するような枠組みは無いのでしょうか?

よろしくお願いします。

340:デフォルトの名無しさん
08/06/18 10:00:02
>>339
意味がよく判らないんだけど、
 "int", "1" => int で 1
 "float", "1" => float で 1.0
みたいな感じ?
で、それは既存の組み込み型だけでいいの?

341:デフォルトの名無しさん
08/06/18 10:32:46
sprintf() の 逆なら atoi()
static Integer Integer.valueOf(String s)
<指定された String の値を保持する Integer オブジェクトを返します。>
Type型と文字列から、じゃなくて? 表現は正確に。

342:デフォルトの名無しさん
08/06/18 11:56:44
Cのscanf()に相当する関数が欲しいって話かな。

343:デフォルトの名無しさん
08/06/18 12:15:23
スクリプト系言語のeval相当のものが欲しいようにも読める

344:デフォルトの名無しさん
08/06/18 12:34:41
そこでJson-libですよ。

345:339
08/06/18 13:50:08
説明がわかりにくくてすみません。

Object a = fromString(java.util.Date.class,"2008/1/1");
System.out.println(a.getClass()); // class java.util.Date
System.out.println(a); // Tue Jan 01 00:00:00 JST 2008

Object b = fromString(Integer.class,"10");
System.out.println(b.getClass()); // class java.lang.Integer
System.out.println(b); // 10

上のfromStringのように、文字列と変換後の型を指定すると、
文字列を指定した型のオブジェクトに変換できるような物が欲しいのです。

.NETのTypeConverterのように、
既存の組み込み型や標準ライブラリで定義された型に対して使用でき、
さらに、自分で作成したクラスに対する動作も指定できるような枠組みがあればよいのですが
このようなものはありませんでしょうか?

346:デフォルトの名無しさん
08/06/18 13:51:30
JDK6でrhinoでevalすればいいだろ

347:346
08/06/18 13:53:03
>>343-344あてね

348:デフォルトの名無しさん
08/06/18 13:57:57
Class.forName()

349:デフォルトの名無しさん
08/06/18 13:59:30
>>339
「toStringの逆」という変換が一般には無理だとわかった上で?
具体例をどうぞ

350:デフォルトの名無しさん
08/06/18 13:59:51
やべ遅れたw

351:デフォルトの名無しさん
08/06/18 14:32:23
リフレクションで出来そうじゃない?

352:デフォルトの名無しさん
08/06/18 14:35:23
よくわからんけど、インターフェースが統一されないとやなのか

353:デフォルトの名無しさん
08/06/18 15:20:13
いやいや、単なるC#宙でしょ

354:デフォルトの名無しさん
08/06/18 16:00:56
自分で作ればいいんじゃない
Object fromString(Class c, String s) {
if (c == Date.class) return DateFormat.getInstance().parse(s);
if (c == Integer.class) return Integer.parseInt(s);
if (c == Float.class) return Float.parseFloat(s);
以下略
}

355:デフォルトの名無しさん
08/06/18 16:52:10
toStringが返す文字列からオブジェクトを復元することは汎用的には無理

356:デフォルトの名無しさん
08/06/18 17:42:53
Object#toString()ってサブクラスの実装依存じゃなかったっけ?

357:デフォルトの名無しさん
08/06/18 18:41:28
うん。というか、
Object#toString()がオーバーライドされていないと、
クラス名とハッシュ値しか返ってこないから、
インスタンスの内部状態を知ることができない。

358:デフォルトの名無しさん
08/06/18 18:58:04
URLリンク(msdn.microsoft.com)(VS.80).aspx
Windows フォームのプログラミング
方法 : 型コンバータを実装する

ここなんかを見ると、GUI要素のプロパティをいじる時に文字列を経由したりするよねっていう感じの
用途がかいま見える

359:デフォルトの名無しさん
08/06/18 19:02:03
TypeConverterってそういうもんだよ
実装したらメタデータとして型やプロパティに指定しといてリフレクションで取ってくるの

360:デフォルトの名無しさん
08/06/18 19:39:10
これは邪道かな(あとPnutsですまん)
pe = class java.beans.PropertyEditorManager::findEditor(Integer.TYPE)

pe.setAsText("100")
println(pe.value - 1) // 99

pe.value = 200
println("200".equals(pe.getAsText())) // true

361:デフォルトの名無しさん
08/06/18 20:27:12
だからそれならrhinioで出来るって

362:デフォルトの名無しさん
08/06/18 20:36:38
このスレでは、String.charAtやClass.forNameじゃ不満なのか?
もう答えるつもりないし、どうでもいいけど

363:デフォルトの名無しさん
08/06/18 20:45:44
>>361
ぐぐったら前立腺マッサージャーが出たYO

364:デフォルトの名無しさん
08/06/18 21:44:13
>>362
Class.forNameは外していると思うけど、String.charAtはまあまあかな。桁数チェックにもなるし。

365:デフォルトの名無しさん
08/06/18 22:09:43
だれだ、おまえ?

366:デフォルトの名無しさん
08/06/18 22:50:54
>>364
ここではあなたの評価を気にしながら質問に答えなければいけないのですか?

367:デフォルトの名無しさん
08/06/18 23:14:03
>>366
どこからそういう疑問が湧いたのですか?

368:デフォルトの名無しさん
08/06/19 00:12:43
C言語でいう
int data = 3;
printf("%3d",data);
のように右寄せするメソッドご存じないでしょうか?

369:デフォルトの名無しさん
08/06/19 00:17:55
>>368
System.out.print(String.format("%3d", data));


370:デフォルトの名無しさん
08/06/19 00:18:33
>>368
System.out.printf

371:デフォルトの名無しさん
08/06/19 00:18:54
または
System.out.format("%3d", data);


372:デフォルトの名無しさん
08/06/19 00:19:10
ごめん,かぶった.

373:デフォルトの名無しさん
08/06/19 00:19:32
System.out.printf();

改行は ¥n ではなく %n を使う。


374:デフォルトの名無しさん
08/06/19 00:29:23
>>369-373
迅速にお答えいただきありがとうございました。

375:デフォルトの名無しさん
08/06/19 01:13:23
1.4系だったという落ちですね。わかります。

376:デフォルトの名無しさん
08/06/19 02:40:00
質問です
開発は windowsXP+Eclipseで行い、jarファイルを生成
実行は Solaris10 にて行いました
実行時にエラーとして
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Layout
at Cardget.<clinit>(Cardget.java:40)
と出てしまったのですが、ドコから調べればよいかヒントなど
ありませんでしょうか

実行方法は $ java -cp zgss_core.jar Cardget としました


377:デフォルトの名無しさん
08/06/19 02:59:14
log4jをクラスパスに通せ

378:デフォルトの名無しさん
08/06/19 04:00:33
うむ

379:デフォルトの名無しさん
08/06/19 04:29:15
if(test[s]<test[t]){
int tmp=test[t];
test[t]=test[s];
test[s]=tmp;
}

if(test[s]<test[t]){
int tmp=test[s];
test[s]=test[t];
test[t]=tmp;
}
はどっちを書いてもいいの?


380:デフォルトの名無しさん
08/06/19 04:35:39
どこに

381:デフォルトの名無しさん
08/06/19 08:01:31
そのソースだけだと、どっちでもいいとしか言えんがなw

382:デフォルトの名無しさん
08/06/19 09:17:15
TraverseEventってなに?
マウスイベントとか、キーイベントで、ででてくるんだけど、
イマイチ英和辞典の訳じゃ掴めない。

trav・erse ━ vt. 横切る, 横断する; 通過する; あちこち動く;

383:デフォルトの名無しさん
08/06/19 11:25:27
質問させてください。
Mapの値を降順に表示したいんです。現在下のような記述をしてるのですが、
どうも最善な気がしません。これよりマシな方法をごぞんじなら教えてください。
Mapのインスタンス名はmapです。

Set<Integer> ts = new TreeSet<Integer>();
ts.addAll(map.values());

List<Integer> order = new ArrayList<Integer>();
order.addAll(ts);

for(int i= order.size()-1; i>=0; i--){
int num = order.get(i);

for(Entry<String, Integer> en:map.entrySet()){
String key = en.getKey();
Integer value = en.getValue();
if(value == num){
StringBuilder sb = new StringBuilder("Products: ");
sb.append(key).append(": Number: ").append(value);
System.out.println(sb.toString());
}
}
}

384:デフォルトの名無しさん
08/06/19 11:32:59
TreeSetの値を出力すればいいのではなくて?

385:デフォルトの名無しさん
08/06/19 11:54:42
>>383
値の降順にソートするコンパレータを設定したTreeMapにmapをputAllして、
そのTreeMapから順番に取り出せばいいんじゃない?

386:デフォルトの名無しさん
08/06/19 11:58:04
あ、キーの値じゃなくて値か
じゃあ385はダメだね

387:385
08/06/19 12:08:03
Entryの値の方で降順にソートするコンパレータを設定したTreeSet<Map.Entry<String, Integer>>に
map.entrySet()をaddAllして、そのTreeSetから順番に取り出せばいいのかな。

388:デフォルトの名無しさん
08/06/19 12:11:05
配列に全部突っ込んでからソートした方が速そう

389:デフォルトの名無しさん
08/06/19 12:23:26
おおまかにはこんな感じかな?
Set<Map.Entry<String, Integer>> set = new TreeSet<Map.Entry<String, Integer>>(
new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
set.addAll(map.entrySet());
for (Map.Entry<String, Integer> e : set) {
System.out.println("Products: " + e.getKey() + ": Number: " + e.getValue());
}

StringBuilderを使っているところはインスタンスをループの外で生成するのなら別だけど、
わざわざそう書かなくても+で結合する書き方でもコンパイラがそんな感じにしてくれる。

>>388
それもいいかも

390:デフォルトの名無しさん
08/06/19 12:34:23
どうもgenericsの記述量に負けてあまりシンプルって感じに見えないや。
流れは単にnew TreeSetしてaddAllだけなのに。

391:デフォルトの名無しさん
08/06/19 17:34:42
JavaSE6からjavax.tools.Compilerを使えばJREだけでJavaのコンパイルできるってこと?

392:デフォルトの名無しさん
08/06/19 18:05:52
>>391
JRE には tools.jar が無いから無理のはず。

393:デフォルトの名無しさん
08/06/19 18:18:21
JREにtools.jarは入っていないけれど、
tools.jarをJREといっしょに再配布するのは構わなかったはずなので、
あとはtools.jarにパスが通っていればおk

394:393
08/06/19 18:23:07
自分の作成した動的コンパイル機能付きのプログラムを配布する場合、という意味ね
自分の環境だけでいいのなら素直にJDKをインストール

395:デフォルトの名無しさん
08/06/19 18:24:52
なるほど、tools.jarの再配布条件を調べてみます
ありが㌧

396:デフォルトの名無しさん
08/06/19 22:17:29
質問です
jarを実行したところエラーが出まして
Can't find resource for bundle java.util.PropertyResourceBundle, key table.section.pointup9
というエラーが出たのですが、ドコから調べていいのかわからず。
設定ファイルを読んで処理をするjarなのですが・・


397:デフォルトの名無しさん
08/06/19 22:43:48
久しぶりにJavaのお仕事…
既存のWebシステムに一画面追加するだけのお仕事だったのですが、
SIとSLを作成し、ローカルでコンパイルし、
作ったクラスファイルをUNIXサーバにFTPで配置したのに404

WebOTXを何度落とし上げしても404・・・

ずっと悩んでしまったんだけど、
これってもしやasant deployを忘れてるってことでおkですか?

398:デフォルトの名無しさん
08/06/19 22:52:14
>>396
その設定ファイルが正しく読めてない予感

399:396
08/06/19 23:00:58
pointup9
という項目を追加して読もうとしてるので、そこがおかしいみたいです・・ね
javaのmain定義部分をもう少し見直してみます

400:デフォルトの名無しさん
08/06/19 23:26:37
初心者です
歌詞検索みたいなのってJavaでつくることは可能ですか?

401:デフォルトの名無しさん
08/06/19 23:34:30
データがあればね

402:デフォルトの名無しさん
08/06/20 00:00:07
>>383
もっと素直に
ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getValue().compareTo(o2.getValue()) * -1;
}
});

for (Map.Entry<String, Integer> entry : list) {
System.out.printf("Products: %s, Number: %s%n", entry.getKey(), entry.getValue());
}


403:デフォルトの名無しさん
08/06/20 00:23:02
> * -1;

初めて見た

404:デフォルトの名無しさん
08/06/20 01:26:42
そんな奴には Integer.MIN_VALUE を渡すことにしている。

405:デフォルトの名無しさん
08/06/20 02:11:20
すいません、質問させて下さい。

classpath上に存在するクラスの中から、特定のアノテーションが付いているものだけを抽出する方法を調べています。

Javaで実行時のclasspath上に存在する全クラスを取得する方法ってないのでしょうか?
もしくは特定のpackage以下に存在する全クラスでも良いのですが・・・。

ClassLoaderを自作するサンプルとかにあるみたいに、ディレクトリ以下の.classを直接読みに行く他ないのでしょうか・・・。


406:デフォルトの名無しさん
08/06/20 02:24:26
ええ本教えて

407:デフォルトの名無しさん
08/06/20 03:29:59
>>397

JavaとWebOTXについて言うと
WebOTXを使ったWebアプリ開発についての書籍とかサイトって
なかなかないんだよな・・・

WebOTXユーザって相当少ないのかな・・・
事例とか簡単入門とかもあんまり見当たらないよな・・・

だれか詳しい人、何か参考になる情報あれば、ぜひ

408:デフォルトの名無しさん
08/06/20 03:34:46
>>407
君が詳しい人になって本を書くかサイトを立ち上げてほしいな。

409:デフォルトの名無しさん
08/06/20 03:40:18
3ヶ月間職業訓練校行った人
授業の内容どんなの?

410:デフォルトの名無しさん
08/06/20 06:35:48
>>389
>>402
383です。おそくなりましたが、カキコをありがとうございます。
教えていただいたComperatorインタフェースの使い方、大変参考になりました!
まさに知りたい事だったように思います。

411:デフォルトの名無しさん
08/06/20 06:44:01
スペル間違い、Comparatorでした。

412:デフォルトの名無しさん
08/06/20 09:03:29
私は今年javaを本格的に学び始めた者ですが質問です。

interface Frame {
String Frame = "Alumi";
String getFrame();
}
上記の内容のinterfaceがあるとき実際にはどのような記述と同意であるか?というものです。

いろいろ調べてはみたのですが問題の定義もなんだかイマイチ曖昧で分かりません。
どなたか分かる方教えていただけませんか?

413:デフォルトの名無しさん
08/06/20 09:21:18
っinterface 暗黙 修飾子


414:デフォルトの名無しさん
08/06/20 09:29:50
>>413
abstract?

415:デフォルトの名無しさん
08/06/20 11:49:00
DecimalFormat exFormat2 = new DecimalFormat("###,###,###,##0.##");
System.out.println("hoge=" + exFormat2.format(99.999));

上記ソースで実行結果が99.99となるような切捨てにしたいのですが
どうしたらよいでしょうか?


416:デフォルトの名無しさん
08/06/20 11:51:54
>>405
クラスパスを自力で辿って、すべてのクラスの名前を (ファイル名等から) 知る
Class#forName で、その名前のクラスをロードする
Class#getAnnotation で、ロードしたクラスのアノテーションを調べる

417:デフォルトの名無しさん
08/06/20 12:35:18
>>415
1.6以降なら exFormat2.setRoundingMode(RoundingMode.DOWN) とかすりゃ切捨てできるけど

418:デフォルトの名無しさん
08/06/20 13:33:21
すいません、ここでJSPの質問をしても大丈夫でしょうか?

419:デフォルトの名無しさん
08/06/20 13:34:09
>>417
さんくす。1.5なので100かけて100で割ることにしました。

420:デフォルトの名無しさん
08/06/20 14:58:24
BufferedImageに読み込んだ画像の背景を透明にしたいのですが
どのような方法がいいでしょうか?


421:デフォルトの名無しさん
08/06/20 15:11:56
最初から背景が透明な画像 (透過GIFやアルファ付きPNG) を読み込むのが一番簡単だと思うよ
それじゃだめな理由があるなら、説明よろしく

422:デフォルトの名無しさん
08/06/20 15:53:16
>>420
何をもって背景にするかによって方法はいろいろあるけど、
一番お手軽で処理が速いのは>>421の言う通り最初から透明化したリソースを用意すること。
動的に透過色を変更したいとかの要求があるなら、イメージフィルタを通す方法がある。
例えば真っ白を背景色として透明にするなら、白のピクセルのアルファを0にするイメージフィルタを介してやる。
おおまかにはこんな感じで。
Image transimage = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(
sourceimage.getSource(),
new RGBImageFilter() {
public int filterRGB(int x, int y, int rgb) {
return (rgb & 0x00ffffff) == 0x00ffffff ? rgb & 0x00ffffff : rgb;
}
}
));
これは背景色が固定された処理だけど、
背景にしたい色を与えて動的に背景色を変更するようにフィルタを実装すればそれなりにいろいろと。

423:420
08/06/20 16:14:09
>>421>>422
返信ありがとうございます

できれば最初から透過された物を使用するのがベストだと思うのですが
アプリケーションを実行する時にpngに関する事でエラーを起こしてしまい
うまくいきません

これは画像の作り方が悪いのでしょうか?

424:デフォルトの名無しさん
08/06/20 16:16:54
>>423
少なくともエラーは晒せ
できればソースも
それともエスパーによる回答希望?

425:420
08/06/20 16:41:26
本当にすいません
画像を作り直したら成功しました
ありがとうございました

426:デフォルトの名無しさん
08/06/20 17:12:38
whileで永久ループしているプログラムに外から停止命令を
出したいのですが、こういう場合はソケット通信が適切でしょうか?
ほかに良い方法がありましたら教えてください。

427:デフォルトの名無しさん
08/06/20 17:15:40
普通はThreadじゃないの?

428:デフォルトの名無しさん
08/06/20 17:15:48
っスレッド

429:426
08/06/20 17:23:55
>>427,428
ありがとうございます。

たとえば
>java hoge.class
で実行して
>java hogestop.class
を実行するとhoge.classのプログラムが終了するような感じにしたいです。

このような場合ですがスレッドはどのように使えますでしょうか?

430:デフォルトの名無しさん
08/06/20 17:45:17
なんだ、小出し野郎か。

431:デフォルトの名無しさん
08/06/20 18:11:37
staticなflagを作って外部から書き換える

432:デフォルトの名無しさん
08/06/20 18:32:00
canvas3D上にpaintでfillRectを用いて描画したいと思っているのですが、
最前面に表示されません。何かいい方法ご存知でしたら教えて下さい。
よろしくお願いします。


433:デフォルトの名無しさん
08/06/21 01:53:26
javaアプリケーションからjarファイル(他のjavaアプリ)を起動することはできるのでしょうか?
方法をご存知でしたら教えていただきたいです。よろしくお願いします。

434:デフォルトの名無しさん
08/06/21 02:03:41
>>433
クラスパスが通ってれば、String[] argsを用意して
com.example.app.FooApplication.main(args);
を呼ぶだけ。

・クラスパスが通ってない場合
・mainのクラス名がわからない場合
などなどあるけど、まあ基本は↑ので。


435:デフォルトの名無しさん
08/06/21 08:58:12
>>434
ありがとうございます。試してみたところ起動できました。
今は同一プロジェクト内のクラスのmainを複数起動してみたのですが、
クラスパスが通っていれば他プロジェクトのmainも起動できるのでしょうか。
一つ問題なのが、この方法だとおそらく複数のアプリが同一プロセスで
実行されている気がするのですが、別々のプロセスで実行することは可能でしょうか。
答えていただければ幸いです。

436:デフォルトの名無しさん
08/06/21 09:21:18
ProcessBuilderとかRuntime(1.4まで)とか

Javaではサブプロセスと縁を切ることはできないんだっけ?


437:デフォルトの名無しさん
08/06/21 10:45:23
独習JAVAで勉強してるんですが
スレッドの章でRunnableを実装したクラスで
MyThread4(String str, long msec) {
this.str = str;
this.msec = msec;
new Thread(this).start();
}
と言う部分があり、その中の
new Thread(this).start();
の部分が意味がいまいちわかりません。
質問があいまいですいませんが
どなたか説明していただけないでしょうか。
お願いします。

438:デフォルトの名無しさん
08/06/21 10:51:36
// 自分自身をスレッドで実行されるコードとして、スレッドを作成する
Thread t = new Thread(this);
// スレッドを開始する
t.start();


439:デフォルトの名無しさん
08/06/21 11:23:58
MouseMotionListenerをimplementsしないと
・mouseDragged(MouseEvent e)
・mouseMoved(MouseEvent e)
が実装できないのはなぜでしょうか。
インターフェイスはあくまで、指定したメソッドの
実装を義務付けるみたいな感じで習ったので。

440:デフォルトの名無しさん
08/06/21 11:33:21
>>439
MouseMotionListenerをimplementせずに
・mouseDragged(MouseEvent e)
・mouseMoved(MouseEvent e)
を実装しても一向に構わないが、
MouseMotionListenerを実装したとは認識されない。ただそんだけ。

441:デフォルトの名無しさん
08/06/21 11:52:57
っダックタイピング

442:デフォルトの名無しさん
08/06/21 11:54:33
ダックタイピングか強い静的タイピングの違いだな。

443:デフォルトの名無しさん
08/06/21 11:55:16
ち、リロードしてなかったぜ

444:439
08/06/21 12:14:32
>>440
ありがとうございます。
addMouseMotionListner(this)によって渡すものが
MouseMotionListenerクラスのオブジェクトでないと
いけないのだと解釈しました。

445:439
08/06/21 12:17:13
ああ、何かおかしい

クラスというよりは、MouseMotionListenerという型で
受け取れる形だから、継承または実装されたオブジェクト
でないと、うまいこといかないってことなのかなぁ

446:439
08/06/21 12:19:27
MouseMotionListenerというインターフェイスを
実装してないとダメなわけですね!

447:デフォルトの名無しさん
08/06/21 14:29:59
ダックタイピング だとしてもimplementsやらないと結局機能しないんじゃないの?

448:デフォルトの名無しさん
08/06/21 14:57:52
ダックタイピングは持ってるメソッドで所属するクラス(オブジェクト)決めてるからそんな心配ナス

449:デフォルトの名無しさん
08/06/21 15:34:40
リスナーの呼び出し元はどうするの。
addMouseListener()とかしないでどうやってcallするの?

450: [―{}@{}@{}-] デフォルトの名無しさん
08/06/21 15:41:54
ホスト名(FQDN)が正当かどうか評価する方法はないでしょうか。
どうも . が付いても InetAddress#getByName 等では引けてしまうようで、

1. www.example.com  : 当然 OK
2. www.example.com. : OK
3. www.example.com.. : これは NG

といった状態になってしまいます。
或いは RFC 的に 2 も OK(1 と同じ場所を指す)と言う事なのでしょうか。
であると逆に、InetAddress#getByName で引ければ正当と判断して良い?

451:デフォルトの名無しさん
08/06/21 15:52:46
. つけてもブラウザで見れるね

452:デフォルトの名無しさん
08/06/21 16:25:32
>>449
addはもちろんするが型がなんであるかは関係ない。
普通はメソッドテーブルを検索して対応するメソッドがあれば呼ぶ。
この場合だとコールバック関数名が一致するオブジェクトをadd(これがcallee側になる)しといてcaller側が必要なコールバック関数を呼び出せるかどうか試してみる。
それに成功すればcallee側のコールバック関数を呼び出す。
ダックタイピング採用してるruby辺りをいじるのが早くて分かりやすい。

453:デフォルトの名無しさん
08/06/21 16:27:39
implements MouseListener
じゃないと、型が違うからadd出来ないと思うが?

454:デフォルトの名無しさん
08/06/21 16:37:11
おまえはまずダックタイピングを理解しろ

455:デフォルトの名無しさん
08/06/21 16:50:24
このスレ的にはダックタイピングの議論を深めるのはスレ違いだし初心者を混乱させる元だ
今のjavaをやっている限りはダックタイピングについて理解しなくても構わない

456:デフォルトの名無しさん
08/06/21 17:08:28
いっそ、java.beans.EventHandlerについて語ろうぜ

457:デフォルトの名無しさん
08/06/21 17:09:57
いやここはJAXB2.0だろ

458:デフォルトの名無しさん
08/06/21 17:50:33
eclipsでtomcatを使用できるようにしようとしているんですが
サーバービューで起動するとポートが使用されているか既に使われていて使えないと出てしまいます。


どうすれば使えるようになるのか教えてください。

459:デフォルトの名無しさん
08/06/21 18:05:10
eclipseスレに行け

460:デフォルトの名無しさん
08/06/21 18:31:27
そのポートを使用しているアプリケーションを終了するかポートを変更してください

461:デフォルトの名無しさん
08/06/21 18:46:17
JSFでFragmentを切り替えるにはどうしたらいいでしょうか

462:デフォルトの名無しさん
08/06/21 18:55:25
InputStreamのread()の返却値の型がintになっている理由がよく分からないのですが、
read()はストリームから次の1バイトを読み込み、それを返すというものと考えて良いのでしょうか?
OutputStreamのwrite(int)ではintを引数にして上位24bitを無視することで1バイトの書き込みをするというのも不自然な気がして、
これもreadの仕様が素直にbyteなら良い気がするのですが。

463:デフォルトの名無しさん
08/06/21 18:58:28
255と-1(EOF)を区別するためだろうけど、Cへのオマージュではなかろうか。

464:デフォルトの名無しさん
08/06/21 18:58:56
>462
JavaDoc嫁
int read()  入力ストリームから次のバイトデータを読み込みます。
戻り値:  データの次のバイト。ストリームの終わりに達した場合は -1

intな理由はint read(byte[] bytes)との兼ね合いかもね

465:デフォルトの名無しさん
08/06/21 19:00:33
むしろ、Byte read() だったならばOKなのか、ストリームの終わりの場合はnull(EOF)とできるから

466:461
08/06/21 19:05:06
リンクにイベント発生させるようにすればいいのかしら

467:デフォルトの名無しさん
08/06/21 19:19:30
JavaAppletからJavaScriptを操作する方法を知りたいので、
検索して調べたところ、「netscape.javascript.*」を取り込まないといけないと書いてあり、
コンパイルのために、JDKに付属するライブラリをCLASSPATHに通す必要がある、
と書いてありました。
それでCLASSPATHを通すというのが分からないので教えて下さい。

開発環境は
CPAD for JAVA2 SDK
j2sdk1.4.2_15
です。お願いします。

468:デフォルトの名無しさん
08/06/21 19:26:00
環境変数設定しろ。あとはググレ。
あとcom.netscapeパッケージはNN系しか使えないからRhino組み込め。

469:461
08/06/21 19:30:33
やっぱjavaコード側で何とかする話なんだよねえ

470:デフォルトの名無しさん
08/06/21 20:10:28
素直にページ作るよ

471:デフォルトの名無しさん
08/06/21 20:38:15
>>468
IEでも動くがな

472:デフォルトの名無しさん
08/06/21 20:47:15
>>471
一部だけな

473:439
08/06/21 21:04:07
ダックタイピングってもしかして私に対するレス!?
だとしたら、みなさんありがとうございます。

ダックタイピングも調べてみたのですが、やっぱり
>>453さんの仰るように、
implements MouseListener
がないとエラーが出てしまいます。
Javaはダックタイピングができないのかな

それから、もうこの話はしない方が良いのでしょうか?

474:デフォルトの名無しさん
08/06/21 21:10:15
ダックタイピング知らないなら気にしなくて良いよ。

475:デフォルトの名無しさん
08/06/21 21:56:55
>>473
すくなくともJavaをふつうに使っている限りは関係がない。


476:デフォルトの名無しさん
08/06/22 04:37:27
>>473
implementsをつければ、クラスを作る側がそのインターフェースを実装する気だったことが早い段階で確認できるでしょう。
偶然メソッド名などが一致していて動作の辻褄も合うなら同類とみなす、というダックタイピング的考えとは対照的(だから参考になる)。
Javaの型の基本が身についていれば出てこない疑問かもしれない。

477:467
08/06/22 08:25:07
>>468
com.netscapeの使い方が分かるようになりました。
ありがとうございます。
あと、Rhinoについて調べてrhino1_7R1というのをダウンロードして、
今度は使い方について調べたのですが、
コマンドラインからの利用法しか載っておらず、
JavaAppletなどからの利用法が見つかりませんでした。
よろしければ使い方を教えて頂けませんか?
もしくは使い方の載ってるサイトを教えて下さい。お願いします。

478:デフォルトの名無しさん
08/06/22 11:07:12
Listの中身をチェックしながら消したいんですけど

for (ManagerImpl manager : managerList) {
if (manager.cleanup()) {
managerList.remove(manager);
}
}

こういう書き方だとjava.util.ConcurrentModificationException
が出ます。

どういうお作法がいいんでしょうか。

479:デフォルトの名無しさん
08/06/22 11:46:25
OKWaveに同じ質問がありました。

for (Iterator<ManagerImpl> i = managerList.iterator(); i.hasNext();) {
if (i.next().cleanup()) {
i.remove();
}
}

だそうです。

480:デフォルトの名無しさん
08/06/22 11:51:29
URLリンク(java.sun.com)
> for-each ループでは反復子が隠されるため、remove メソッドを呼び出すことができません。
> そのため、for-each ループをフィルタリングに使用することはできません。

481:デフォルトの名無しさん
08/06/22 11:56:09
>>477
rhinoのページに組み込みかた載ってるしrhinoのサンプルにも組み込みサンプルがあるよく見てみ。

482:デフォルトの名無しさん
08/06/22 11:57:00
>>478
Listのremoveでなくイテレータのremoveを使わないと
for (Iterator<ManagerImpl> iter = list.iterator(); iter.hasNext(); ) {
ManagerImpl manager = iter.next();
if (manager.cleanup()) iter.remove();
}

483:デフォルトの名無しさん
08/06/22 12:43:51
2chでのマルチが減った代わりに
教えて君御用達Q&Aサイトとのマルチが増えたな

484:デフォルトの名無しさん
08/06/22 12:48:48
質問です。
JTableのセルにJbuttonを配置したいのですが、うまくいきません。

具体的には、JTableのセルにImageIconを配置するサンプルプログラム
URLリンク(www.javadrive.jp)
のページの下にあるソースコードの、テーブルデータの配列中のImageIconを指定している部分
new ImageIcon("./img/***.gif") を
new JButton("a") のように置き換えてみましたが、javax.swing~という文字列が表示されるだけです。

クラスが正しく扱われていないのではと思い、

public Class getColumnClass(int col){
return getValueAt(0, col).getClass();
}

上部分のソースコードのreturnを、
return JButton.class;
のように置き換えて直接指定してみたのですが、結果は同じでした

説明が拙くて恐縮ですが、JTableのセルにJbuttonを配置する具体的な方法を
どなたかご存知でしたら教えてください


485:デフォルトの名無しさん
08/06/22 13:16:30
>>478
まあ for(member:list)構文の弱点の一つだな。
見栄えはいいんだけど、イテレタ展開しちゃうからね。

このパターンだけは、昔ながらの書式で、
for(int i=list.size()-1;i>=0;i--){
 if(list.get(i).cleanup()){
  list.remove(i);
 }
}
と書くのが好み。

Iteratorの実装はなんどかやったことあるけど、
remove()は必要になるまで書かない(というか書きたくない)からさ、
使うのも自重してる。

486:デフォルトの名無しさん
08/06/22 14:20:57
javaアプレットでさ、動画と画像を描画するときに動画が手前にくるんだが、z軸を調整する関数はなんだっけ?

487:デフォルトの名無しさん
08/06/22 14:30:55
API何使ってんだよ?

488:デフォルトの名無しさん
08/06/22 17:07:02
>>486
動画?

489:467
08/06/22 17:24:24
URLリンク(www.mozilla-japan.org)
このページ読んだのですが、使い方が分かりませんでした。
まずはimport org.mozilla.javascript.*;を使うにはまた環境変数をいじらないといけませんよね?
あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?

490:デフォルトの名無しさん
08/06/22 18:03:23
>>489
実行時にクラスパス通せばいい。

>あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?
そう

491:使用書無しさん
08/06/22 19:17:24
javaフリークの皆さん。100%PureJavaでドローソフト URLリンク(jdrafter.sakura.ne.jp)
を作ったので是非使ってね。javaの帳票設計にも使えるよ。

492:デフォルトの名無しさん
08/06/22 19:25:37
java3D?



493:使用書無しさん
08/06/22 19:27:13
2Dだよ


494:デフォルトの名無しさん
08/06/22 19:28:39
おー
頑張った頑張った。だが…

495:使用書無しさん
08/06/22 19:32:02
だが?

496:デフォルトの名無しさん
08/06/22 19:32:03
初心者から中級者ってどこで判断するんだ
開発経験年数?

497:デフォルトの名無しさん
08/06/22 19:36:47
>>491
すっげぇ!!!!
まじで感動したw
俺もがんばろっとー

498:使用書無しさん
08/06/22 19:51:23
>>497よかったら使ってね。

499:デフォルトの名無しさん
08/06/22 20:01:56
javaなのになんでexeなの?

500:デフォルトの名無しさん
08/06/22 20:08:30
ただの自己解凍zipだよ。解凍したらclassファイルいっぱいでてくる。
けど・・・ほんとすごいわ。
経験が浅いからこんなでっかいプログラム見たこともなかった。

馬鹿にされそうw

501:使用書無しさん
08/06/22 20:09:14
jarパッケージでもよかったんだけど、jarだと中身丸見えだしアイコンも
ダサいので、あえてExeにラップしました。

502:デフォルトの名無しさん
08/06/22 23:26:45
あの~
色決めるときに { | | } こんな感じで区切ってbyteに代入するのはいったいどういう意味があるんですか?
ほかにも | で区切る表現が偶に出てきて戸惑うんですけど・・・・・
入門書にも載ってなくて 誰か教えてもらえませんか?

503:デフォルトの名無しさん
08/06/22 23:37:25
| は区切りではない
ビットごとの論理和 (OR) の演算子
その入門書の演算子の一覧かなんか見てみろ、載ってるはず

504:デフォルトの名無しさん
08/06/23 01:26:41
趣味で為替のチャート表示のプログラミングをJAVAでしたいと思っているのですが、為替のリアルタイムでのデータをネットから取り込むことは出来るのでしょうか?
質問が漠然としていて申し訳ないのですがお願いします。

505:デフォルトの名無しさん
08/06/23 01:32:42
>>504
きみのPCのブラウザで表示できる情報はすべてJavaで取得できる手段が
存在すると考えていい。すごく難しい場合もあるけど。


506:デフォルトの名無しさん
08/06/23 01:48:37
>>505
ありがとうございます。
大学ではCとFortranを使ってたのですがどちらも制御系のプログラムばかりでこういった類の経験がありませんでした。
林晴比古の入門JAVAシニア編でもネットから情報を取り込むことに触れられないので不安に感じましたが、もっと勉強しようと思います。
その辺を詳しく解説してくれる書籍などはないでしょうか?

507:デフォルトの名無しさん
08/06/23 02:31:02
赤音れおん

508:デフォルトの名無しさん
08/06/23 03:33:11
>>504 >>506
よくわからないけど、java.netパッケージあたりが基本では
URLリンク(java.sun.com)

509:デフォルトの名無しさん
08/06/23 07:31:09
>>508
ありがとうございます。その系列の本をあさってみようと思います

510:デフォルトの名無しさん
08/06/23 09:42:26
>>504
原則的には>>505が言ったとおりなんだけど
ファイナンス系サイトはデータを流用されないように工夫しているところもあるから注意
例えば数字に見えても画像だったりFlushで表示を制御してたり

511:デフォルトの名無しさん
08/06/23 10:02:41
プログラムのために準備されたものでないものからデータを拾う場合は
それないりに工夫や苦労はつき物。
相手がレイアウトや内容を変えない保障はどこにもない。
うちの社内なんていくつかのシステムの寄せ集めで、
システム間のデータのやり取りの大半が、
印刷直前の帳票データから拾ってるから間違い多いしカオスすぎる・・・

512:デフォルトの名無しさん
08/06/23 10:32:44
特定のフォルダ内からフィルタを掛けて、条件に引っかかるファイルの内容を表示したいので、
finamefilterを使って実現したのですが、当然の如くフォルダ内のファイル数増加に伴って応答が遅くなります。
なにかいい解消手段はないでしょうか?

513:デフォルトの名無しさん
08/06/23 10:42:39
>>510
なるほど・・・たしかに証券会社のチャートやボードはフラッシュや動画の類いに見えます。
実際問題、個人でそういったデータを引っ張ってきて表示させるのはきつそうですね。
ありがとうございました

514:デフォルトの名無しさん
08/06/23 11:15:17
MT4辺りにDLLフックかけてJNI経由で取り込む

515:デフォルトの名無しさん
08/06/23 12:27:35
>>512
(十分な効果が出るか分からんけど)ファイル名をあらかじめメモリに展開するとか
よほど大量なら、全文検索エンジンに放り込んでおくという手もあるが
取り扱いが面倒になる

516:デフォルトの名無しさん
08/06/23 12:59:21
>>513
もうちょっと有力な回答があるとまってたんですけど・・・
確か個人ですけど、リアルタイム(1秒毎)は証券会社に加入するしかないです。

yahooのあれは20分遅れだったかな?
個人集団が作ってる有力な株ソフトがいくつかあるんで、それを参考にしたらどうですか。
やってることもhtmlのテキスト解析・分析・処理のようですけど。

517:デフォルトの名無しさん
08/06/23 13:20:03
eclipseでパッケージの中にパッケージをつくるにはどうやるんですか?

518:デフォルトの名無しさん
08/06/23 15:32:10
eclipseスレにいけ

519:デフォルトの名無しさん
08/06/23 20:26:11
javaでstrutsでなにかしてみたいのですが
お勧めのHPあれば教えてください。

520:デフォルトの名無しさん
08/06/23 20:46:11
為替と聞かれて証券教えるこの不思議

521:デフォルトの名無しさん
08/06/23 22:14:40
なに、御礼もないし嬉しくもないの?
まあ、もう答えないからいいよ。

522:デフォルトの名無しさん
08/06/23 22:25:39
いじけちゃってかわいい♪

523:デフォルトの名無しさん
08/06/23 22:53:26
殺すぞ?

524:デフォルトの名無しさん
08/06/23 22:57:50
通報すっぞ?

525:デフォルトの名無しさん
08/06/23 22:58:46
ってかわいい♪

526:デフォルトの名無しさん
08/06/23 23:06:04
以下のソースだと、
java.lang.NullPointerException
がtd[count].setWord(strAry[1]);のところで
出てしまいます。
かれこれ4時間やっているのですが、わからないので、
解決法をおしえてください。
また、できるだけ、影響が少ない方法(データモデルをあまり変えない)
だと助かります
よろしくお願いします。

int count = 0;

while ((line = br.readLine()) != null) {
String[] strAry = line.split(" ");

System.out.println(strAry[1]);
if (strAry.length==2) {
System.out.println("aaa");
}
else if (strAry.length==3){
System.out.println("gp" + strAry[1]);
td[count].setWord(strAry[1]);
td[count].setSpeech(strAry[2]);
} }
count++;
}

527:デフォルトの名無しさん
08/06/23 23:08:47
>>526
td[] はどこでどうやって宣言してる?恐らくそれが間違っている。

528:デフォルトの名無しさん
08/06/23 23:13:23
S!アプリ造りたいんですけどいいサイト知りませんか?

529:526
08/06/23 23:26:25
>>527
ありがとう

public class Manager {
TokenData[] td;

という感じで,クラス宣言の後で,宣言しています.

また,TokenDataは,以下のクラスで宣言しています.
よろしくお願いします.
public class TokenData {
private String word = "";
private String basicWord = "";
private String speech = "";
public void Token() {}
public String getWord() {
return word; }
public void setWord(String word) {
this.word = word; }
public String getBasicWord() {
return basicWord; }
public void setBasicWord(String basicWord) {
this.basicWord = basicWord; }
public String getSpeech() {
return speech; }
public void setSpeech(String speech) {
this.speech = speech; }}

530:デフォルトの名無しさん
08/06/23 23:29:35
>>526
配列の宣言と初期化について調べたほうが良いと思います。

項目数が不明な取り込みには ArrayList を使いましょう。
配列での保持が必要なら、後で変換しましょう。

531:526
08/06/23 23:33:20
ありがとう。
ArrayListを使う場合の例をおしえていただけませんか?

532:使用書無しさん
08/06/23 23:35:55
javaフリークの皆さん
100%purejavaのドローングソフト
URLリンク(jdrafter.sakura.ne.jp)
登場
帳票設計や、アプレットのヴェクターアニメーションにも使えるよ
ダウンロードしてね

533:デフォルトの名無しさん
08/06/23 23:43:58
>>531
[配列]
TokenData td[]=new TokenData[20];
for(int i=0;i<td.length;i++)
td[i]=new TokenData();

[ArrayList]
ArrayList<TokenData> td=new ArrayList<TokenData>();


534:デフォルトの名無しさん
08/06/24 00:02:55
最近、PGやSEが逮捕されること多くないですか?
それもアキバのお宅イメージをセットにして報道してるように感じますが、警察は何か恨みでもあるんでしょうか。winney?

535:デフォルトの名無しさん
08/06/24 00:08:26
ButtonGroupでグループ化した3つのラジオボタン1,2,3に対して、
初期はすべてのボタンが選択されていない状態ですが、
いずれかのボタンが選択された状態から、グループを初期の状態に戻す方法を教えていただけませんでしょうか。
ちなみに、clearSelection()は使えない環境です。

536:526
08/06/24 00:09:09
>>533
本当にありがとうございます。
素人なので、こうした情報が勇気づけられます。

java1.4の場合ですと、ArrayList<TokenData>のような表現は無理だそうです。。。
その場合は、どのような方法がありますでしょうか?
DATACLASSをArrayListではあつかえないってことでしょうか?
すみません。おしえてください。

537:デフォルトの名無しさん
08/06/24 00:16:31
>>536
ArrayList td=new ArrayList();
ただしこの場合は中身はObject型になるので利用する際キャストが必要。
td.add(new TokenData());
TockedData token1=(TokenData)td.get(0);

538:デフォルトの名無しさん
08/06/24 00:16:34
a.javaをコンパイルしたらa.classとa$1.classてゆうのができました
この二つのclassをjarに圧縮したいのですがどうもうまくいきません
ちなみにプロンプトには jar cfm g.jar d.txt a.class a$1class
と打っているんですがあっているでしょうか?

539:デフォルトの名無しさん
08/06/24 00:20:44
ぱっとソース見ただけだけど、selectionをnullにする必要があるのに、selectionのsetterがsetSelected(ButtonModel,boolean)しかないから、無理な気がする・・
せめてprotectedにしててくれたらなぁ。

大したプログラムじゃないし、自分で作ってみたら?

540:デフォルトの名無しさん
08/06/24 00:22:32
>>538
unix系のshellなら $は意味がある文字だから \$ とエスケープしてみたらどうでしょう。

541:デフォルトの名無しさん
08/06/24 00:26:28
しまった。>>539>>535へのレスね。

542:デフォルトの名無しさん
08/06/24 00:45:01
>>538
>>540以前にコマンド自体あってないね
書き込み時のtypoかもしれんが

543:デフォルトの名無しさん
08/06/24 00:45:53
JSFでも使うぞ$

544:デフォルトの名無しさん
08/06/24 03:04:20
クラスの設計を、
・コードで直接行う場合のメリット、デメリット
・UMLを利用する場合のメリット、デメリット
を教えてください 。


545:デフォルトの名無しさん
08/06/24 08:59:35
冗長、どちらか一つでいい。
・コードで直接行う場合のメリット
・UMLを利用する場合のメリット

546:デフォルトの名無しさん
08/06/24 09:14:24
> クラスの設計を、
> ・コードで直接行う
設計になってねえ

547:デフォルトの名無しさん
08/06/24 11:03:46
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

548:デフォルトの名無しさん
08/06/24 11:04:26
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

549:デフォルトの名無しさん
08/06/24 13:03:13
こんにちは。
学校の課題で作った掲示板システムの拡張をしています。
設計について質問させてください。

DB1テーブル1Entityで、各Entityが自身のvalidateメソッドを持つ形の設計をしています。
今回、一部のテーブルに対し、validateのみが異なる複数のEntityが必要な状況になりました。

いくつか方法を考えたのですが、このような場合どの方法がよいでしょうか。

(1) 関連のない別クラスとしてEntityを定義する。
(2) 共通の親Entityクラスを定義し、validateメソッドをoverrideする。
(3) validateを別クラスに切り出し、strategyに持ち込む。

よろしくお願いします。

550:デフォルトの名無しさん
08/06/24 13:26:49
コーディングと設計の区別もつかないPGが混じってんのか

551:デフォルトの名無しさん
08/06/24 14:52:17
こんにちは。JAVA初心者です。
eclipseでソースを打っているのですが、
コメントを打つと、たまに日本語が□に変わって
うまく表示されません。
なぜか、教えてください。

552:デフォルトの名無しさん
08/06/24 15:25:52
すいません解決しました。
ありがとうございました

553:デフォルトの名無しさん
08/06/24 16:01:27
javaの土初心者です。JavaでWindows PCの
I/O空間アクセス、物理メモリアクセス
ってどのようにするんですか?

554:デフォルトの名無しさん
08/06/24 16:21:53
>>553
JNIとOSのディバイスドライバが必要だな。
そもそもWin32でそれをする方法を知ってるのか?

555:デフォルトの名無しさん
08/06/24 17:13:06
>>554
デバイスドライバを作りたくないからJavaでやろうと考えたのですが...
今回はI/O空間アクセスが出来ればOKで、物理メモリアクセスはあればなんかの役に立つかな
ぐらいなんですが

Windowsならドライバで
IO空間アクセス:
READ_PORT_XXX、WRITE_PORT_XXX で行う
物理メモリアクセス:
MmMapIoSpaceしてREAD_REGISTER_BUFFER_XXX、WRITE_REGISTER_BUFFER_XXX で行う

で使うときにはDeviceIoControlで叩く

ってC/C++のWinプログラム初心者でも知っている知識ですよ。
初心者Javaな人でもこれぐらいは知っていますよね。

556:デフォルトの名無しさん
08/06/24 17:22:57
ここはクマーとかいうAAを貼るところだろうか?

557:デフォルトの名無しさん
08/06/24 17:27:05
アンダーフローやオーバーフローは構文エラーですか?論理エラーですか?

558:デフォルトの名無しさん
08/06/24 17:38:27
違います
低脳エラー(うぽぽんエラー)です

559:デフォルトの名無しさん
08/06/24 17:40:41
>>555
すっげー
俺もこんくらいの知識ほしい

560:デフォルトの名無しさん
08/06/24 17:50:21
>>85-105

なんか爆笑した。>>85の言動にw

>>109
そこにJavaの格言とJavaの鉄則が入ってるのが理解できない。
あの本はJava5以前の本だぞ。Java5が出てから役に立たなくなったテクニックやTipsが
けっこうあるので今ではおすすめしがたいな。鉄則のほうはそこそこ役に立つが、
それだったらEffective Javaのほうが全然役に立つ。

561:デフォルトの名無しさん
08/06/24 17:51:04
そクマー

562:デフォルトの名無しさん
08/06/24 17:56:02
>>121
Java+謎、落とし穴を書いた前橋 和弥よりはましではないかと。
あれは酷かった。本に愚痴ばかりかいて、今となっては解決済みの問題が
あたかも解決されていないかのような書き方が、初心者に誤解を与えかねない本だな。
アンチがあれを読んで昔飛びついていた記憶がある。

563:デフォルトの名無しさん
08/06/24 17:57:58
>>134
> ただM$の都合で、変な改定されるのが怖いんです。(J++とかw)

そのくせ、こんなこと言ってるよな。VBにしておけよ電波。

> どうしてjavaは初心者にこうも厳しいんですか?
> 例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。
> VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。
> これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。
> とくかく情報の出し惜しみはやめてほしいな。
> なんで、java弄るひとって性格の悪い人がおおいんだろ。
> java関係の本でもろくなのないし。


564:デフォルトの名無しさん
08/06/24 18:00:22
>>141
> LinuxではC#動かないでしょう?
Monoで動く。

> .NETははっきりいって糞くらえですよ。(食事中のかたすんません)
VB忠なのに。

565:デフォルトの名無しさん
08/06/24 18:01:37
>>146
> ふりだしに戻る・・・
> ⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。
>
> 自分なりの分析ですが
> java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。
> もしくは、いま勉強中で資格とって就職しようとしている人々。
> したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。
> そんなエゴが見え隠れしている。

一昔前のC言語厨やUNIX屋じゃあるまいし。
このスレ見ればわかると思うが、素人がよく質問しに来ているが。

566:デフォルトの名無しさん
08/06/24 18:04:05
>>154
たいした警鐘に感じないなあ。
Javaの情報は10年前に比べれば腐るほどあるし
ライブラリもたっぷりあるし書籍もネットも充実して情報には困らないんだよなあ


567:デフォルトの名無しさん
08/06/24 18:05:19
この使い方の意義が分からん漏れはヴァカですか?
StringBuffer sb;
sb.append("Hello, ").append("world!!");


568:デフォルトの名無しさん
08/06/24 18:15:01
>>567
意味じゃなくて意義となればワンライナーと呼ばれる人々が喜ぶ

569:デフォルトの名無しさん
08/06/24 19:08:36
>>549
validateを交換可能にしたいんでしょ?
まあ2のTemplateMethodパターンかなあ

570:デフォルトの名無しさん
08/06/24 19:09:11
java.awt.FileDialog上のキー操作、マウス操作をフックしたいのですが、
実装方法を教えてください。

フックしたい目的は、右上の×ボタンとESCキーによるキャンセル抑止です。
processEventメソッドをオーバーライドしたり、
リスナを追加してもどうもフックされていないようです・・。

571:デフォルトの名無しさん
08/06/24 19:19:11
>>567
それだったらStringBufferをStringBuilderに変えて
StringBuilder sb = new StringBuilder();
sb.append("Hello, world!!");
したkなる。

new忘れていたようなのでつけておいた。



"Hello, "と"world!!"が文字リテラルではなく変数や定数だったら
意義はある。

572:デフォルトの名無しさん
08/06/24 19:45:18
5万ぐらいの激安のノートパソコンで
勉強できる?

573:デフォルトの名無しさん
08/06/24 20:05:32
>>569
ありがとうございました。
その方向で設計してみます。

574:デフォルトの名無しさん
08/06/24 20:42:39
JMFを使ってキャプチャした画像→
 JNIを通してOpenCVに送り顔認識→
  認識した顔の中心座標を返す

といったプログラムを書こうとしていますが、そもそもこんなことは可能なのでしょうか。

別にJNIを使わなくても顔認識ができればいいのですが、
OpenCV程度の顔認識精度があるJAVA用ライブラリなどあれば教えて頂きたいです。

575:デフォルトの名無しさん
08/06/24 20:56:56
>>572
何が?

576:デフォルトの名無しさん
08/06/24 20:59:29
>>572
勉強するだけなら10年前のでもできるだろ
何を勉強するのかしらんけど

577:デフォルトの名無しさん
08/06/24 21:00:01
4月からIT企業に入社したヒヨッコです。いろいろ勉強のために調べていたらどうしても理解できないソースを見つけたので質問に来ました。
インタフェースの中にある以下のようなソースなんですが

public interface IntComparator{
public static final IntComparator
NATURAL_COMPARATOR = new IntComparator(){
public int compare(int i1, int i2){
return
i1 < i2 ? -1 :
i1 > i2 ? 1 :
0 ;
}
};
}
出典:URLリンク(mitv2.net)

1.「new コンストラクタ{メソッド名(引数){メソッド定義}}」という書式はこの他にも見かけたのですが、
これはこれから生成するインスタンスに含まれるメソッドを定義する構文という理解で正しいのでしょうか?また、その場合このメソッド定義はどのインスタンスに対して有効なのでしょうか?
(クラス定義と同じでこれ以降同じクラスから生成するインスタンス全てに有効?それともここで生成するインスタンスのみに有効?)

2.メソッドを定義する構文であるとすれば、抽象メソッドしか持たないはずのインタフェース内でメソッドを定義していることになります。
Eclipsにコピペしてみてもコンパイルエラーは発生しないようですが、本当にこのようなことが許容されるのでしょうか?

長文になってしまいましたが、よろしくお願いします。

578:577
08/06/24 21:01:02
インデントきえたーーー

読みにくくてスイマセン…出典元を見ていただいたほうがいいかも知れません…

579:デフォルトの名無しさん
08/06/24 21:04:21
>>578
専ブラならポップアップで見てみ

580:デフォルトの名無しさん
08/06/24 22:00:48
>>577
それは匿名内部クラス、あるいは単に匿名クラス、もしくは無名クラスなどという。
指定したクラスかインタフェイス(その場合はIntComparator)を継承・実装している名前のないクラスを定義してnewする。
定義したメソッドは、そこで生成するインスタンスだけのもの。

581:デフォルトの名無しさん
08/06/24 22:09:13
>>577
1回限りしか必要のないクラスの名前をわざわざ付けて名前空間を汚す代わりに
名無しのクラスからインスタンスを生成することができる。

書式的には、
new 親クラス(親クラスのコンストラクタの引数) { メソッド定義 }
みたいな感じ。

名前がないので、新しいメソッドを定義してもクラスを明示できないから呼べない。
大抵、親クラスのメソッドのオーバライドしないと意味がない。
クラスじゃなくてインターフェースでもおk

似たようなものに、配列の生成と初期化を同時に行う方法がある。
new int[] { 1, 2, 3, }
とか。
いちいち配列を入れる変数名を用意して名前空間を汚さずとも
そのままメソッドの実引数などに使える。

ただ、見づらいと言う人は多々居る。不毛な論争の種にどうぞ

582:577
08/06/24 22:51:54
>>580
>>581
ありがとうございます。
読みながら想像してたのと大体合ってたようで一安心です。

クラスの中でインスタンスをいっぱい(50コとか)作るけど、そのうち1つだけメソッドの中身がちょっと違うときに使ったりするものなんですね。

もう少しこのソースがどんな動きをするのかを考えてみたいと思います。その過程で壁に当たったらまた質問に来るかもしれないので、そのときはよろしくお願いします。

583:デフォルトの名無しさん
08/06/24 23:28:01
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

584:デフォルトの名無しさん
08/06/25 00:22:10
サイズを固定しないJTableを作りたいのですが、
可変長の二次元配列ってどうやって表現すればよいのでしょうか?
一次元でも実現可能なのでしょうが、コードが冗長になりそうで・・・

585:デフォルトの名無しさん
08/06/25 00:29:21
>>584
配列じゃなくてコレクション使ったMODELで

586:デフォルトの名無しさん
08/06/25 00:52:08
>>585
引数がVectorのDefaultTableModelを使うという事でしょうか?

587:デフォルトの名無しさん
08/06/25 00:53:39
javaで図形処理をさせる課題が出て難しく感じたので
これを機に参考書を買おうと思っています。

wiki乗っている「コアJava2 Vol.1 基礎編」が良さそうだと思ったのですが
図形処理関係では他にどういう参考書があるか知りたいので
教えてください。

588:デフォルトの名無しさん
08/06/25 01:20:12
WebOTXでJavaを利用したアプリサーバを
構築してるんですが、なんというか情報が少なすぎる…
参考書があるか知りたいですが、探し方が悪いのか
丸善とかでは見つからなかった。

WebOTXでJavaをつかったアプリサーバ構築
みたいなテーマの本はないでしょうか・・・

589:デフォルトの名無しさん
08/06/25 08:08:51
Javaはガベジコレクション等プログラマがメモリを意識しないでいい利点があると聞いたのですが・・・

int[] a = {10, 9, 8, 7, 6}
int[] b = {1, 2, 3}
a = b;

とした時にC言語だとfree?されてないのでメモリが無駄になるのですが、Javaだとどうなるんですか?

590:デフォルトの名無しさん
08/06/25 08:09:37
↑{10, 9, 8, 7, 6} のメモリ領域が

591:デフォルトの名無しさん
08/06/25 08:23:43
>>589
言語仕様で決まってるのは{10, 9, 8, 7, 6}の配列がガベコレ可能な状態になるってところまで。
どのタイミングで回収されるかは実装依存。

あと、C言語だと、スタックに確保されるんじゃなかったか? それ。

592:デフォルトの名無しさん
08/06/25 11:47:12
指定した番号目の素数を出すにはどうしたらいいですか?

593:デフォルトの名無しさん
08/06/25 11:49:39
age

594:デフォルトの名無しさん
08/06/25 11:56:34
素数を降順でリストに突っ込んで取だしゃいいだろ。

595:デフォルトの名無しさん
08/06/25 11:57:20
>>594
すみません、素数を出すコードがわかりませんので。

596:デフォルトの名無しさん
08/06/25 12:03:16
エラトステネスのふるいでググレ

597:デフォルトの名無しさん
08/06/25 12:06:59
了解

598:デフォルトの名無しさん
08/06/25 12:41:32
数日前にチャート表示のプログラムを相談したものですが、
ttp//plaza.rakuten.co.jp/meime/diary/200603310002
を参考にしてみます。相談に乗っていただきありがとうございました。

599:デフォルトの名無しさん
08/06/25 13:42:22
>>594
なんで降順?

600:デフォルトの名無しさん
08/06/25 15:10:17
そんなどうでもいいこと聞いてなんになるの?

601:デフォルトの名無しさん
08/06/25 15:22:59
普通は昇順(1,2,3,5,7....)で何番目の素数とか言うだろw
降順の素数番目ってどうすんだw

602:デフォルトの名無しさん
08/06/25 17:11:11
じゃあ昇順てことで

603:デフォルトの名無しさん
08/06/25 18:27:38
スレ違いかもしれませんが、DoJaのコンソールの

Main :java.lang.NullPointerException Test
java.lang.NullPointerException
at MainCanvas.<init>(+40)
at Test.start(+7)
MainCanvas

このエラー出力の(+40)や(+7)はどういう意味ですか?


604:デフォルトの名無しさん
08/06/25 18:31:26
バイトコードの位置
<init>メソッドの40バイトめとstartメソッドの7バイトめ

605:デフォルトの名無しさん
08/06/25 21:23:38
進むほど↑↑なのが昇順。
進むほど↓↓なのが降順。


606:デフォルトの名無しさん
08/06/25 21:47:03
自分で使えるAPIをもっと増やしたいと思っている者ですが、みなさんの方でおすすめの本などあるでしょうか?
仕様を見ているだけではなかなか使いこなせず、使用例を見て理解したいと思うんですが、ソースをどこから探せばいいかとよく迷います。
自分のレベルですがJava歴は1年3ケ月、JSP、JSTLのタグを経て、GoFのデザインパターンを現在勉強しています。

ご教授、よろしくお願いします。

607:デフォルトの名無しさん
08/06/25 21:48:08
new コンストラクタ(引数).メソッド(引数)

という構文を見たのですが(左辺には何も無し)、これは
staticでないメソッドを使いたい!でも他に使うものはないからインスタンスを作るまでも無い!
というときにインスタンスを介さずに非staticメソッドを呼び出すものと考えていいのでしょうか?

608:デフォルトの名無しさん
08/06/25 21:48:30
>>605
時間軸で見た前方後方くらいにわかりづらいな

609:デフォルトの名無しさん
08/06/25 21:59:50
>>607
いや、newでインスタンスを生成してからメソッドを呼んでる形だよ、それは。
つまり
Hoge hoge = new Hoge(param);
Hoge.method(param);
の2行を
new Hoge(param).method(param);
に省略。

610:デフォルトの名無しさん
08/06/25 22:01:36
ああスマン、上のHoge
hoge.method(param)の間違い。

611:デフォルトの名無しさん
08/06/25 22:12:41
>>577
なんでそんなものを作るのか。

java.lang.ComparableインタフェースとComparable#compareTo()メソッドがあるのに


612:デフォルトの名無しさん
08/06/25 22:15:07
>>589
AtomicIntegerとか使えばいい

613:デフォルトの名無しさん
08/06/25 22:16:18
>>607
インスタンスは必要だが参照として保持する必要がない場合に使う書き方
FileChanel channel = new FileInputStream(file).getChannel();
とかよく使うパターンかね

614:607
08/06/25 22:47:43
>>609>>613
ありがとうございます。

内部ではインスタンスは作られているけれど、参照が無いから後から同じインスタンスをいじったりはできないということですね。
いまさらこんなこと聞くのもアレなんですが、Javaで言うところの「参照」というのはCでのポインタみたいなものと考えていいんですよね?
…ちょっと自信がなくなってきた…

>>611
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。

615:デフォルトの名無しさん
08/06/25 23:07:51
>>614
参照はポインタの一種と考えれば、まあ間違いはない。
ポインタで出来ることを全て参照でできないってくらい理解しておけばいいと俺は思う

616:609
08/06/26 07:50:26
>>614
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。

参考までに出典を教えて。説明を聞いてもIntegerクラスとのボクシング、アウトボクシングがある5.0以降なら、やはり611の言う通りと思えるので。
ボクシングの説明をただ省きたかっただけなのかもしれないけどね。

617:デフォルトの名無しさん
08/06/26 08:02:11
IntComparatorを日本語ページでぐぐったら2003年に書いたページが出てきたけど。
これ1.5より前に書かれてるんだろうから仕方ないんじゃね?

618:デフォルトの名無しさん
08/06/26 09:47:01
HtmlURLConnectionを用いてウェブページへのログインを実現させようとしています。
パケットキャプチャして、POSTの方はほぼ完全に一致させ、それに対するサーバーの応答も大丈夫だったのですが、その後こちらがGETするときにはPOSTの時に
URLConnection#setRequestProperty(String,String)で設定していたプロパティが完全にクリアされてしまい、サーバーから403が返ってきます。
具体的には、User-Agentが問題なようです。
GETの時のプロパティを設定するにはどのようにすればよいのでしょうか?

619:デフォルトの名無しさん
08/06/26 12:54:34
JMFを使って動画の再生に成功。あとはタイムラインと文字を流すシステムをひっつければニコニコ動画の完成だ!


620:616
08/06/26 13:21:43
>>617
おいおい、可能性高くてもWebで同じ名前のソース一つ見つけたからこれのこと言ってんだろってのは無謀だろ。
よしんばほんとにそうだとして、俺を納得させてどうするw
ここは614に「古いコードあてにしないで611の言うこと参考にしたほうがいい。」と言ってやるのが筋じゃないか。

621:デフォルトの名無しさん
08/06/26 13:25:43
>>620
ってか、君こそ出典知ってどうするつもりだったん?

622:デフォルトの名無しさん
08/06/26 14:59:17
メモ帳からデータを読み込むプログラミングを作りたいのですがうまくいきません
以下が私の作成したものです。NetBeansを用いました。
メモ帳の中のデータは
1
2
です。
package javaapplication2;
import java.io.*;
public class Load {
public static void main(String[] args) {
try { //(1)
//(2)Fileオブジェクトの生成
FileReader fr =new FileReader("test.txt");
//(3)Fileオブジェクトの生成
int i,m,s,kai=0;
//(7)読み込みデータがなくなるまで読み込み
while ((i = fr.read()) != -1) {
s=i; //(8)書き込むデータがなくなるまで書き込み
m=i;
kai = s + m;
}
fr.close();
System.out.print(kai);
//(9)読み込みストリームを閉じる
//(10)書き込みストリームを閉じる
catch(IOException e) {
} }}

623:デフォルトの名無しさん
08/06/26 16:03:23
>>622
コメントが意味分からないんだが、どうして欲しいんだ?
ついでにそれはメモ帳からデータを読み込むプログラムとは言わないだろw

624:デフォルトの名無しさん
08/06/26 16:07:41
>>622
どううまくいかないのか、期待したことと起きたことを明記してください。

625:622
08/06/26 16:34:45
期待したことは、
1がsに入り2がmに入って、それらが足し算されkaiに3が入り
3が出力されるというものです。
起きた事は
100と出力されました。

626:624
08/06/26 16:47:12
>>625
FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
”メモ帳の中のデータ”と言っている(おそらく)テキストファイルの先頭から1バイトづつです。
足す前に System.out.println("i="+i); 等と状況を表示する文を入れて実行し、どんな値が読み込まれているのか確認してみてください。
またどうしてそうなるのか、”メモ帳の中のデータ”をファイルダンプツールで見てみると良いでしょう。

627:デフォルトの名無しさん
08/06/26 16:49:32
>>625
URLリンク(e-words.jp)

sには最初'1'、つまり49が入る。
次に復帰改行で13、次に10が入る。
そして最後に'2'、つまり50が入る。

mも全く同じもの入れてるんだから、同じ。
つまり50+50=100が出力されてる。

628:デフォルトの名無しさん
08/06/26 17:36:11
>>626
>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。

これは非常に語弊があると思うんだけど。。

629:624
08/06/26 17:50:00
私の作成したのもがどのように振舞っているかは、良くわかりましたが、
どのように修正すれば良いかアウトラインが見えないので、
教えてください。

630:626
08/06/26 17:51:23
>>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
>これは非常に語弊があると思うんだけど。。

そうでした、FileReaderは文字読みでした。
なので一行でも1バイトでもなく、一文字が正解です。ごめんなさい。

631:630
08/06/26 17:54:29
>>629
一行を文字列として読み込むというメソッドを持つクラスがあるので探してみてください。

632:デフォルトの名無しさん
08/06/26 18:07:56
>>622
繰り返しによって合計を取る方法(どう考えても基本です)をおさらいすることも重要かと。

ちなみに、mとかsというのは何かの略ですか?気になる。

633:624
08/06/26 18:08:04
>>631
ありがとう

634:デフォルトの名無しさん
08/06/26 18:52:03
スレリンク(tech板:259番)
このスレでちょっと出てたのをみて興味がわいたのですが、Javaで配列の要素側から、その要素を含む配列を取得することって出来ますか?

635:デフォルトの名無しさん
08/06/26 18:55:41
基本無理。その要素に、それを含む配列を持たせたらできるけどあほらしいし・・

636:デフォルトの名無しさん
08/06/26 19:18:47
質問なんですけど、夏にjavaプログラマのSJC-Pの試験を受けるため勉強してるんですが、
問題集しか購入してなく、用語の解説や流れなどのった教科書が欲しいところなのですが
お勧めの本とかないですか?友達がもってるSCCの教本見たら微妙だったんですよね。
問題集のほう「徹底攻略 Java2プログラマPlatform1.4」の黒本使ってます。
お勧めなどありましたら教えてください。


637:デフォルトの名無しさん
08/06/26 20:39:12
質問です。

Java システムアイコンを抽出 / Chat&Messenger
URLリンク(sattontanabe.blog86.fc2.com)

のサイトで、ウィンドウにドラッグドロップしたファイルのアイコンを取得する
サンプルプログラムが公開されているのですが、このプログラムでは
16*16サイズのアイコンを取得することしか出来ません。

Fileから32*32もしくはそれ以上のサイズのアイコンを取得する方法はありますか?

638:デフォルトの名無しさん
08/06/26 21:27:39
>>637
無理っす。

639:デフォルトの名無しさん
08/06/26 22:47:09
メソッド名の書き方について質問です。

メソッド名が長くなるので略して書きたいのですが、その場合大文字小文字の区別はどうするべきでしょうか?

例として
aaaaaBbbbbCcccccDdddd
というメソッド名を短くしてABCDという名前に略すのですが、これだと規約から外れてしまいます。
そこで
1.aBCD
2.abcd
3.aaaaaBbbbbCcccccDdddd(略すべきではない)
4.その他

どれがいいのでしょうか?

640:デフォルトの名無しさん
08/06/26 22:53:52
aaaaaBCDとか

641:使用書無しさん
08/06/26 23:00:45
netBeansとかいまどきのIDE使ったら自動補完してくれるので、後々の読みやすさ
考えたら略さないほうがいいと思うけど。

642:デフォルトの名無しさん
08/06/26 23:18:47
>>639
略し方すらわからなくて人に聞かなきゃいけないレベルなら略さない方が良いと思うぞ。

無意識のうちに>>639が望む回答するように情報隠してる可能性もあるし。
例えば、命名規約のルールだって全部出してるわけじゃないでしょ。

643:使用書無しさん
08/06/26 23:22:59
634<< 配列よりVectorつかったらどうだ。
class A {
      public B parent=null;
      public void setParent(B parent){
           this.parent=parent;
      }
      public B getParent(){
            return parent;
      }
}

class B extends Vector<A>{
      @override
      public void add( A child){
             child.setParent(this);
             super.add(child);
      }
     public void add(int index,A child){
             child.setParent(this);
             super.add(index,child);
     }
}
こんなもんかな。

644:デフォルトの名無しさん
08/06/26 23:43:35
>>639
長すぎるってのはクラスの設計が良くない兆候。
aaaaaBbbbbCcccccDdddd というメソッドが HogeManagerとかにあるんだろ、どうせ。
HogeAaaaBbbbクラスをつくり、ccccDdddってメソッドを作るような状況な筈

645:デフォルトの名無しさん
08/06/27 00:05:06
>>624
ファイルからのデータの読み取りにはcsv形式が便利(基本)。(「1,2」とか書いてtest.csvを準備。)
以下はCSVテキスト上で同じ行にある数値の合計を順次算出して別ファイルに集計する例
package javaapplication2;
import java.io.*;
import java.util.*;

public class Load {
public static void main(String[] args) {
//データ格納用Listの準備
List<String[]> list = new ArrayList<String[]>();

try {

FileReader fr =new FileReader("test.csv");
BufferedReader bf = new BufferedReader(fr);

String st = null;
while ((st = bf.readLine()) != null) {
String[] line = st.split(",");
list.add(line);//ファイル上1行の各数値を文字列として格納
}
bf.close();



646:デフォルトの名無しさん
08/06/27 00:05:38
//計算結果データ格納用Listの準備
List<Integer> result = new ArrayList<Integer>();
int sum = 0;
for(String[] values: list){
for(String value: values){
int num = Integer.parseInt(value);//文字列を数値型に変換
sum += num;//同じ配列内の値の合計値を求める
}
System.out.println(sum);
result.add(sum);//合計値を格納
sum = 0;
}

FileWriter fw = new FileWriter("result.csv");
PrintWriter pw = new PrintWriter(new BufferedWriter(fw));

for(Integer val: result){
pw.println(val);
}

pw.close();


}catch(IOException e) {
e.printStackTrace();
}
}
}

647:639
08/06/27 00:11:41
レスどうもです。
今iアプリを作成してて複数単語を繋げて長くなったら打つのが面倒だから略して書けないか?
その場合どうするべきか?というのを軽く疑問に思っただけだったので、変な例を出してしまいましたが、
それがいけなかったようですので実際に作っているのを出してみます。

ダーツゲームを作成しているのですが、ゲームルールとしてスーパー・ラウンド・ザ・クロックというのがあります。
ルールクラスの中にスーパー・ラウンド・ザ・クロックメソッド(SuperRoundTheClock)を作るのですが、
この場合どうするべきか?というのが知りたかったのです。

ちなみに、SuperRoundTheClockぐらい打てよ!というのは無しの方向で・・・。
より長いものが出てきた場合に参考にしておきたいので。

648:デフォルトの名無しさん
08/06/27 00:17:54
今どき補完できるエディタ使おうよ

649:使用書無しさん
08/06/27 00:19:47
>>647それjavaの質問というよりセンスの問題じゃねえ?
昔cobolやってたころなんか母音略して子音だけで名づけてたな
sprRndTheClckなんてな..

650:デフォルトの名無しさん
08/06/27 00:23:43
>>647
その場合、RuleクラスのサブクラスとしてSuperRoundTheClockRuleを作成するのが定石だと思う。
なので、メソッド名は同じになりオーバーライドすることになる。

651:デフォルトの名無しさん
08/06/27 00:28:29
>>647
頭字語で補完してくれるよ、最近のIDEは。
Eclipseの場合だと、sRTC で補完すると superRoundTheClock() が出てくる。
重複するものがなきゃもっと短かくてもOK。
あと、Javaではメソッド名の先頭は小文字な。

652:639
08/06/27 01:32:47
開発環境が固定されていないため(自宅と学校で学校の中でもいろんな場所でやってる)エディタ変更は厳しいです。
今は全マシンにインストールされてるエディタがあるのでそれを使っています。
今後は略さずに補完機能のあるエディタを使って開発する事がベストということですね。

>>650
上の例で突っ込まれそうな予感はしてましたが、突っ込まれてしまいました。
これはRuleクラスでメンバと抽象メソッドを作ればよいということでいいんでしょうか?




653:デフォルトの名無しさん
08/06/27 01:51:06
>>652
そのとおり。ストラテジーパターンで。
感覚は掴めていそうに見えるから、ググって実装例を見てみるといいと思う。

もっとも、ルールが2種類しかないとか言うなら、デザパタを適用するまでも無いけどね。

654:639
08/06/27 02:09:48
>>653
ルールは追加する予定ではいますが、時間の都合上、最悪superRound・・・だけというのも有り得ます。
が、勉強のためにそれでやってみようと思います。

655:デフォルトの名無しさん
08/06/27 06:32:30
>>635
ありがとうございます

656:デフォルトの名無しさん
08/06/27 15:32:50
JSFでSSLは実現できますか

657:デフォルトの名無しさん
08/06/27 16:09:57
JDBCのresultsetのgetObjectで取得したデータの
型を取得する方法をご教示ください。

やりたいことは
resultsetのgetObjectによって
取得されたデータで作成された
ArrayList内データをcsvに出力する汎用的な
メソッドを作成しています。

そのArrayList内のデータで、文字型なら「"」で
くくりたいと考えています。

public void createCSV(List table) {
 //tableはgetObjectで取得したデータが渡される。
 for (int r = 0; r < table.size(); r++) {
  List rec = (ArrayList)table.get(r);
  for( int c = 0; c < rec.size(); c++ ) {
  //ここでrec.get(c)のデータ型を知りたい。
 }
・・・
}

658:デフォルトの名無しさん
08/06/27 16:13:48
>>657
if (rec.get(c) instanceof String) {
...
} else {
...
}

659:デフォルトの名無しさん
08/06/27 16:15:55
getClass().getName()
の方が早くね

660:デフォルトの名無しさん
08/06/27 16:24:39
>>658-659
即レスでありがとうございます。
無事やりたいことができました。
勉強になりました。

661:デフォルトの名無しさん
08/06/27 22:55:13
少し前に為替レートの取得法を相談したものですが,URLConnectionをつかってそのサイトのデータ引き落としは上手く行きましたが、
やはりレートを秒単位でリアルタイム表示しているところはとる事が出来ず行き詰ってしまいました・・
何かいい案はないでしょうか?

662:デフォルトの名無しさん
08/06/27 23:17:54
クラス図での表現を教えてください。
(属性と操作は省略していいそうです)
そのクラス図がどのような現実世界の仕掛けを表現したものか
も教えてください。

Course Person Professor ShedcleOfClasses Section
Student Transcript TranscripEntry

663:661
08/06/27 23:44:49
すいません。いろいろ試した結果為替レートの取得できるようになりました。
申し訳ありませんでした

664:デフォルトの名無しさん
08/06/28 00:35:59
'else'への'if'がありません
ってどうすれば解決できるんでしょうか?

665:639
08/06/28 00:41:43
問題になってるif文をここに貼り付ければ?

666:デフォルトの名無しさん
08/06/28 00:42:51
ifまわりの括弧がおかしいとかだろうな

667:デフォルトの名無しさん
08/06/28 01:10:59
URLリンク(www.objectstart.com)
にある下から2番目のClick here to access a
Zip file containing the Java 1.5.x version
of source code for the second edition of BJO.
(This version of source code will not compile
with Java 1.4.x or earlier compilers.)
のファイルにあるCh14のCourse Person Professor
ShedcleOfClasses Section
Student Transcript TranscripEntry
のクラス図を教えてください


668:デフォルトの名無しさん
08/06/28 09:45:47
>>667
クラス図がどんなものか知ってて、ソースコードがあれば
他人に聞く必要のあることなんてこれっぽっちも無いと思うぞ。

描くのが面倒臭いのか?
もしそうなら、ソースからクラス図を吐き出すツールを作ればいいじゃない。

あとは、それくらいの発想なら世の優秀な兄者どもが
既に思いついてるんだろうな~って感じで、ググっちゃいなヨ。

↓はJudeっていうツールだけど、ソースからクラス図作成もできるので便利よ
URLリンク(jude.change-vision.com)

ちなみに ShedcleOfClasses じゃなくて ScheduleOfClasses ね

669:デフォルトの名無しさん
08/06/28 13:56:52
☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ毎日新聞社による日本人女性への誹謗中傷☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ

・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する

※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです

◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
 URLリンク(www9.atwiki.jp)
◆毎日新聞問題の情報集積wiki
 URLリンク(www8.atwiki.jp)

つまり日本国民は
URLリンク(www.vipper.net)

670:デフォルトの名無しさん
08/06/28 17:55:22
>>661
秒単位だとどうしてもソフトを間に挟むしかない
MT4などにDllフックするか優良サービスを得るか
URLリンク(www.dailyfx.com)
で動いてるアプレットからデータを取得するのが無難

671:デフォルトの名無しさん
08/06/28 18:03:12
てか
前に答えてあったな

672:デフォルトの名無しさん
08/06/28 18:13:48
670訂正
○有料
×優良
だね

673:デフォルトの名無しさん
08/06/28 21:11:44
mysqlで100mbのデータをソートしたいのですが
ResultSetのインスタンスを所得した時点でメモリ不足になりました

また、ヒープのサイズを512MBに設定し、
100mbのCSVをCollectionsのsortメゾットでsortしたのですが
これもまたメモリ不足になってしまいました。

大量データをソートする場合どのような手段をとればいいのでしょうか



674:デフォルトの名無しさん
08/06/28 22:36:31
マージソートの要領で、データ全体をメモリに入るサイズに分割して個別にソートし、最後にマージする

675:デフォルトの名無しさん
08/06/28 22:38:31
ゲームプログラミングで一般的にルールを破った場合というのは例外を投げ、それを対処すべきでしょうか?
それとも、毎度ルールに沿っているかチェックして対処すべきでしょうか?

676:デフォルトの名無しさん
08/06/28 22:39:45
入力された数字が一桁なら先頭に0をつけたすプログラムを書きたいのですが、
どうすればいいでしょうか・・・。
たとえば
6→06
としたいのです。
初歩的な質問過ぎてすいません。

677:デフォルトの名無しさん
08/06/28 22:44:06
int num;
...
String numtext = String.format("%02d",num);

678:デフォルトの名無しさん
08/06/28 23:27:15
URLリンク(www.objectstart.com)
にある下から2番目のClick here to access a
Zip file containing the Java 1.5.x version
of source code for the second edition of BJO.
(This version of source code will not compile
with Java 1.4.x or earlier compilers.)
のファイルにあるCh14のCourse Person Professor
SchedcleOfClasses Section
Student Transcript TranscripEntry
のクラス図を教えてください

679:デフォルトの名無しさん
08/06/28 23:53:53
javaでブラウザを作ってみたいのですが
SWTを使わずにGeckoエンジンを使った表示の方法はないでしょうか?

680:デフォルトの名無しさん
08/06/28 23:53:57
プロンプトでパラメータから年・月を受け取り、その「前月」「当月」「次月」の3ヶ月をコンソールに
出力するカレンダーにするにはどうしたらいいですか?
(要するに、2008、5と入力したら、4月、5月、6月の3か月分を出力する)

条件として、
・パラメータチェックメソッドを実装すること
ただし、同メソッド内にtry/catch句を記述してはいけない。
 (自前で数値チェックを実装する)

・mainメソッドはControllerとしてのみ使用すること。
(実際の作成/出力処理は別メソッドに実装すること)

助けてもらえたら幸いです、みなさんお願いします:;

681:デフォルトの名無しさん
08/06/29 00:02:03
>>679
Java Mozilla Html Parser

682:デフォルトの名無しさん
08/06/29 00:03:09
なんか最近勘違い君が多いけど、ここは宿題スレじゃないんだぜ

>どうしたらいいですか?

なんて曖昧な質問には、

プログラムしたらいいのでは?

としか答えようがないでしょ?

せめて、あたかも宿題じゃないかのようにぼかす配慮をした上で
どういうコードを書いたらどういうエラーがでた、位は書こうぜ

683:デフォルトの名無しさん
08/06/29 00:16:34
680です。
すいませんでした、ご指摘のとおり宿題スレに行きますね。

684:デフォルトの名無しさん
08/06/29 00:20:27

if(arg[0].equals("2008") && arg[1].equals("5")){
    System.out.println("2008年4月、2008年5月、2008年6月");
}else{
    System.out.println("自分でカレンダー見て");
}


685:679
08/06/29 00:24:20
>>681
解答ありがとうございます。
しかしパーサーじゃなくてレンダリングの方法をお願いしたかったのですが。。
XULRunnerやJavaXPCOMを見ていたのですが
SwingやAWTはなにやら無理なようなので他に方法はないでしょうか

686:デフォルトの名無しさん
08/06/29 00:40:36
URLリンク(java.sun.com)
J2SE SDK のダウンロードができないんです
Archiveのリンクも開けません
何故でしょうか?

687:デフォルトの名無しさん
08/06/29 00:52:04
>>679
これは?
URLリンク(jrex.mozdev.org)

688:デフォルトの名無しさん
08/06/29 00:53:30
>>673
100MB(合計だよね?)のデータを読み込めて、同程度の作業領域を確保出来るだけのメモリがあるんだから、
適当にin-placeなソートでもすればいいと思うよ

お勧めは、multikey quicksort, msd/lsd radix sort, bucket sortあたり
どのソートアルゴリズムを利用すべきかは、データ構造によるところが大きいので適宜選択のこと

689:デフォルトの名無しさん
08/06/29 00:57:03
>>682
話に加われるだけのレベルをつけてからおいで

690:デフォルトの名無しさん
08/06/29 01:15:20
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから

691:デフォルトの名無しさん
08/06/29 01:22:41
>>689
あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。


692:デフォルトの名無しさん
08/06/29 01:48:08
>>691
偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww

693:デフォルトの名無しさん
08/06/29 01:55:52
>>692
ねーよ

694:デフォルトの名無しさん
08/06/29 01:57:52
int型のポインタを関数の引数に渡して、引数に、なんか値を戻してやる、
・・・って感じのこと、javaは、できないのか?

695:デフォルトの名無しさん
08/06/29 02:00:44
最近のJavaって終末感漂ってるよね
10年前の輝きは何だったんだろうね
新しい言語の説明ってどれもJavaの悪い部分との比較だったりするし
Cみたいに恒常的に長生きする言語でもないし

696:デフォルトの名無しさん
08/06/29 02:06:37
>>695
今、一番輝いてる言語ってなに?

697:デフォルトの名無しさん
08/06/29 02:07:00
>>695
他のツールが生き残らなかったから、javaと比較するしかないって?
それ程の勢力じゃないだろう。

698:デフォルトの名無しさん
08/06/29 02:07:52
>>673
ResultSet.TYPE_SCROLL_INSENSITIVE や ResultSet.TYPE_SCROLL_SENSITIVE を指定してないか?
それ、インメモリで処理するからメモリを馬鹿食いするはず。
ResultSet.TYPE_FORWARD_ONLY で解決しない?

699:デフォルトの名無しさん
08/06/29 02:09:00
>>686
よくわからんが、英語版の画面に切り替えれば、1.4.2_17 ならダウンロードできたぞ。

700:デフォルトの名無しさん
08/06/29 02:09:23
>>694
できない。どうしてもやりたいなら、クラスに包んで渡してやる必要がある

701:デフォルトの名無しさん
08/06/29 02:12:38
>>699
ありがとうございます。
目当てのバージョンをダウンロードできました。


702:デフォルトの名無しさん
08/06/29 02:16:18
>>694
void callee(int[] x) { x[0] = 100; }
void caller() { int[] x = new int[1]; callee(x); System.out.println(x[0]); }
滅多にこんなことしないけどなー。// 適切にクラス設計すればまず出番がない。全くないとは言わんが。

703:デフォルトの名無しさん
08/06/29 08:56:56
691 名前: デフォルトの名無しさん [sage] 投稿日: 2008/06/29(日) 01:22:41
>>689
あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。

692 名前: デフォルトの名無しさん 投稿日: 2008/06/29(日) 01:48:08
>>691
偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww


★「操れる」は「ら抜き言葉」じゃないだろ。
★「食べれる」なら「ら抜き言葉」だから間違ってるが、「操れる」は正しい日本語だよ
★「操れる」=操ることができる
★「操られる」=誰かが自分を操っている


704:デフォルトの名無しさん
08/06/29 09:13:07
しつけえ

705:デフォルトの名無しさん
08/06/29 14:49:55
超初心者で申しあけございませんが、
画像を複数枚表示させたら画像がちらつきます。
repain();でもちらつきます。
どのワードを打ったら常にはり絵でいられるでしょうか?

マルチですけど応答がないのでこちらに質問します。

706:r545
08/06/29 15:21:55
超初心者ですが、質問があります。

Cで言う構造体は、Javaではどのように定義すれば良いですか?以下のやつだと
どうなるか教えてください。

typedef struct cell { // セル構造体
char *key ; // 格納されたキー
int next ; // 次のセル(同族のキー)
} CELL;

 typedef struct bucket { // バケット構造体
int Bdepth ; // バケットのビット長
int nkeys ; // バケットに格納されているキーの個数
CELL cell[BSIZE] ; // キーを格納するハッシュテーブル
} BUCKET;

 typedef struct directory { // ディレクトリー構造体
BUCKET *ref ; // バケットへのポインタ
} DIRECTORY;



707:デフォルトの名無しさん
08/06/29 15:31:52
>>706
class Cell {
 String key;
 int next;
}
class Bucket {
 int Bdepth;
 int nkeys;
 Cell[] cell = new Cell[BSIZE];
}
class Dictionary {
 Bucket bucket;
}


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch