[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/02 08:12 / Filesize : 246 KB / Number-of Response : 963
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド113【大歓迎】



1 名前:デフォルトの名無しさん [2008/03/01(土) 18:16:51 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド112【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1202467704/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。

次スレは>>980あたりで。

331 名前:デフォルトの名無しさん [2008/03/09(日) 17:52:45 ]
java.lang.*;
はimportしなくても初めからされているのはなぜですか?
importするときはどんなときですか?
String s="うんこ"
みたいなふうなようなことを自作するにはどうやりますか?
おねがいします。

332 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:56:21 ]
>はimportしなくても初めからされているのはなぜですか? 
その方がべんりだから
>importするときはどんなときですか? 
java.lang以外のとき
>みたいなふうなようなことを自作するにはどうやりますか?
できません

333 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:59:50 ]
>>332
ありがとうございました。
最終結論としてjava.langをimportするときはありえないという理解で
よろしいでしょうか?

334 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:43:12 ]
書いてもいいけど無駄ではある。
どのクラスを使っているか明示するために*なしで1個1個のjava.lang以下の
クラスをインポート宣言する流儀はありえる。


335 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:45:31 ]
インスタンス化するときの、
フィールドを定数で初期化する方法として、

クラスの記述のときに、フィールド宣言と同時に初期化の値を記述してしまう方法と、

コンストラクタで実行させる、
方法をとれるみたいですが、
1の方法はとらない方がいい、といった考え方はありますか?
(1の後に2が実行されるようで、1を2で上書きできることは確認してみました。)

どのコンストラクタでも同じことをしたいならば、便利だと思ったのですが、
初期化はコンストラクタでやるべきかなとも、思いました。
こういった考え方をいろいろ教えているサイトってありませんか?

336 名前:デフォルトの名無しさん [2008/03/09(日) 18:57:18 ]
テストについて質問です。

例えば
Class A{
A(){
methodA();
}
public methodA(){};
}
のようなクラスをテストするとします。
methodAをテストする前にインスタンスが作られますが、
そこではテストしていないmethodAが発動します。
この問題はどうすれば解決しますか?

337 名前:デフォルトの名無しさん [2008/03/09(日) 19:11:58 ]
java sound apiがダウンロードするばしょが見つかりません
日本語マニュアルつきでおねがいします。

338 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:44:26 ]
>>336
Javaでおk

339 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:48:32 ]
>335
ケースバイケース
可読性を考えるとフィールドの宣言と同時に初期化する方がいいかもしれない
また、初期化忘れも気づきやすい

コンストラクタはあくまでインスタンスの初期化の最後のプロセスと考えるといいかもしれない。
他にも(非staticな)イニシャライザで初期化する方法もある
private int num;
{
  num = 10;
}
のような感じ
これはほとんど使わないけど



340 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 19:49:21 ]
>336
methodAがpublicである事がバグの一種

341 名前:デフォルトの名無しさん [2008/03/09(日) 20:05:25 ]
java.sun.com/j2se/1.5.0/ja/docs/ja/guide/sound/programmer_guide/contents.html
を圧縮形式でダウンロードできるホームページをおしえてください

342 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 20:12:15 ]
>>331
おまえには
import *;
が似合ってる

343 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 20:29:18 ]
>>340
privateでもいいですけど。
では解決策があるんですか?

344 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:06:23 ]
java soundってコアに入ってから関連ドキュメントもJDKに含まれなかったか?

345 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:20:41 ]
>>342
Javaのパッケージを理解してから出直してこい

346 名前:デフォルトの名無しさん [2008/03/09(日) 22:00:07 ]
72.5.124.55/javase/ja/6/docs/ja/
のホームページと同じ、avasdkがダウンロードできるところに
あるダウンロードできるドキュメントのページが、vistaのIEで開くと空白になって
何もみえないんですけど。
解決方法おしえてください。

347 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 22:06:58 ]
>>341
ttp://java.sun.com/j2se/1.5.0/ja/download.html
[J2SE 5.0 ドキュメント] -> [ダウンロード] (一式全部有るけど)

>>343
何のためにテストを行うのか。

インスタンスを生成した後、一度も呼ばれていないメソッドを呼ぶテスト?
何が起きても起こり得ない状況をテストするの?
それらはテストをする価値があるの?

348 名前:342 mailto:sage [2008/03/09(日) 22:27:13 ]
>345
いいですけどって何様?

コンストラクタで呼ばれるメソッドは原則としてコンストラクタの一部
言い換えれば初期化処理の一部であって、インスタンスの生成が完了する前に実行される特殊なメソッド
これをprivate以外にするとオーバーライド時など予期せぬ問題を生じる可能性がある

で、テストする内容はインスタンスの生成で何か問題あるのか?
そのメソッドが単体でテストしなければならないほどのロジックを含むというならば、別クラスに抽出するべきだろう

349 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 22:39:06 ]
import *;
import *;
import *;

・・・プ



350 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:49:26 ]
>>348
オーバーライドされて困るからprivateにするってどんだけー
それなら普通finalメソッドにするもんじゃないのか?
import *;といい少しjavaの復習をしたほうがいいかと。

351 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:54:33 ]
swingのJTabbedPaneについて教えてください。

JTabbedPaneのインスタンスに、addTabすると、
タブが追加されます。タブのインデックス(題名がついているところ)に、
MouseListenerを設置して、クリックを検出したいのですが、
できません。
どなたか、私に助言くださいませんか。

352 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:26:04 ]
>>351
タブ選択は ChangeListener で検出します。
マウスの位置はどうなんだろう…

353 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:25:51 ]
>>350
いや、コンストラクタから呼ばれるメソッドはprivateにするのは常識だと思うぞ
finalでもいいがコンストラクタに関してもう少し勉強した方がいいのはお前かと

354 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:52:08 ]
>>351
JTabbedPaneにMouseListenerをaddして、
そのリスナのmouseClickedメソッドでJTabbedPane#indexAtLocation(int,int)に、
MouseEventのx,y座標を渡せば、
タブ部分をクリックした時は選択したタブに合わせて0以上の値が、
タブ部分以外の場合は-1が返ることで区別ができると思う。

355 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:56:37 ]
350の言うことなんざどうでもいいよ
バカはバカを呼ぶっていうしな
それよりimport *;についてkwsk

356 名前:デフォルトの名無しさん [2008/03/10(月) 09:23:12 ]
オートボクシングを自分でつくることはできますか?

357 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 09:26:53 ]
eclipseで自動で色々なメソッドのjunitテストを作って
勝手に作られたテストメソッドを削除したり増やしたりしても
もんだいありませんか?

358 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 10:02:04 ]
勝手に作って勝手に削除しても何の問題もないだろ

359 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 10:07:18 ]
>>356
無理。コンパイラの自動補完機能です。



360 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 10:16:59 ]
>>356
つられて見るが、何をボクシングしたいんだ?

361 名前:デフォルトの名無しさん [2008/03/10(月) 11:20:01 ]
javaで2進数を表すにはどうしたらいいですか?

362 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:22:24 ]
表すの意味をはっきり

363 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:23:16 ]
無理っす。
int binNum = Integer.parseInt("10110001",2);
これで我慢だー

364 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 11:28:05 ]
binNum
ビンナム

ジョンイルみたいなノリでワロス

365 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 15:00:51 ]
>>361
2進数表記の整数リテラルを所望ってことならJavaには無い
8、10、16進数表記しかない

366 名前:デフォルトの名無しさん [2008/03/10(月) 16:52:14 ]
Javaの格言という本を買ってきました。
読んだ事ある人いますか?

367 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 17:10:03 ]
それを尋ねることの意味が分からん。
せっかく買ってきたのなら読んで自分で評価、判断すればいい。

368 名前:デフォルトの名無しさん [2008/03/10(月) 17:42:04 ]
Javaで音声認識やってる人居る?

Java SAPIってのが一応用意されてるみたいんなんだけど、
これって日本語対応してますか?

369 名前:デフォルトの名無しさん [2008/03/10(月) 18:50:57 ]
質問です。
他言語(例えばC++)等で作成したプログラムを、Javaのソース内で呼び出して利用する事は可能ですか?



370 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 18:56:05 ]
>>369
JNIでぐぐるといいよ

371 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 19:14:36 ]
>>369
可能だけど呼び出しのオーバヘッドがあるから速度的な恩恵は少ないよ
今はネイティブのCと比べても遜色がないくらいJavaVMのパフォーマンスはいい

372 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 19:26:02 ]
なんで唐突に速度的な理由が前提になってんだ。

373 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 19:46:01 ]
実はRuntime#execやProcessBuilder#startで済む問題だったというオチ

374 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 21:18:59 ]
import *;
についての解説マダー(AA略

375 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:17:25 ]
>>374
import *;
public class Sample{
public static void main(String[] args) {
}
}
これコンパイルしてみれば分かるだろ

376 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 23:20:28 ]
>>374
お前バカだな
阿部さんのケツをインポートするんだよ
そうするとお前もイイ男になるぞ

377 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:41:17 ]
HDDの容量を取得したいのですがどうすればよいのでしょうか?

JAVAのAPIを探してみたのですが,わからなかったです.

378 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 00:46:44 ]
>>377
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/io/File.html#getTotalSpace()

379 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 07:40:54 ]
>375
先生!コンパイルに失敗します><
結局342は何が言いたかったのか分かりません><



380 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:20:41 ]
>>379
>>376

381 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 09:43:03 ]
ケツにインサートならまだわかるがケツをインポートはわからん

382 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 11:42:50 ]
import *;
で全部インポートできると思っていたんだろ、多分
可哀想な人なんだよ、多分

383 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 12:46:51 ]
>>379
C言語とかを勉強するとコンパイル時にエラーが出てくれるありがたみがよく分かるから一度勉強してみるのもいいかも。

384 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 13:32:27 ]
>>383も可哀想な人でおk?

>>342
>>345
>>348
>>349
>>355
>>374
>>375
>>379
>>382

385 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 17:33:10 ]
からかわれてるとも知らずかわいい子。ウフッ。

386 名前:デフォルトの名無しさん [2008/03/11(火) 17:59:24 ]
jmockのコードでみたんですが
context.checking(new Expectations() {{
 ごにょごにょ
}});
↑の2重波括弧ってどういう意味ですか?

387 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 18:03:38 ]
>>386
インスタンスイニシャライザ

388 名前:386 mailto:sage [2008/03/11(火) 18:20:03 ]
>>387
ありがとうございます。ぐぐってみます。

389 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:01:16 ]
コンストラクタ書けないからね
でも書き方は悪いわ
context.checking(new Expectations() {
  {
 // 初期化処理
  }
});
とでも書けば解りやすいのに



390 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:18:25 ]
結構良く見かける書き方だけどなー

391 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 20:59:23 ]
staticイニシャライザはよく見るけどインスタンスイニシャライザって内部クラスでしか見ないんだけど。

392 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:30:57 ]
Vector.insertElementAt
は、Vectorの要素数が多いほど遅くなるのでしょうか?

実験してみたところ
要素数が増えるほど一回のinsertにかかる時間が増えているようなのですが...

Vectorの初期化のときに、 new Vector(1000000,1000000) などやっても少しぐらいしか改善しません。

insertElementAtで挿入する番号は先頭から終端までほぼ平均的に選ばれるようなプログラムです。

この
insert にかかる時間を増加させない方法はないでしょうか?



393 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:42:52 ]
Vector(とArrayList)は中に配列持ってるだけだから、
途中に挿入すると後ろの要素を全部1つずつずらす必要がある。
これはコンストラクタで大きなキャパを指定しても同じこと。

LinkedListなら要素を数珠繋ぎで持っているため、途中に挿入する場合も
数珠繋ぎの付け替えだけで出来る。しかし、挿入のたびに挿入位置を毎回
先頭からたどる必要がある。一応試してみたらどうだろうか。

Vectorは古いっちゃ古いし。

番号が疎なら整数をキーにしたMapを使うほうがいいかもしれない。


394 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:44:32 ]
>>392
> 要素数が増えるほど一回のinsertにかかる時間が増えているようなのですが...
insert する要素以降を全部一個ずらしてくから
要素数が増えるほど時間がかかるのは当然。

LinkedList#listIterator(int) 使って要素追加してくとか、
ArrayList#addAll(int, Collection) で一気に追加するとか、
いっその事 Map<Integer, E> してみるとか。

395 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:55:52 ]
そもそも1,000,000レコードをオンメモリで扱うのもどうかと思うが・・・

396 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:41:15 ]
>>395
1レコード1KBでも1GBじゃん。32bitのメモリ空間埋めるのに、
1万円でおつりが出る時代なんだから、気にしないと言うのも
それはそれでアリかとw

397 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:57:28 ]
容量の問題じゃなく速度の話だとw

398 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 00:50:48 ]
それもそうだが、大量データの処理は専用のソフトウェアに任せろという意味だろ
Oracleのオンメモリストレージ使って100万件オンメモリとかならばOKな時代だがJavaのヒープでそれをやるってのはアホ

399 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 01:02:31 ]
ヒープ領域使い果たしてJVMがクラッシュしたら速度とか言ってる場合じゃないしなw
5万ぐらいなら余裕だが100万レコードともなるとまず逝きますw



400 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 08:36:07 ]
>>384
C言語は、javaに比べれば投げっぱなし感が強いんじゃない?

401 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:23:09 ]
>>400
Rubyとかを勉強すると〜なら分かるんだけどな。
なんでC言語を持ち出すのかが全く分からない。

402 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:28:36 ]
それ以前に投げっぱなしという表現が意味不明

403 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 12:40:23 ]
Rubyは麻薬だな。
でも遅すぎて死ぬ。

404 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 15:36:21 ]
ここってJava3Dの話もしていい?

405 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 17:18:46 ]
スレタイが初質だから初質っぽいことならいいんだろうけどJava3D使ってる人居るの?
俺はJOGL派なんだけど。

406 名前:404 mailto:sage [2008/03/12(水) 18:16:38 ]
今ちょうど両方つまみぐいしてる所で、Java3Dメインにしようかと検討中。
JOGLの頂点配列並な性能はあるし上位なAPIあるから楽かなと。

質問は質問文まとめてる内に自己解決した、ごめん。

407 名前:デフォルトの名無しさん [2008/03/13(木) 01:35:19 ]
  |::   \おい、ゴルァ 出て来い!!        ドッカン  ゴガギーン
 :||::      ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ _m ドッカン      ☆
 :||::   ___     ======) ))_____  /        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 :||  |      |      | ̄.ミ∧_∧ | | ────┐||::    ∧_∧ < おらっ!>>1出てこい!!
 :||  |ぁゎゎ. |      |_..(   ) | | .___ │||::   (´Д` )  \___________
 :||  |Д`);  |      |_「 ⌒ ̄  ,|.. |_...   ..||||::  / 「    \
 :||  |⊂ノ;   |      |_|    ,/  ̄ .  ̄ ̄ ̄ │||::  | |    /\ \
 :||:   ̄ ̄ ̄         ̄|    .| :||│     ;,   │||; へ//|  |  | . |
 :||::   :;  ; ,,         :|    :.| ||│       (\/,.へ \|  |  (r )
 :||::   :;  冫、. .      |   .i  .|:||◎ニニニニ\/  \    |   ̄
 :||.:,,'';      ` ..  . ::  . |  ∧. |:||│::::/    │||::.:.   .Y ./
 :||:;;;:         :      |  | | |.||│ 冫、 ;;;,,│||:;;;.   | .|
 :||:;;;:             / /  / /::||│ `  .,;;;,,.│||:;;;.   | .|
 :||;::: #   ..:        ./ / ./ ./ ||│|三三三|. │||;;:..::   | .|
 :||;:::     #. ..:  :::::: (_) .(_).ミ||│        │||;;;k、,,,|,(_)
   ̄ ̄ ̄ ̄ ̄: ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄     
:::;三三;;;;;三三:::;;;;;;; :::::;;;;;::;;;;;;;;;;::::;; :::::;;;;;:::::;;;;;;;;;;::::;; :::::;;;;;:::;;;;;;;;;;::::;;;;;::三三三


408 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 10:12:53 ]
Derbyを組み込みモードで使ってるんだけど、
動作中にJavaの外からDBのテーブルの状態を調べる方法ってないの?

409 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 13:11:37 ]
VC++でDirectXつかって高度なお絵かきができますが、
Javaでも出来ますか?

たとえばコサックスみたいなやたら人がでてくる戦国シミュレーションゲーム作れます?



410 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 13:30:38 ]
>409
やろうと思えば出来るんじゃね?

DirectXのパフォーマンスと比べれば程遠いモノが出来るが。

411 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 13:41:38 ]
JMonkeyEngineってのがある

412 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 14:42:43 ]
クラスの停止について質問です。

今ゲームを作っていて、オープニング画面とゲーム画面の2つをつくりました。
まずオープニングをJFrameに表示、その後キーボード入力でオープニング画面を消してから
ゲーム画面を表示するという構想で進めてます。

そこでオープニング画面のクラスを停止させたいのですが、やり方がわかりませんでした。
そもそも一度実行したクラスを停止させること自体無理なのでしょうか?


413 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 14:44:28 ]
クラスを停止?何言ってるんだ

414 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 14:47:12 ]
クラスの停止とか、色々と勘違いしていると思うが・・・

後で再描画するならばsetVisible(false)で非表示にする
二度と表示しないならばdispose() で破棄する


415 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 14:51:44 ]
JPanelを2つ作って、片方を表示させた後、同じ場所にもう一方のJPanelをすり替えて表示させたいです。
今表示しているJPanelを消す=JPanelを継承しているクラスを停止させるという表現しかできませんでした。


416 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 14:53:14 ]
JFrame の GUI に今あるアプレットが使えると思ってはめ込んでみたんだけど
どうもドロップダウンしたメニューがアプレットの後ろに描画されてしまう様子。
アプレットは JRootPane を使っているはずだがこれが原因?

417 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 14:53:42 ]
>>414
ありがとうございます。
さっそくやってみます。

418 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 14:57:46 ]
それをJPanelの交換により行うってのはどうなんだろう。
JPanelを継承した、例えばExJPanelに画面の状態を表すオブジェクトを保持させてればいいんじゃね?

public final class ExJPanel extends JPanel {
  private Mode mode = new StartMode();
  public void paint(Graphics g) {
    mode.paint(g);
    mode = mode.nextMode();
  }
}

public interface Mode {
  void paint(Graphics g);
  Mode nextMode();
}

みたいな

419 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 15:16:03 ]
>>412
CardLayout使えば?



420 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 15:24:18 ]
>>418
JPanelの継承やってみます。ありがとうございます。

>>419
cardLayoutも調べているうちに見つけたのですが、脳みそが足らないばかりに
うまくいきませんでした。教えて下さったのにすいません。

421 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 15:29:18 ]
まあ、Swingは最初は覚えること多いから仕方ない.
ゲームのオープニング画面みたいな起動画面であれば、すぐに表示するべきだから、別JPanelでいいと思う。
画面を出している間に、ゲーム用のコンポーネントを裏側で作るってのは正しいしね。
俺は乗せ換えでいいと思うよ。

1.JFrameにメインのコンポーネントを乗せる。
2.メインコンポーネントに、タイトル画面コンポーネントを設定して描画
3. スタートボタンなどが押されたらメインフレームからタイトルコンポーネントを抜いて差し替える


422 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 15:48:44 ]
SplashScreen とは違うことをやりたいの?

423 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 15:49:48 ]
ゲームのオープニング画面はスプラッシュスクリーンとは別物だろ

424 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 15:57:55 ]
JPanel p = (JPanel)getContentPane();
JPanel p1, p2;
p.add(p1);
……
p.setVisible(false);
p.remove(p1);
p.add(p2);
p.setVisible(true);
俺なんか、全部交換。

425 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 16:11:55 ]
>>412ですが無事完成しました。
みなさんアドバイス本当にありがとうございました。

426 名前:416 mailto:sage [2008/03/13(木) 16:16:16 ]
JApplet の内容を JPanel に分離してそっちを JFrame と共有するようにしたら
メニューが裏に廻らなくなった。マジかよ。

427 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 16:37:00 ]
>>426
JApplet自身は重量コンポーネントだからじゃない?

428 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 17:06:37 ]
>422
Splashにボタンとかつけられたっけ?
自前でWindowを使って作るならばできるだろうけど

429 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 22:45:03 ]
あるクラスに含まれるクラスを再帰的に抽出する方法ってあるでしょうか?
擬似コードを書くと、

Target hoge=new Target();
Class[] classes;
classes=hoge.getClass().***.getAllClasses();

みたいな感じのことができるといいなあと思っているのですが。



430 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:09:23 ]
含まれるの意味が解らん
依存クラス数なら適当なMetrics測定ツール使えばいい

431 名前:429 mailto:sage [2008/03/13(木) 23:42:26 ]
>>430
別の言い方をすると、あるクラスがimportしているクラスを
再帰的に取得したいといことです。
(あるクラスがimportしているクラス、そのクラスの
 import対象のクラスがそれぞれimportしているクラス…というように、
 依存関係のクラスオブジェクトをすべて取得する)

いっそclassファイルをバイト列のイメージにして文字列から解析した方が早いでしょうか?

432 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:43:42 ]
importはincludeじゃないぞ……


433 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:54:37 ]
>>431
importと依存は関係ないぞ。
java.lang.Classにはそういう情報を得る手段はないから、バイトコード
を解析するしかないんじゃないかねー。


434 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 23:54:50 ]
MyClassLoaderで何とかならないかね

435 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 00:52:46 ]
ダイナミックプロキシを使ってインスタンス化したオブジェクトのクラス名になる $1 とか $2 とか、
この番号に何か名前って付いてますか?

436 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:08:15 ]
>431
で、解析して何がしたいんだ?

437 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 08:33:31 ]
アノテーションの引数にオブジェクトを指定できないのは何でですか?
@Foo(new Bar()) とかしたいんですけど。

438 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:05:14 ]
そういう仕様だから

439 名前:デフォルトの名無しさん [2008/03/14(金) 14:10:18 ]
fileクラスのrenameToで成功してもgetNameで名前が変わってないんですがどうしてでしょうか



440 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 14:15:02 ]
>>439
細かいけど、Fileな

javadocよく読めば分かると思うけど、Fileはimmutableだから

441 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 14:15:16 ]
>>439
java.io.File はファイルそのものを表現してるんじゃなくてファイル名を表現してるから、
renameTo でファイルそのものの名前が変わっても影響を受けない。

442 名前:デフォルトの名無しさん [2008/03/14(金) 14:26:29 ]
>>440
>>441

ありがとうございます。もっと調べてみます。


443 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:29:04 ]
>>410
>>411

そうか。マルチプラットフォームではああいうゲームは無理か。
ところで、JavaのアプリとCのアプリで共有メモリーってさすがに無理だよね。

データをプロセス間で共有する場合、どういうことするんですか?

444 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:35:10 ]
つDB

445 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 21:59:31 ]
つパイプ

446 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:01:16 ]
つソケット

447 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:06:56 ]
>>443
ファイルを介してファイルマッピングという形でなら、たぶんできるんじゃない?
使い物になるかどうかは微妙かもしれないけど

448 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:18:48 ]
>>443
lab.moyo.biz/wiki/index.php?Java%2F%E8%A8%AD%E8%A8%88%2F%E4%BB%96%E8%A8%80%E8%AA%9E%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9

449 名前:デフォルトの名無しさん [2008/03/15(土) 09:11:19 ]
プロトコルハンドラって何に使うものなんですか?
よろしくお願いします。



450 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:39:52 ]
ttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-13,GGLD:ja&q=%e3%83%97%e3%83%ad%e3%83%88%e3%82%b3%e3%83%ab%e3%83%8f%e3%83%b3%e3%83%89%e3%83%a9

451 名前:デフォルトの名無しさん [2008/03/15(土) 09:51:11 ]
JFileChooserで、
・ディレクトリ選択
・でも、普通のファイルも見れる
ようにしたいんですけどどうすればいいですかね?

ディレクトリ選択するようにすると、普通のファイルは見えなくなるし、
普通のファイル見えるようにするとディレクトリ選択できなくなるんですけど

452 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:59:35 ]
ディレクトリ選択でファイルを見せる意味が分からん

453 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 10:03:46 ]
ファイルが見えるとなんのディレクトリかよくわかるじゃん

454 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 10:07:05 ]
試して無いけど、approveSelectionメソッドをオーバーライドすればいけるんじゃね?
setFileSelectionModeでFILES_AND_DIRECTORIESを指定してさ。

455 名前:デフォルトの名無しさん [2008/03/15(土) 10:13:37 ]
此処で良いのか疑問ですが質問です。

OS:WindowsXP IE6/Firefox/2.0.0.12
Sun Java Standerd Edition 6
バージョン6 アップデート5 (ビルド1.6.0_06-b13)

先日アップデートした処、Javaの起動で「Javaコンソール」を表示しないと実行されません。
コンソールを非表示でJavaの実行は無理なのでしょうか?
どうか教えて下さい。

456 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 10:15:05 ]
うん、できた。

public class JDirectoryChooser extends JFileChooser {
 @Override public void approveSelection() {
  if (getSelectedFile().isFile()) return;
  super.approveSelection();
 }
 public static void main(String[] args) {
  JFileChooser c = new JDirectoryChooser();
  c.showOpenDialog(null);
 }
}

457 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 10:57:35 ]
u5ってu4のセキュリティフィックスだよね。
そろそろ入れようと思ってたけどなんか色々問題あるみたいだね。

458 名前:451 [2008/03/15(土) 11:39:37 ]
>>456
c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
を一行追加してみても、だめでした。

さらに
public boolean accept(File f){return true;}
を追加してみてもだめでした。

459 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:44:41 ]
ちゃんと>>456の書き込み読んでる?



460 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:37:06 ]
内部クラスの中に内部クラスを作ったりって普通にしますか?
経験も積んでないのですが少し気持ちが悪い気がして質問しました。

461 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:59:26 ]
全くしない訳ではないが普通しない


462 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:00:19 ]
forの中にforを書いたりって普通にしますか?
のようなものかと
2段くらいはすることもあるけど、頻繁には使わない
3段以上は滅多にやらない
人にもよるかも

463 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:05:29 ]
必要があれば使うみたいな
x,y,z,tなんて4次元だしw

464 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:17:38 ]
そうでしたか。やはり熟練者の方の意見は勉強になります。
ありがとうございました。

465 名前:デフォルトの名無しさん [2008/03/15(土) 15:32:42 ]
import java.io.*;
class hoge{
public static void main(String args[]){
if(args.length <= 0){
System.out.println("specify the file name correctly");
System.exit(1);
}
try{
int i;
for(i = 0; i < args.length; i++){
BufferedReader br = new BufferedReader(new FileReader(args[i]));
String str;
while((str = br.readLine()) != null){
System.out.println(str);
}
}
br.close();
}
catch(IOException e){
System.out.println("input/output error");
}
}
}

コマンドライン引数からファイルを受け取って表示するプログラムですが、
br.close()の行で "シンボルを解決できない" というエラーが出ます。なぜエラーが出るのかわかりません。
br.close()を削除すれば実行できるのですが・・・。

466 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 15:38:49 ]
>>465
br.close(); の前の閉じ括弧 '}' が一個多い。
それで br がスコープから外れて「シンボルを解決できない」といわれてる。

467 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 15:39:21 ]
スコープを勉強しろ

468 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 15:51:21 ]
{}の組み合わせは力ずくでは良くないがな

469 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 15:54:06 ]
メモ帳でもつかって無い限りこんな間違いしないと思うんだけどな



470 名前:465 [2008/03/15(土) 16:20:48 ]
>465の質問者ですが
br.close()の 前の閉じ括弧を’ } ' を取り除いても エラーが出ます。
その閉じ括弧はfor文の閉じ括弧になっています。

閉じ括弧を除いた場合のエラーは
hoge.java:13: 'try' への 'catch' または 'finally' がありません。
hoge.java:27: 'catch' への 'try' がありません。
hoge.java:32: '}' がありません。
です。

471 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:22:21 ]
日本語も読めねーのかよw

472 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:47:25 ]
>>470
br.close(); の前の閉じ括弧を一つ取り除いた後、
br.close(); の後に一つ閉じ括弧つけろ。

473 名前:デフォルトの名無しさん [2008/03/15(土) 17:43:23 ]
環境 Windows xp, jdk 1.5
ポリシファイルで全部のファイルの読み込みを可能にしました。

swingアプレットを作ったのですが、
プロンプトからだと画像やボタンが表示できました。
しかしブラウザから起動するとボタン等は表示できますが
画像が表示できません。(読み込めていない様子)
どうしたらできるのでしょうか?
一応、ソースの怪しい所を貼り付けておきます。
import......
/*
<applet code="TimerTest2.class" width=500 height=250>
</applet>
*/
___javaソースの一部___
public class Test2 extends JApplet implements ActionListener{
  フィールドなので省略
public void init(){
icon0 = new ImageIcon("07.gif");

___起動させるhtmlファイル___
<html>
<head></head>
<body>
<p>
<APPLET code="Test2.class"width=500 height=250></APPLET>
</body>
</html>
_______________
htmlファイルは短いので全て載せました。


474 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:48:22 ]
>>473
HTMLに画像を読み込むコードが無いから。

475 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:54:21 ]
>>473
Javaコンソールからエラーの内容確認

476 名前:デフォルトの名無しさん [2008/03/15(土) 17:59:06 ]
自宅サーバ板のTomcatでwww鯖ってスレに質問したんですが、
なんか過疎ってるのでこちらに再掲します。

Debian etchでTomcat5.5使おうとしてるんですけど、

SEVERE: 設定記述子 test.xml を配備中のエラーです
org.apache.commons.logging.LogConfigurationException:
java.security.AccessControlException: access denied
(java.io.FilePermission /usr/share/tomcat5.5-webapps/test/WEB-INF/classes/logging.properties read)
(Caused by java.security.AccessControlException: access denied (java.io.FilePermission /usr/share/tomcat5.5-webapps/test/WEB-INF/classes/logging.properties read))

こんなエラーが出ます。
サンプルアプリは動いていて、自分で作ったやつがエラーになります。
パーミッションはサンプルと同じでrootのみに与えています。

そもそも、logging.propertiesというファイルはサンプルアプリになかったのですが、
classesに777でlogging.propertiesを作っても同じエラーが出ます。

どなたか解決策を教えてもらえないでしょうか?

477 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:12:29 ]
>>473
たぶんこうだ
new ImageIcon(getClass().getResource("07.gif"))

478 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:34:02 ]
>>476
その上位ディレクトリに x パーミッション付いてるのかよ。

# su tomcatuser -c "cd /usr/share/tomcat5.5-webapps/test/WEB-INF/classes"

479 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:44:13 ]
>>473
そもそも画像はどこ?



480 名前:デフォルトの名無しさん [2008/03/15(土) 18:53:59 ]
>>476
/var/cache/tomcat5.5/Catalina/localhost# lla /usr/share/tomcat5.5-webapps/test/WEB-INF/
合計 24
drwxr-xr-x 5 root root 4096 2008-03-15 17:43 .
drwxr-xr-x 3 root root 4096 2008-03-15 17:19 ..
drwxr-xr-x 2 root root 4096 2008-03-15 17:38 classes
drwxr-xr-x 2 root root 4096 2008-03-15 17:20 lib
drwxr-xr-x 3 root root 4096 2008-03-15 17:28 src
-rw-r--r-- 1 root root 637 2008-03-15 17:43 web.xml

となっています。

481 名前:465 [2008/03/15(土) 19:21:25 ]
465です。
解決しました。
ありがとう。

482 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:22:16 ]
>>476
policyファイルで弾かれてるんじゃない?Debian etchなら、
/etc/tomcat5.5/policy.d/の下に*.policyってファイルがあるから、
それ読んでほげほげしてみるといいかも。

483 名前:デフォルトの名無しさん [2008/03/15(土) 20:43:54 ]
476です。
>>477 さんのやり方で解決できました。
みなさん
親切にありがとうございました。


484 名前:デフォルトの名無しさん [2008/03/15(土) 21:14:50 ]
>>482
ありがとうございます。
04webappsの
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar"
の中に
permission java.io.FilePermission "<webアプリのpath>", "read";
を追加したところ、上記のエラーは消えました。

485 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:16:29 ]
04webappsじゃなくて04webapps.policyでした

486 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:58:16 ]
swingに関して質問させてください
JFrameのサイズを指定する際にまわりの枠を気にしないで済む様にInsetsを利用しています。
しかし、JMenuBarを追加すると、その分の幅はInsetsで考慮されていないようです。
JMenuBarの上下方向の幅を取得するにはどうすればよいのでしょうか?

あと、BufferStrategyを使いたいのですが、JPanelでは使えないんでしょうか?
よく、JavaのGUIの勉強をすると、JFrameの上にJPanelを張って、その上にさらに何かを張ってと階層状にするべきと見かけますが、BufferStrategyを使う場合はJFrame上にべた書きすべきでしょうか?

487 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:12:38 ]
>>486
中身のサイズに合わせてJFrameのサイズを決めたいならpackすればJFrameの方がそれに合わせてくれる。
packではだめなレイアウトマネージャを使っていたり、どうしても自分でフレームサイズを決めたいというのなら、
JFrame#getJMenuBar()でJMenuBarコンポーネントを得てgetSize().heightでメニューバーの高さを取得できる。
ただし、フレームが表示されてないと大きさは取れないので、ダミー的に表示してサイズ計算後setSizeで変更してやる。
JFrame f = ...
f.setVisible(true);
Dimension d = f.getJMenuBar().getSize();
Insets i = f.getInsets();
f.setSize(contentWidth + i.left + i.right, contentHeight + d.height + i.top + i.bottom);
みたいな感じで。

BufferStrategyを使いたいならjava.awt.Canvasをコンテントペインに乗っけてやれば大抵うまくいく。
swingコンポーネントにAWTコンポーネントを乗せるのは抵抗があるかもしれないけれど。

488 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:32:41 ]
幅の情報は要らないからgetSize().heightでなくgetHeight()で十分だった

489 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 03:26:29 ]
リアルタイムのゲームを作っているのですが、
数秒ごとにカクカク止まってしまいます。
ガベージコレクションのせいかと思ったのですが、
空きメモリのこぎりグラフとは無関係にカクカクします。
速いマシンだと全く気にならないレベルなのですが、
セレロン600だと耐えられないカクカクです。

どうしたらいいか分かる人いますか?



490 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 04:21:26 ]
プロファイルを取ってみればいいと思うよ

491 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 05:10:10 ]
Java のログ機能と Log4j とどっちがいいの?

492 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 05:22:46 ]
>>491
状況に応じて変わる。
lab.moyo.biz/recipes/java/logging/loggingvslog4j.xsp

493 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 06:30:51 ]
JRE 単体って入れたことないんだけど 6 で Java DB もバンドルされてる?

494 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:10:33 ]
練習サイトを見て勉強しているのですが
何故メインメソッドをできるだけ小さくして
簡単な作業でも個別にメソッドを作るのかがわかりません

ex)ttp://www.u-farm.jp/en/a001_04.html

495 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:36:08 ]
俺はこの前他人が作ったプログラムをいじる必要があったんだけど
そのプログラムのmainメソッドは1000行以上あって、読むのが大変だった。
そういう悲劇をなくすため。

496 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:40:22 ]
意味のある単位でプログラムを小さな部品に分解していくと、分かりやすいものになる。
こういう意識を普段からもっておいたほうがいいし、
入門用の短いプログラムでも意識するべき。


497 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:52:41 ]
どのくらいのレベルでメソッド化していけばよいのでしょうか
メインメソッドにはメソッド処理以外書かないぜくらいの勢いでしょうか・・・

498 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 08:55:27 ]
その時代の画面のスクロールで 2 ページが目安。

499 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 09:31:35 ]
メソッド名が無理なく考えられるような処理(上のリンクの場合だとdrawTriangle)
とかは、常に分けてもいいんじゃないかな。
上手い名前付けができない場合は、コードの長さと相談して分けたり分けなかったり




500 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 18:18:26 ]
複数のjarファイルからクラスを探してきて欲しい時に
・lib/extにjarファイルを置く
・-classpath引数で一つ一つ指定する
以外の方法はありますか?
javacならば-extdirsでjarの入ったフォルダを指定すれば
そのフォルダの中のすべてのjarを探してくれるのですが
javaにはextdirsのようなオプションがありません

501 名前:500 mailto:sage [2008/03/16(日) 18:22:42 ]
すいません、自己解決しました
java -Djava.ext.dirsでいけました

502 名前:デフォルトの名無しさん [2008/03/16(日) 20:31:24 ]
Javaダウンロードできないんだけど(笑)

503 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:46:48 ]
Javaでオーバーロードを行なった場合の「あいまい」と言われる、言われない条件というのを詳しく知りたいのですが
何か良い資料はないでしょうか?
例えば
class Hoge{}
class Hoge2 extends Hoge{}
class Hoge3 extends Hoge2{}
と定義して
test(new Hoge3(), new Hoge3());
と呼び出したとき、

void test(Hoge2 a, Hoge3 b){}
void test(Hoge a, Hoge3 b){}
問題なし

void test(Hoge2 a, Hoge3 b){}
void test(Hoge2 a, Hoge2 b){}
問題無し

void test(Hoge a, Hoge3 b){}
void test(Hoge2 a, Hoge2 b){}
あいまいエラー

となる基準がいまいちピンときません。

504 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:54:52 ]
続きです。

なんとなく (Hoge3, Hoge3)により近いものを探している雰囲気はあります。
ではと思い、
class Hoge4 extends Hoge3{}
test(new Hoge4(), new Hoge4());

void test(Hoge a, Hoge4 b){}
void test(Hoge3 a, Hoge3 b){}
これなら、Hoge4,Hoge4まで上は3ステップ。下は2ステップ。下が選ばれるはず。
と思いきやあいまいエラーでした。


505 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:58:36 ]
>>503
> void test(Hoge2 a, Hoge3 b){}
> void test(Hoge a, Hoge3 b){}
Hoge2 a は Hoge a に代入可能。 Hoge3 a は Hoge3 b に代入可能。
以上により、前者の引数は全て後者の引数に代入可能。
なので、前者は後者より特殊なメソッド(specific method)と言われる。
この特殊なメソッドが一つに決まる場合は、
それが最も特殊なメソッド(most specific method)と言われて、それが呼び出される。

> void test(Hoge a, Hoge3 b){}
> void test(Hoge2 a, Hoge2 b){}
みたいに一つに決まらない場合は曖昧となってコンパイルエラーになる。

詳しくはこの辺呼んでくれ。
15.12.2.5 Choosing the Most Specific Method
java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2.5
15.12.2.2 最も特殊なメソッドの選択
www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#18428

506 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:59:16 ]
>503
条件も何も曖昧だから曖昧なんだよ
A’がAを継承しているならば、A’はAともA’とも解釈できるって理解していればそんなオーバーライドは普通書かない

507 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:12:16 ]
ジェネリックスと否ジェネリックスでObject型かぶらせちゃうのはたまにやるな。
実行時型情報ないからなぁjavaのジェネリックスは。

508 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:26:34 ]
>>505
とても分かりやすい説明と、良い文献をありがとうございます。
熟読させてもらいます

インターフェースも絡めて色んなパターンを試していたのですが、
「あるメソッドの全ての引数が、他の同名メソッドの引数に代入可能な場合、あるメソッドはより特殊と判断する」
という1文ですっきり解決して魔法のようでした。

509 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:16:37 ]
508です。
一応情報です。

>>505の日本語版のほう、和訳が間違ってますね。
英語の方読んだほうがいいです



510 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:28:59 ]
>>509
和訳のは第2版で英語のは第3版だからその違いじゃなくて?

511 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:43:59 ]
いや、完全に文章がおかしかったです

「もしすべての最大限に特殊なメソッドが同じシグネチャをもたないならば」
と和訳されていますが、英文では
「If all the maximally specific methods have override-equivalent signatures, then」
とあるので「〜〜をもつならば」が正しいかと思われます


512 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:59:03 ]
>>511
うわ、ほんとだ。

513 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 08:28:19 ]
specific を特殊と訳した奴のセンスを疑う。

514 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 08:39:14 ]
>15.12.2.5 Choosing the Most Specific Method
「もっとも明確なメソッドの選択」だな。

515 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 08:51:28 ]
> 「もっとも明確なメソッドの選択」だな。
そのセンスもどーかと思うが

516 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 10:53:19 ]
批判だけではなく対案を

517 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 11:02:19 ]
メソッドの選択でいいんじゃ?

518 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 11:03:40 ]
>>516
俺は「特殊なメソッド」でいいと思うが。
長ったらしくてもいいなら語を補って「実引数型に特化したメソッド」とか。

519 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 11:11:06 ]
実引数型だけだと実行時の型と勘違いされる可能性もあるから
より正確には「実引数のコンパイル時の型に特化したメソッド」とか?



520 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 11:33:16 ]
議論の最中にすみません。
Preferencesについての質問です。
Preferences#userNodeForPackage(Class<?> c) で取得したノードは、その名の通りパッケージのノードですが実際プロパティを保存したい場合どのようにすべきなのでしょうか?

私のイメージとしては、そのノードにあるクラスのプロパティを直接putInt(String,int)とするのは後々パッケージ内での重複の危険や、そもそも意味的な意味の違いで使いたくはありません。
よって、上で取得したノードにさらに
prefs(←パッケージのノード).node("クラス名").node("インスタンス名").putInt(String,int);
のようにするのがプロパティ的で良い気がしますがこちらは何かと面倒です。

特に何も気にせずパッケージノードにputするものなのでしょうか?

521 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 11:53:06 ]
そもそも、どのように使いたいかじゃねーの?

522 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 13:46:52 ]
インスタンスごとに設定項目作りまくりという糞設計なのか
データベース使え

523 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 14:46:18 ]
すみません。
ここに来てる時点で分かってくださるとは思いましたが、私は初心者で設計なんてまだまだこれからの段階なんです。

しかしインスタンスごとに設定項目変えている訳ではありません。
例えばjavax.swingパッケージを見てみると、その中に存在するクラスだけでもx,yというプロパティはかなりの数あるでしょう。
ですから必然的にその下のノードが必要になるのではないか、と疑問に思ったのです。

単純に一般的にどうされているのかと気になったので聞いてみたのですがここに来るのすら早かったようですね。
すみませんでした。

524 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 15:04:02 ]
>523
そんなAPIを使う前にクラスとインスタンスの関係を勉強したほうがいい

525 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:37:46 ]
preferenceに、インスタンスごとの値を記録したい場合というと、
例えばマルチタブエディタで個別のタブごとの設定値
(ファイル名とかカーソル位置とか)を記録したいとか?
まあ、そういう用途ならそれでいいんじゃね?

526 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 17:27:48 ]
MDIのセクションの復元とか

527 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 17:40:59 ]
どちらにせよ初心者には縁の無い話かと

528 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 17:57:47 ]
javaだとMDIはSwingにあるしセクション保存なんて情報を外に追い出せばとりあえず出来るから初心者でもやるんじゃない?
SwingAppFrameworkは始めからセクションのストア・リストアに対応してるし。

529 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:29:31 ]
それは既に初心者ではない件



530 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:32:45 ]
その程度は初心者の域

531 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:51:03 ]
フレームの位置と大きさが画面から外れてないかどうかってどう確認すれば良い?
GraphicEnvironment とか言うのを使うの?

532 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:40:23 ]
JavaってCのインラインアセンブラみたいなのはないですよね?

533 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:46:16 ]
naiyo

534 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:48:49 ]
aruyo

535 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:59:00 ]
アセンブラを扱うライブラリがあったはず

536 名前:デフォルトの名無しさん [2008/03/17(月) 21:52:45 ]
質問です。
以下の要件を満たすためにはどのような手段がありますでしょうか。

■環境
Java1.5
Tomcat5.5 + Apache2.3
FedoraCore7

1.ローカルでは、あるjavaプロセスがほほ常時立ち上がっています。
「ほぼ」と書いているのは、たまにプロセスが停止することがあるため。
最大停止時間は10秒。そのjavaプロセスの死活監視及び起動をshellで行っています。

2.1とは別に、tomcat+ApacheでServletを使ったWebアプリケーションがあります。

上記の環境のもとで、Webアプリケーションへのリクエスト送信をトリガーに
Webアプリケーション側から1のjavaプロセスのクラスを呼び出して1のクラス内の情報を取得したいです。

上記の実現方法について、教えていただけませんでしょうか。

私なりに調べてみたのですが、RMIというのはこの場合使えるのでしょうか?
RMIの紹介サイトはどこもクライアント側からのトリガーでサーバーへ返すものしかなく、
逆の場合も使えるのか確証が持てません。

また、RMIの他にも、Tomcat,Apache側の設定でどうにかなる方法などあるでしょうか?
上記以外の手段についてもあればお願いします。

以上、ご教授いただきたく思います。






537 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:18:52 ]
apache httpd 2.3って、trunkからビルドしてんのかよ。人柱乙。

監視対象のjavaプログラムに手を入れられるなら、
そっち側で必要な情報をファイルかDBに記録すればいいんじゃね?

538 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:50:15 ]
>>536
> RMIの紹介サイトはどこもクライアント側からのトリガーでサーバーへ返すものしかなく、
> 逆の場合も使えるのか確証が持てません。

昔似たような処理をやったことがあるけどサーバーのトリガーをクライアントからスレッドで監視してやれば
できたような…ただトリガーの発生が不定期だったりするので同期取らせたりいろいろうざいことしなけりゃ
ならんかった


539 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 03:30:57 ]
1 側で RMI がサービスしてりゃいいじゃん。
レジスロリは Tomcat で。



540 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:18:39 ]
core なんてウンコみたいなもんだろ。
詳細に分析すりゃ症状は分かるかも知れないが、大半はクソの役にもたたねぇ。

541 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:46:21 ]
ウンコさえ分析できないきみはクソの役にも立たねえ

542 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:58:21 ]
core だけで分析できると豪語する神が現れた。

543 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:24:21 ]
手動で serialVersionUID 管理する場合って 1, 2, 3, ... で良いよな。

544 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:27:09 ]
うん

545 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:29:25 ]
Javaのお勉強をしているものです
プログラム用エディタ使ってコマンドプロンプトでシコシコやってました

ところが同一ソフト上でエディットとコンパイルと実行ファイル化までできる
『統合開発環境』なるソフトが無料で出回っているそうじゃないですか
さっそくEclipseとNetBeans?をダウンロードしました
はい、何やってんだか分りません 重くて動きません etc…
ということで 軽くて初心者向けの統合開発環境ありますか?


546 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:31:38 ]
つ プログラム用エディタとコマンドプロンプト

547 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:33:36 ]
Visual J++ 1.0

548 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:34:10 ]
eclipseとかnetbeansとかが動かないほど重いPCは捨てて買い換えなさいな
よほどリソースが足りないPCだ、それは

549 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:42:48 ]
visualC#みたいな感じでJAVAで使えるものを探しておりまする



550 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:49:30 ]
Visual J 調べてみるでござる


551 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:53:06 ]
Visual J#2002なるものが見つかったのでダウソしてつかってみまする


552 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:40:57 ]
Eclipseでも2系なら軽いと思うが。

553 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:58:41 ]
C#のBinaryWriterで書き出したデータを
Javaで読み込みデータを取得したいのですが
DataInputStream等を使っても正常に取得できません
何か良い方法ありませんでしょうか?
取得したいのはintの値やutf-8の文字列等です


554 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:22:57 ]
ByteBuffer でゴリゴリやれ。バイトオーダー設定せれ。

555 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:35:47 ]
Swing で矩形以外の Window 出す方法は、裏の画面キャプチャして擬似透明にするしかないかね。

556 名前:553 mailto:sage [2008/03/18(火) 21:39:40 ]
>>554
あーやっぱゴリゴリですか・・・
頑張ってみます・・・

557 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:42:28 ]
VisualJはすべて有料ですか…



558 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 23:32:40 ]
Visual J# 2005 Express版は日本語版なくて英語版だけだけど無料だったような。
もっとも J# は厳密には別の言語だからスレ違いっぽ。

559 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:13:01 ]
半月前ほどからJavaの勉強をはじめました。
会社で次にデータベースの勉強をしろと言われたのでJavaを勉強しつつ
データベースの勉強をするのにオススメの書籍を教えていただけませんか?
Javaは何冊か入門書をもっているのですが、データベースはさっぱりです。別々に分けたほうがよければ、データベース専用の書籍でもかまいませんのでお願いします。



560 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:52:02 ]
Servletの本ならだいたいどの本でもDBとの接続の話は出てる。
Servletじゃなくても大体同じノリで使える。

561 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 01:53:20 ]
とりあえず、適当な本でいいからSQL自体に慣れろ。
慣れたら、
www.geocities.jp/mickindex/database/idx_database.html
ここ読んでぶちのめされろ。

あとは、上のサイトで紹介されてる本を片っ端から読んで理解しろ。
そうすれば立派なDBエンジニアになれるよ。

562 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:15:56 ]
JPlaneをeclipseでextendsしたら
シリアルが何とかとか出て意味が解りません。
おしえてください。

563 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:22:15 ]
1. 黄色い波下線が出ているところにキャレットを置いて [CTRL]+[1] を押す
2. add generated serial version ID
3. (゚Д゚)ウマー

564 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:39:13 ]
■環境
JDK5.0

質問です。
大学の課題で,3月中にJavaでチャット(とにかく動けば良いからCUIで作成しても良い)を作ってこいと言われました。
Javaは全く学んでいないので、現在は「10日でおぼえるJava入門教室」という本をやっています。(8割方終わってます)

そろそろチャットプログラムを作ってみようと思っているのですが、
この本はネットワークプログラムについて全く載っていないので、何から手をつければ良いかわかりません。

そこで質問なのですが、チャットプログラム作成を前提に次の本を買うとしたらどの本がオススメでしょうか?
また、本以外にチャット作成を一から学べるHPがありましたら教えてください。よろしくお願いします。

565 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:51:41 ]
一生本読んでろ

566 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:59:44 ]
チャット作ってもチャットする相手いないし・・・・・

567 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:02:36 ]
自分の作ったプログラムなら自分とチャットするだけでも十分楽しいと思うから大丈夫

568 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:13:17 ]
今まさにチャットを作ってる。チャットというより非同期イベント配信プロトコルを
考えてるといった方が正しいかもしれないが。

>>565
Socket, ServerSocket クラスの API リファレンスを読め。

569 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:14:19 ]
>>564
チャットが前提ではないけど、ネットワークの基礎なら
ttp://www5c.biglobe.ne.jp/~ecb/java/16_01.html



570 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:21:02 ]
undecoreted な JFrame や JDialog じゃなくて JWindow が必要なときってどういうケース?

571 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:29:58 ]
>>564
あと10日しかないと無理だけど、もっと余裕のある場合を想定すると、とりあえずセッションを勉強したらどうか?
HTTPで404とか503とか表示されるアレだ。Proxomitronを導入してLog Windowを表示してみればいい。
チャット自体はinとout直結でhttp使わなくても通信出来るけど(Javaならsocket,serverSocket?)。

HTTPはRFC2068、RFC2616あたりが詳しい(JavaならhttpURLConnection、URLConnection?)。

572 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:37:49 ]
チャットと言っているのに通信方向性もステート管理もまるで違う HTTP を薦めるヤツはバカなのか。

573 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 16:45:17 ]
>>572
電気通信の方向とは何?

574 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:07:24 ]
>>573
お前はまず、理解していない点をまとめてから書け。

575 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:07:56 ]
バカと書かれて憤慨した>>571 です。大学はチャットをHTTPで作ると減点する恐ろしい場所なのですか。serverも知らないと書いてるからなるべく親切に説明しようとした俺はかなり情けないです。

576 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:10:02 ]
>>574
通信方向性って、通信の設計の指針じゃないですか。一見でわかりませんでした。

577 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:12:19 ]
>564
Java TCP/IP で調べれば結構な数の参考書あるぜ
大抵はサンプルとしてチャットプログラムがあるから、サンプルありで薄い本を探せば1週間でもなんとかOK

578 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:20:52 ]
通信頻度が高いからHTTPは向かないのですね。すみませんでした。

579 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:25:17 ]
IPメッセンジャーを改造して提出する生徒続出の予感。



580 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:28:09 ]
IPメッセンジャーナツカシス 雑談が多すぎるって理由で出向先で使用禁止になったよ。

581 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:32:18 ]
協力会社の愚痴を間違えてその協力会社の人に送ってしまった某外資 SIer が居て
使用禁止になったプロジェクトなら知ってる。

582 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:44:27 ]
通信頻度じゃなくチャットは双方向メッセージが基本だからトランザクション指向の HTTP とは全く違う。
自動リロード (ポーリング) でごまかすタダの掲示板がまともなチャットとでも思ってるのか。

583 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:54:57 ]
つComet

584 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 17:57:53 ]
とにかく動けば良いってことらしいからまともなチャットでなくてもとにかく動けばいいんでない

585 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 18:01:48 ]
>>582
Comet はそのポーリングをフレームワーク化しただけだっつーの。
キーワードだけ覚えて披露するなよ。

586 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 18:11:38 ]
>>585
じゃ、IRCは?

587 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 18:14:01 ]
プロトコルがそもそも HTTP と違うだろ。
その区別からできてないのかよ。

588 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 18:14:08 ]
Cometはポーリングじゃない。
ポーリング無しでサーバ→クライアント方向の通信を実現する方法。
クライアントから見ると、一度送ったHTTPリクエストに対するレスポンスが
いつまでたっても終わらず、
たまに思い出したように部分的なレスポンスが返ってくるので、
それをその都度処理する、って形になる。

が、このレベルの課題でCometなんぞ持ち出したら、余計面倒になる罠。

589 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 18:22:36 ]
だからポーリングにタイムアウト的なキュー待ちの毛生やしただけじゃん。



590 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 18:27:21 ]
Comet ではないが Ajax 使った Comet 型 Web チャット
anjya.koiroha.org/ja/fbr/guidance/sandbox/7

591 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:19:43 ]
宿題スレと間違えてコード書いちゃったから良かったらどうぞ。
ただし、自分も初心者なためツッコミどころがあったら教えてく欲しいです。
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/224.java

592 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:53:03 ]
>>591
とりあえず、UIスレッドとそれ以外のワーカスレッドについてと
その連携・スレッドセーフ性に関して再考した方がよいかと

593 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:12:09 ]
evalみたいなことできませんか?

int i=3;
String s = "現在i時です。";
String msg = System.eval(s);
System.out.println(msg);

594 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:15:46 ]
javax.tools.Compilerというのがあるが、ここで質問するレベルでは難しいだろう。

Javaじゃなくていいなら
javax.script.*
経由で対応言語つかっとけ。



595 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:16:35 ]
String msg = String.format("現在%d時です。", 3);

596 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:27:58 ]
180°の弧を描くアナログメータを作りたいんですけどうまくいきません
下のようなpaintメソッドではいけないのでしょうか?
真ん中に直線が描かれるだけで何もなりません

double i = 0;
int x = 200;
int y = 200;
public void paint(Graphics g){
g.drawLine(x,y,200,300);
Double xx = new Double(200 + Math.sin(1/20 * i) * 200);
x = xx.intValue();
Double yy = new Double(200 - Math.rint(Math.cos(1/20 * i) * 200));
y = yy.intValue();
i += 1;
}


597 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:35:32 ]
>>596
1/20 => 0
以上。

598 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:38:56 ]
描画部分のループはどうなってんの?
というか素直にdrawArcでいいんじゃない?

599 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 23:40:03 ]
リロードしてなかったぜ



600 名前:596 mailto:sage [2008/03/19(水) 23:41:24 ]
ども 助かりました

601 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 20:51:10 ]
ネットワークから受信する XML を SAX で解析する場合って、例えば属性値として
数 GB の文字列を投げられたら OutOfMemory が出るまで分からないよね。
10MB 送って無応答、10MB 送って無応答、、、という接続をいっぱい作られたら
どっかでサーバのメモリが逼迫状態のままになるという攻撃になるんだよね。

602 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:38:07 ]
Appletでウィンドウのサイズをかえるごとにウィンドウのサイズを受け取りたいんですけど
どうしたらいいんですか?
ダブルバッファでcreateImageの引数を変えたいんですが・・・

603 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:44:07 ]
ComponentListener
または描画のたびにアプレットのサイズ確認して変わってたらバッファ作り直し。

604 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 21:52:07 ]
>>603
ありがとうございます
参考にさせていただきます

605 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:24:55 ]
何度もすいませんw
↓これじゃだめなんでしょうか?なんか最初のサイズの範囲にしか描画されないんですけどorz
public void componentResized(ComponentEvent e){
d = getSize();
buffer = createImage(d.width,d.height);
repaint();
}

606 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:41:23 ]
JTableを印刷するにはどうすればいいでしょうか?

607 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:44:00 ]
スマートな方法は知らんけど Robot 使って該当領域スクリーンキャプチャすればできることはできるんじゃねか。

608 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:12:50 ]
>>605
正直、私では分かりません。が、
リスナーの追加、paint 内での buffer の使用状況確認などなど

はじめてやる時は、面倒でも一つ一つ丁寧に、
想定したことが起きているか確認しながら進むこと

609 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:51:53 ]
>>606
JTable#getPrintable()
PrinterJob#setPrintable()
PrintRequestAttributeSet#add()
PrinterJob#printDialog()
PrinterJob#print()

このへんのメソッド組み合わせて肉付けしていけばできる(はず)



610 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:30:16 ]
POI(HSSF)で大量のデータ(10万件のレコード)をExcelファイル出力しようとした場合に
OutOfMemoryErrorの発生を回避するには
複数のファイルに分割して出力する以外に方法はないんでしょうか?

611 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:30:18 ]
済みません、できませんでした。
メソッドの使い方がさっぱりわからなくて・・・。
class pbtActionListener implements ActionListener
{
public void actionPerformed(ActionEvent i)
{
}
}
この中にテーブルを印刷する機能を入れるにはどうすればいいでしょうか
本来なら時間を掛けて勉強するべきでしょうが
時間がないのもう少し詳しく教えてください。お願いします。



612 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:33:02 ]
>>610
今時の Excel は XML で読めるんだから XML で出せば?

613 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 04:46:13 ]
>>611
時間がないならcsvでファイルに吐いてExcelで印刷しろ

614 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 07:01:24 ]
ほれ
tableどっかから拾ってきてパラメータ適当にいじれ

try {
 Printable printable = table.getPrintable(JTable.PrintMode.FIT_WIDTH,
   new MessageFormat("タイトル"),
   new MessageFormat("Page - {0}"));
 PrinterJob job = PrinterJob.getPrinterJob();
 job.setPrintable(printable);
 PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
 attr.add(OrientationRequested.LANDSCAPE);
 attr.add(new MediaPrintableArea(5.1f, 5.1f, 199.8f, 286.8f, MediaPrintableArea.MM));
 boolean printAccepted = job.printDialog(attr);
 if (printAccepted) {
  job.print(attr);
 }
} catch (HeadlessException e1) {
 e1.printStackTrace();
 catch (PrinterException e1) {
 e1.printStackTrace();
}

宿題スレかここは…

615 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 08:32:53 ]
>>610
Excelで扱える行数の最大は、65536まで。
POI使おうがCOM使おうがどのみち無理。

616 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:12:20 ]
Excel2007

617 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:22:55 ]
>>612
なるほど、XMLは考慮していませんでした
調べてみます

>>613
CSVも、やはり複数ファイルに分割しないとデータを扱いきれないので・・・

>>615
HSSFであれば1ファイルに複数シートを含めたExcel形式で出力できるので、
HSSFで何とかできないかと思いまして

ありがとうございました

618 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:31:26 ]
10万件のレコードが出力されたExcelファイルを誰がどんな目的で使うのかが不思議。

619 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:05:18 ]
業務から伝票データ集計を流してもらって、まとめて経営戦略用の資料とかにするとかかな。
あとアンケートデータの集計なんてのもあるしね。
それらの資料を元に今後の会社の行く末を。。。なわけだw



620 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 11:47:40 ]
開けないのにどうやって使うのって話では?
開けたとしても人間には解析できないけどなw

621 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 12:03:36 ]
取り込み形式が Excel のシステムにつなげるとか。
あと Excel にさえしてくればあとは中の人間が VBA で何とでもするからという所も多い。

622 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 13:25:58 ]
>>614
ありがとうございます。おかげでなんとかなりました。

623 名前:デフォルトの名無しさん [2008/03/22(土) 02:54:05 ]
複数シートに分ければ出来るよ
HSSFSheetのドキュメント参照

624 名前:デフォルトの名無しさん [2008/03/22(土) 12:18:28 ]
【提携/JAVA】マイクロソフト、Javaを使ったWindowsアプリ開発でEclipse財団と協力へ[03/21]
news24.2ch.net/test/read.cgi/bizplus/1206155464/

625 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:36:40 ]
特定のインタフェースを実装しているものを、動的に一覧する手段はあるでしょうか?
もちろん、クラスローダにローディングされているもので構いません。
Eclipse の検索で実装が探せますが、あれはソースを解析しているのでしょうか。

626 名前:デフォルトの名無しさん [2008/03/22(土) 13:30:25 ]
インターフェイスについて参照して、
実装について参照してはいけないと本に書いてありました。
なぜですか?

627 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 13:38:41 ]
>>626
後から実装を取り替えたくなったときに、参照している側まで修正しなければならなくなるから。

628 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 14:57:37 ]
>>455 のおかげで行きつけのイラストロジックが起動できた。
ありがとう >>455

629 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 15:21:30 ]
>>626-627
>>625 の答えとしてであれば、その点は了解しています(いるつもりです...)

行いたいことは、例えばあるコンバートを掛ける時に、公開インタフェースに
従って実装したユーザ任意の処理を、なるべく簡易な方法で追加させたいのです。
例になってしまいますが

標準語 ------> 関西弁 ------> 翻訳結果

と言った変換をするアプリケーションにおいて、公開インタフェースとして
  String translate(String sentence)
を公開し、これをユーザが実装すれば(例えば博多弁を追加)

標準語 ------> 関西弁 -------> 関西弁 + 博多弁 ------> 翻訳結果

といったことを可能にしたい、と言った感じです。

この追加した処理のデプロイ方法として、「公開インタフェースを実装したクラ
スを含む jar を ** に置くだけで OK」といった様に行わせたいために、>>625
のような要望となった次第です。FQCN さえ貰えれば済む話ではありますが、で
きれば簡易化させたいといった状況です。



630 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 15:31:29 ]
私も、1.6.0_05 アップデータをアンインストールして、
WinXP + Firefox3b4 + JRE1.6.0_03 で動いたよ。ありがとう 455。

>>629
// 其の二つはそれらで完結するレスかと。
プラグインなら、ファイル検索+カスタムクラスローダーで
できるかも…やったことないから適当ですが。

631 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 15:32:28 ]
日本語-->英語+フランス語-->翻訳結果っっっw

632 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 15:43:47 ]
PrivateKey や PublicKey ってシリアライズして保存しておけばいいの?
getEncoded() で何やらバイナリが取れるみたいだけど、これが何なのか分からん orz

633 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:01:22 ]
>>585>>589
> キーワードだけ覚えて披露する
それは>>582自身だ。
ポーリングを実装する必要を無くす仕組みではなく、
ポーリングをしなくて良い仕組みでしょ。

あるいは、ポーリングの意味ちゃんとわかってないんじゃない?
Comet使った場合定期的に問い合わせなんかしないでしょ?

634 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:05:37 ]
キューにイベント入ってこなければ定期的な問い合わせになるが。
Comet の仕組み分かってないのか。

635 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:08:53 ]
>>536
> RMIの紹介サイトはどこもクライアント側からのトリガーでサーバーへ返すものしかなく、
> 逆の場合も使えるのか確証が持てません。

WebサービスとRMIサービスは別なので、それぞれサーバの役割を持つプロセスは異なります。
その例だと
Webサーバプロセス = RMIクライアント
Webクライアントプロセス = RMIサーバ
なので、「(RMI)クライアント側からのトリガーで(RMI)サーバーへ返す」
と読み替えれば別にその紹介サイトの説明で問題はないでしょう。



636 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:10:17 ]
定期的な問い合わせではないな、定期的な再接続。
ポーリングはキューの確認終わったらすぐにリターンするが、それを一定の待機時間を維持するようにしただけ。
それをポーリングの揚げ足取りましたよ、と言いたいだけ?

637 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:10:20 ]
>>634
で、その定期的な問い合わせは
Cometフレームワークとやらが実現してるって言ってるの?

638 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:11:06 ]
>>632
保存したいのならお好きなように。getEncoded()のものを保存しておけ
ば、Java以外のプラットフォームでも読めるかもしれない。


639 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:22:35 ]
>>637
おまえ、ブラウザの裏で Comet が独自の通信プロトコルでも使ってイベントやり取りしてると思ってるなら
HTTP のお勉強からやり直したほうがいいぞ。



640 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:10:16 ]
>>629
使ったことないけど、これなんかどう?
java.sun.com/javase/ja/6/docs/ja/api/java/util/ServiceLoader.html

641 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:14:39 ]
>>629
jarをZipInputStreamに食わせて.classファイルの一覧を出させて、
URLClassLoaderで見つかったクラスを全部ロードさせてみて、
希望のインタフェイスを実装してるかひとつずつ調べる
という力技もないこともない

642 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:22:40 ]
URL.getContent();
を使ってコンテンツをダウンロードすると

コンテンツが
「あなたがお使いのブラウザは、Cookieをブロックする設定になっています。」
となっちゃう サイトに対して、

プログラム側がCookieを「受け入れ」て、
アクセスできるようにするには具体的にどうするんでしょうか?


HttpURLConnection が自動的にCookie受け入れ処理をやってくれるとかいうのですが....

HttpURLConnection.openConnection();
HttpURLConnection.getInputStream() ;
とかやっても URL.getContent(); の時と変わりません。




643 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:32:08 ]
>>642
java.net.CookieHandlerとかjava.net.CookieManagerあたりを使うんじゃないかなたぶん

644 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:33:25 ]
エスパーするとそのリクエストを出す前にどこかから Cookie の発行を受けていなければならない。
ブラウザで正常に動かしたのと同じ URL の順序で getContent() してみれ。

645 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:44:36 ]
IPアドレスの正規表現ってどうしたらいい
"[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$"
これだと、300.192.144.109のようなIPアドレスもマッチしてしまう

646 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:08:08 ]
Cookieの処理を実装する。Cookieを保持するクラスはあるからさ。

647 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:24:00 ]
うぉ。Cookieはリクエストプロパティにベタに書き込んでたわ。
HttpURLConnection.setRequestProperty("Cookie", "なんたら");

648 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:33:18 ]
>>645
1オクテットだけなら
[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]
かな。

全部出来てから、あとでより正確にするってことで、
目的のプログラムが出来るまではとりあえずは数字でマッチさせて、
マッチ後int変換して範囲比較したほうが楽かも。

用途によっては
java.net.InetAddress.getByName()
に食わせて例外を捕まえるという方法も。


649 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:40:34 ]
"((([12][0-9]{1,2})|([1-9][0-9]{1,2}))\\.){3,3}(([12][0-9]{1,2})|([1-9][0-9]{1,2}))"
通ったよ



650 名前:649 mailto:sage [2008/03/22(土) 21:42:54 ]
失敗2番目と4番目の{1,2}は要らない。

651 名前:649 mailto:sage [2008/03/22(土) 21:47:00 ]
一桁が無かった。

652 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:56:12 ]
コードを少しずつ改変して行くに当たって、
それぞれにバージョンを付けて残しておこうと思ったら、
プロジェクトごとコピーして残しておけばいいんですか?
もっといい方法があるんですか?

Eclipseを使っています。コードを書くのは自分一人です。

653 名前:649 mailto:sage [2008/03/22(土) 21:57:47 ]
"((([12][0-9]{1,2})|([1-9]{0,1}[0-9]))\\.){3,3}(([12][0-9]{1,2})|([1-9]{0,1}[0-9]))"

654 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:03:06 ]
それ 299 が通る。
25[0-5]|2[0-4]\d|1\d\d|[1-9]\d?

655 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:05:24 ]
>>645
正規表現に拘る部分なのか(まぁ何も言うまい

>>652
豪華にいくなら、バージョン管理システム。subversion とか cvs とか
LocalHistory でもそこそこ残ってる(条件は知らない

656 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:38:14 ]
subversionは別に豪華じゃないんじゃない?file://でいけるし。


657 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 01:10:38 ]
>>655
バージョン管理システムは別に豪華じゃない。
Mercurialとかならサーバのセットアップすら不要。


658 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 02:01:57 ]
信者くせー

659 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 05:36:43 ]
AES でサポートされているはずの 192bit, 256bit のキー指定すると例外になるのは何で? サポートされてないの?

Exception in thread "main" java.security.InvalidKeyException: Illegal key size or default parameters
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at Main.main(Main.java:101)



660 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 12:27:26 ]
>>659
違いそうだけど、輸出制限版とかいう話?


661 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 12:54:20 ]
普通に Sun からダウンロードした奴だけど規制版じゃないよね。
Blowfish も 128bit より上は同じ例外なんだけど。

662 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:01:43 ]
java.sun.com/javase/ja/6/docs/ja/technotes/guides/security/crypto/CryptoSpec.html#AppC

やっぱ輸出制限であってるかも。
制限解除したポリシーファイルだけダウンロードできるけど、
そもそも日本はダウンロードOKな国なのか??


663 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:20:33 ]
>>662
ascii24.com/news/i/topi/article/2000/07/19/610269-000.html
2000年で撤廃されてるらしいから、日本ならダウンロードOK。

664 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:37:07 ]
java.sun.com/javase/ja/6/docs/ja/technotes/guides/security/crypto/CryptoSpec.html#ExemptApps
> 関係があるのは、作成するアプリケーションが、政府により暗号化制限の課された国に
> 輸出される可能性があり、アプリケーションをその制限に適合させる必要がある場合だけです。

とあるので制限は解除されているものかと思ったら、128bit で制限かかるあたりからしてこれみたいですね orz
解除の試行錯誤でもしてみるか orz

665 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:43:15 ]
SUNから解除用ファイルダウンロードしてファイル1個置き換えるだけだよ。


666 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:45:59 ]
java.sun.com/javase/ja/6/download.html の下の方の

その他のダウンロード
Java Cryptography Extension (JCE) 無制限強度の管轄ポリシーファイル 6

てやつ。


667 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:08:47 ]
どうもご丁寧にありがとうございます m(_ _)m

ちなみに対照鍵暗号のアルゴリズム的な強さの現状ってこんな感じで良いんですかね。

AES ≒ Blowfish >> トリプルDES > [解読可能の壁] > DES

668 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:02:41 ]
SwingでWindowsのLook&Feelを用いたとき
Windowsのネイティブな部品のように
「コピー」「貼り付け」などのメニューが自動で表示されるようにはできないでしょうか?

AWTを用いればWindowsの部品として自動で表示されるようですが、
Swingの場合、自分でそれらの処理を実装しなければならないのでしょうか?

669 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:07:03 ]
はい



670 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:43:04 ]
Swingならハンドラ実装するだけ

671 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:07:16 ]
今までGUIの終了時処理はWindowListenerを登録して行っていたのですが終了時処理であれば
RuntimeのaddShutdownHook()
の方が適切なのでしょうか?
一般的なGUIアプリケーションでの終了時処理でこの方法を用いているものを見かけたことがなかったので、何か理由があるのかと思い質問させていただきました。

672 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:42:30 ]
>>667
AES >  Blowfish > トリプルDES
ぐらいかなあ

・トリプルDESはDESの強化版なので実績という観点からは評価が高いが、
さすがにいいかげん古い。あと低速

・一般にブロック長が大きいほうが強度もより高くなるので
AES(ブロック長128ビット)はBlowfish(ブロック長64ビット)より強いはず
実際、最近考案された暗号はどれも128ビット以上のブロック長を採用している
(Blowfishの設計者が新しく考案したTwofishもブロック長128ビット)



673 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 22:55:05 ]
繰り返しの構文について質問なのですが、
rubyのredoの役割を果たすものってjavaには無いのでしょうか?

674 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:04:12 ]
>>673
ない。Java は break と continue だけ。

675 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:07:24 ]
break => break
next => continue
retry = なし
redo = なし
かな。


676 名前:634 mailto:sage [2008/03/23(日) 23:08:36 ]
>>674
ありがとうございます。
スクリプトに出来てjavaに出来ないことがあるってのは意外ですね。

677 名前:634 mailto:sage [2008/03/23(日) 23:09:18 ]
>>675さんもありがとうございます。

678 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 23:21:22 ]
>>671
javaw and shutdown hooks (referring to #4302814)
ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4486580

679 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:11:04 ]
>676
そうか?
redo とか retry とかRubyでも偶にしか使わんし、他の言語を見てもある言語は少ないかと。



680 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:22:23 ]
>>676
>スクリプトに出来てjavaに出来ないことがあるってのは意外ですね。
なんか解釈が間違っている気がする

681 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:26:17 ]
Ruby厨ってやつだろ

682 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 00:45:54 ]
FileInputStreamからFileChannelを取得し、そのFileChannelでmap()を実行すると、ストリームやチャネルをクローズしても元ファイル(FileInputStreamのソース)を削除できません。
原因はMappedByteBufferによって使用中になってしまうからという単純なものなのですが、解決策が
FileInputStream fis = new FileInputStream(input);
FileChannel fc = fis.getChannel();
ByteBuffer buf = fc.map();
....
buf = null;
System.gc();
input.delete();

これくらいしか思いつきませんでした。
何かいい方法はないでしょうか?

683 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 01:13:37 ]
>>676
retry や redo と同等の処理を記述することはそれほど難しくないから、
「出来ない」というのは語弊がある。

684 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 02:09:59 ]
やさしいJavaを読み終わり基礎中の基礎?の構文を覚え
今結城浩氏のデザパタの本を読んでいるのですが、実務経験が無いため
それらのパターンをどの様な時に使えばいいか想像がつきません。
Struts等を使ったシステム開発業務に興味があるのですが、
Web系ではどのようなパターンが使われているのでしょうか?
重ねて質問ですが、最初はどのようなパターンから覚えていけば良いでしょうか?
よろしくお願いいたします。

685 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 02:29:20 ]
畳の上の水練という言葉があってだな


686 名前:684 mailto:sage [2008/03/24(月) 02:43:57 ]
>>685
分かってはいるつもりでしたが・・・
デザパタの存在自体が面白くて、どうしても勉強したかったのです。
何かツールでも作りながら地道に覚えていきます。

687 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 03:00:42 ]
Vector vec = new Vector();
System.out.println("----追加----");
String obj1 = new String("Hello World!");
StringBuffer obj2 = new StringBuffer("こんにちは、世界!");
vec.addElement(obj1);

上記をコンパイルすると最後の行でコンパイルエラーが発生します。
jdk5.0を使っているのですが、何を行えば正常にコンパイルできますか?

688 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 03:13:14 ]
うちでは
注:Hoge.java の操作は、未チェックまたは安全ではありません。
注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。
と警告が出るだけでコンパイルされるんだが。

単にコンパイル警告をなくしたいなら javac -source 1.4 オプションを付ける。

もし>>687のコードが教科書どおりならその教科書は古い。
VectorのようなコレクションはJDK1.5以降Generics対応なので、
Vector<String> vec = new Vector<String>();
のように型を明示して使うのが基本。というかVector自体(ry




689 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 03:26:34 ]
古い。



690 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 08:01:33 ]
>>682
FileChannel の JavaDoc にも GC されるまでマッピングは有効って書かれているから
おそらくそれくらいしか方法は無い。
なんでこういう仕様なのか、俺も問いただしたい気持ちでいっぱいだ。

691 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 09:13:02 ]
>>690
やはりそうでしたか。
破棄してくれる手段を一つくらい提供してくれてもよさそうですけどね。
諦めてgcすることにします。

692 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 09:40:50 ]
解っているとは思うが、System.gc()を実行してもGCされるわけじゃないぞ

693 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:01:06 ]
サーバプログラム書いてるんですけど、
inetdとかスーパーサーバからの起動だとプロセス毎にフォークしちゃうから
嫌で、そのへんをスレッドでやりたいんですけど、
その時ってどうやって起動すればいいんでしょうか?
普通にシェルからjavaをバックグラウンドで起動しちゃうとなんか思わぬ影響がでちゃうとか書籍にかいてありました。

694 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:11:00 ]
「嫌で」「なんかでちゃう」
そんなとこなら諦めれ

695 名前:693 mailto:sage [2008/03/24(月) 10:23:28 ]
>>694
inetdからサーバを呼び出すと、
1クライアントに対してforkとexecを実行するのでCPU時間が増大してしまいます。
それを防ぐために1クライアントに1スレッドを割り当てたいと考えています。
しかし書籍を調べましても起動時にどうすれば良いのか分かりません。
もしよろしければご教授願えませんでしょうか?

696 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:26:40 ]
サーバでJavaのプロセスを起動し、Socket通信汁

697 名前:693 mailto:sage [2008/03/24(月) 10:32:54 ]
>>696
そのプログラムは書いたのですが、
単に端末からバックグラウンドでプログラムを起動しただけでは、
開始した端末セッションからプロセスを切り離せません。
ではどうすればプロセスを切り離して起動できるのでしょうか?

698 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:44:13 ]
nohup じゃだめなの?

699 名前:693 mailto:sage [2008/03/24(月) 11:04:20 ]
>>698
勉強不足でnohupを知りませんでした。
それでやります!ありがとうございました!



700 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:38:55 ]
そもそもクライアント毎にサーバープロセスを起動するのがナンセンスかと

701 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:59:15 ]
でもタスクをキューにためてそれを逐次処理するのは遅いのでは?

702 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 12:02:46 ]
いやきっとクライアント毎に起動するのはスレッドでしょ。
inetdみたいなデーモンをコンソールから起動すると、端末から切り離せない、
って悩んでただけで。
最終的には、inetd自身のように、/etc/init.d/に起動スクリプト置いてほげほげ、
ってするのが正しい姿なんだろうけど。

703 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 12:07:14 ]
そうですよね。
でもサーバが落ちた時に自動起動しないのが難点なくらいで、
他に困るようなことが思いつかなかったので、nohupでもいいかなって思いました。

704 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 12:55:12 ]
>>701
マルチスレッドで処理しろよw

705 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:09:28 ]
ArrayList<Integer>って型に入ってるデータをソートしたいんだけど
どういうやり方が良いんでしょう?
今はArrays.sort()にtoArrayでObject[]にしたものと
Comparatorを実装したクラスのオブジェクトを渡しています

ほかに良い方法があれば教えてください


706 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:12:19 ]
Collections.sort()

707 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:12:29 ]
つCollections.sort

708 名前:705 mailto:sage [2008/03/24(月) 17:17:03 ]
>>706-707
あ、やっぱりそれ用のがあったのですね
ありがとうございました


709 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:47:39 ]
>>697
$ ./hogehoge > stdout.log 2>stderr.log < /dev/null &
とかやればシェルから切り離せるけど、そういうことを言ってるわけ?
バックグランドプロセスがあるとシェルが閉じれないのは
シェルが用意した stdin, stdout, stderr を持っているからで、
それを別に用意すればOKなんだけど。



710 名前:デフォルトの名無しさん [2008/03/24(月) 22:37:59 ]
とても初歩的な質問でお恥ずかしいのですが、
自分の出した答えに自信がないため、質問させていただきます。

int型の変数を2byteの配列に格納(その後取り出し)したいのですが、
ビット演算の理解がつたないため、下記のようなやり方しか思いつきませんでした。

正しいやり方をご存知の方がおりましたら、
教えていただきたく、よろしくお願いいたします。

byte[] data = new data[2];
int num = 128;

//格納
data[0] = (byte)(num >> 7);
data[1] = (byte)((num << 25) >> 25);

//取り出し
num = data[0] << 7;
num += data[1];

711 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:42:30 ]
data[0] = (byte)((num >> 8) & 0xFF);
data[1] = (byte)((num >> 0) & 0xFF);

num = ((data[0] & 0xFF) << 8) | ((data[1] & 0xFF) << 0);

712 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:44:18 ]
>>710
JDKについてくるjava.awt.Colorあたりのソースで、intと
alpha, red, green, blueの各1バイトの換算をしているのが参考になると思う。

intは4バイトだから、厳密に言えばサイズ2のバイト配列には入りきらない。
シフト量は24, 16, 8, 0な。



713 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:49:26 ]
>>711>>712
返信いただき、ありがとうございます。

教えていただいたコードと参考資料を元に、
ビット演算の知識を深めたいと思います。

自分ではどうしてもわからなかったため、
とても助かりました。
本当にありがとうございました。

714 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:51:26 ]
Javaでbyteがsignedってのはつくづく罠と思う。


715 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:53:37 ]
だよなー
おかげでバイナリの扱いがとてもしにくい・・・

716 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 23:32:34 ]
intが17bit以上の場合が考慮されていないけどいいのか?

717 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 00:57:08 ]
javaはバイナリの操作向いてないよ

718 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 01:30:50 ]
またおまえか

719 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:02:38 ]
覚えておいたほうがよい
静的メソッドや変数などのリストの一覧的なものってどこにありますでしょうか



720 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:15:00 ]
MathクラスとかSystemクラスとか他によく使用されるものの一覧を探しています

721 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:17:15 ]
そんなものはない。静的メソッドは必要に応じて都度クラスに付いてるから
静的メソッドだけ一覧的に覚えること自体に意味がない。

722 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 08:19:51 ]
APIじゃだめなの?

723 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:15:54 ]
>>719
>>3
java.lang, java.util. java.io パッケージ群のそれぞれのクラス、仕組みは
押さえてしかるべき、と主張する人も居るね(逃

724 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:43:16 ]
公開鍵証明書を作るクラスって標準でないの? keytool 使うしかない?

725 名前:719 mailto:sage [2008/03/25(火) 11:14:34 ]
静的って書いたのがまずかったのでしょうか
Math.なんちゃら〜 とか system.なんちゃら〜 みたいなもので
頻繁に使われるような物のリストを探しているのですが

まとめてあるサイトは見つかったのですがあまり使わないようなものが大量にあったり
どれがよくつかわれるものなのかわからないので
これは覚えておいたほうが良いというものを集めてリストになっているサイトなどありましたら教えてください

726 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:16:31 ]
何が必要かなんて、分野によって違ってくるのが当たり前。
とりあえず、ArraysとかCollectionsをあげておくけど、
自分で見つけるのが一番いいと思うよ。

727 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:16:29 ]
Mathのメソッドもそんなに頻繁に使うとは思えない

728 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:33:40 ]
>>723みたいに、java.lang, java.util. java.io以下のクラスは押さえて、
あとはJavadocでその都度確認、ってのでいいんじゃね。

729 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:35:03 ]
>>724
証明書を発行するAPIというのは標準にはなかったと思う。





730 名前:719 mailto:sage [2008/03/25(火) 12:57:38 ]
java.lang, java.util. java.io以下のクラスですな
さっそく調べて覚えるよう様にするす
dクス!

731 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:59:22 ]
719が聞いてたのはstaticメソッドのことじゃないの?

732 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 15:40:34 ]
Sound APIについて質問です。
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
TargetDataLine target = (TargetDataLine)AudioSystem.getLine(info);
これで取得したターゲットラインを録音すると、コンピュータ上の音(スピーカーから通常出る音)が録音されました。
これをマイクからの入力に変えるにはどうすればよいのでしょうか?
Port.Info.MICROPHONEを情報としてPortを取得して・・・とするのでしょうけれでもその先が分かりません。

733 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 16:20:26 ]
>>732
AudioSystem#getMixerInfo、AudioSystem#getMixer、Mixer#getTargetLineInfoあたりで
全部のターゲットラインをリストアップして、一覧から選ばせるってのはどうだろう・・・

734 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:55:04 ]
javaのコンパイラのパスを要求されたらどこを指定すればいいのでしょうか
j2sdkを普通にインストールしました

735 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:56:49 ]
OSは?

736 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:57:07 ]
C:\Program Files\Java\jdk1.6.0_05\bin

737 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:57:13 ]
窓xp sp3です

738 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 18:01:46 ]
>>736
そこらへんで見つかりました
ありがとうございます

ずっとjreの方を見てました

739 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 18:10:39 ]
JDKを入れるのが初めてなら落とすときにインストール手順を読まないのだろうか



740 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 18:15:00 ]
世の中にはマニュアル類を読まない人間が結構いるらしいよ

741 名前:>>733 mailto:sage [2008/03/25(火) 18:51:09 ]
>>732
それしかないみたいですね。
そうします。ありがとうございました!!

742 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:03:55 ]
PATHって、違う言語をコンパイルするときには毎回変えないといけないの?
今Cの設定なんだが。

743 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:08:09 ]
どんどん追加していけばいいだけ

744 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:14:55 ]
基本的に同じ PC 上で同じ言語 (コンパイラ) の違うバージョンを使い分ける場合だけ気をつければ良い。

745 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 23:17:31 ]
追加できるのか。ども。

746 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2008/03/26(水) 10:56:16 ]
javac の -g:<キーワード> で sources,lines,vars のデバッグオプションが
指定できますが、デバッグ情報が載らない(載せない)と言う点以外の影響
(性能劣化等)はあるのでしょうか。class ファイルが大きくなるだけでしょうか。

747 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:03:56 ]
サブクラスのインスタンスから「スーパクラスのメソッド」呼び出した時、
スーパクラスのメソッド内で、「サブクラスでオーバライドしたメソッド」を使ってた場合に
動的バインドでオーバライドした方のメソッドが呼び出されるのって
単純に気をつけるしかないんでしょか?


748 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:09:07 ]
>>747
当然の話。むしろ呼んでくれないと困る。
それを「気をつける」と認識する方が問題。

749 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:11:17 ]
ありがとう。認識あらためます。




750 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:14:40 ]
>>747
オーバーライド(上書き)とはそういうもの。
公開したいけど、上書きされるのが困るのならば、final を付けてしまいましょう。
公開する必要が無いならば、private にしましょう。
そもそも継承されることを望んでいないなら、class を final にしてしまいましょう。

751 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 13:04:04 ]
言い方を変えれば、上書きしたメソッドを呼んで欲しいからサブクラスで上書きするわけで、読んで欲しくないならばオーバーライドする必要がない

ただ、「意図せずにスーパークラスのメソッドをオーバーライドしてしまった」とか「意図せずにサブクラスで定義されているメソッドと同名のメソッドをスーパークラスに定義してしまった」というケースはある。
解決策はfinalもあるが、@Override無のオーバーライドはコンパイルエラーとする、という方が柔軟ではある。

752 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:12:47 ]
C# と比較するとわかりやすいかも。

753 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:37:35 ]
C#しらねって奴多いんじゃない?

754 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:46:55 ]
C#いらねって奴多いんじゃない?

755 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 17:26:04 ]
最近になってJavaが無謀な拡張されまくってるのはC#のせいだからな

756 名前:デフォルトの名無しさん [2008/03/26(水) 21:12:25 ]
String str1 = "文字列";

String str = new String("文字列");
って何が違うのでしょうか?

757 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:21:35 ]
後者は無駄の極み

758 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:27:04 ]
上はどこかにある "文字列" という文字列の参照を str1 に代入されるだけ。
下は "文字列" という内容の新しい文字列オブジェクトが毎回作られてから、その参照が str1 に代入される。

759 名前:デフォルトの名無しさん [2008/03/26(水) 21:39:02 ]
すみません、str1じゃなくてstrでした。

では、前者と後者で目に見える違いが出ることはあるのですか?
まら、両者を使い分けたりする必要はあるのでしょうか?



760 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:44:10 ]
public class Test {
    public static final void main(String[] args) {
        String s = "Hello, world";
        System.out.println(s == "Hello, world");
        System.out.println(s == new String("Hello, world"));
    }
}
--------
true
false
--------


761 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 21:47:42 ]
上は str1 == str が true、下は str2 == str が false
従ってインスタンスが同じかどうかの違いがそのまま適用される。
たとえば synchronized(str1) と synchronized(str)

762 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:20:03 ]
誰か文字列の実体はプールで共有されてるって言ってやれよ。

763 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:34:46 ]
理由言わないとね・・・

764 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 22:36:15 ]
プールと言いたいだけの奴とは違うのだよ。

765 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:16:55 ]
>>762
intern()しないと共有されないぞ。文字列リテラルは暗黙で共有されるが。

766 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:20:24 ]
>>756に対する答えは、
String str = new String("文字列");
は絶対に使うな、でいいじゃないか。
理由はこの際どうでもいい。

767 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:27:48 ]
理由がどうでもいいとか思うやつって技術者としてどうなんだ。

768 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:29:40 ]
理由を押し付けて初心者を混乱させるのって人間としてどうなんだ。

769 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:31:49 ]
動けば良い系の人じゃね。
安易に絶対とか使うのも技術屋じゃねーし。



770 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 23:31:50 ]
俺も*とりあえずは*使うな、って方針には賛成
必要になってから知ればいいんじゃないかな

771 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:00:19 ]
小学生に教える時に中学高校で扱う内容にまでふれて
説明した方が良い/悪い論争

772 名前:sage [2008/03/27(木) 00:10:51 ]
1 if (XXX == XXX) ってのはそのオブジェクトの参照が同じかチェックしている?
2 String str = new String("XXX") は新しくメモリに確保(インスタンスを作成)すること?
3 String str = "XXX" の扱いはVMが管理している?

773 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:19:45 ]
ブッ 理解までにそんな大きなステップが必要なほどのネタなのかよw
すぐには不要でも、キーワードだけでも与えておけば必要になった時の理解度が違う。
将来の期待もなく「理由不問、絶対やるな集」だけで育てられたお前に合わせる必要はねぇべ。

774 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:21:07 ]
>>772
まあ、全てYESと言っても良いかと。
ただ、貴方と私で、其の文を見て、違う状況を想定してる可能性は否めないが。

15.21.3 参照型等価演算子 == 及び !=
ttp://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#236163
3.10.5 文字列リテラル
ttp://www.y-adagio.com/public/standards/tr_javalang2/lexical.doc.html#101083

775 名前:デフォルトの名無しさん [2008/03/27(木) 00:24:58 ]
SJC-P310-035の試験を今度受けるんですが、黒本の仕上げ問題で61問中51問正解
だったんですが、こんなレベルでももう合格できますか?

776 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:47:48 ]
とりあえず忘れろに賛同かな
バイト配列から文字列を生成したいような場合にnewは使うが、new String(String str) を使うケースはほとんどない、と教えてる。
どっちかといえば、equalsで比較しろのが重要な話しだし。

>>775
スレ違い

777 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 01:03:18 ]
>equalsで比較しろ
これの方が遙かに重要だな

778 名前:デフォルトの名無しさん [2008/03/27(木) 03:52:21 ]
Javaのライブラリに変数の詳しい情報をダンプしてくれるような奴ってありませんか?
PHPでいうvar_dump的なものを使いたいんですが

779 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:30:48 ]
>>778
用途がわからんのだが、開発中ならたいていのIDEのデバッガについてる
変数watch系機能で間に合いそうな。
それとも運用中に必要な機能?





780 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:33:27 ]
commons langのToStringBuilderとか大がかり杉?


781 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 08:43:02 ]
ねぇよ下駄言語と一緒にするなと言えば済む話では。

782 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:45:34 ]
JITコンパイルされた後のアセンブリコードを見るには、どうすれば良いですか?

783 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 11:46:42 ]
心眼

784 名前:デフォルトの名無しさん [2008/03/27(木) 12:17:19 ]
>>779
普通のテキストエディタでやってる人間なもんで…

>>780
ToStringBuilderちょっと見てみます

785 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 12:41:38 ]
Soundbankに新たなInstrumentをロードしたい場合どのようにすればよいでしょうか?
デフォルトのシンセサイザーをMidiSystemで取得してloadInstrumentでロードしたいのですが、同じInstrumentでもHeadspaceInstrumentじゃないと読み込めないらしいのです。
他にもいろいろ実装しなおさなければいけないのでしょうか?

786 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 12:56:38 ]
>>785
www.jsresources.org/faq_midi.html#create_soundbank

787 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 13:34:49 ]
うわーSynthesizer実装しないといけないんですね。
分かりました。諦めます。

788 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 15:15:38 ]
オーバーロードに関して質問なのですが
class unko {
  public void hoge(List<List<A>>) {
  }
  public void hoge(List<A>) {
  }
}

これって何で出来ないんですか?
微妙に型というか違うと思うのですが

789 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 15:19:23 ]
Javaのジェネリクスは、コンパイル後に消えるから、どちらも同じ型とみなされる。
だからNG



790 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 15:30:01 ]
>>789
なるほど・・・


791 名前:デフォルトの名無しさん [2008/03/27(木) 16:53:01 ]
List< List<A> >ならOK

792 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 16:57:04 ]
>>791
C++と勘違いしてないか?

793 名前:デフォルトの名無しさん [2008/03/27(木) 17:00:59 ]
>>792
うん。

794 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 17:13:52 ]
なんだ釣りか。

795 名前:772 mailto:sage [2008/03/27(木) 22:42:03 ]
>>774
文字列連結でもOKなのは、まったく分かっていませんでした。
さらに、実行時に解決?計算される文字列は、異なるもなのですね。
そもそもinternなんてメソッドがあるなんて知りませんでした。

全く分かっていなかったけど、そのサイトかなり勉強になりました。
理解できればの話ですが。


796 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 01:03:18 ]
フィールド名の先頭を_(アンダーバー)にしているコードを見かけるのですが、
どのような意味でそのようにしているのですか?

797 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 01:18:31 ]
フィールドとそうでないものとを区別するため

798 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 01:22:10 ]
アンダースコアが正しい読み方

799 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 07:58:59 ]
>>798
通じるし、そこは許容範囲だろ。
「Unicode的にはローラインだ」とか、不毛だろ?



800 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 08:27:03 ]
_1つで始まる識別子って、グローバルな空間では全部予約済みなんだよな。
構造体フィールドならいいけど。


801 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 08:28:05 ]
む、そりはC/C++だ。


802 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 08:44:57 ]
Cでコンパイルするとリンカ上の名前が_付になる。のような気がした。

803 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 09:06:25 ]
800は791か。

804 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:35:10 ]
変数a b c があるとしてこの中で中央値を求めるにはどういう方法がありますか?
変数は何が入るかわからないという場合です。
if文の練習問題なのですが、答えがのってなくて

805 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:41:43 ]
int[] array = new int[]{a, b, c};
Arrays.sort(array);
System.out.println(array[1]);

806 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:43:00 ]
>>805
if文使えw

807 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:47:12 ]
説明が悪かったです、すみません
例えば a=1 b=2 c=3 なら bが出力 a=2 b=1 c=3 なら aが出力
みたいに何の数値を入れても真ん中の数値が出力するということです。

808 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:48:59 ]
いや>>805で合ってるよw
if(a<b){ if(b<c)答=b; else 答=max(a,c); }
else{ if(c<b)答= b; else 答=min(a,c); }

809 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:56:18 ]
全然わからないんですが、maxとminはどうすればいいですか?



810 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:00:54 ]
maxは渡された引数の大きいほうを、
minは小さいほうを返すだけ。
これくらいは自力で書けないと、将来つらいよ?

811 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:08:52 ]
>806
数が増えた時に汎用的に使えるのはソートじゃね?

>809
日常生活にも支障ありそうだなw

812 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:15:12 ]
ありがとうございます、しかし多分maxとminはまだ参考書に出てきてないので使わない方法なんだと思います。
あとは自力で考えます、ありがとうございました。

813 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:21:46 ]
>>811
if文つかってやれよw

814 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:21:53 ]
すみません、勘違いしてたようです。
maxとminは別に何でもいいんですね、引数ってのを使えば楽ってことはわかりました。

815 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:25:04 ]
っ Math.min、Math.max

816 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:30:10 ]
あ、Math.min Math.max調べたらやっぱりminとmaxじゃないとだめみたいでした。

817 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 12:35:51 ]
min(l,r)は if(l<r)答=l; else 答=r;
max(l,r)は if(l>r)答=l;else 答=r;

818 名前:デフォルトの名無しさん [2008/03/28(金) 15:51:54 ]
>>803
ちげーよ馬鹿。
俺は決してsageたりしない。

819 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 16:04:25 ]
一つ助けてくれ。

JOGLのデモにあるcgGL_vertex_exampleとruntime_ogl_vertex_fragmentがjogl_cg.dllが見つからないって
UnsatisfiedLinkErrorが出るんだけど利用してるjreにjogl_cg.dllは置いてあるんだけど
-Djava.library.path指定しても解決できない、どうすれば良いか分かる人居る?

JOGLのパッケージ以外に何か必要だったりする?



820 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 16:07:32 ]
system32に放り込め。

821 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 18:09:32 ]
>>819
cgのランタイムが必要とかかな・・・?
そのjogl_cg.dllのインポートテーブルを見てみると何かわかるかも

822 名前:デフォルトの名無しさん [2008/03/28(金) 21:03:25 ]
最近Javaを勉強し始めた者です。
当方JavaScriptを今までやっており、ちょっとサブルーチンを使う程度で
あとはとにかくつらつらと書き連ねていくようなプログラムの書き方に慣れてしまいました。
まだJava関係の書籍は買っておらず、様々な入門サイトを見て勉強しているのですが、
いちいちメソッドを呼び出し合ったりメソッド毎に細かく処理を分けたりする、
オブジェクト指向の具体的な使い方やメリット等がいまいち理解できません。
自分で適当にメソッドやクラスを分けたりしてオブジェクト指向をしてる気にはなってみても、
「こんなんで良いのだろうか?」と言う感じがしてしまい、
色んな処理を同じメソッドに詰め込んでしまいがちです。
なので、文法の解説ではなくオブジェクト指向の解説をメインにした
参考書があれば買おうと思うのですが、どの書籍が良いのでしょうか?
回答よろしくお願いします。

823 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 21:21:23 ]
>>822
デザパタ

824 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:11:01 ]
>>822
結城浩という名前を覚えておくと、困った時に助かるかも

825 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 22:27:08 ]
まあ、片っ端から10冊ぐらい読め。将来を考えたらたいした投資じゃない。

826 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:02:24 ]
>>825
必要ない人には必要ないだろ 勝手に将来を妄想するな

>>824にあるけど、結城さんの本は取り組みやすいから、
デザインパターンの入門にしろ、Javaの入門にしろ、1冊目としておすすめ

827 名前:デフォルトの名無しさん [2008/03/28(金) 23:04:19 ]
総称クラスのインスタンスを作成することは出来るでしょうか?

public class TempT <T>{
public T makeT(){
return new T();
}
}
ということをやりたかったのですがコンパイルが通らないようです。
総称クラスの名前だけでもわかれば、
ttp://blog.xole.net/article.php?id=197
で何とかなると思うのですが……。

828 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:09:29 ]
>>826
勧められた本だけ読んで結城先生信者ですかwさすがゆとりですな

829 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:16:03 ]
>>827
できないんだったかな
public T makeT(Factory<T> factory) { return factory.create(); }
みたいにするのが正攻法なんじゃないの
使うときはTに指定する型ごとにFactory<T>をいちいち実装しないといけないけど



830 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:17:25 ]
>>827
ジェネリクスはコンパイル処理。
コンパイル後は、普通のキャストと変数の型に展開されて、情報は残りません。

何がやりたいのか…何かが出来そうで試してるだけなのかな

汎用的に便利なクラスなんてものは、まず作れないと思ったほうが良い。
それをするなら、今の仕組みが便利に判りやすくなるクラスを作りましょう。

831 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:22:26 ]
C#だと「引数無しのコンストラクタを持つ」制約が付けられるからあっさり実現できるんだけどね

832 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 23:39:55 ]
>>822
>いちいちメソッドを呼び出し合ったりメソッド毎に細かく処理を分けたりする、
>オブジェクト指向の具体的な使い方やメリット等がいまいち理解できません。

オブジェクト指向とか、デザパタとかいう話じゃないだろ。
マーチンファウラーのリファクタリングが指針になるかも。

833 名前:827 mailto:sage [2008/03/29(土) 00:36:28 ]
>>828-830
早速のお返事、有難うございます。
>何かが出来そうで試してるだけなのかな
正直、半分はそんなところです。
getDeclaredFieldsあたりのリフレクションとcommons.beanutils、commons.dbutilsを組み合わせて、ごく簡単なO/Rマッパが作れないかなと思ったんですがね。
……やっぱ素直にHibernateとかS2Daoを使っておいたほうがいいのか。 ・・・でも大げさすぎるんだよなぁw

834 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 09:58:12 ]
newInstance使ってキャストって手もあるが

835 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 10:56:37 ]
いまは
T Class<T>#newInstance()
だからキャスト不要。

例外は捕捉する必要あるけど。




836 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 12:53:04 ]
どっちみちTからは直接取れないけどな

837 名前:827 mailto:sage [2008/03/29(土) 15:26:04 ]
>>835
みたいですね。T.newInstance()って書き方もNGみたいです。
残念ですが諦めましょう。

838 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:39:36 ]
こんなのどう?
public class TempT<T>{
 private Class<T> clazz;
 public TempT(T t) {
  clazz = (Class<T>) t.getClass();
 }
 public T create() throws Exception{
  return clazz.newInstance();
 }
}
コンストラクタ引数が無駄でヤな感じ。アイディア求む。

839 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:52:46 ]
Class<T>を引数にした方が誤解を招かないんじゃね
それでも格好悪いけど



840 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 15:58:57 ]
インスタンスの生成に関してジェネリクスでやろうって方針が無理
可能なのはキャストがいらねってくらいだよ

841 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:41:57 ]
初心者ですみません、質問させてください

変数の型にfloatを使いたいのですが、コンパイル時にエラーが出ます。

精度が落ちている可能性
検出値 double
期待値 float
a=3.6
^

と表示されてます。
本を買って勉強始めたばっかりで、本の通りに書いたと思うのですが、
自力解決出来ません。doubleで書くと上手く行ったのですが、原因が知りたくて。

842 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:46:10 ]
3.6f

843 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:48:50 ]
3.6 は倍精度浮動小数点の double。a は単精度浮動小数点の float。
代入するには精度を落とさなければならないが、それをコンパイラが勝手にやるとバグの元になる。
3.6 の方も float であると明示的に記述すれば良い。

a=3.6f;

844 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:55:19 ]
doubleっていう、「基本があってその倍」な名前のほうが
デフォなのがややこしいな。


845 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 16:57:16 ]
なるほど、ありがとうございます!



846 名前:デフォルトの名無しさん [2008/03/29(土) 19:29:15 ]
質問です。

現在、mainクラスのガベージコレクションを、
多重継承されたインスタンスからコントロールしています。

ただ、Heap領域にアクセスする場合について、
そのコレクションフレームワークからマルチスレッド化させると、
ローカルにremoveしようとしても同期的な排他制御が取れません。
やはりラッパークラスのプリミティブ型は、エレメントのイテレータもhasNext()メソッドもどきで
volatile修飾子のシリアライゼーションをさせるのが絶対条件なのでしょうか。

ちなみに、もしコマンドライン引数によってJava.langのStringBufferまでimportしたとしても、
SetインターフェースのisEmptyメソッドにするとなぜかStackOverflowErrorの例外が発生します。
staticなyield()メソッドを汎用させるため、
throwsで例外ハンドラをコンストラクタなアサーションをしているのですが・・・。

C言語が腐るほど考えたのですが、
バイナリでのファイル操作がなかなかまとまらないため質問した次第ですので、
どうかお答えお願いします。

847 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:46:09 ]
「日本語でおk」ってこういうときに使うの?

Javaで多重継承かー。


848 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 19:47:33 ]
C言語腐っちゃったよ〜 どうしよ〜

849 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 20:39:39 ]
Javaっぽい言語のVM実装しているのかねぇw



850 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 20:58:28 ]
バカが何人釣られるか静観してようかと思ったが
コピペに w とか、もう見てらんない。

851 名前:デフォルトの名無しさん [2008/03/29(土) 21:01:24 ]
とりあえず>>846が池沼なのは確定だろ?

852 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:02:31 ]
見てらんない = 結局釣られた

853 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:04:39 ]
前スレあたりのコピペも知らんて、おまいら春休み参入者か?

854 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:08:43 ]
何でこうネタやコピペすら嗅ぎ分けられない恥ずかしい奴多いんだろここ。

855 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 21:17:09 ]
>>846とかマジ池沼じゃんw
何この春厨wwwww

856 名前:827 mailto:sage [2008/03/29(土) 22:00:37 ]
>>838
アドバイス有難うございます。確かにヤな感じはするのですが、こうするより仕方ないようですね。

>>839
Class<T>を引数にする、というのは気がつきませんでした。御助言感謝です。

>>840
どーもすいません(苦笑)

857 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 01:06:30 ]
スレに常時へばりついているってのも、どうかと

858 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 04:29:15 ]
悔しそうですね。

859 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 11:03:54 ]
Servlet+JSP+Strutsでアプリケーションを作成しています。

これで出力されたHTMLには余計な空行が出力されます。
(Strutsタグなどの位置により)

なるべくHTMLを小さくしたいので余計な空行やスペースは
削除したいのですが、なにかテクニックはないものでしょうか?

思いつくのはフィルターとか???

よろしくお願いいたします。



860 名前:デフォルトの名無しさん [2008/03/30(日) 11:26:37 ]
スーパークラスHogeの拡張クラスHogeA,HogeBが定義してあり
HogeAのカプセル化されたフィールドにα、HogeBのカプセル化されたフィールドにβが定義されてる状態で
Hogeにはアブストラクトのゲッターメソッド、セッターメソッドが定義されています

別のクラスDから
Hoge h = (Hoge)HogeA
or
Hoge h = (Hoge)HogeB

のような形で選択的にHogeを定義しゲッターメソッドから任意のα、βが抽出できるようにしたいのですが
現状うまく行きません

よい方法を教えてください

861 名前:デフォルトの名無しさん [2008/03/30(日) 11:31:09 ]
>>859
私の場合ははフィルターを作ってそこを通してデーターが得られるようにしてます

862 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 11:47:37 ]
>>860
スーパークラスでαとβが宣言されてないからHogeのインスタンスとしている場合にアクセスできないのは当然です。
そのフィールドを使いたい場合はHogeA,HogeBでキャストしてやらなきゃ無理っす。

863 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 11:49:48 ]
>>861
ありがとうございます。
私もfilterでやってみようと思います。

でもその前に、、、、そのフィルターください!orz



864 名前:デフォルトの名無しさん [2008/03/30(日) 11:55:06 ]
>>862
選択的キャストの方法としてどういう方法があるでしょうか

865 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 12:10:32 ]
>>860
Hoge で定義した get/set メソッド宣言と、α、βの型を教えて欲しい。

866 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 12:18:32 ]
>863
数100バイトの差は気にしないほうがいい。
携帯コンテンツとかならば、JSPを工夫するか、Servlet内で全部HTMLを書いて小さくするほうがいいかと。

867 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 12:19:57 ]
>860
HogeにgetParam があったとしたら、
HogeA で getParam からαを取得、HogeBではβを取得
ってのが普通かと。

868 名前:>>862 mailto:sage [2008/03/30(日) 12:29:27 ]
えらい勘違いしてました。
抽象クラスでgetter/setter宣言してたんですね。
その型が抽象クラスのgetter/setterの戻り値の型の子なら大丈夫です。

869 名前:デフォルトの名無しさん [2008/03/30(日) 12:59:04 ]
失礼
うまく行きました
他のことが原因してました



870 名前:デフォルトの名無しさん [2008/03/30(日) 17:51:19 ]
JSON-LIBを使おうと思い、
C:\Tomcat 6.0\lib
にjson-lib-2.2.1-jdk15.jarを入れたのですが、
java.lang.NoClassDefFoundErrorが出てしまいます。
C:\Tomcat 6.0\lib下ではクラスパス通らないのでしょうか?
それともjdk16環境下なのにこのJARを入れたのが失敗でしょうか。

871 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 21:04:39 ]
JDK6ならjavascript使えば良いと思うんだが・・・

872 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 01:30:58 ]
png画像の画像処理をしたいのですが質問です.

java.awt.image.PixelGraberのgrabPixels()で各ピクセルの情報を配列に取得し,
java.awt.ColorのgetRed()/getGreen()/getBlue()で各ピクセルのRGB値まではとれました.

ここから取得した配列のRGB値を取得したRGB値を元にして計算し
変更したいのですがどのようにすれば良いのでしょうか?

873 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 01:50:46 ]
どう計算したいのかはお前以外には解らんw

874 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 02:24:02 ]
どう計算するかは分からないけれど、ImageIO.readでpngをBufferedImageとして読み込んだ方がいろいろ変更の自由がきくよ。

875 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 02:24:57 ]
あ,計算の話ではなくて

計算後にでた新しいRGB値をつかってpngを作り直したいんです.
日本語が変ですいません.

876 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 08:54:59 ]
普通にやりたいことを言えよw
例えば元画像をグレースケールにしたいとかさ

877 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 10:17:07 ]
単純に SSLSocketFactory から SSLSocket 作った場合ってどこの CA 証明書が使われてんの?
コントロールパネルの Java 設定にリストされているやつ?

878 名前:デフォルトの名無しさん [2008/03/31(月) 11:41:55 ]
>>158
肉で出来ています。

879 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:18:00 ]
JNDIを使用『しないで』DataSourceを生成する方法を教えてください。
組み込みでH2 Databseを使おうと思ったのですが、アプリケーションサーバのJNDIを使って生成する方法しか検索できませんでした。
一応、↓でなんとか生成できたのですが、本当にこの為だけにCommons DBCPやCommons Poolを使わないとならないのでしょうか?
ttp://wiki.livedoor.jp/syo1976/d/Derby



880 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:26:10 ]
JNDI 使わないってスタンドアロンで使うのか? なら接続しっぱなしにしときゃ良いじゃん。

881 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:36:20 ]
>>879
"Using mock naming contexts for testing"
ttp://weblogs.java.net/blog/simongbrown/archive/2003/11/using_mock_nami.html

JNDI依存のロジックをコンテナ外でテストするためのテクニックだけど、
流用できると思う。

882 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 12:54:34 ]
超初心者です。入力した整数値を読み込んで、小さいほうの数以上で大きいほうの数以下の全整数を小さいほうから順に
表示するプログラムを作りたいんですが、最後の整数が表示出来ません。アドバイスもらえませんか?作ったコードは下です。

System.out.print("整数1:");
int n = stdIn.nextInt();
System.out.print("整数2:");
int x = stdIn.nextInt();

do {
 if(n >= x)
  System.out.print(x++);
 else if(n <= x)
  System.out.print(n++);

  } while (n != x);
 }
}

883 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:01:39 ]
素直にforでいいんじゃね?
for(int i = n; i <= x; i++){
 System.out.println(i);
}
それとも何かの課題?

884 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:07:56 ]
System.out.print("整数1:");
int n = stdIn.nextInt();
System.out.print("整数2:");
int x = stdIn.nextInt();

do {
 if(n >= x)
  System.out.print(x++);
 else if(n <= x)
  System.out.print(n++);
  } while (n != x);
  System.out.print(n); //これを追加
 }
}
にするとか

明解javaの演習問題だね

885 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:09:22 ]
>>883
for使うと簡単そうなんですが、練習問題を最初からやっていってる最中で
今はifとdoとwhile文のところなんで、一つずつ確実に使い方を覚えるためにもこれらの構文を使ってやりたいのです。

886 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:11:47 ]
>>884
おぉ、出来ました!そうです、明解Javaをやってるんです。
この参考書答えがないので、超初心者な自分にはきついです。

887 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:12:39 ]
>>884はifの条件式も変えないと駄目だわ

888 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:15:42 ]
>>887
(n > x)と(n < x)でいいですかね?

889 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:17:31 ]
おk



890 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:19:57 ]
>>889
ありがとうございます、ずっと考えていたのがやっと解決して先に進めます。

891 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:20:13 ]
ループの前にどちらが大きいかを判断して,
大きい方と小さい方それぞれ別の変数に入れといた方が綺麗に書けるよ

892 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:20:16 ]
ゆとりは不等号を習わないんだって
おそるべしゆとり

893 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:25:50 ]
>>891
ちょっと考えてみます。すみません、ほんとに初心者なもんで。

894 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:38:26 ]
初心者初心者って連呼しすぎうぜえ

895 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:48:22 ]
初心者は何をしても許されるべき

896 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:50:46 ]
本人乙

897 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:57:01 ]
ワロタ

898 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:28:46 ]
じゃあ俺も初心者を名乗るから、何をしても許せ

899 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:49:26 ]
おれもれも



900 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:51:31 ]
「初心者だから仕方ないじゃないですか!
日本国では初心者が手厚く保護されているのです。
私は一生初心者であることに決めました。
初心者なんで気を遣って下さい!大目に見て下さい!」

そしてJavaに合格すると「なぁに、初心な言語は山ほどあるさ!」と。

901 名前:デフォルトの名無しさん [2008/03/31(月) 15:55:37 ]
次スレから初心者なしにしようぜ
【初心者】Java質問・相談スレッドxxx【立入禁止】

902 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:59:43 ]
ここはひどいインターネッツですね

903 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:00:45 ]
それは人来なくなるだろw
でも自分で初心者を名乗るほどの初心者はくだすれに行った方が良いよな。

904 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:05:03 ]
初心者無視スレ時代も知らん連中が集まってんのか。

905 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:06:18 ]
うん。

906 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 16:17:20 ]
>>782
デバッグ版のJDKだと -XX:+PrintOptoAssembly オプション付きで起動すれば
出力できるらしいって d.hatena.ne.jp/kkawa/20080330 に書いてある。

907 名前:879 mailto:sage [2008/03/31(月) 17:23:10 ]
>>880
いや、まったくそのとおりなんですが、Commons DbUtilsがDataSourceないと使えんとですよ……。

>>881
ありがとうございます。が、これはこれでMockObjectに依存しているのですね。
同じ依存するならcommonsで統一しましょう。
……>>880の言うとおり、一つコネクション取って繋がりっぱなしでいいんですけどねぇ。
何でこんなコトしてるんだろ? Webで使うことしか考えてないのかな>Commons DbUtils

908 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 17:46:03 ]
>>907
単一スレッドだけなら接続済みの Connection を 1 コ だけ持つ DataSource クラス作れば良いんでねーの。
必要なメソッド数なんて 10 もないでしょ。あ、close() をゴマかさにゃいかんか。

DbUtils って使ったことないけど、DataSource で受け渡したらトランザクションスコープもクソも
なくなるんだがそんなウンコチンチンな作りなのかな。どっかのプロジェクトで見たクソフレームワークみたいだな。

909 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 17:48:49 ]
ここで908謹製の最強素敵フレームワークへのリンク



910 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:26:27 ]
>>909
前世紀の終わりに作った奴は発想も方向性も今の Spring Framework とかなり似ている。
まぁまだフレームワークという言葉自体なかったし、周囲も OO 設計への理解度が皆無だったし。
他で作ってた、場当たり的な拡張で肥大化したクラスライブラリのようなものの方が 「多機能」
として受けが良かったのは悲しかった。

同じ頃にアプレット使って今の Ajax と同じことを提案してたよ。使われなかったけど。あれは特許も
提案したんだけどなぁ。あらためて思い出すと相当先行ってたな俺。

911 名前:879 mailto:sage [2008/03/31(月) 18:32:37 ]
>>908
……申し訳ない。大勘違い。
<font size="+3">Commons DbUtilsでDataSourceは必須ではありません</font>
……googleセンセイで引いてくる例がことごとくDataSourceを使ってたもんだから完全に勘違いしてました。

以後メモ。
Commons DbUtilsでDataSourceを使わずにSQLを発行するのは、単にQueryRunnerのコンストラクタを引数なしで呼べばいいだけ。
その後、queryメソッドの第一引数にConnectionを指定すればOK。
Webで引ける例はQueryRunnerのコンストラクタにDataSourceをほとんど必ず指定しているが、DataSourceがないとQueryRunner=Commons DbUtilsが使えないわけではない。

以上、同じ間違いを繰り返す人が出ないことを祈りつつ恥を晒します(涙)

912 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:34:33 ]
受けが良かったのは開発者じゃなくて上や営業向けにね。

913 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 20:57:05 ]
ajaxなんてだれでも考えつく昔からある方法だろ。
単に最近になってウケただけ。

914 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 21:25:52 ]
IE でまさに innerHTML やデータバインディングが実装された 4.0 の頃の話してんだが。
どこの昔からある方法だよ。

915 名前:デフォルトの名無しさん [2008/04/01(火) 01:42:12 ]
TestClass var = new TestClass();
TestInterface test = (TestInterface)var;
と言うふうにキャストすると、
TestClassがTestInterfaceをimplementsしていなくてもコンパイルが通りました。
キャストすればどんなインターフェイスにも代入できるのかと思ったんですが、
Stringはキャストすることができませんでした。
特定のInterfaceにキャスト可能な条件というのは何なんでしょうか?

916 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 01:54:18 ]
コンパイルは通らないと思うが。本当に extends や implements してないのか?

917 名前:915 mailto:sage [2008/04/01(火) 01:59:09 ]
コンパイルは通ったけど、実行したらClassCastExceptionが出ました。
ダメですね。。。

918 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 02:23:02 ]
すまん勘違いしていた。

public class TestClass2 extends TestClass implements TestInterface{ ... }

というクラスがあるかもしれないから、キャスト時に元の型にそのインターフェースが implements
されていなくてもコンパイルは通る (型チェックは実行時にしかできない)。

TestClass var = new TestClass2();
TestInterface test = (TestInterface)var;

TestClass が final 宣言されていれば TestClass2 のようなサブクラスの存在は
ありえないのでコンパイル段階でエラーになる。

String のキャストに失敗するのは、Java では多重継承ができないから TestClass の
サブクラスであり String のサブクラスでもあるクラスというのはありえないから。

919 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 19:23:08 ]
Java で作った PublicKey, PrivateKey を KeyStore で保存したいんだけど、
Certificate が必要なようだけどこれってどうやって作るの?



920 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:16:19 ]

ユーザ認証を求められるwebサイトで、認証後の内容
つまりログイン状態後にアクセス可能になるコンテンツに、
javaプログラムでアクセスするためには、どういう方法をとればよいのでしょうか?


端的に言って、mixi のことなんですが....

javaプログラム側でどのような方法をとれば、mixiのログイン状態を実現できるのか、
知りたいのです。



921 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 08:43:50 ]
>>920
javaプログラムでログインすればいいです。

922 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 09:22:17 ]
>>920
HTTP通信のライブラリを使うと楽。
Apache HttpComponentsとかHttpUnitとかお薦め。

923 名前:デフォルトの名無しさん [2008/04/02(水) 11:09:49 ]
>>921
そのやり方僕にも教えて

ログイン時のパラメーターをどうやってJAVAからWEBサイト側に渡すのか
方法が分からん

924 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 11:18:15 ]
URL と URLConnection で GET/POST リクエスト送る方法調べろ。

925 名前:デフォルトの名無しさん [2008/04/02(水) 11:26:05 ]
それだけなんだ


926 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 13:40:31 ]
>>923
まずHTTPから勉強しなよ

927 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 14:44:22 ]
Struts+JSPで親画面からwindows.openで子画面をポップアップで開き、子画面で選択した内容を親画面に戻しています。
親画面が縦長なので画面が一番上に戻ってしまいます。
一番上に戻らないようにしたいのですが、どうすれば良いでしょうか?


928 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 14:48:12 ]
JavaScript で入力内容を親画面に設定しれ。リクエスト出すな。

929 名前:デフォルトの名無しさん [2008/04/02(水) 15:37:59 ]
入力した数字が素数か調べるにはどうすればいいですか?



930 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 15:42:51 ]
>>929
その数字の約数を調べればいい
約数が1とその数字自身しかなければ素数

931 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 17:11:15 ]
>>920
まずは Firefox と LiveHTTPHeaders を入れて、どんなことが起きてい
るのか調べるんだ。その上で、どんなAPIを使えば楽ができるのかを考える。


932 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 17:13:10 ]
Eclipse の TCP/IP モニタで十分じゃん。

933 名前:デフォルトの名無しさん [2008/04/02(水) 19:13:01 ]
プログラミング初心者ですが、質問があります。
eclipseで以下のようなプログラムを書いて、それをjar形式でエクスポート
しました。
しかし、そのjarファイルをクリックして開こうとすると「could not find main class」
と出てききます。どうすればいいのでしょうか?
誰かわかる方助けてくださいお願いします。

import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

import javax.imageio.ImageIO;
import javax.swing.JFrame;




934 名前:デフォルトの名無しさん [2008/04/02(水) 19:13:57 ]
public class GameTestMain {

/**
* @param args
*/
JFrame frame1;
BufferStrategy bstrategy;
int count = 0;
BufferedImage backimage1, backimage2;

GameTestMain() {
frame1 = new JFrame("ノベルゲーム");
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setBackground(Color.WHITE);
frame1.setResizable(false);


935 名前:デフォルトの名無しさん [2008/04/02(水) 19:15:13 ]
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
GameTestMain gtm = new GameTestMain();
}


class MyTimerTask extends TimerTask {
public void run() {
Graphics g = bstrategy.getDrawGraphics();
if (bstrategy.contentsLost() == false) {
Insets insets = frame1.getInsets();
g.translate(insets.left, insets.top);

g.drawImage(backimage1, 0, 0, frame1);

g.setFont(new Font("Selif", Font.PLAIN, 40));
drawStringCenter("秒速1キロメートル", 100, g);


bstrategy.show();
g.dispose();
}
}
}



936 名前:デフォルトの名無しさん [2008/04/02(水) 19:16:07 ]
void drawStringCenter(String str, int y,Graphics g) {
int fw = frame1.getWidth() / 2;
FontMetrics fm = g.getFontMetrics();
int strw = fm.stringWidth(str) / 2;
g.drawString(str, fw-strw, y);
}

}


937 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:17:17 ]
マニフェスト Main-Class でググレ

938 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:17:23 ]
エクスポートするときにメインクラス指定した?

939 名前:デフォルトの名無しさん [2008/04/02(水) 19:22:08 ]
>>938
GameTestMainってのを選択しました。



940 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:30:00 ]
>>933
jarを展開してMETA-INF/MANIFEST.MFファイルがあるか確認
その中にMain-Class: GameTestMainと書かれているか確認
必要なclassファイル (GameTestMain.classとかMyTimerTask.classとか) が全部入ってるか確認

941 名前:デフォルトの名無しさん [2008/04/02(水) 19:53:56 ]
それ以前にクラスパス通ってる?

942 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 20:42:01 ]
そもそもデフォルトパッケージで JAR 起動できたんだっけか?

943 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 20:46:12 ]
できるよー

944 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 22:53:45 ]
>>932
どうやるんだ?

945 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 22:59:32 ]
[Window]-[Show View]-[Other...]-[Debug]-[TCP/IP Monitor]
右上の ▽ の Properties... で実際の接続先を指定。
ブラウザのプロキシ設定で localhst:<local monitor port>

946 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:27:30 ]
一つお伺いしたいのですが,java複数枚のjpegをmjpeg or wmv を作りたいのですが
どの様にすればよいのでしょうか?

947 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:38:51 ]
java複数枚のjpegってなんだ?をが2つあるし

948 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:57:03 ]
>>946
標準APIではメソッド一発で、みたいな便利なものはなさそうだから、
フレームになるjpegデータを読み込んで欲しい動画形式に従ってファイルに書き出していくしかなさそう。
標準でなければ動画を扱うライブラリとかでありそうだけど。

949 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 09:06:56 ]
JMFってMotionJPEG対応してなかったっけ?



950 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:31:08 ]
チャット作るのに JMS 使うのって鯵捌くのに斧振り回すみたいなもんかね?

951 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:19:06 ]
文字列にそれまでと違う文字が出てくるindexってとれますか?
1111223111だったら4が取得できるといった感じの

952 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:27:52 ]
>951
配列に展開してfor文でまわせばいいじゃん・・・

953 名前:デフォルトの名無しさん [2008/04/03(木) 22:36:47 ]
次すれから初心者出入禁止な

954 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 22:52:55 ]
超初心者スレもあるのかな?
とりあえず、質問内容を理解できる日本語文が読みたいよ。

955 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 23:13:14 ]
【初心者以前】Java質問隔離スレ【エスパー募集】とか?

956 名前:デフォルトの名無しさん [2008/04/03(木) 23:27:59 ]
くだすれでいんじゃね?

957 名前:デフォルトの名無しさん [2008/04/04(金) 00:13:20 ]
Javaから、Windows上のフォルダの書込権限を調べることは可能でしょうか?

Javaは1.4、Windowsは2000もしくはXPが対象です。

958 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 00:34:49 ]
>>957
File.canWrite()



959 名前:デフォルトの名無しさん [2008/04/04(金) 01:06:14 ]
>>958
ありがとうございます。
1週間以上探しても見つからず、もはや不可能なのかと諦めかけていました。



960 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:15:01 ]
>>951
String s = "1111223111";
String regex="(.)\\1*([^\\\\1])";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
if(m.find()) {
int i = m.group(0).length() - 1;
System.out.println(m.group(0));
System.out.println("index is " + i);
}
できたどー

961 名前:デフォルトの名無しさん [2008/04/04(金) 04:03:24 ]
どうやったらこれ探すのに1週間以上かかるんだw

962 名前:960 mailto:sage [2008/04/04(金) 06:25:46 ]
String s = "1111223111";
String regex="(.)\\1+(.)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
if(m.find())
if(!m.group(1).equals(m.group(2))) {
int i = m.group(0).length() - 1;
System.out.println(m.group(0));
System.out.println("index is " + i);
}
間違えてたどー






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<246KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef