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


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

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



1 名前:Javaが初心者 mailto:sage [2008/05/12(月) 03:05:27 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
【初心者】Java質問・相談スレッド114【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1207385614/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

369 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:36:00 ]
数字に規則性があるならできるけど、それ以外はしらね

370 名前:デフォルトの名無しさん [2008/05/23(金) 16:36:42 ]
>>365-366
ありがとうございます。
勉強したが、やはり、>>367が理解できん。
リテラル値をそのまんま突っ込んでいるから実体に反映されてるんかなぁ。

371 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:37:07 ]
>>367
javac様はコンパイル中に「"aaa" + 1」を見て「両方とも定数だからい
ま1つの文字列にしちゃおう」と考える。「"aaa" + String.valueOf(1)」
は「なんか関数呼び出しがあるからコンパイル時にはどうしようもない
よね」と考える。


372 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:38:34 ]
>>370
定数式とかString#intern()でぐぐれ。

373 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:43:06 ]
>367
定数としてコンパイル可能な String のうち、同値になるものが同じインスタンスとされてるだけ。
>363 の例なら、int i=2 を final int i=2 とすれば、k==l は true となる。

374 名前:デフォルトの名無しさん [2008/05/23(金) 16:48:42 ]
>>369
隣接行列を2次配列にしたいんですけど
ノード数が100個以上あって、
エッジが繋がっている部分に重みがあって
エッジが繋がっていない部分を無限大の重みを付けたいんです。

規則性はあんまりないです。

ちなみに駅間の最短距離を求めるプログラムで利用したいんです。
データは隣駅までの距離です。

375 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:50:02 ]
>>368
何をもって綺麗とか力技とかと評価するのか知らないが、
ほとんどを占めている数を配列全体に(Arrays.fillとかで)入れておいて、
配列内の位置とその値のペアで(配列やコレクションで)持っておいたものを代入するとか。

376 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:51:44 ]
>368
java.util.Arrays.fill
>374
規則性が無いものを "計算機" で処理しよう、とな。
そこに妙な説明が書けるんだから、その通り実装すれば良いでしょう。

377 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:55:35 ]
>>374
隣接行列はそういうスパースなグラフでは表現時にメモリの無駄が多いので、
他の表現方法で接続データを持っておいて(隣接リストとか)、
それをプログラム内で隣接行列に展開するようにするとか。



378 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:08:26 ]
メモリの無駄が多い→同じ情報が繰り返し出てきてもたつき感がある

379 名前:デフォルトの名無しさん [2008/05/23(金) 17:22:18 ]
>>371-373
ok danke.
少しだけavacの気持ちが分かりました。

380 名前:デフォルトの名無しさん [2008/05/24(土) 00:00:25 ]
enum ってなんて読むのですか?

381 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:53:27 ]
>>380
コミュニケーションする相手とのコンセンサスが取れているのならどんな読み方でもどうぞ。
enumはenumeration(またはその派生形)の略なので元の言葉の発音を基にするか、
enumそのものの綴りを連想できるような読み方にするかすればいいと思うよ。

382 名前:デフォルトの名無しさん [2008/05/24(土) 01:11:12 ]
ファイルに入力されてるなら
そこから読み取るっていうこともありえるけど・・・

383 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:44:02 ]
AWTのTextFieldで右詰めにするのってできないんでしょうか??
どうやったらいいのか調べてもさっぱわかりません。。。
SwingならsetHorizontalAlignment使えばいいんですが、AWTでのやりかたをどなたかご教授願えませんかm(_ _)m

384 名前:デフォルトの名無しさん [2008/05/24(土) 02:05:43 ]
>>381
ありがとね

385 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 02:23:38 ]
LayoutManagerを無効にしたらTextField(5)とかいう風に列の幅を指定しても
結局そのサイズが0になっちゃうんですが、、、
座標指定できるLayoutManagerとかないですよね??
列の数を指定して(Dimensionではなくcolum数で)、
座標を指定してコンポーネントを配置することってできないんですかね??

386 名前:デフォルトの名無しさん [2008/05/24(土) 03:05:52 ]
class C2 extends C1 {...
C1 c1 = new C1();
C2 c2 = (C2)c1;
これは可能ですか?

387 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 03:12:53 ]
>>i386
C1を型に変換できません



388 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 05:40:02 ]
>>385
TextFieldを子孫コンポーネントとしたFrameを一旦表示してやると、
そのコンポーネントの推奨サイズが有効な値として取得できるようになるから、
推奨サイズをコンポーネントのサイズとして設定してやり、
その後、Frameを再描画すればいい。
一旦表示して設定後、再描画とかの流れが面倒なら、行儀の悪いものになるが、
コンポーネントを加えた後でFrameをネイティブスクリーンリソースに接続すれば、
Frameを表示することなくコンポーネントの推奨サイズを得ることができるようになる。

389 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 08:48:29 ]
>>385
なるほど。。。
ありがとうございます!!

390 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:19:54 ]
arraylistで値を追加する際genericsで型を指定していると処理の時間が多少短いような気がするのですが
これは偶然の誤差なのでしょうか?それとも速くなるものなのでしょうか?

391 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:05:33 ]
ならねぇ

392 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:11:20 ]
>>391
ありがとうございます

393 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:32:08 ]
オートボクシング/アンボクシングが働いて若干のパフォーマンス低下ってのならある。
けどもしそこがネックになってるならJITで最適化されるから気にしない。

394 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:32:36 ]
arraylistとlinkedlistの要素の追加に5倍ほどの時間差があるのですがこれはどういう理由なのでしょうか?
先頭の削除はarraylistが遅い
ランダムアクセスはLinkedListが遅いっていうのはわかるんですけど

intを1〜8000000
ArrayList追加 : 2385
LinkedList 追加 : 11095


395 名前:デフォルトの名無しさん [2008/05/24(土) 13:36:11 ]
>>394
そりゃあ、最後の要素までたどりつくまで時間がかかるからじゃないの?

396 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:58:00 ]
>>395
末尾に追加すると ってやつね

397 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:11:20 ]
>>394
追加し続けるだけ? それなら、
ArrayList→1回のaddにおける代入回数は1回。配列の末尾に要素を代入する(これで1回)だけ。配列のサイズが足りなくなると、元の1.5倍のサイズの配列を確保して元の要素を全部コピー。(このときだけ遅い)
LinkedList→1回のaddにおける代入回数は5回。要素を入れるEntryをnewして要素を代入(これで1回)し、前後のリンクを繋ぎ直す。(前、後、前の後、後の前で計4回)
あとは、どちらにもサイズのインクリメントとConcurrentModificationException判定用カウンタのインクリメントがあるけど、数字を見ると大きな要因ではなさげ。(最近のCPUだと並列処理されるのかな)
また、ArrayListは配列の拡張にペナルティがあるけど、LinkedListも1要素毎にnewするからか、ある程度相殺されてるっぽい。



398 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:20:00 ]
>>395
すいません説明が足りませんでした
>>396さんの通り末尾に追加です

>>397
リンクを繋ぎなおす処理で問題が出ていたわけですね
詳しい説明ありがとうございました

399 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:25:41 ]
>>395
LinkedListは頭と尻尾を知ってるから、わざわざそんなことしないぞ。
(間にsentinelを挟んだリング状になってる)

つか、適当なこと言う前にソース嫁。

400 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:03:41 ]
プ ロ フ ァ イ リ ン グ

401 名前:デフォルトの名無しさん [2008/05/24(土) 18:18:39 ]
keytoolの-validityで指定可能な最大値は何日ですか?

402 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:43:07 ]
javaでチャットを作ってます
swingのテキストエリアにメッセージを表示しているのですが、一行ずつフォントや色を変える方法はあるのでしょうか?
テキストフィールドを複数使ってテキストエリアのようにするぐらいしか思いつきません

403 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:43:27 ]
0か-1で無期限じゃなかった?

404 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:57:47 ]
>402
検索用ワード「JTextComponent スタイル」

405 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:02:46 ]
>>404
ありがとうございます!

406 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:01:03 ]
createImageに関しての質問なのですが
extends ComponentしたクラスでcreateImageをすると
nullが返りgetGraphicsすることができません

ググってみたところextends FrameしたクラスでaddNotifyをオーバーライドすればいいと
ありましたがcreateImageを利用する上で何をextendsするのがセオリーなのでしょうか
どうでもいいようなことかも知れませんがお願いします

407 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:19:14 ]
>>406
まだ表示されてないコンポーネントはcreateImageできない
BufferedImageをnewして使うといい



408 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:35:45 ]
>>406
Toolkit#createImageを使う手もある

409 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 04:28:52 ]
class GenericsTest<T> {
private T data;
public void copy(T newData) {
data = new T(newData); // error
}
}

このnew T(newData)のところ、
C++のテンプレートなんかだと
コンパイルできるんですが、javaではできませんでした
Tのメンバが全くわからない場合
どのようにmemberwise copy (deep copy)すべきでしょうか?

410 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 06:26:14 ]
>>409
interface CopyFactory<T> { T copy(T object); }
みたいのを定義&実装してやって、
コンストラクタ使わずにそっちで生成。

411 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 08:23:19 ]
>>410
了解です
ありがとうございました

412 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:51:59 ]
>>>409
・リフレクションでcloneを呼び出す
・リフレクションでコンストラクタを呼び出す
・serializeしてdeserializeする

413 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:05:50 ]
それが出来上がったら、俺だったら迷わずシングルトンなインスタンスを入れてみる

414 名前:FF [2008/05/25(日) 20:20:00 ]
キャラクター画像の背景の透過処理の仕方を教えてください。

415 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:39:42 ]
・もともと背景が透明画像用意する。
・IndexColorModelだったら透明色指定しとく。そうじゃなければ色置換。

416 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:47:28 ]
ArrayListをさらにList化することは出来るのですか?

417 名前:デフォルトの名無しさん [2008/05/25(日) 23:09:17 ]
何をしたいのかもう少し詳細に説明してください



418 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 23:32:17 ]
こうか?
ArrayList<ArrayList<Object>>

419 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:12:45 ]
>>417-418
レスありがとうございます。java宿題スレとマルチになってしまうんですが、とりあえず分からないなりに
解決してみようと思ってるんですが結局思いつかなくて、ここで聞いてるしだいです。
          if (bean.getSql().startsWith("select")) {
// iはループ用のカウンター;実行結果を取得する
for (int i = 1; i <= fileColumns; i++) {
columnNames.add(rsmd.getColumnLabel(i));
}
// フィールドの変数NameListに取得した文字列を入れます。
bean.setNameList(columnNames);
// 獲得したデータの格納
while (rs.next()) {
     ArrayList date = new ArrayList();
     for (int i = 1; i <= 3; i++) {
               date.add(rs.getObject(i));
            }
 bean.setResultList(date);     ←このResultListを、さらにList化したいです
        session.setAttribute("access", bean);
}
          }

SQLを実行してデータベースから結果をとりだして格納するんですが、上のプログラムだけだと
上書きしている状態で、最後に取得した情報しか表示されないのです。
すべて表示させるにはResultListをリスト化して、リスト化したところに個々の情報を入れていけば
全て表示できると言われたのですが、どうやってResultListをリストすればいいのか検討がつかないのですよ。

420 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:53:46 ]
マルチは首つって市ね

421 名前:デフォルトの名無しさん [2008/05/26(月) 01:07:29 ]
>>419

commons-collectionsのMultihashMapとかどう?

422 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 01:56:59 ]
>>420
ごめんなさい。

>>421
HashMapちょっと調べてきます!!
ご助言ありがとうございます。

423 名前:デフォルトの名無しさん [2008/05/26(月) 12:39:28 ]
お世話になっております。
今2つの内部クラスを作っています。ゆくゆくは内部クラスを別ファイルにでも切り離したいのですが、まだ先の話です。 現在は2つの内部クラス内のメンバー変数を内部クラス同士で参照させています。

下記のコードだと、eclipseはエラーを吐きませんが、 実行するとjava.lang.NullPointerExceptionエラーになります。
インスタンスもできていると思うし特に問題はなさそうです。

質問なのですが、なにか根本的に間違っていますか?

class M{
Initialize initialize;
Disp disp;

class Initialize{
private void once(){disp.isVal = true; }
}
class Disp{ boolean isVal; }

private Initialize mkInit(){
return initialize; }
private Disp mkDisp(){
return disp; }

public static void main(String[] args){
M m = new Majang();
Initialize initialize = m.mkInit();
Disp disp = m.mkDisp();

initialize.once();
}
}

424 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 12:55:15 ]
m.initializeに誰も何も代入していない (初期値nullのまま)

425 名前:423 [2008/05/26(月) 13:08:14 ]
早速の返答ありがとうございます。
ってことは
Initializeのコンストラクタでなにかの値を指定すればOKなのでしょうか。

//getClass()を使ったほうが可読性が高いですね。すみません。

426 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 13:24:37 ]
>>425
Initializeオブジェクトを生成してinitializeに代入しないといけないだろうということ
要するに
× Initialize initialize;
○ Initialize initialize = new Initialize();

427 名前:423 [2008/05/26(月) 13:38:20 ]
>>426
なるほど。
ありがとうございました。




428 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 17:44:13 ]
>>423
ねぇアレやっていい?アレ
ガッ!やっていい?

429 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 18:39:26 ]
>>423
内部クラスにするのはそれなりの設計理由があってすることで、
分離することが決まっているのなら、最初からきちんと分けて設計すべき。
クラス間の依存度が高いまま単に分けるだけなら分ける意味はあまりないし、
依存度が低くなるように最初の設計でインタフェースをきちんと決めて別々にした方がいい。
あとから制約を増やすのは面倒事になることが多い。

430 名前:デフォルトの名無しさん [2008/05/26(月) 19:20:09 ]
失礼します.
クラスからインスタンスを配列で作った際,Ins[0],Ins[1]…
Ins[n]内のメソッドから,Ins[n-1]内の変数をいじりたいのですが,どのようにすればよいでしょうか?

431 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:25:25 ]
JavaのGuiツールの中でボタンを押したらシェルを起動するという処理を行いたくて
Runtime rt=Runtime.getRuntime();
try{
rt.exec("cmd.exe");
}catch(Exception e){
e.printStackTrace();
}

こういうのをactionPerformedメソッドの中に入れた所何故か起動しません。
プログラムをnotepadとかにすると起動するのにこれだと起動しないのは何故なのでしょうか?
またcmdまでのパスも通っているし、念のためフルパスでやったけれどダメでした。

432 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:36:05 ]
俺以外誰も423の5行目に反応すらしない・・・とは思わなかった今ではガッしたことに反省している

433 名前:423 [2008/05/26(月) 21:04:41 ]
>>429
ただ単純に、一緒にしてしまうとコードが複雑になるので、
表示系と処理系を分離したいと。
できれば、最終的には表示系は処理系から隠蔽してメソッドで呼び出すだけにしたいかな、と。

ただ、いっしょにしている方がコードを書くのには明らかに簡単でとりあえず動くことから目標にしているんですよ。
プログラムはズブの素人で経験はCP/M86上のFBASIC位・・・

>>432
本来のぬるぽですからねぇ。ふふふ


434 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:12:24 ]
文字が半角カタカナであるか判断する方法はありますか?

435 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:46:44 ]
文字コードで調べる。

436 名前:デフォルトの名無しさん [2008/05/26(月) 21:53:11 ]
使用メモリーの増加に伴ってスレッド処理速度が落ちてしまうのはどうすれば回避できるでしょうか

437 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:02:01 ]
使用していないメモリを開放する



438 名前:デフォルトの名無しさん [2008/05/26(月) 22:05:02 ]
おおっ
少し感動

どうやればいいですか

439 名前:デフォルトの名無しさん [2008/05/26(月) 22:07:17 ]
GC弄るの?

440 名前:デフォルトの名無しさん [2008/05/26(月) 22:09:00 ]
nio
のBufferとかどうかなと思ったんだけど

441 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:11:32 ]
newをできるだけ減らす(できるだけオブジェクトを使いまわす)とか、
アルゴリズムを工夫するとか

442 名前:デフォルトの名無しさん [2008/05/26(月) 22:15:23 ]
それは
既にやってあるなあ


443 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:33:14 ]
使用メモリの増加に伴う速度低下がオブジェクトの生成にあるのなら
使用するオブジェクトをスタートアップの段階で全て準備してしまい
擬似的に静的に使用メモリを準備する
もちろんすべてひもつきのままにして破棄させない
一時的なオブジェクトの破棄に伴うGCの頻発による速度低下なら
メモリを積み込めるだけ積み込んでGCを停止する

444 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:33:27 ]
設計がうんこなんだろ

445 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:33:42 ]
メモリを積み増せば解決

446 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:34:51 ]
てst

447 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:39:41 ]
Oracle の JDBC ドライバ (V9.2.0 ) で Oracle DBMS に接続してるんだが。
クエリ投げて、SQLException 投げてきたときに、クエリのどの部分が違うのか、
あるいは、どの列が制約条件に違反してんのか、どうしたらわかるの?
教えてエロい人。



448 名前:デフォルトの名無しさん [2008/05/26(月) 22:46:04 ]
>>443
サンキュ
ただ原因はスレッドがやってる作業そのものがデータの吸出しにあることだと思う
6000個のスレッドをpool使って逐次で動かしてるんだが作業が進むに従って重くなるんで
このデータを一時的に何とかしないといかんかも

449 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:55:34 ]
6000個のスレッドwww
どんなマシンでまともに動くのか教えて欲しいwww

>>447
SQLのエラーコードを取得して、Oracleのマニュアルを参照汁
getErrorCodeとかそんなメソッドある

450 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:57:07 ]
6000個もスレッドを使ってる時点で
何かがおかしいと思わざるを得ないのだが
コンテキストスイッチのコストだけでもバカにならないんじゃ

451 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:57:59 ]
6,000・・・Thredのコストだけでも500Mくらいつかってそうだな、おい。
どうせpoolの管理も自分でやっているんだろ
ExecutorServiceとか使えばサクサク動く予感

452 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:59:12 ]
6000台のPCに分散処理させれば解決(・∀・)イイ!!

453 名前:デフォルトの名無しさん [2008/05/26(月) 22:59:29 ]
つかってる

454 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:59:53 ]
6000!
スレッドダンプが終わらん!

455 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:03:20 ]
public class Test {
public static void main(String[] args) {
char[] a = { 'ア', 'ア', 'あ', 'A', 'A' };
for (char c: a) {
System.out.println(Character.UnicodeBlock.of(c));
}
}
}

そりゃ、アもAも HALFWIDTH_AND_FULLWIDTH_FORMS に分類されちゃうよなー。


456 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:03:54 ]
本当に6000もスレッドを使わなければいけないのか、
よく考えるべきである

457 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:07:45 ]
>>453
減らすべし。大抵は多くても数十で十分のはず
他の言語なら大量に作って大量に捨てるような設計でも問題ないこともあるけど
Javaのスレッドは、基本的にそんな使い方はしない



458 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:10:02 ]
タスクが6万あったとしても、スレッドは数十で充分だろうな、たぶん。

459 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:25:23 ]
必要だから作っているんです
それにpool使って逐次動かしていますから問題はありません
データの吸出しを修正してみます

460 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:25:43 ]
>>449
サンクス。 getParameters() とかいうのがあるので、ちょいと試してみる。

461 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:33:00 ]
煽りとかじゃなしにプログラマとして6000個のスレッドがどういう状況で必要になるのか興味がある

462 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:41:28 ]
意味も解らず調べもせずに実装しているという状況なんだろう

463 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:03:19 ]
スレッド6000個ってnewするだけでもコスト高そうだな。

464 名前:デフォルトの名無しさん [2008/05/27(火) 00:08:16 ]
ごめんタスクが6000で稼動してるのは10ほど

そっか言い方間違えたな

しかしボロカスだなあw


465 名前:デフォルトの名無しさん [2008/05/27(火) 00:11:35 ]
もう少し詳しく言うとHTMLパースをMozillaJavaHTMLParserつかってさせるためのもの


466 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:17:39 ]
全部並列でって話ならば、そりゃ負荷かけすぎ
IOのように比較的長く待たされる処理がほとんどならば、6000タスクを並列にやって硬貨出るけど、HTMLのParseじゃ逐次処理の方が早いかもよ

467 名前:デフォルトの名無しさん [2008/05/27(火) 00:19:36 ]
かもしれんねPoolサイズ3に絞ってやったら少し改善した




468 名前:デフォルトの名無しさん [2008/05/27(火) 00:21:56 ]
このサイズをメモリーの状況に応じて自動変更できるとさらにいいなあ

469 名前:デフォルトの名無しさん [2008/05/27(火) 00:27:49 ]
申し送れましたが
皆さん有難う

470 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:34:12 ]
HTMLのパースに10スレッドも使うか?
パースに1、JS実行に1、画像読み込みに1で3くらいじゃね?

471 名前:デフォルトの名無しさん [2008/05/27(火) 00:37:35 ]
ページ数が多くて

472 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:43:51 ]
sageを覚えようね

473 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:46:16 ]
ああ
下げたほうが良いのか
了解

474 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:59:23 ]
javaの実行時間で質問です。
ある処理をSystem.currentTimeMillis()の差で調べたのですが
forで100回ぐらいまわした平均をとったほうが正確になるかと考えました。
すると1回のときとだいぶ違う時間になったのですがなぜかわかりますか?

475 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:02:40 ]
具体的にどう違ったのさ?

476 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:09:10 ]
>>474
JITが潰してくれたんでは

477 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:09:17 ]
何度も実行されるコードは高速化の価値があると判断&最適化されたりする。




478 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:11:54 ]
ほんまかいな

479 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 02:08:19 ]
最近の香具師はHotSpot知らんのか?


480 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 12:05:53 ]
>>478だけだろう


481 名前:デフォルトの名無しさん [2008/05/27(火) 15:02:12 ]
昨日のスレッドの件有難う
大分よくなった

でも6600ページダウンロードしてパースする作業だけで15分はかかりすぎだよねえ
何とかならんものか

482 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 15:44:39 ]
ごめん下げだったよね

ついでにいいかな
Matplotlibって視覚化ツールがあるんだけど
これをjavaからコントロールした人居る?

483 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:17:27 ]
>>481
鯖に負荷掛かるから止めろ。

484 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:37:28 ]
そうそう
そのためにスレッド数は絞るようにはしてるんだけどね
ダウンローダーと基本的には接続の部分は一緒だから
嫌われるプログラムではあるよね

485 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:48:54 ]
XMLの読み込みなんですけど、xmlnsを読み込むのってどんなメソッド使ったらいいんですか?

486 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:54:29 ]
xmlns属性は普通報告されない

487 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:56:31 ]
xmlns属性の値を引っ張ってきて別のメソッドで使いたいんですけど・・・



488 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:00:42 ]
じゃあパーサーから出るDocumentのelementひっぱってきてatributeを見れば良いんじゃね

489 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:06:07 ]
若しくはHTMLの文字列をindexof(xmlns)で位置拾って""でくくられてるところをStringで拾うとか
てかあそこ値変わるのか

490 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:12:50 ]
ごめんなさい普通に>>488でできました。
ありがとうございました

491 名前:デフォルトの名無しさん [2008/05/27(火) 17:34:52 ]
やっぱ
半値押しで粘りそうな感じもしないではないな
買い方逃げるとしたら次のリバだろうね

492 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:36:06 ]
誤爆ごめん

493 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:37:32 ]
誰かグラフ描写のJGraphというソフトを使ったことある人いませんか?

ダウンロードはできたんですが、そのあとのjarファイル等の操作がよくわかりません。

わかる方いれば、よろしくお願いします。

494 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:46:50 ]
JFreeChartのほうが機能多くていいぞ

495 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 17:58:01 ]
JFreeChartですか・・・

僕がやりたい(やらなければいけない)のは、「グラフ理論」なんです。
有向グラフとかノード、アークといったやつです。

496 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:01:50 ]
だったらJSCIのほうがいいかも

497 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:44:58 ]
JGraphを使えっていう指示があったんです(泣)



498 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:50:01 ]
そっかあ
わかんないなあ
誰か助けてあげてえ

499 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:00:20 ]
ディスクイメージなどのisoの中身を確認したり、抜き出したりするライブラリはありませんか?

500 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:05:33 ]
>>499
あまり知識がないもんで・・・
よくわからないです。

501 名前:デフォルトの名無しさん [2008/05/27(火) 19:08:09 ]
WINRARをDllフックしてJINIでつなぐ

502 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:10:29 ]
>>501
そういうライブラリは存在しないのですかね?
ネイティブにしたくないので仕様書探します。

503 名前:デフォルトの名無しさん [2008/05/27(火) 19:12:43 ]
あい

504 名前:デフォルトの名無しさん [2008/05/27(火) 19:22:34 ]
webアプリ構築してます。
strats+hibernateです。マスターテーブルの存在チェックを複数件(1〜300)行いたいのですが一件づつselectしチェックを行うのと全件selectしてmapに格納して存在チェックするのではどちらがよいでしょうか
マスタの件数は150件ほどです

505 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:40:05 ]
>>481
あんまり馬鹿やってるとIPではじかれる

506 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:44:53 ]
>>505
そうなんか?
別にクラッキングじゃねえけど

507 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:00:32 ]
>>506
迷惑



508 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:00:38 ]
ご質問させて頂きます。
余りを出す演算子で%があると思うのですが
%以外で余り値を出す演算子とかはあるのでしょうか?

何か方法があれば教えて頂ければと思います。
宜しくお願い致します。

509 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:02:56 ]
まあいいやはじきたきゃはじきやがれ
脆弱サーバー入れて客の責任にしたきゃすればいい

510 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:04:36 ]
>>508
宿題を出された→%禁止→でも、あまりを使うアルゴリズムしか思いつかない→%以外に何かあるはずだ→質問しよう
と、エスパーしてみる

あまりを出す演算子って言われたら%しか思いつかない

511 名前:デフォルトの名無しさん [2008/05/27(火) 21:06:20 ]
むかしBasicであったなMIDだっけ覚えてねえや
あれのこと?

512 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:13:07 ]
%っじゃなくても出せるような。

一桁ずつ2で割ってけばいずれ余りが出る。
ナベアツプログラム検索してるときにこの手の考え方が出てたよ。

513 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:17:49 ]
>>510
自分も%しか思い浮かばないので質問させて頂きました。

>>511
うーん、多分違うと思います。
すいません。

>>512
それは奇数なら大丈夫だと思うのですが偶数なら・・・。
と言うか、1桁ずつ2で割るという意味がちょっと自分は理解出来ないのですが
どういうことでしょうか?
%以外の演算子があるのでしょうか?
ちょっとナベアツプログラムでぐぐってきます。


514 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:21:05 ]
ていうか、質問は演算子だったんだろ。演算子なんて数が知れてるだろうに

515 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:21:59 ]
>>513
どうして%じゃだめなんだよ

516 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:24:38 ]
二つの整数値、8 と 3 の 『和』 『差』 『積』 『商』 『余り』 を計算して表示してください。(結果はすべてint型)
尚、『余り』に関しては 余り演算子 % を使用する場合と、しない場合の2通りの方法を考えてみましょう。

又、3ではなく、0で割るとはどうなエラーメッセージなのかも確認してみましょう。

という課題で出された為です。
自分は%以外の演算子を知らない為、質問させて頂きました。

517 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:26:31 ]
小学生なら余りを出すときは割られる数から商と割る数を掛けたものを引くだろうな



518 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:27:09 ]
大学の先生に聞け

519 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:28:13 ]
終了。次の質問どうぞ

520 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:28:57 ]
%以外の演算子は使っていいんだから-と/と*でできるじゃないか

521 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:29:46 ]
てか割り算できない人いるか

522 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:31:01 ]
馬鹿は際限がないということだ

523 名前:デフォルトの名無しさん [2008/05/27(火) 21:32:04 ]
Modだったな
一文字違いじゃねえか

524 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:46:19 ]
皆様、お答え頂きありがとうございました。

525 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:54:43 ]
>>506
ファイナンス系は厳しいぜ
IPからプロバイダに垢停止迫ったりは普通
あまりしつこいと自宅に直接電話かかって来るからなw

526 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:04:12 ]
たった3スレッドでか?
ありえねえだろ

527 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:18:45 ]
あと普通は嫌ならロボットはじくスクリプト入れるよな



528 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:32:28 ]
あと普通はレイプされるのが嫌なら錠付き貞操帯を着けて鍵を飲み込んでおくよな

529 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:54:59 ]
プログラムの実行時間計測してるんですが毎回時間がばらついてしまいます。
なぜでしょうか??


530 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:55:59 ]
rdtscとかQueryPerformanceCounter()を使う

531 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 00:31:03 ]
運悪くGCが働いたか、何かの最適化が起こっている可能性がある

532 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 01:14:46 ]
>526
HTTP1.1 では、同時接続数上限は 2 ですよ、と。
さらに言えば、連続して接続するなら、単一接続にした方が良いと思います。
過ぎたるは及ばざるがごとし。てか、鯖にも許容量があるので。

HTTPヘッダに、Accept-Encoding: gzip を追加しましょう。
対応していれば、テキストが5分の1ぐらいに圧縮されます。
java.util.zip.GZIPInputStream で解凍できます。

533 名前:デフォルトの名無しさん [2008/05/28(水) 01:40:24 ]
>532

どうせapacheを使うのだから、apacheでやらせた方が良くない?

534 名前:ume mailto:sage [2008/05/28(水) 04:13:44 ]
>>516 8.0-(int)(8.0/3.0)*3.0 CとJavaでも。

535 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 07:55:57 ]
>>508
a%b=a-(a*(a/b))

※/演算子の結果が小数を返すものならintで丸める

または自作で余りを求める関数を作れ
っていう意味では?


536 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 11:42:30 ]
>>533

>>526 (のさらに元ネタの、スレッドを起こすプログラム書いている人)は、
Httpクライアント側じゃないの?

537 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 11:54:52 ]
そうだよ
クライアント側

2でいいなら2にして見るかな
何ももめるつもりで書いてるものでは無いからな
あと6600はひとつのサーバーに対してじゃないから
その辺は如何なのかなって気もするけどな

良くあるループの理論速度計算みたいに
スレッドの計算できる式ってあるのかな



538 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 11:57:01 ]


話全く変わるけどマルチっぽくてすまんが
OOOSDKのことで聞きたいんだが

たとえばJPanelにCALCのインスタンス貼るのはUNO使えば良いんだろうか

539 名前:デフォルトの名無しさん [2008/05/28(水) 16:44:11 ]
final で宣言した変数にcloneで初期値を代入できんのやね。
そんなもんなのかなぁ。

540 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:20:52 ]
普通はできると思う。どういう初期化の仕方をしてできなかったの?
public class A implements Cloneable {
private final C c;
public A(C c) throws CloneNotSupportedException { this.c = (C)c.clone(); }
public static void main(String[] args) throws CloneNotSupportedException {
C c = new C();
A a = new A(c);
final C b = (C)c.clone();
System.out.println(c + ", " + a.c + ", " + b);
}
}
class C implements Cloneable { public Object clone() throws CloneNotSupportedException { return super.clone(); } }

541 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:23:01 ]
あ、Aの方のimplements Cloneableは余計

542 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:29:56 ]
こういうことをしたいんじゃないかと思う
public class A implements Cloneable {
 private final ArrayList list = new ArrayList();
 public Object clone() throws CloneNotSupportedException {
  A a = (A) super.clone();
  a.list = a.list.clone();    // ← できない
  return a;
 }
}

543 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:39:03 ]
それは普通に再代入だから
再代入を禁止したいからfinalを付けるのに付けた意味がないような
本当のところは実際にやろうとしたことを聞かないと分からないけど

544 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:39:39 ]
アプレットを表示するHTMLを作りたいのですが、
赤いXとアプレットのサイズの灰色の枠のみ表示されて、中身が表示されないんですが、

何が悪いのかわかりません。

545 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:40:50 ]
コードを書けコードを
こっちにだって何が悪いか分からん

546 名前:544 [2008/05/28(水) 17:43:00 ]
<html>
<head>
<title>11_4</title>
</head>

<body>
<h1>11の4</h1>

<applet code="s11_4.class" width="500" height="500"> </applet>

</body>
</html>

547 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:05:38 ]
>>546
そのHTMLと同じディレクトリにs11_4.classは存在するか?
他に必要なクラスファイルもすべて存在するか?
何か例外が発生していないかコンソールを確認してみたか?
s11_4のソースコードを見せてみれば何かわかるかもしれない



548 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:21:38 ]
.class 削ってみること。

549 名前:544 [2008/05/28(水) 18:32:38 ]
>>547
上三つはだいじょぶでした
アプレットビューワで見れてもHTMLに引っ張ってきただけじゃだめなんですね、、、、

550 名前:548 mailto:sage [2008/05/28(水) 18:42:52 ]
焦った、すまん。

551 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:44:12 ]
>549
appletviewer の引数って htmlファイルですよ、と。

他は大文字小文字とか。

552 名前:544 mailto:sage [2008/05/28(水) 18:50:20 ]
>>551
その意味がわからないのは申し訳ないです。

553 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:58:09 ]
appletviewerとブラウザでセキュリティ面で違いがあったりするから
それが原因かもとも思ったがブラウザでも例外は発生していないらしいからこれは違うか

>>552
どっちの意味が分からないのか分からないが
appletviewer hoge.html
で実行するものじゃないの?
またはコメントにappletタグを記述したソースファイルで
appletviewer Hoge.java
とか
大文字小文字を区別する環境なら合わせてやらないとクラスファイルを発見できない
S11_4.classでサーバに上げたのにs11_4.classを指定しているとか

554 名前:544 [2008/05/28(水) 19:17:05 ]
>>553
エクリプスで三角形おして動作を見てたから、ぴんと来ないです。

ほかの人のパソコンで見れたら委員だけど、エグゼファイルみたいなのに
することもできずテン

555 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 19:30:02 ]
jarファイルにエクスポートすればいいんじゃないか
appletタグもjarファイル使って

<applet archive="hoge.jar" code="s11_4.class" width="500" height="500">

みたいな感じで

556 名前:548 mailto:sage [2008/05/28(水) 20:04:20 ]
>アプレットビューワで見れてもHTMLに引っ張ってきただけじゃだめなんですね
C:\>dir
s11_4.class
hoge.html
2 個のファイルが見つかりました。
C:\>appletviewer hoge.html
と、入力してみる。三角ボタンじゃなくて。

557 名前:デフォルトの名無しさん [2008/05/28(水) 20:35:28 ]
Swing とかで
youtubeの外部プレイヤー(小さいやつ)の音量設定のような、
マウスのせたらスライドバーがでてきて調整できる GUI 部品ってないんですかね?

もしくは作れるんでしょうかね?



558 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:57:44 ]
作れないものなどない

559 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:36:26 ]
だが、お前には作れない

560 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 23:09:39 ]
つまらん煽り

561 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:33:06 ]
タイマーで、描画を3秒ごとに進めようとしてるんですけど、
配列が保管されないんですけど、こういうものなんでしょうか。

java初めてです。

562 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:46:51 ]
ローカル変数にしてるオチの予感・・・

563 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 00:47:06 ]
配列の宣言位置がおかしいんじゃないでしょうか

564 名前:561 mailto:sage [2008/05/29(木) 01:06:14 ]
クラス
 …メイン
クラス
 …タイマー
 …グラフィックフレーム
クラス
 …画像描画
    …パブリック イント 多次元配列
    …描画のメソッド
       …配列に、値を入れる。
        ↓
タイマーでロードされると
配列の値が残っていない…。

565 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 01:19:08 ]
>564
私なら、配列の生成、変更箇所をたどっていく。
大体は、生成に問題がある。
配列でなければ、それを含むクラスの生成と運用に問題がある。

566 名前:デフォルトの名無しさん [2008/05/29(木) 01:58:34 ]
import java.awt.*;
class R6_2
{
public static void main( String [] args )
{
R6_2_image window = new R6_2_image()
window.setSize(400,600);
window.setTitle("R6_2");
window.setVisible(true);
}}

import java.awt.*;
class R6_2_image extends ExitFrame
{
public void paint( Graphics g )
{
Toolkit toolkit = Toolkit.getDefaultToolkit();
Image image = toolkit.getImage("image.jpg");
g.drawImage(image,50,50,this);
}}

windowsVista、CPad for Java2 SDKの環境でjavaしています。
上のプログラムがR6_2.java,下がR6_2_image.javaです。
R6_2.javaファイルを実行すると、シンボルが解決されていないとエラーが出て、コンパイルできません。
image.jpgとExitFrameは同じディレクトリに入れてます。

567 名前:デフォルトの名無しさん [2008/05/29(木) 02:33:01 ]
誰か来て…



568 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 02:51:58 ]
>566
ExitFrame は同じパッケージで、Frameを継承してるとして、
R6_2_image window = new R6_2_image()セミコロン抜け

569 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 12:16:45 ]
if(hairetu[j][i]==0 && hairetu[j][i+1]==0 && hairetu[j][i+2]==0){

をすると、なぜか例外になってしまいます。

if(hairetu[j][i]==0 || hairetu[j][i+1]==0 || hairetu[j][i+2]==0){

では起こらないんですが…


何が違うのでしょうか?

570 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 12:35:43 ]
範囲外参照の例外だろ? &&だったら全て満たさないといけないから条件全て実行する。||だったらどれか満たせばいいから一つでも満たしたら以降は確認しない。

571 名前:569 [2008/05/29(木) 12:39:55 ]
つまりその三つを満たしている場合がないから例外が出てるってことなんですか

572 名前:569 [2008/05/29(木) 12:42:02 ]
あ、いや、ちゃいますね。
配列の外をってことですね。

573 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 12:48:51 ]
>571
例外とは何か。条件を満たさないと起きる物なのか?
570 は、貴方の質問に答えただけで、貴方の疑問には答えていない。
それでも、十分に答えを見つけるだけのヒントは出ている。

というか、表示された例外クラスの事をちゃんと調べましたか?

574 名前:569 mailto:sage [2008/05/29(木) 13:57:48 ]
助かりました。arigatouございます

575 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 14:56:46 ]
swingプログラムを作ってるのですが、
Javaで多重起動防止する方法ってどういったものがあるのでしょうか?
WIn32APIのミューテックスみたいなのの他、
実行中のプロセス名を全部取得して自分のプロセス名があれば表示前に終了する
みたいなのを考えたのですが、Javaでのこういうのの実現方法が分かりません。

576 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:00:20 ]
ないからlockfile作るのが一般的じゃない?

577 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:16:51 ]
仮想マシン単位なら、createNewFile - deleteOnExit の連携かな。試してないけど。
何らかの理由で削除されない事に対応するには、
ロックファイル内容の書式に更新時間を記録するようにするか、ね。



578 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 15:26:31 ]
起動中は特定のポート握りっぱなししておいて、
起動時に特定のポート開けなかったら起動させないとか。

579 名前:デフォルトの名無しさん [2008/05/29(木) 16:16:30 ]
よろしくお願いします。
VBで言うところのErr.RaiseしてOn Error Gotoに飛ばすようなことをしたいのですが
意図的にSQLException等の例外を引き起こすメソッドみたいなものはありますか?
というか考え方が間違っていますか?

try{
  //処理1
  if(!hoge()){
    例外に飛ばす処理
  }

  //処理2
  :

}catch{
  //ここに飛ばす
}

580 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 16:23:03 ]
>>575
起動するときファイルに自プロセスIDを書き込む
多重起動チェックのときそのIDのプロセスが生きていればエラー
JNI使うことになりそうだけど
>>579
throw new SQLException()
ただしgotoを実現するために例外を使うのは良くない

581 名前:579 [2008/05/29(木) 16:38:40 ]
>>580
物凄い勢いで答えていただきありがとうございました。
例外を使用しない方向で考えてみます。

582 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 16:46:07 ]
>579
仕様上、例外もしくはエラーである必要があるのならば、
適切な(なるべく既存の、必要であれば自作の)例外オブジェクトを生成し、throw すれば良い。

お勧めはしませんが、ラベル付き break, continue を使えば、疑似gotoは可能。
ttp://www.y-adagio.com/public/standards/tr_javalang/14.doc.htm#6842

583 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 16:47:28 ]
イベント駆動型アプリケーションて概念もあるけどな

584 名前:579 mailto:sage [2008/05/29(木) 17:14:54 ]
>>582,583
レスありがとうございます。

よくよく考えてみましたが、やはり仕様上例外である必要があるため
前言撤回で、throwを使わせていただきます。

リンクありがとうございます。今読んでいます。

>イベント駆動型アプリケーション
勉強します!

585 名前:デフォルトの名無しさん [2008/05/29(木) 19:46:41 ]
preparedStatementを使ってて、
SQLのログ出力する時に、「?」部分に実際に値が入っている状態で出したいんだけど
どうすればいいですか?別々に出力させるしかないのでしょうか?

586 名前:デフォルトの名無しさん [2008/05/29(木) 21:06:52 ]
JSpinner の中身を左詰で表示させたいんですけど
設定がわかりません orz
set〜 を探してもそれっぽいのないのですが。。。

587 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 22:15:15 ]
>>586
((JSpinner.NumberEditor) spinner.getEditor()).getTextField().setHorizontalAlignment(SwingConstants.LEFT);



588 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 22:52:25 ]
>586
似たような物をチュートリアルから
ttp://java.sun.com/docs/books/tutorial/uiswing/components/spinner.html#format
* キャスト前に instanceof でオブジェクトの型を確認。
* キャストに基底クラスの JSpinner.DefaultEditor を使用。

589 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:09:58 ]
>>575
java.sun.com/javase/ja/6/docs/ja/api/java/nio/channels/FileLock.html

590 名前:デフォルトの名無しさん [2008/05/29(木) 23:11:33 ]
>585

?の部分にバインドするのはDBサーバだから簡単な方法はない気がします。

591 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:24:34 ]
バインドしたやつってDBサーバ側のクエリログとかはどうなん?
自分で確かめてないけど、バインドした結果のが残ってないん?

592 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:28:45 ]
6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
ttp://system-trading.jp/news/index.php?ID=39
5月22日より登録受付開始、6月2日よりグランプリ開始の予定。


ttp://www.fx-gp.com/
●社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
https://www.click-sec.com/corp/guide/demo/

593 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:36:19 ]
>>590
String#formatを使えるなら、それほど難しくない気もする。

594 名前:590 mailto:sage [2008/05/30(金) 01:44:29 ]
>593

それだと、DBで実行しているものと同じとは言えないと思うのですが。。。

簡単かどうかは人によって違うとは思うのですが、JDBCのパラメータをいじるだけでは出来そうもないという意味で、簡単ではないと書きました。

595 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 02:54:48 ]

JGraphについてです

JGraphはsourceforgeからダウンロードしましたが(初心者なんで)使い方がわかりません。
環境はVistaでj2sdk2.4です。

どなたかJGraph使い方わかる人はいませんか?(ファイルの移動、コンパイル方法など)


596 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 07:12:39 ]
j2sdk2.4?

597 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 07:53:32 ]
>>596
すみません、眠たくてぼけてました
j2sdk1.4.2_17です。



598 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 09:54:13 ]
>>590,593,594
ありがとうございました。
ざっとString#formatも調べてみましたが、
これはこれで使いこなすのに時間がかかりそう・・・
でも参考になりました。ありがとうございました。

599 名前:585 mailto:sage [2008/05/30(金) 12:05:14 ]
>>591
すいません、抜けていました。
レスありがとうございました。


600 名前:ぬこぬこダンス ◆QQgpZ/Znz. mailto:sage [2008/05/30(金) 12:34:58 ]
Hoge [] array = new Hoge[100];
for( int i = 0; i < array.length, ++i )
{
  array[i] = new Hoge();
}

このようにしてメモリを確保した場合

for( int i = 0; i < array.length, ++i )
{
  array[i] = null;
}

array = null;

ってやるのが正しい方法でしょうか?

それとも

array = null; だけでOKなんでしょうか?

601 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:44:00 ]
>>600
何もしなくてOK
nullを代入する必要は通常ない

602 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:44:59 ]
null代入イラネ

603 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:47:43 ]
>>601-602
ありがとうございました

604 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:35:34 ]
exec("explorer")を呼び出す際に引数を付けて任意のディレクトリを開くようにしたいのですが、
他のプログラムのようにexec("explorer C:/")というようにやっても
シェルからexplorer C:/と入力するような動作はしません。
これって何が問題なのでしょうか?

605 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:54:07 ]
exec("explorer C:\\") としないとダメとか?

606 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:07:11 ]
>604
XP です。シェルが何か分かりませんので cmd で確認。同じ動作をします。
単なる入力ミスor確認不足じゃないですか?

もちろん、意図した動作は 605 でしょうけど。

607 名前:604 mailto:sage [2008/05/30(金) 14:49:27 ]
>>605で出来ました、レスありがとうございます。
Javaの中のパス指定は/でいいけど外部プログラムに渡す時は\じゃないとダメなんですね。。



608 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:22:57 ]
java.sql.SQLNonTransientConnectionException: バッチエレメント # のエラーです0: 通信エラーが検出されました: Software caused connection abort: recv failed。

これって何が原因ですか
対処方法も分かったら教えてください

609 名前:デフォルトの名無しさん [2008/05/30(金) 18:02:07 ]
Javaで perlやphpのcryptみたいな物ってあるんでしょうか・・?
DESでsalt2文字で暗号化したいんですが・・

www.dynamic.net.au/christos/crypt/UnixCrypt.txt
だとちょっと結果が違うみたいで

javax.cryptoを使うのは方式が違う感じ?

何か良いものがあれば教えてください〜

610 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 18:07:26 ]
>>609
「みたいな物」 が欲しいだけで 「同じ物」 が必要じゃないなら、別にちょっとくらい結果が違ってもいいんでないの?

611 名前:デフォルトの名無しさん [2008/05/30(金) 20:40:46 ]
randomの乱数生成ですが
0から乱数が始まるみたいですが
最低値と最大値を 5〜10 のように指定した乱数の出し方がわかりません。
教えてください。


612 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 20:51:37 ]
>>611
new Random().nextInt(6) + 5;

613 名前:デフォルトの名無しさん [2008/05/30(金) 20:58:29 ]
>>612
わかりました。サンクス

614 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:13:26 ]
インスタンスを生成したときの内部のメモリ状態について質問です。

クラスは、変数とメソッドで構成されていると思うですが、
インスタンス生成の度にメモリ上に確保されるのは、
変数だけなのでしょうか?
それとも、変数とメソッドなのでしょうか?

私は前者だと思っていたのですが、
会社の先輩が後者だと言って譲りません。
恐い先輩なので、私が悪いことにしてその場を治めましたが納得できません。
どちらが正しいのでしょうか?


615 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 21:22:36 ]
メモリ状態なんてJVMの実装依存でしょ

616 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:15:46 ]
>>614
OpenJDKのソースを斜め読みした限りじゃインスタンス変数だけと思われ。

617 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:42:02 ]
一般的なJVMの実装ならば変数だけだろ
メソッドはどのインスタンスでも同じ振る舞いするわけで、わざわざインスタンス毎に作成するメリットはほとんどないわけだから
メソッド変数という意味ならば変わるけどな



618 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:46:27 ]
>>614
> 恐い先輩なので、私が悪いことにしてその場を治めました
これは正しい。

> が納得できません
これは正しくない。

619 名前:614 mailto:sage [2008/05/30(金) 22:50:13 ]
>>615-617
レスありがとうございます。
やはり常識的に考えて、生成されるのはインスタンス変数だけですよね。
恐い先輩に頭ごなしに否定されたので、自分が間違っているような気になっていました。

620 名前:デフォルトの名無しさん [2008/05/31(土) 00:26:19 ]
GUIでウェブブラウザ作ってるんですが・・・
下のif文の中に入ってくれません。
どなかか考えうる理由など教えていただけると嬉しいです。
必要であれば、ソースすべて載せます。
はじめて質問するので、なにか不束な点があると思いますが、
許してください。。。
JButton ret; //戻るボタン

public void actionPerformed(ActionEvent ae) {
Object obj = ae.getSource();

//この条件の中に入ってくれません
if(obj == ret){
System.out.println("test4");
System.out.println("test4");
System.out.println(address.getText());
list.removeLast();
this.setUrl(list.getLast());
}
else if (obj == address) {
System.out.println("test2");
System.out.println(address.getText());
list.add(address.getText()); //ジャンプするURLを格納
this.setUrl(address.getText());

}}

621 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 00:37:49 ]
retをローカル変数で定義しているとか?
下のelse if は入るんだよね?

622 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 00:46:36 ]
printデバッグするにしても、"test4"とか固定文字列を表示するんじゃ
なくて、ifの前にobjとかretを表示してみるとかー。



623 名前:デフォルトの名無しさん [2008/05/31(土) 01:13:40 ]
二つの文字列を表示する時
一つめの文字列を表示させたあと
2秒ほど間を開けて
二つめの文字列を表示するにはどうすればいいですか?

624 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 01:17:34 ]
>>623
簡単に言うと、間に Thread.sleep(2000); を挟む。


625 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 01:22:30 ]
JNIでCと連携してるんだけど、特定のnativeメソッドを使用した時に
UnsatisfiedLinkErrorが投げられてしまう。

環境変数は通っているし、
ヘッダファイルが最新の状態で問題なくビルドできたのに、
そのメソッドだけ蹴られる。
ためしに問題の部分をコメントアウトして実行したら、問題なく動いた。
だから他のnativeメソッドは、たぶん普通に呼び出せてるんだよね。

DLLの中身をのぞいて見ても、件のメソッドは他のメソッドと同じようにちゃんと存在している。

これはいったいどういうことなんだろう…?

626 名前:620 [2008/05/31(土) 01:30:52 ]
>>621
ローカル変数では定義してませんね・・・
下のelse if文には入ります

>>622
obj表示してみました。
今もうその文字列のcontainsメソッド使ってごり押しでif文に入りました!


ただなんで前の状態じゃ入れないか疑問に残って仕方がない・・

627 名前:デフォルトの名無しさん [2008/05/31(土) 01:40:57 ]
>>624
やってみます、ありがと



628 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 01:47:32 ]
>>626
ありそうなのは、JButton ret;と、実際に追加されているボタンが異なるケース。
同名のローカル変数が追加されて、メンバのretに値が入っていない。
JButton ret=new JButton();とかやってないか?



629 名前:620 [2008/05/31(土) 02:42:15 ]
>>628
ぁぁぁ・・・ご名答です・・
コンストラクタでやってしまってました・・・
わざわざありがとうございます。

今ブラウザの戻る、進む、ホームに戻るが作成できました。
あとは履歴とブックマークくらいしたいなー。
他なにか機能ないかなー。

なんか学校の課題とはいえ、がっつり便利なブラウザ作ってみたいなー。

630 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 02:50:40 ]
>>629
> がっつり便利なブラウザ作ってみたい
ってことは今使っているブラウザに不満な点があるということだから、
その不満を解消する機能をつければいい。
既にあるものを再生産するのは詰まらんだろう。

631 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 03:08:05 ]
>>629
そういうミスを防ぐために、メンバ変数に特殊な命名規則を導入するス
タイルもある。
m_ret
mRet
f_ret
fRet
ret_
または常にthis.retで使うとか。


632 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 03:58:37 ]
short と byte[] の相互変換ってどうやるんですか?
private byte[] ShortToByte( short s )
{
byte [] b = { (byte)((s >> 8) & 0xFF), (byte)((s >> 0) & 0xFF) } ;
return b;
}

private int ByteToShort( byte []b )
{
return ((b[0] & 0xff) << 8) | (b[1] & 0xff);
}

こんなのを作ってみましたけど 上手く行きません

short s = -1;
System.out.println( s );
System.out.println( ByteToShort( ShortToByte( s ) ) );

結果
-1
65535

633 名前:デフォルトの名無しさん [2008/05/31(土) 04:10:17 ]
>>632
それshort返してねえよ int返してる

634 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 04:28:20 ]
あ^^;色々変更して試しにint返してみてそのままでした

private short ByteToShort( byte []b )
{
return (short)((b[0] & 0xff) << 8) | (b[1] & 0xff);
}

でも同じ結果です

635 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 04:33:27 ]
private byte[] convertShortToByte(short s) {
byte[] b = new byte[2];
((ByteBuffer)ByteBuffer.allocate(2).putShort(s).rewind()).get(b);
return b;
}
private short convertByteToShort(byte[] b) {
return convertByteToShort(b, 0);
}
private short convertByteToShort(byte[] b, int offset) {
return ByteBuffer.allocate(2).put(b, offset, 2).getShort(0);
}

636 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 05:24:53 ]
そんなややこしい方法でしか無理ですか?

637 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:07:55 ]
ここでエスパー参上
short 返してねえよ。int 返してる



638 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:13:47 ]
>>637
>>634です


639 名前:294 [2008/05/31(土) 12:09:33 ]
Aクラス=(appletをextendsしたクラス)でBクラス=(frameをextendsしたクラス)ではなく
Bクラスを使用しないでAクラスでBしたクラスがする処理をしたらappletとしてうごきました。
ところでappletではファイルの読み書きとかが出来ないらしいけど、
何が出来て何が出来ないかということはどうやって解るんですか

640 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 12:53:26 ]
>>639
↓に載ってるものは出来ない
java.sun.com/javase/ja/6/docs/ja/technotes/guides/security/permissions.html#PermsAndMethods

ただし↓のファイルに書いてあれば許可される
C:\Program Files\Java\jre1.6.0_06\lib\security\java.policy

641 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 13:13:04 ]
>>640
ありがとうございます。
とてもよく知ってますね。
そういう知識はどこで覚えたんですか?
なんでそんなに詳しいんですか?
どこかで習ったりしたんですか?


642 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 13:32:07 ]
>>641
公式サイトのドキュメント↓読んでれば見つかる
java.sun.com/javase/ja/6/docs/ja/
ここの 「セキュリティ」 と書いてあるリンクを辿っていけばセキュリティについて書かれている
さっきのページは 「セキュリティ」 → 「Java 2 SDK におけるアクセス権」
片っ端から全部読むには量が多すぎるが、必要なときに必要な情報だけ探して来れば十分

643 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 14:11:40 ]
>>636
static short ByteToShort(byte[] b)
{
  return (short)((b[0] << 8) | b[1]);
}

static byte[] ShortToByte(short s, byte[] b)
{
  b[0] = (byte)((s >> 8) & 0xFF) ;
  b[1] = (byte)(s & 0xFF) ;
  return b;
}

public static void main(String[] args)
{
  short s = -1;
  byte b[] = new byte[2];
  System.out.println( ByteToShort( ShortToByte( s, b )));
}
君のメモリー(思い出は((無い

644 名前:デフォルトの名無しさん [2008/05/31(土) 14:51:39 ]
synchronizedブロックだとメソッドから復帰するとモニタも解放になりますが、
メソッドから復帰してもロック・オブジェクトのモニタを持ちつづけるにはどうすればいいのでしょうか?

645 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:06:20 ]
>>644
それ用のスレッドを作ってモニタを持ち続けさせるか、
特にオブジェクトのモニタである必要がないなら java.util.concurrent.locks.ReentrantLock あたりを使う

646 名前:デフォルトの名無しさん [2008/05/31(土) 15:08:02 ]
やはり少し手間がかかるんですかありがとうございます。

647 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:15:55 ]
>>645
イテレーションが目的であって、要素が途中で変更されると困るときはどうするんでしょうか。
例えばjava.util.Vectorのsynchronizedは取得時のみでイテレーション中は変更される可能性があるわけで、これとは少し意味が違いますよね。



648 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:22:30 ]
>>647
使う側が必要なだけsynchronizedかける

例:
Vector v = ....;
synchronized (v) {
 Iterator i = v.iterator();
 while (i.hasNext()) {
  ...
 }
}

649 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:28:45 ]
ああ、そうですね。

650 名前:デフォルトの名無しさん [2008/05/31(土) 15:30:06 ]
先頭のスーペースはもしかしてnbsp;をタイプしてるんですか?

651 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:32:36 ]
専ブラが変換してくれるので自分でタイプしてはいない

652 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:35:43 ]
>>648
それだと違うインスタンスのロックにならないから、
例えば別のVectorインスタンス(クローンとか)から内部を変更されてしまい、
要求する仕様を満たさないよ。そういうのは見つけにくいバグになるんじゃないの?

653 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:39:59 ]
>>652
違うインスタンスって何
内部って何の内部
要求する仕様とやらをはっきりさせてくれ

654 名前:デフォルトの名無しさん [2008/05/31(土) 15:42:13 ]
↑自分が答えられる範囲を超えるとこのように暴走しますw

655 名前:デフォルトの名無しさん [2008/05/31(土) 15:43:12 ]
パッケージについて質問します。
デスクトップ上にTestフォルダを作成し
その中にメインの "Test.java" と "DirTestA.java" を置きました。
別階層からTest.javaのオブジェクトを作るため
Test.javaに package Test; と書いてimportして作成できたのですが
そうするとTest.javaで 同じ階層内にいるDirTestA.javaのオブジェクトを作ろうとしたら
DirTestAのシンボルを解決できません。とでます。

試しに DirTestA.javaにも package Test; と書いて
Test.javaで import Test.DirTestA; と書いても
解決しません。
どうすれば、同じ階層内でも参照できますか?

656 名前:デフォルトの名無しさん [2008/05/31(土) 15:43:39 ]
なんだ。>>653は親切そうだったけど実はすぐ発狂するキチガイだったのかww

657 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:56:13 ]
>652
良く分からないなら無理に指摘しなくても大丈夫です。
問題が起きてから騒いでください。

>655
コンパイルする場所が間違ってるかも
Testフォルダがあるフォルダでコンパイルしてますか?
(パッケージ名は小文字推奨です。クラス名と区別が付かない等の為)
あとは、変更前のclassファイルが残ってる可能性も。



658 名前:653 mailto:sage [2008/05/31(土) 15:58:45 ]
別に暴走も発狂もしてないけど・・・
質問に答えるために必要な追加情報を求めてるだけだよ
(言い換えると質問が意味不明)

659 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:04:25 ]
>>655
ひとつ上のディレクトリから
javac Test/Test.java
ってやってみるとどう?

660 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:05:46 ]
Hoge{
 private int n;
 
 Hoge( int i ){
  n = i:
 }
}
Hoge hoge = new Hoge( 10 );:


これに新しい値を入れたい場合

hoge = null;
hoge = new Hoge( 100 );
でないとダメですか?

null代入せず上から直接
hoge = new Hoge( 100 );
した場合はどうなりますか?

661 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:08:20 ]
>>660
直接入れても一緒。
null代入は不要。

662 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:17:35 ]
ですよね、ありがとうございます

663 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:19:26 ]
C++のnewのイメージとごっちゃになりました
たしかC++だと落ちますよね?

664 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:33:30 ]
C++のnewはdeleteしないと落ちはしないけどメモリリークになる
JavaのnewはGCが自動的に解放してくれる

665 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:53:54 ]
>>658
確かに不明部分があるけど、やってれば分かるようなこの程度のことを詳細に書いてもらったとしても、君程度の技術じゃ答えられないでしょうにww
ところで君はその質問にちゃんと答えられる自信はあるんですか?

666 名前:デフォルトの名無しさん [2008/05/31(土) 16:55:43 ]
教えてください。
以下のようなソースを書いたのですが、
☆のところで怒られてしまいます。
[アクセス可能な型 Swing_main のエンクロージング・インスタンスがありません。 型 Swing_main のエンク ロージング・インスタンスで割り振りを限定する必要があります (たとえば x.new A() で、x は Swing_main のインスタンス)。]

★は怒られないのに何で☆はだめなのというところが知りたいのですが、

public class Swing_main extends JFrame{
public static void main(String[] args) {

//コンストラクタでFrame作成
new Swing_main("test");
//メソッドでFrame作成
Swing_test();
}
//コンストラクタ
Swing_main(String title){
super(title);
★addWindowListener(new WindowEventHandler()
};
//メソッド
public static void Swing_test(){
JFrame frame = new JFrame("Jframe1") ;
☆frame.addWindowListener(new WindowEventHandler());
}
//WindowListener
class WindowEventHandler implements WindowListener{
public void windowActivated(WindowEvent e) ・・など
}
}

667 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 17:05:34 ]
>>666
WindowEventHandlerはstatic classじゃないので、外側のクラスSwing_mainのインスタンスが必要
★はコンストラクタ内なのでthisが存在するが、☆はstaticメソッド内なのでインスタンスが存在しないからエラー



668 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 17:12:54 ]
>>653
>>658
こうやってすぐ叩かれるから無駄口を吐かない方がいいよ。

669 名前:デフォルトの名無しさん [2008/05/31(土) 17:19:39 ]
>>667さん
回答ありがとうございます!
WindowEventHandler をstaticにしたところ怒られなくなりました。
ただ、☆にはframeというインスタンスがあるんですが、
これだと駄目という部分が理解できません。
そもそもこういうつくりは駄目だということでしょうか



670 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 17:25:55 ]
>>669
そのframeはJFrameであって、Swing_mainじゃないし。
もし
Swing_main frame = ..... ;
であるなら、
frame.new WindowEventHandler()
のように書ける。

671 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 17:26:24 ]
JAVAにはOpenCVのような画像処理を扱うAPIはありますでしょうか。
OpenCVの移植があれば最高なのですが、ぐぐっても出てこないということは無いのですかね。。


672 名前:デフォルトの名無しさん [2008/05/31(土) 17:29:21 ]
駆け出しのプログラマなんだけど、休日とか、書類作成メインの日とか、コーディングしない日があるのが怖い
コードを書かないと実力が落ちそう

そこで、将棋でいう「詰め将棋」みたいに、シンプルなプログラミングの問題を掲載したサイトとか本とか無い?

673 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 17:32:29 ]
>>672
っ pc11.2ch.net/test/read.cgi/tech/1212085079/

674 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 17:33:58 ]
>>652
そのVectorに関しての質問です。
cloneで生成したインスタンスから、clone元のインスタンスを操作する方法を教えてください。
よろしくお願いします。

675 名前:デフォルトの名無しさん [2008/05/31(土) 17:39:38 ]
Vectorの質問というよりもJavaコレクションフレームワークの全体像から勉強しなおした方がいいんじゃないの?

676 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 17:41:34 ]
>>674
?

677 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 19:31:14 ]
wisdom.sakura.ne.jp/system/java/swing/swing2.html
ここを見て勉強していたのですが、
awtでは描画処理をpaint()をオーバーライドして行っていたのに、
swingではpaint()のオーバーライドは推奨されていない、と書かれています。
何故使ってはマズいのかということと、
swingでGraphicsクラスのオブジェクトを得て描画処理するのはどういう風にやるのが普通なのか教えて下さい。



678 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 19:41:32 ]
>>677
paintは、そのコンポーネント自身だけでなく、ボーダーや子コンポーネントも描かないといけないのだけれど、
オーバーライドするとそれが行われなくなってしまうのでマズイ。
swingでは、代わりに protected void paintComponent(Graphics g) をオーバーライドしてください。

679 名前:678 mailto:sage [2008/05/31(土) 19:53:30 ]
あぁ、ただし JApplet には paintComponent はありません。
paintComponent を持ってるのは JComponent の子孫だけ。
JApplet に直接描きたい場合は paint をオーバーライドするしかない。
普通は中に swing コンポーネントを配置したいから JApplet を使うのであって、JApplet に直接描くのはあんまりしないと思う。

680 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 20:10:30 ]
じゃ、なんでJAppletをswingのパッケージに入れたんでしょうか。混乱しませんか?

681 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 20:16:11 ]
javax.swingパッケージにはコンポーネント以外のクラスもいっぱい入ってるよ
ActionとかTimerとかSwingWorkerとか
↓みてみ
java.sun.com/javase/ja/6/docs/ja/api/javax/swing/package-summary.html

682 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:08:23 ]
Cよりjavaから先に勉強した方がいいの?

683 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:18:08 ]
>>682
初心者のためのプログラミング言語ガイド Part9
pc11.2ch.net/test/read.cgi/tech/1210941509/

684 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:19:38 ]
興味がある言語からやればいい

685 名前:デフォルトの名無しさん [2008/05/31(土) 22:15:20 ]
JFrameにJAppletをaddすべきかどうかいつも悩むんですけど・・
AWTでは全く問題ないのにswingはpaint関連を知っていると、少し変な設計なんですがどう思いますか?

686 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:55:57 ]
>>685
まぁ別にいいんじゃない?
気になるならFrameの上にJAppletを置けば

687 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:59:36 ]
てか、JAppletの上にJPanelを引いてなにかするべきだろ?
そうすれば同じようにJFrame上でも動作可能になる。



688 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:05:56 ]
>>686
そうするとSwingのUIから外れちゃいませんか?

689 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:11:27 ]
JPanelにLinkedList<JLabel>を配置したい場合はどうしたらよいでしょうか?

690 名前:689 mailto:sage [2008/05/31(土) 23:13:42 ]
スイマセン、やっぱりもうちょっと自分で考えてみます。

691 名前:689 mailto:sage [2008/05/31(土) 23:16:52 ]
自己解決しました。スレ汚し&連投失礼致しました。

692 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:32:25 ]
>>688
そういう細かいことが気になるんなら、687 の言うように JPanel 上にすべてを構築して、
アプレットの場合はそのパネルを JApplet の中に置き、
アプリケーションの場合はそのパネルを JFrame の中に置くようにすればいいよ

693 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:32:43 ]
正規表現を使ったプログラムを作っているのですが、
pattern = Pattern.compile("^Java.*");
matcher = pattern.matcher("JavaでHello World");
boolean b = matcher.matches();
System.out.println(b);
pattern = Pattern.compile(".*World$");
matcher = pattern.matcher("JavaでHello World");
boolean c = matcher.matches();
System.out.println(c);
このとき同じ文字列に1回1回compileとmatcherを使ってしまいます
この場合ならPattern.compile("(^Java.*|.*World$)");とまとめれば済みますが
これをもっと多数(50とか60とか)に増やすときにはものすごく長くなってしまうと思います
なんとかスッキリまとめる方法はないですか?

694 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:39:28 ]
正規表現はそれだけで1冊の本が出るように別の言語と思え

695 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:09:19 ]
50個追加していき
"ab"+"cd"+"ef"...
とやればよい。

そのUIってのは、Menuとかがswingらしくなくnative依存という事だと思うんだけど。
で、>>687はそういうことを言ってたのか。オレの強力なエスパー使っても分からなかった・・

696 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:16:22 ]
>>695
つまりPattern.compile("^Java.*"+".*World$");というように記述すればいいのですか?

697 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:48:02 ]
>>693
その質問内容だと、「愚直に|で繋げ」、としかアドバイスできないと思
う。長い正規表現の記述が長くなるのは当たり前。

やりたいことをもっとハイレベルに書けば、正規表現とは違ったスマー
トな解決方法もあるかもしれない。





698 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:16:19 ]
>>693
ふと思ったのだが、文字列を1行にしようとしてないか?
 "(^Java.*"
+"|.*World$)"
って2行にして書いてもコンパイル時にまとめられるから"(^Java.*|.*World$)"と同じ事だぞ。

699 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:46:22 ]
用途を拡張したいということだろ
ただつなぐだけなら誰でも分かる話

700 名前:693 mailto:sage [2008/06/01(日) 02:18:15 ]
やりたいのはテキストファイルを読み込んで1行ごとにパターンマッチしてるかを
判定していくプログラムですね
ただ、パターンが大量にあるのでそれをソースコードの中に全部書いていくのは
無駄が大量なのではないかと疑問に思ったしだいで
チェックしたいパターンを別のファイルに記述しておいて
そのファイルを読み込むという方法も考えましたが、改行文字の処理が面倒そうですし

701 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:20:24 ]
>>700 for ループでぶん回せば?

702 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:56:43 ]
ほとんどの場合に最初の方のパターンでマッチするから、後のパターンは無駄になる事が多いって事かな。
なら、
>チェックしたいパターンを別のファイルに記述しておいてそのファイルを読み込む
でもいいと思うけど。配列にした方が早いかも知れんが。

>改行文字の処理が面倒そう
これが良くわからん。BufferedReader#readLine()で1行ずつ読むだけだと思うのだが、何かまずいのか?

703 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 03:04:30 ]
そこまで考えてやることもないだろう。

704 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 03:08:40 ]
>>702
1行ごとに
^Java.*
みたいなのを書いていったファイルを読むと考えていますが
readline()は改行文字を読まないんでしたっけ?
それなら1行呼んでそれに+していく方法に問題は無いんですが

705 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 03:11:50 ]
APIドキュメントを読むのは基本
基本が出来ないやつはいつまでたっても馬鹿

706 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 03:19:06 ]
>>705
申し訳ございません
このような愚行でスレを汚してしまったことを深くお詫びします
>704は無視していただいて構いません

707 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 03:35:11 ]
ファイル名とかは含まず、画像内容そのもののダイジェストを求めたくて、
↓作ったけど、もうちょっと最適化できないでしょうか?
sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30326

ファイル名とかパスを除くための、
特に46〜50行目ぐらいの↓が無駄な気がするけど、いい案が思い浮かばないです。
// (1)Normalize
BufferedImage bimg = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_3BYTE_BGR);
Graphics g = bimg.createGraphics();
g.drawImage(icon.getImage(), 0, 0, null);
ImageIcon normalize_icon = new ImageIcon(bimg);




708 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 04:33:04 ]
パス or URLが示す(画像)ファイルに含まれるデータのハッシュを使わない理由は?

709 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 04:49:01 ]
>>708
圧縮形式の違いは無視したい。
PNGやBMPとか、クリップボードから取り込んだイメージとかとか

デコード済みの画像から作りたいです。

710 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 05:08:05 ]
どういう最適化を望んでいるのかによる。

711 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 09:55:50 ]
無駄なコードや、性能とか

ImageIconからシリアライズ可能なイメージ情報だけ取得したり
できないのかなと思ったのだが、無い?

712 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:18:26 ]
>>709
java.awt.image.PixelGrabber つかって画素データ取り出してから
画素データのハッシュ値計算すりゃいいんでは?

713 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 12:16:44 ]
>>707
これでどう

static byte[] getImageHash(String path) { return getImageHash(ImageIO.read(new File(path))); }
static byte[] getImageHash(URL url) { return getImageHash(ImageIO.read(url)); }
static byte[] getImageHash(BufferedImage image) {
 int[] pixels = new int[image.getWidth() * image.getHeight()];
 image.getRGB(0, 0, image.getWidth(), image.getHeight(), pixels, 0, image.getWidth());
 return MessageDigest.getInstance(HASH_ALGORITHM).digest(pixels);
}

714 名前:デフォルトの名無しさん [2008/06/01(日) 13:50:51 ]
型変換についてなんですが
スーパークラスA, それを継承しているサブクラスBがあるとして
明示的なキャスト変換以外に
型をスーパAからサブBに変換する方法はありますか?

715 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 13:58:25 ]
>>714
Visitorパターン、またはダブルディスパッチ

716 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 18:45:11 ]
>>713
その手があった。サンクス
Officeサンプル画像のBlue hills.jpgで50回ほどベンチマークしてみたけど
(JDK 1.6.0_05-b13)で比較したら、new int[];BufferedImage.getRGBのほうが
残念ながら、2割ほど遅かった。
(new int[]とそこへのコピーがオーバーヘッドになっちゃうのかな?)

sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=30328

>>712
PixelGrabber、考えて見まつ



717 名前:デフォルトの名無しさん [2008/06/01(日) 23:26:06 ]
testフォルダをルートとして
その中にtestaとtestbのフォルダを作って
testaフォルダの中にあるjavaファイルから
testbのフォルダの中にあるファイルデータaa.textを
ロードする場合の指定は
testb/aa.textでいいでしょうか?
実行すると
java.lang.NullPointerException
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
という例外が出るんですが



718 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:35:26 ]
フォルダ云々じゃなくてまずはパッケージの概念と実行する時のクラスパスに関して勉強して来い
お前の質問じゃ、それでもいいともそれではダメともどちらでも取れる

719 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:11:45 ]
>>717
釣りなのか?なんか笑える

720 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:32:34 ]
>>717 説明の文章だけ読むと ../testb/aa.txt

721 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 03:38:56 ]
     * Returns a shallow copy of this <tt>ArrayList</tt> instance.  (The
     * elements themselves are not copied.)

    public Object clone() {

        ArrayList<E> v = (ArrayList<E>) super.clone();
        v.elementData = Arrays.copyOf(elementData, size);

これ、ディープ・コピーじゃないんですか?
以前のソースがないので分かりませんが、clone()の実装がバグってるんでしょうか。

722 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 05:41:04 ]
>>721
6のArrayListの実装?
どうみてもシャローコピーなんだが。
super.clone()
は継承元ではオーバーライドされていないからObject#clone()呼び出しと同義だし、
v.elementData = Arrays.copyOf(elementData, size);
は単に各要素への参照値をクローンしたArrayListの方にコピーしているだけでしょ?
コメントにも要素自身はコピーされないって書いてあるやん。

723 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:56:08 ]
v.elementData = Arrays.copyOf(elementData, size); 

これでしょ問題なのは。

v.elementData = this.elementData

シャローコピーといえば、普通はこうじゃないの?
オブジェクト(クラス)がArrayListだから、クラスの意味からすれば
オブジェクトのフィールドにある配列の内容の方もコピーするってのは分からなくもないけど、
シャローコピーは配列の参照だけコピーで内容はやんないんじゃなかったか。


724 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:57:04 ]
> v.elementData?=?this.elementData
>
> シャローコピーといえば、普通はこうじゃないの?

コピーになっとらんがな。

725 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:05:34 ]
>>723
そもそも
> * Returns a shallow copy of this <tt>ArrayList</tt> instance.
をわざわざ引用していたり
> clone()の実装がバグってるんでしょうか
などと言っているところからみて
> ディープ・コピーじゃないんですか?
は配列のコピーうんぬんの話でなく
ArrayList#clone()のことを質問してるんじゃないの?

726 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:08:25 ]
>>724
要素が変更されたらおかしくなるし、確かにコピーになってない。
そうするとコレクションに限っては、cloneの仕様を満たすのは、やっぱこれでいいじゃないの?

727 名前:デフォルトの名無しさん [2008/06/02(月) 08:10:54 ]
これだとコンストラクタと同じだし、cloneを実装したSUNの意図がイマイチわからん。
継承しても、cloneを再実装しようかどうか迷うじゃん。



728 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:17:41 ]
>>727
インスタンスメソッドである事に意味があるんじゃね?

コンストラクタは型わかってないと呼べないし。

729 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:25:07 ]
>>728
インスタンスなら、キャストしないといけないから結局はキャスト先の型がわかんないとダメでしょ。
リフレクト使うのもいいけど、そうれなら全て継承元の(ArrayList)のキャストになってしまう。
型分かってんなら、継承していてもいなくても、ArrayListのコンストラクタでいいでしょ。
イマイチわかんないな。
cloneが実装されている標準のクラスはあまりないから馴染みないけど、どういうときに使うんだ?


730 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:41:41 ]
>>729
(T)arraylist.clone() のキャスト先の型Tは
T extends Cloneable & List みたいちょっとだけでも抽象化できる。
コンストラクタ呼ぶ時ほど具体的な型名は必要ない。

731 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:58:55 ]
>>727
配列の clone() と似た動作を目指しただけだと思うが。

片っ方を変更したら、もう片方も変更されるようなものが欲しければ
List#subList(int, int) 使えって言われるだろうし。

732 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 14:58:40 ]
インスタンスメソッドでArraylListであることは最低限保証できるってことだと思う。
それなら、cloneじゃなくてdupとか別の名前でもいい気がしたけど
Vectorのころにcloneを実装しちゃったからその名残かな。

733 名前:デフォルトの名無しさん [2008/06/02(月) 15:10:46 ]
Appletが起動したらTextFieldにカーソルが点灯している状態にしたいのですが
教えてください。FrameやWindowはつかってません。


734 名前:デフォルトの名無しさん [2008/06/02(月) 15:53:18 ]
>v.elementData = this.elementData 

シャローコピーならこれでコピーされてるでしょ。
どうせコピー元が変更されたり追加されて内部の配列の参照が変更されても、
コピー先はその時点での状態がコピーできればいいんだし。
コピーになってないとかいって、意味わかんないな。

v.elementData = Arrays.copyOf(elementData, size);  

でも実質同じだから冗長と言えなくもない。


735 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:21:15 ]
>>733
検索した
ttp://www.alles.or.jp/~torutk/oojava/maneuver/1998/swing/swing_ja.html
>また、フォーカスを持つコンポーネントをプログラム中から指定することもできます。JComponentクラスのメソッド、requestFocus()です。

これでいい?

736 名前:デフォルトの名無しさん [2008/06/02(月) 17:24:05 ]
sample.jsp

<%@ page contentType="text/html;charset=Shift_JIS" %>
<%! String a=""; %>
<%
//↓これを書くとjsp:paramで何故かエラー
request.setCharacterEncoding("JISAutoDetect");
a=request.getParameter("nam");
%>
<html>
<head>
<title>sample</title>
</head>
<body>
<jsp:include page="include.jsp">
<jsp:param name="param" value="<%=a %>" />
</jsp:include>
</body>
</html>

737 名前:736 [2008/06/02(月) 17:26:02 ]
include.jsp
<div align="right">
<%= request.getParameter("aaa") %>
</div>


実行結果:
org.apache.jasper.JasperException: An exception occurred processing JSP page /sample.jsp at line 16
(16行目は<jsp:include page="include.jsp">の行です)


何故かjsp:includeでUnsupportedOperationExceptionになるんですが。
<jsp:include page="include.jsp" />と閉じると何事も無く実行され、
request.setCharacterEncoding("JISAutoDetect");をコメントアウトしても実行できます。

なぜでせう?



738 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:15:28 ]
>>734がすごいことを言っている件

739 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:24:31 ]
super.clone();使ってるから
v.elementData = this.elementData 
の代入すら必要ないんじゃないの?

740 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:28:47 ]
何かアプリケーションを作りたいと思ってJavaで開発用エディタを作ったのですが、
これを個人毎に文字の色とかコンパイラのURIとかの各種情報を保存して
起動時に設定するようにしようかと思ったのですが、
こういう設定の保存ってどういう形式で行うのが普通なのでしょうか?
「設定.txt」とかいう形で保存するのも何か変な気がします。

741 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:54:04 ]
サンプルプログラムでは、*.propertiesが多いね

742 名前:デフォルトの名無しさん [2008/06/02(月) 19:11:39 ]
そのclone()についてなんですけど、java.lang.NumberやStringなどはclone()実装されてないのがよく分からないんです。
コレクションの方はclone()あるのに、値の方はなんでないんでしょうか。

それもthis用のコンストラクタとでも言うのか、それ用のコンストラクタすら用意されてないのもあり、
もしコピーするならかなり遠回りな操作をしなければならないですよね。
イミュータブルだとしても、classもfinalのも多く、設計上に意図としてはインスタンスのコピーはするなってことなんですか?

743 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:22:01 ]
> イミュータブルだとしても、classもfinalのも多く、設計上に意図としてはインスタンスのコピーはするなってことなんですか?
Immutableなオブジェクトのコピーとって何したいの?

744 名前:デフォルトの名無しさん [2008/06/02(月) 19:31:05 ]
内部が変更できるかどうかじゃなくて、インスタンスのコピーの話なんですけど、ごっちゃにしてませんか?

745 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:33:23 ]
何したいとかじゃなくて、そもそもそのAPIがないなら何も出来ないでしょw

746 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:40:30 ]
>>740
サラッとスゴい事をおっしゃる。

747 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:47:31 ]
>>742
cloneを実装してないのは、たぶんイミュータブルなインスタンスをコピーできても、うれしいことが特に無いからじゃないかな
finalは、イミュータブルな性質を維持するために必要なことだから、仕方ない



748 名前:デフォルトの名無しさん [2008/06/02(月) 20:02:07 ]
>finalは、イミュータブルな性質を維持するために必要なことだから、仕方ない 

こういうこと平気で書いちゃうあたりが、イミュータブルとかextendsとかを分かってないんだろうね。
インスタンスとcloneも同じく、ごっちゃにしてるんだろうw

749 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:02:09 ]
>>742
もし仮にNumberやStringをコピーできるとしたら、それがどんな場面で役に立つ?

750 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:04:22 ]
>>741
ありがとうございます!
propertiesをキーワードにググって実装してみたところ出来ました!

>>746
すいません、やっぱり.txtで保存するのはおかしいですよね;
直感的に変なのは分かるのですが、テキストファイルだとデータと値の関係がないとか、
そういうことが.txtを用いない理由なんでしょうか?

751 名前:デフォルトの名無しさん [2008/06/02(月) 20:29:52 ]
>>749
仮にも何も、もう設計上出来ないんだよ。
まあ書いてもいいんだけどね(笑)
インスタンスをコピーするってことはどういうことなのかをよく理解すればいいんじゃないの?

752 名前:デフォルトの名無しさん [2008/06/02(月) 20:30:47 ]
>finalは、イミュータブルな性質を維持するために必要なことだから、仕方ない  

こういうこと平気で書いちゃうような人だしなぁw

753 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:58:23 ]
>>751
俺がバカだからか、よくわからないので教えてほしい。
インスタンスをコピーするってことはどういうことなんだ?
コピーなんかせずに同じインスタンスを使えばいいじゃないか?

754 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:00:45 ]
>>750
いや、スゴい事ってのは
>Javaで開発用エディタを作ったのですが、
の部分。
質問するより答える立場の人でしょ。

755 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:01:58 ]
>>721に戻ると、
・これは普通shallow copyと言わないのでは?

という話だよね。たしかに「オブジェクトのshallow copy」とは言えない。
フィールドにぶらさがったものを複製しているからね。
でも、「(このオブジェクトが表している/保持している)配列のshallow copy」ではあるでしょ。
参照の羅列としての配列を複製しているだけで、配列の要素をいちいち複製していないから。
〜 完 〜

てことじゃないのかい

756 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:04:53 ]
> 配列の要素

配列にぶらさがっているオブジェクト
と言った方がいいか

757 名前:デフォルトの名無しさん [2008/06/02(月) 21:21:20 ]
clone()したくローン先の方で変更したら、クローンもとのオブジェクト
でも変わる事が期待されるでしょ。
o2=(...) o1.clone ();
o1.set (1,val)
シャローコピーって書いてあるなら、このときo2, o1の保持してるvalは同じであってほしいよね。
今さらだから、APIドキュメントの方をそう書き直せばすむんじゃないの?
確かVector.clone()の記述はそんな風に書いてあった(jdk 1.5だけど)。
ドキュメントにうそ書いてあると、実装するとき困るんだよ。



758 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:25:47 ]
>>757
> clone()したくローン先の方で変更したら、クローンもとのオブジェクト
> でも変わる事が期待されるでしょ。

クローンを殴ったらクローン元も痛みを共有するわけですね、わかります

759 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:43:53 ]
>>721
> (The elements themselves are not copied.)

って但し書きの意図を汲めば、まー、まず迷わないと思うんだけどどうよ。
でも、ここで「elements」を「参照」ではなく、「参照先のインスタンス」だと解釈しなければならないってのが、
微妙といえば微妙なのかな。ふつうわかるんじゃね?名前を書き写さずに何が名簿のcloneなのかっていう。

>>757
> シャローコピーって書いてあるなら、このときo2, o1の保持してるvalは同じであってほしいよね。

全然思わない。(一応言っておこうw)

760 名前:デフォルトの名無しさん [2008/06/02(月) 21:58:51 ]
ああ、わりい。飯食ってた

>clone()したくローン先の方で変更したら、ローンもとのオブジェクト 

気がつかなったかけど笑えるね。たぶん自己破産の相談なのかな?

>全然思わない。(一応言っておこうw) 

長年使ってると、全然思うのが、まあ普通なんだけどw
その挙動がArrayListにふさわしくないなら、clone実装すんなってこと。もしくはAPI DOCのバグを書き直せ。
どうせ翻訳の人も見てんだろうしSUNに言っといてよ。頼むよ。

761 名前:デフォルトの名無しさん [2008/06/02(月) 22:03:40 ]
>>754

>Javaで開発用エディタを作ったのですが、 

実はTextAreaをaddしただけでも、偉そうに言えばこうもいえるんじゃないの?
どう凄いのかわかんないんだけど。

762 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:25:02 ]
>>760
一応言うだけ言ってみるけど、トリップつけてくれないかな

763 名前:デフォルトの名無しさん [2008/06/02(月) 22:27:39 ]
なんで?

764 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:28:17 ]
無視したいから

765 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:34:36 ]
>>760
>長年使ってると、全然思うのが、まあ普通なんだけどw

悪いけど風呂入ってくるから、全然思わないにもう一票入れておいてよ

766 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:39:21 ]
>>754,>>761
開発用「エディタ」なので、ホントIDEみたいに立派なもんじゃないです><;
インテリセンスとかキーワード色分けとかオートインデントとか
IDEの中で自分が欲しい部分だけ取って軽く書きたいときに使う用に作った程度です。

普段はC/C++畑でJavaは全然なので、勘違いさせてすいません。。

767 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:56:37 ]
質問です。
Component.createImage(int width, int height);
でcreateImageしたのですが、これに透過色を設定したgifファイルをdrawImageすると透過される(ハズ)の部分が白で塗りつぶされた状態になってしまいます。
試しにcreateImageを使わないでただgifファイルをdrawImageすると透過はされていたのでgifファイルには問題がないように思います。
また、createImageしたImageにgifファイルを書き込まずImageをdrawImageしても白で塗りつぶされてしまっています。




768 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:06:34 ]
>>767
component.getGraphicsConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
でイメージを作って、gifを乗せる前に
((Graphics2D)g).setComposite(AlphaComposite.Src);
するといいよ

769 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:17:10 ]
>>757
> clone()したくローン先の方で変更したら、クローンもとのオブジェクト
> でも変わる事が期待されるでしょ。
期待されない。

> 確かVector.clone()の記述はそんな風に書いてあった(jdk?1.5だけど)。
書いてない。
> Returns a clone of this vector. The copy will contain a reference to a clone of the internal data array,
> not a reference to the original internal data array of this Vector object.

770 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:20:26 ]
>>768
ご丁寧にどうもありがとうございます。
無事透過したまま書き込むことができました。

それにしても他のソースで使ってるコードなのに突然動作が変わるなんてなんだか怖いです。
精進します・・・。

771 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:25:59 ]
>>757 
> clone()したくローン先の方で変更したら、クローンもとのオブジェクト 
> でも変わる事が期待されるでしょ。 
それをしたいなら、o2=o1;でいいよーな。

772 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:31:41 ]
charにnullが代入できない。
納得いかない。

char test1 = '';

char test2 = null;

どっちも駄目なんだよな。

773 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:33:58 ]
納得いかないかもしれないが、そういうものだと思って使うしかない。

774 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:37:25 ]
新しいプログラミング言語が生まれることを期待したい!!

775 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:39:37 ]
新しいプログラミング言語はすでに色々あると思うけど・・・
C#などはいかが?

776 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:52:21 ]
>>772
> char test1 = '';

これはないでしょw
Unicodeだっつってんだからその範囲内でなんとかしようよ

777 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:57:35 ]
Character c = null;



778 名前:772 mailto:sage [2008/06/03(火) 01:13:41 ]
返信ありがとう。

int型にもnullを代入できないや・・・。
昔は代入できたよね?
勘違いかな?

779 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:23:15 ]
>>772
あそうか、「何charにnull突っ込んでんのww」と未熟者に突っ込む機会喪失問題か

780 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:23:41 ]
違ったらしいなw

781 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:30:42 ]


782 名前:デフォルトの名無しさん [2008/06/03(火) 01:32:05 ]
web.xmlの<servlet>タグでサーブレットのクラスを指定すると、それまでアクセスできてたjspにアクセスできなくなるんですけど、、なんで!?


783 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:19:38 ]
>>778
nullは参照型のリテラルであり参照型からプリミティブ型への暗黙の型変換は
プリミティブ型のラッパークラスからのauto-unboxingによるもの以外にない

784 名前:778 mailto:sage [2008/06/03(火) 02:37:23 ]
>>783
暗黙の型変換を使えば、プリミティブ型にnullを代入出来るって言ってるのかな?
ちょっと判り難かったから・・・すみません。
とりあえず有難う。
もう寝なきゃ・・・。

785 名前:デフォルトの名無しさん [2008/06/03(火) 02:39:33 ]
>>769
君、しつこいよ。荒らしと同じだよ。
そういう君独自の解釈はもういいから、早くSUNの翻訳担当の人に言っといてよ。

786 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:41:40 ]
>>783
場を和ませたい人がいるのか、たぶん釣りだと思うんだがww

787 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:42:52 ]
>>785
ごめん、これで最後にするけど、>>764以降漏れは無視してるから



788 名前:デフォルトの名無しさん [2008/06/03(火) 02:59:29 ]
>>787
一日中2CHに張り付いてんですか…邪魔する気はありませんけど、ホント、ご苦労なことですね…

789 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 03:29:09 ]
>>784
釣りじゃなくてマジ?
プリミティブ型にはそもそもnullという概念自体存在しない。

790 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 05:58:03 ]
もしSQL流のNULLがJavaにあったらキッツイ気がするな

791 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 10:57:57 ]
>>772
charに無効な値を入れたいなら、U+FFFFというソレ用のコードポイントがある。


792 名前:784 mailto:sage [2008/06/03(火) 11:35:32 ]
>>789
大マジまんだけど、でもようやく理解できた。
int型にnullへのポインタ突っ込むのは無理があるもんな。(遠い昔C言語をやっていた頃の記憶を呼び起こした。間違ってるかも。)


>>791
それ使える。
int(Unicode補助文字)ならU+FFFFFFFFって訳ね。

793 名前:784 mailto:sage [2008/06/03(火) 11:43:15 ]
>>784
>>791
感謝の言葉を忘れていた。
ありがとう。

794 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 16:40:14 ]
nullは-1でいいのか?0がいい感じの気がするけど。

795 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 17:55:27 ]


796 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 17:57:04 ]
一貫してれば具体値は何でもイイよ。

797 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:16:55 ]
質問させてください。
Eclipseの使用を考えています。
そのためには、どの程度のPC性能が必要ですか?

現在使用中のPCは、
CPU Pentium4 3.0GHz
MEM 1Gbyte
です。





798 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:20:14 ]
どなたかご教授願います。
-------------------------------

class sample1
{
public static void main(String args[])
{
double ans3 =(double)5/3;

System.out.println("5÷3は" + ans3 + "です。");

}
}

---------------------------------

上のようなソースがあるとして、
5/3の前に(double)の表記を入れる理由というのはなぜなんでしょうか?
すでにdouble ans3 のところでdoubleと書いてあるのでans3には、
ちゃんと小数点が含まれた答えが表示されると思うのですが。
もしかしてアホすぎる質問でしょうか

799 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:20:52 ]
>>797
大丈夫だと思うが、とにかく落としてきて軽く動かしてみ
どのぐらいが「快適に動かせる」と感じるかは、個人差がある

800 名前:797 mailto:sage [2008/06/03(火) 20:34:03 ]
>>799
> 大丈夫だと思うが、とにかく落としてきて軽く動かしてみ
とりあえず動くようで安心しました。さっそく、インストールしてみます。
回答ありがとうございます。

801 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:21:38 ]
>>598
5/3するときにはそれがdouble型に代入されるなんて気にしちゃいない。
つーか、思ってるだけじゃなく、キャストのありなしで結果が違うことくらいは試せ。


802 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:34:41 ]
>>798
www.lcv.ne.jp/~kenmio/yomimono/yomimono4.htm
ここの「5割る2は2?」って所を見ると良いよ。

803 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:46:15 ]
>>802
ありがとうございました。
これで寝れそうです。

804 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:48:18 ]
>>803
マルチ先にも断っとけよ。

805 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:39:53 ]
設計に関して質問があります。

今作っているソフトの中でJButtonやJTextなどのオブジェクトが多数出現します。
こうした場合配列にしておくと
JButton button[]=new JButton[BUTTONNUM];
for(int i=0;i<button.length;i++)
{
button[i].〜
}
みたいに一括で処理できるものもあるので便利なのですが、
個別の名前(例えばdeletebutton)を付けた場合に比べて
button[1]、button[2]では何のボタンか分かりづらい面があります。

こういう場合、一般的にor皆さんの場合どうしているか教えてください。

806 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:43:31 ]
ちなみに今現在の処理方法ですが、
HashtableとgetIndex(String)という関数を作って、

Hashtabel hash=new Hashtable();
hash.put("delete","0"");
hash.put("prev","1");
・・・
public int getIndex(String buttonname)
{
return Integer.parseInt((String)hash.get(buttonname));
}
button[getIndex("delete")]という風にしています。

807 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 03:46:46 ]
自分では使ったことのない機能:
enum MyButton { DELETE, ... }

... button[MyButton.DELETE] ...
(いきなり質問の条件を無視してみる)



808 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 04:08:34 ]
>>806
そういうハッシュテーブルの使い方をするくらいなら、
間接的に配列のインデックスなんかに結びつけるんじゃなくて、
HashMap<String, JButton> buttons = new HashMap<String, JButton>();
buttons.put("delete", new JButton());
buttons.put("prev", new JButton());
...
buttons.get("delete").〜
みたいに名前とインスタンスを直接結び付けておいてもいいような。
>>805のように一括して処理したいようなループを回すときは、
for (JButton button : buttons.values()) {
button.〜
}
のようにできるし。

809 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 04:30:13 ]
>>807
たぶんそれコンパイルできない
Cの列挙型ではないからもしやるならbutton[MyButton.DELETE]でなくbutton[MyButton.DELETE.ordinal()]だ

810 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 08:03:06 ]
>>805
個別の名前をつけて配列にも入れておけばいいじゃない
JButton deleteButton = new JButton();
JButton prevButton = new JButton();
...
JButton button[] = { deleteButton, prevButton, ... };

811 名前:デフォルトの名無しさん [2008/06/04(水) 08:45:22 ]
ボタンいくつ貼り付けてるの?

812 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 11:26:13 ]
>>810
たぶん、そういう生成もループで済ませたいんじゃないかな。わかんないけど。
たしかに「多数」ってどのくらいなのか気になるw

813 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 12:11:24 ]
>>805
一括に処理したいというのと個別に名前で指定したいという要求はバッティングするんじゃ?

本当に希望しているのは、個別に指定したいけど、コード量は減らしたいってだけじゃないの?

それなら、
private JButton getButton(String name,...){}
JButton delete = this.getButton("削除",...)
みたいなビルダーメソッドを作ればいいのでは

814 名前:805 mailto:sage [2008/06/04(水) 12:57:50 ]
皆さんありがとうございます!
ですね、一括で処理したいのは生成も含めて、
パネルへの追加とかフォントの指定とかまとめて共通の処理を行う部分で、
個別に判断する所というのはActionListenerを実装したりする部分なんかです。
色んな方法を聞けて勉強になりました、列挙体に至ってはJavaであることを知らなかった…。
今日学校からやってみます、本当にありがとうございます!

ちなみにリネーマ&ファイル整理用のプログラムなのでボタンは今は
プレビュー、リネーム、ファイル検索、削除、移動、ディレクトリ表示くらいですが、
テキストフィールドの方が
ワイルドカード、正規表現、前方一致、後方一致、ユーザ定義用etcとたくさん指定出来るように作ってあって11個くらいといった感じでしたw

815 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:03:17 ]
>>57-58を見て思った。

>>57のような意味不明なレスをすると自分のレス番号が該当になったとき
>>58のように「おかしい」とおもわないといけない儀式でもあるのか?

おかしいと思ってる>>58まったく理解できないのだが。
別の意味でおかしいとは思うけどさ

816 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:07:34 ]
君がThreadとか理解してるなら気にしなくていいんじゃない?

817 名前:デフォルトの名無しさん [2008/06/04(水) 17:09:58 ]
結局ビルダーパタンで落ち着いたのね。
せいぜいそれぐらい(11個)とか思ったけど、チェックボックス(とラベル)が100個超えてるUIのパターンもあるから。
それならソースコード11行とか100行にわたり書けばいいんじゃないかと思うけど。



818 名前:デフォルトの名無しさん [2008/06/04(水) 17:27:06 ]
ここで聞くことかどうかわからんが。

大昔、いろんなラベルがついた箱が線でくっついて
うにゃうにゃ(バネモデルか何かで)動くデモってのを見た記憶があるんだが、
うまく見つけられなくて困り中。

誰か在処か名前をご存じでしたら教えてください。


819 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:39:42 ]
スレッド番号100から、スレが経った日付を列挙してみた。
100 2007/03/31
101 2007/04/30
102 2007/05/29
103 2007/06/27
104 2007/07/27
105 2007/08/28
106 2007/09/19
107 2007/10/18
108 2007/11/07
109 2007/11/25
110 2007/12/15
111 2008/1/13
112 2008/2/8
113 2008/3/1
114 2008/4/5
115 2008/5/12
Javaスレの進行速度は月1ペースか。今から4年ほど前はスレが50くらいだったのに
急激にスレの消費速度が加速していって2007年3月末の時点で100になったときは
そのスレッドの消費速度の速さには驚いたものだ。

Java登場当初にはAppletの影響でJavaは遅いなどと言われC/C++プログラマの間でも
不評が多く、プログラム板、プログラマ板で頻繁にJava叩きが行なわれていたにも関わらず、
これほどにまでJavaの知名度の人気が上がるとは誰が予想しただろうか。M$が2000年にC#を発表した
とき、一部の者やM$の関係者は、「これからはC#が普及し、Javaは衰退する」と言っていたにもかかわ
らず、あれから8年経った今でもJavaは衰退する様子を見せず、後から登場したC#はほとんど普及し
ていないという有様。

気がつけばJava関連の求人も毎年毎年増え、Javaだけでも食うに困らない状況にまでなった。
書店のコンピュータ関連書籍コーナーにはJavaだけで占められた本棚が大きく占有していった。
今では書店ではAjaxやWeb関連書籍が多いが、WebにJavaを利用することはもはや当たり前に
なった感がある。M$のC#を揺るがした背景にはGoogleの影響が少なからずあるのではないかと思えてくる。

820 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:40:44 ]
この調子で行けば、2010年にはスレは
スレは12月で122、2009年1月で123、2010年1月で135、2011年1月で147、
2012年1月で159、2013年1月で171、2014年1月で183、2015年1月で195、
2016年1月で207、2017年1月で219、2018年1月で231、2019年1月で243、
2020年1月で255にまで伸びるだろう。

その頃までに、2chがあるのか、今の2chが存在しうるかどうかはわからないが。
blogなどの外部のコミュニティに徐々に質問者が移行するときがやってくるだろうか?

Javaは何十年経っても古いプログラムを動かすことができる。
だからその頃にこのスレがなくなってもJavaは相変わらず健在だろう。

821 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:41:45 ]
>>815
なんか口に出さないで指指された気分になるじゃん。
m9(^Д^)

822 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:43:24 ]
懐かしいAAだな

823 名前:デフォルトの名無しさん [2008/06/04(水) 18:25:57 ]
4年も張り付いてるみたいだしw

824 名前:デフォルトの名無しさん [2008/06/04(水) 18:29:03 ]
月に50万円稼ぐ派遣の狼君が捕まっただろ。
人殺し食っちゃったんだっけな?

C++/C#好きで、宗教(GNU?)狂信者だって噂だよw
そんなやつと同じにされてもね。

825 名前:デフォルトの名無しさん [2008/06/04(水) 18:32:36 ]
どこかのIT記事で「天才20歳(何々賞受賞!)」とかの奴もいたけど、似たような狼君じゃないの。


826 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:35:07 ]
>>818
JDKに付いてるデモなら多くないんだから順番に試していけばいいじゃないかw
たぶんアプレットのデモの中のGraphLayoutかな?

827 名前:デフォルトの名無しさん [2008/06/04(水) 18:44:38 ]
>>808>そういうハッシュテーブルの使い方をするくらいなら、 

そういうひねくれた方法を見つけるほうが実は凄いんだけどね。(実用でもないし、使わないけど)

>>806




828 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:53:39 ]
>826

おお、まさしくコレだ。
てっきりLayoutManagerがらみかと思ってスルーしてた。スマン&&ありがとう。



829 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:08:37 ]
>>827
どういう意味だ??

830 名前:デフォルトの名無しさん [2008/06/04(水) 19:18:13 ]
バグの元になるでしょ。

831 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:42:25 ]
>>824
おいおい、マジかよ。なんでそこまで知ってるんだ。
どこかのスレで話題になってるのか?

832 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:44:50 ]
>>808 >>827見て思った。

>>808のコードは
ハッシュでボタンを区別しているようだが・・・

これこそ、enumを使うべきじゃないかね


833 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:54:06 ]
> するくらいなら
だから本当は>>808みたいなのもアレだけどハッシュならハッシュで別に添え字を値にしなくてもってことじゃない?
しかも整数値でなくてわざわざ文字列を値にしているし

834 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:56:54 ]
>>831
板違いの話題だからマ板池

835 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:27:38 ]
>>833
誰かみたいに死体の肉を食べちゃったわけじゃないし、まーいーじゃん。

836 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:26:21 ]
>>823
張り付くってどういう意味か。久しぶりにJavaスレを見たんだけどな。
気がつけばスレがここまで進んで驚いているんだよ。

2chで初めてJavaスレに書き込みをしたのは
もっと前だけどな。

837 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:26:56 ]
>>834
なんとなくどこのスレかはわかったが。
誘導スレを紹介してくれないか



838 名前:デフォルトの名無しさん [2008/06/05(木) 02:48:44 ]
ここはスルー?
助言求む!

839 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 03:41:54 ]
>838
おまい誰だよ。煽りとかじゃなくてマジで

840 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 05:33:41 ]
誤爆か?

841 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 10:52:56 ]
つまんねー

842 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 12:28:45 ]
swingプログラムの中でメニューやボタンから別のウィンドウを表示させる際に
class Window2{
Window2(String title){
JFrame frame2=new JFrame(title);
・・
frame2.setVisible(true);
}
}
こういう風にもう一つのクラスを作ってnewした場合、
setCloseOperation(JFrame.EXIT_ON_CLOSE)を設定すると
呼出し元のウィンドウも含めてプログラム全体が終わってしまいます。
WindowListenerで設定しようかと思ったのですが、
明示的に破棄するウィンドウを指定するにはどうしたら良いのでしょうか?

843 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 12:30:56 ]
DISPOSE_ON_CLOSE のこと?

844 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 12:37:46 ]
DISPOSE_ON_CLOSE 相当の処理を自分でやりたいってことなら、
DO_NOTHING_ON_CLOSE にして windowClosing で dispose を呼ぶ

845 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 12:38:43 ]
>>843
あああすいません、それですね!
何かハンドル渡してウィンドウ指定して破棄みたいなやり方かと思ったらあったのかorz

846 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 12:46:56 ]
>>833
添え字というかなぜかStringになってるところが
かなりヤバイね

847 名前:デフォルトの名無しさん [2008/06/05(木) 14:45:25 ]
JSONみたいにXMLのマージを行うことの出来るJavaのライブラリってある?



848 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 16:22:02 ]
eclipseでJavaの開発を始めたばかりのひよっこです
JUnitの使用に慣れておけ、と言われました
明日一日使ってJUnitの勉強をするつもりですが、参考になるサイトがあったら教えてくださいです

849 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 16:29:20 ]
いった奴に責任があるからそいつに聞いておくんなさいまし。

850 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 16:44:22 ]
サンのJDKとOPENJDKってやつは同じものなの?
どっちもフリーで使える?

851 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:00:39 ]
>>721
今更だけど。。もしそこで内部の配列をコピーしなかったら、
要素が増えて拡張されたときに一方の配列がとりかえられて、泣き別れになるよね。

852 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:02:46 ]
ていう以前に要素数のカウンターが別管理になるか

853 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:17:00 ]
JUnitとか意味ない

854 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:30:02 ]
大体、単体テストツールの使い方なんて
教えてくれるもんじゃないの?

855 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:30:12 ]
>>721 >>851
というかEffective Javaを読めとしか

856 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:30:47 ]
>>848
@ITとJUnitでググレ

857 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:33:07 ]
JUnitの使い方だけ覚えてもServletやDBやHTTPセッションのテストは
容易ではないからなあ。

JUnitだけでなくJakarta Cactus、DBUnit、HTTPUnit、MockObjectの
使い方まで覚えないといけない。

どうせならTestNGも覚えておくことをお勧めしておく。
JUnitはJUnit4が出たのでそれも覚えておくことをお勧めしておく。
ついでにAntやMavenからJUnitを起動する方法も覚えておくことをお勧めしておく。



858 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:41:39 ]
JUnitとかのテストツールの使い方覚えるよりも、テストの書き方覚えたほうがいい。

859 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:57:11 ]
テストの書き方はチーム内のルールがあるのでは?

「JUnitに慣れておけ」と言った当事者に質問しろ


860 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 18:45:34 ]
つまり名目的なJUnitのパターンを研究すれば回避の道が開けるかもしれないわけか

861 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 19:50:54 ]
Cactus や HttpUnit は、めんどくさいだけで
あまり意味がないと思うのが本音。

テストケースを通すばかりのクラスになり、画面を見れば一目瞭然の問題の
エラー、あるいは仕様的にグレーだけど明らかに改善したほうがいい問題
に気がつかないことが多い。
テストケースの作り方が悪いのだろうけど。あと見た目の問題とか。

顧客に「テストの時間一杯取ったのに、こんなのにも気づかなかったの?」と怒られる。

うちのチーム(Webアプリ)は、Unit テストは Serviceクラス、Utility クラス、DAO まで。
UI レイヤ(Struts だったら、Actionクラス、ActionForm、jsp)は、Excel でテスト仕様書起こして
手でやっている。

ケントベックの言う、「いつでも、再帰的にテストをできるようにする」はUIレイヤでは実現できてないけど、
このやり方が、かけるコストと、目的に対する効果が一番バランスが取れていると思っている。

テストクラスの実装にいつも時間がかかるのをどうにかしたいと思っていて、
slenium とか fitness という単語は知っているのだけど、まだ試してみてない。

というわけでみなさんどうしてますか?



862 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:44:52 ]
ほぼ>861と同様だけど、DAOは検索系しかやらんな。
S2Daoなり使っていると特に。
逆に画面系は入力チェック系だけはHttpUnitとか使う

863 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:24:21 ]
>>861
一番面倒くさいのはCactusだな。

そんでみんなしてMockObject使って
HttpServletResponseとHttpServletRequestオブジェクトを偽装して
Servletのテストしているんだよな。

864 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:28:04 ]
>>861
Seleniumでググってみたら
これはなかなか使い勝手がよさそうだ

865 名前:デフォルトの名無しさん [2008/06/05(木) 22:37:29 ]
あんこ1
あんこ2

あんこ3
あんこ4


あんこ5
あんこ6

あんこ7

このようなテキスト構成のときに
以下のように、改行が2つ続くとき改行したいのですが
どのような制御をすればよいでしょうか

あんこ1、あんこ2、あんこ3、あんこ4
あんこ5、あんこ6、あんこ7

866 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:52:48 ]
テキストはファイルからか?
readLineで空文字だったらフラグを立てる
次も殻文字だったら改行する
ってループではどうかね

867 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:55:37 ]
>>865
とりあえず、マルチポストはやめとけ



868 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:35:42 ]
あんこってなんだ?
うんこのオマージュか?

869 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:51:18 ]
マルチ氏ね

870 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 07:14:34 ]
はわわー

871 名前:デフォルトの名無しさん [2008/06/06(金) 12:56:12 ]
基礎的な質問で申し訳ないのですが
HTTPURLConnectionのtimeout,wait,retryの上手なやり方が有ったら教えていただけ無いでしょうか
TimeoutExceptionを活用すべきなのかどうかも分からない素人です
どうかお願いします

872 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:12:56 ]
まずTCP/IPとHTTPを学んで来い話はそれからだ

873 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:48:52 ]
あるjavaアプリがあって、一連の処理がどのようなクラスのメソッドを実行してきたかをダンプしたいと思っています。
Linuxでいうところのstrace見たいなものです。
プロファイルというものを知りましたが、使用されてメソッドのサマリの表示だけで、
呼び出し順番がわかりません。
実行した順番に呼ばれたメソッドをダンプできる方法はありますでしょうか。

874 名前:デフォルトの名無しさん [2008/06/06(金) 13:54:14 ]
872
分からないなら無駄な返答は不要です

875 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:59:24 ]
>>872
Thread.currentThread().getStackTrace() を使う。
あとはデバッガで起動するとか。

876 名前:875 mailto:sage [2008/06/06(金) 13:59:52 ]
失敗。>>873 ね。

877 名前:871 [2008/06/06(金) 14:14:13 ]
あさっての答えが返ってきたかと思ってびっくりしたよ
気をつけてね



878 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:23:23 ]
Java "execution trace"
みたいな話じゃないの。

879 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:41:03 ]
JavaでWinのexplorerみたいなのを作りたいのですが、
どうしたら実装出来るでしょうか?
左の方はJTreeで頑張れば出来そうなのですが、
右の選択したディレクトリの中身が表示される部分がよく分からないです。


880 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:44:44 ]
JListでいいんじゃ?

881 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:50:28 ]
>>875
それは可能なのですが、ダンプをしたいまま差にそのときの、になってしまいます。
一連の処理(時間)の間に呼ばれたメソッドの履歴が取得したいです。
詳しくは解かりませんが、下記のページで実行結果からシーケンス図を作成しています。
イメージとしては、これのメソッドリストがほしい感じです。

AA.aa()
BB.aa()
AA.bb()


882 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:39:39 ]
eclipse に ajdt というプラグインを入れて、
AspectJ というのを使って関数の前後でログ出力をするようにしてみたのですが、
eclipse でデバッグするのがやりづらくなりました。

ブレークポイントをはりつけても目的の処理でブレークするのが
うまく出来なくて困っています。

AspectJ を使ってもデバッグしやすい方法があったら教えてください。

883 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:51:32 ]
>>881
デバッガに詳細トレースログを取る機能が無いか確認。
無いなら JPDA 使って自分でデバッガを作る。

884 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:16:33 ]
OpenJDK って Sun の JDK の代わりとして充分使える?


885 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:16:22 ]


886 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:42:09 ]
javaのGuiにおけるレイアウトがさっぱりで全然やりたいレイアウトに出来ないので質問させてくださいorz


画面を縦三分割にしたいのですが、それぞれ等隔ではなく真ん中は広く、
またそれぞれの横幅を縮めたり伸ばしたりするレイアウトにしたいのですが
こういうのってどうしたら出来るのでしょうか?


887 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:10:25 ]
真ん中は引き延ばすってこと?
それならBorderLayoutでも十分そうだけど・・・
手打ちならGridBagLayoutとかSpringLayout使えばかなりのレイアウトは実現できるよ。



888 名前:デフォルトの名無しさん [2008/06/07(土) 21:34:42 ]
それは、レイアウトじゃなくてコンポーネントじゃないか?

889 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:45:03 ]
>>887
レスありがとうございます。
そうです、幅は1:3:1くらいで真ん中だけ大きくしたくて、
かつブラウザのサイドバーみたいに横幅を調整出来るようにしたいのです。
GridBagLayout、難しそうだけどググりながらちょっとやってみます。

>>888
すいません、正直どういう意味か分からないですorz

890 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:45:31 ]
境界をつまんでサイズ調整できるやつはJSplitPaneな。


891 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 02:26:34 ]
>>890
ありがとうございます!!
頭悪すぎてこんな時間までかかってしまいましたがなんとか出来ました!

しかしJavaはC/C++に比べて簡単にGui部品が使えるのに、
レイアウトだけは非常にやっかいですね…。


892 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 02:38:36 ]
レイアウトの簡易さはC#にかなわないなJavaは

893 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 02:53:33 ]
C#に限ったことではないが、固定配置+Dock/Anchor方式は
直感的に自由度の高いレイアウトが出来るからな

894 名前:デフォルトの名無しさん [2008/06/08(日) 04:49:43 ]
しかし一度は位置したコンポーネントを動的に動かしたりは出来ない。

895 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 06:19:46 ]
NetBeans6のレイアウト機能はほぼ直感的にレイアウトできるようになっている

896 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 09:14:21 ]
ま、レイアウトは言語そのものの問題じゃないから。

897 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 10:05:09 ]
一度配置?



898 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 11:58:01 ]
C#というか.NETも、Swingのような窓サイズに合わせた動的配置のコンポーネントが用意されたよ。Ver.2.0くらいから。
しかしあまり使われていないようだ。

899 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 22:18:36 ]
javaじゃ動的レイアウトがあたりまえだからなぁ。


900 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:46:45 ]
C#はあくまでもjavaの模造品の域を超えてないからなあ
Cの方は次に期待だよな

901 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 02:05:54 ]
X-WindowsやTKをベースに考えるなら動的レイアウトなのは自然だよね。
WindowsFormのDockプロパティはオマケみたいなもので、
動的レイアウトはWPFで全面採用になってる。
ただ動的レイアウトはポトペタ系のツールが作りづらいのが難点。

902 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 02:47:39 ]
それで最終的にはCUIに仕上がるんですね。わかります。

903 名前:デフォルトの名無しさん [2008/06/09(月) 11:16:33 ]
cは廃れるだろうね

904 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 12:23:20 ]
X-Windowsにはつっこんでいいの?

905 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 13:00:21 ]
sのあるなしだけだったらつまらないからほってたほうが
他にあるならどぞ

CはC++と互換の無いC99はいらない

906 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:24:58 ]
あるTextFieldに入力するとタイプ毎に任意のJLabelにその文字に
規定の変換がされたものを表示されていくプログラムを作ろうと思ったのですが、
何故かタイプとラベルに表示される文字に時間差があります。

具体的にはこういうコードを書くと、

public void keyTyped(KeyEvent e) {
System.out.println("タイプされた文字:"+e.getKeyChar());
System.out.println("表示文字:"+example.getText());
exlabel.setText(example.getText());
}

出力はこうなります。

タイプされた文字:a
表示文字:
タイプされた文字:b
表示文字:a
タイプされた文字:c
表示文字:ab
タイプされた文字:d
表示文字:abc

これってどうしてなのでしょうか?

907 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:53:41 ]
>>906
keyTyped()が呼ばれたときには、まだexampleへのキー入力処理が実行さ
れていないから。




908 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 15:57:20 ]
うむ

909 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:07:45 ]
>>907
なるほど、タイプ→フィールドに追加だからですね。
意識したことがなかったので気づきませんでした。
exlabel.setText(example.getText()+e.getKeyChar());
これでいけました、ありがとうございます。


910 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:57:49 ]
>>909
「文字」と「文字列」を区別したほうがいいと思うけど、それはともかく
DocumentListener
というものはご存知かな

911 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:07:37 ]
Javaのjava.util.regex.Patternの動作について質問です。
正規表現に文字クラス"[a-z0-9&&[3-8]c-h]"を与えたところ、
この文字クラスにマッチする文字は 'c'、'd'、'e'、'f'、'g'、'h'の6字になるんです。
これってどういう仕様なのでしょうか?
以下は、マッチする文字を表示するサンプルです。参考に他の文字クラスも表示していますが
"[a-z0-9&&[3-8]c-h]"を渡した場合の挙動だけが、なぜそうなるのか良くわからないのです。
-----
import java.util.regex.Pattern;
public class RegexTest {
public static void main(String[] args) {
printMatchingChars("[a-z0-9&&[3-8]c-h]");
printMatchingChars("[a-z0-9&&[3-8][c-h]]");
printMatchingChars("[a-z0-9&&[3-8]&&[c-h]]");
}
private static void printMatchingChars(String regex) {
Pattern p = Pattern.compile(regex);
StringBuilder buf = new StringBuilder();
for (int cp = 0; cp < Character.MAX_CODE_POINT; cp++) {
if (p.matcher(new String(Character.toChars(cp))).matches()) {
buf.append((char) cp);
}
}
System.out.println(regex + ":" + buf + ':');
}
}
-----
出力結果
[a-z0-9&&[3-8]c-h]:cdefgh:
[a-z0-9&&[3-8][c-h]]:345678cdefgh:
[a-z0-9&&[3-8]&&[c-h]]::
P.S.代理レスでの書き込みなので、返信が遅れるかもしれません。


912 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 18:54:29 ]
java.sun.com/javase/ja/6/docs/ja/api/java/util/regex/Pattern.html
>文字クラス
>[abc] a、b、または c (単純クラス)
>[^abc] a、b、c 以外の文字 (否定)
>[a-zA-Z] a 〜 z または A 〜 Z (範囲)
>[a-d[m-p]] a 〜 d、または m 〜 p:[a-dm-p] (結合)
>[a-z&&[def]] d、e、f (交差)
>[a-z&&[^bc]] b と c を除く a 〜 z:[ad-z] (減算)
>[a-z&&[^m-p]] m 〜 p を除く a 〜 z:[a-lq-z] (減算)

> 文字クラス演算子は、次の順で優先順位が高くなります。
> 1 リテラルエスケープ \x
> 2 グループ化 [...]
> 3 Range a-z
> 4 論理和 [a-e][i-u]
> 5 論理積 [a-z&&[aeiou]]

これを見る限り、
[α-ω[...]]
はともかく、
[[...]α-ω]
の形がどうなるのかは書かれていない(=例外でもおかしくない?)ように見えるけど、どう?

>正規表現構文の動作の詳細については、『Mastering Regular Expressions, 2nd Edition』
> (Jeffrey E. F. Friedl 著、O'Reilly and Associates、2002 年) を参照してください。

だそーですが

913 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:38:14 ]
>>911-912 BUG-BUG-SunMicro に報告、、ってどうやるの?

914 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:38:32 ]
>>911
とりあえず現象だけ見ると、
[a-h0-8&&[3-9]c-z]
[a-h0-8&&[あ-ん]c-z]
[a-h0-8&&[3-9][あ-ん]c-z]
[a-h0-8&&c-z]
は、同じく
[c-h]
と等価になっちゃうっぽいね

915 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:57:52 ]
>>912-914さん、返信ありがとうございます。
>>914さん、
&&の前の文字セットと、&&の後ろの定義済みあるいは[]で閉じられていない文字セットを論理積してるみたいですね。
&&の前後の文字セットの結果は無視されているような。

そして否定が付くと、(ますます良くわからないのですが)

[a-zあ-ん&&[3-8]c-h]:cdefgh:
[^a-zあ-ん&&[3-8]c-h]:: (何もマッチしない)

となります。
こんな面倒な構文使わなければいいと思われると思いますが、
正規表現からそれにマッチするランダムな文字列を生成するクラスを作っていまして
生成した文字がPatternで必ずマッチするようにしたいのです。

916 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:58:02 ]
[a-h0-8&&[c-z]]
この基本形を入れとくべきか

917 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 21:08:45 ]
>>915
「ちゃんと例外をスローしてもらわないとなあ」というのが私の感想ですがw



918 名前:913 mailto:sage [2008/06/09(月) 21:51:26 ]
[^a-z&&[3-8]c-h]
[[^a-z]&&[3-8]c-h] 否定は問題ない

919 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:57:34 ]
>>912
そのオライリーの本、
「正規表現 第二版」のことだよね。

ちゃんと日本語訳された本があるからそっち紹介してもいいんじゃないかと



920 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 09:48:31 ]
[...][...]&&[...]&&[...][...]&&[...][...]&&[...]&&[...]
[...[...]]&&[...]&&[...[...]]&&[...[...]]&&[...]&&[...]
[...[...]]&&[...&&[...[...]&&[...[...]&&[...&&[...]]]]]

[...][...]&&[...]&&[...][...]&&[...][...]&&[...]&&[...]
[[...]...]&&[...]&&[[...]...]&&[[...]...]&&[...]&&[...]
[[[[[[...]...]&&...]&&[...]...]&&[...]...]&&...]&&[...]

921 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:20:25 ]
>>912
正規表現 第3版 出てる。

922 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:59:46 ]
そういえばそうだったあね

923 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:44:49 ]
スレ違いかもしれませんが、JAVAのことで質問です。

JAVAを使える無料レンサバは何故少ない(というか無い)
んでしょうか?

924 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:50:27 ]
Perlではなくて?

925 名前:923 mailto:sage [2008/06/11(水) 17:57:15 ]
>>924
はい、JAVA(できればstruts)で作ったWEBアプリをレンサバ
で動かそうにも無料のがなく、有料だと高くて…。

確かにPerlもみかけませんよね。phpはどこでも使えるのに・・・ orz

926 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:15:47 ]
>>925
無料では見たことがないな。


927 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:22:02 ]
自分でサーバーたてちまえ



928 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:22:44 ]
ただで鯖使おうって根性が間違ってる。

929 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:27:48 ]
そんなに大変じゃないだろ

930 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:58:12 ]
>>926-929
そうですね、やっぱり自鯖をたててみます。
レス有難う御座いました。

931 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:03:33 ]
サーブレットとかってwww鯖の申請通ればあとはアパッチとかの設定だけだしな。

932 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:15:03 ]
>有料だと高くて…
Tomcatでいいんだろ?月500円でも高いのか?
www.easytone.jp/
無料なのがないのはJavaだと自由度が高すぎてセキュリティに問題が起きる可能性が高いからだと思うけどな?
それにJavaはphpなどに比べれば難しいから需要も少ないってこともあるだろうなあ?


933 名前:デフォルトの名無しさん [2008/06/11(水) 19:22:10 ]
質問です

public void paint(Graphics g) {
g.drawImage();
}

上記の場合、アプレットだと public void paint(Graphics g)のgの部分はブラウザから
受け取るとあるのですが、アプリケーションの場合、オブジェクトのgはどこで作られるのでしょうか?
自分でオブジェクトgを作らなくても動くのですがどうしてでしょう?

 


934 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:28:23 ]
>>932
金払ってるのに何のセキュリティが問題になるんだよwアホかおまえは

935 名前:デフォルトの名無しさん [2008/06/11(水) 19:31:34 ]
別に鯖缶に文句は無いけど、客を選んでるようじゃそのうち縮小していって、淘汰されるだろうよ

936 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:36:57 ]
>>934
無料の場合の話だろ(wアホはおまえじゃ(w

937 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:37:45 ]
>>933
ブラウザっていうか,sunの中の人がGraphicsオブジェクトを作って
それを引数に指定してpaintを呼び出すようなコードを書いてて,裏ではそれが動いてる
アプリケーションも一緒



938 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:40:05 ]
>>932
あ、こんな安いレンサバあるんですね。
なるほど、ありがとうございます。

939 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:43:50 ]
>>938
使ったことはないんでいいかどうかはわからないよ。
無料10日間お試しコースってのがあるから試してみたら?


940 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:46:26 ]
JTreeのTreeWillExpansionListenerを使い展開時に
DefaultMutableTreeNode型のインスタンスからそのノードに至るまでの
ルートからのパスを取得したいのですが、どうやったら良いのでしょうか?

941 名前:デフォルトの名無しさん [2008/06/11(水) 19:52:31 ]
>>937
paintを呼び出す時に自動的に、Grapnicsオブジェクトが作られる
という事でしょうか?

942 名前:デフォルトの名無しさん [2008/06/11(水) 19:57:15 ]
>>936
セキュリティが問題になるとかいいのがれじゃん。無料とか言って話しをそらすなw

943 名前:デフォルトの名無しさん [2008/06/11(水) 20:02:08 ]
JSpinner で

普段は浮動少数(double)

〜〜dB(デシベル) と手打ちした時は
自動で対応する値に変換
(6dB -> 2、20dB -> 10)

というのをやりたいのですが、どんな感じで実装するのがスマートなんでしょうか?


944 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:07:46 ]
>>941
違う
中の人が作って呼んでる

945 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:33:51 ]
>>933
>自分でオブジェクトgを作らなくても動くのですがどうしてでしょう?

初心者的にはまあごもっともな疑問だと思う。ちょっとかみ砕いてみる。

「paintメソッドを作る」ということは、
「もし「ここに自分の姿を描いてね」と言われたらこう描く(こう対応する)、と決める」ということ。
何をどう描くかは決められるけど、何に描くべきかは外から指定される。

「paintメソッドを呼ぶ」ということは、
「「ここ(=Graphicsオブジェクト)に自分の姿を描いてね」と頼む」ということ。
どういう絵ができるかは相手次第だけど、「描く場所」はちゃんと用意してから注文する。

ふつうは、アプレットとは別に画面作りの本部(中の人)みたいなのが動いていて、
必要なときに(paint/updateを呼ぶ前に)Graphicsオブジェクトを用意する、
と考えていればいいと思う。

それ以外にも、画像に描画するGraphicsオブジェクトを生成してpaintに渡せば、
その時の表示内容を画像にできたり、というような使い方もできる。

946 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:36:56 ]
>>940
JTreeの展開のどの部分のパスなのかしら?

947 名前:945 mailto:sage [2008/06/11(水) 20:40:48 ]
ごめん、読んでなかったw

>アプリケーションの場合は

かw



948 名前:デフォルトの名無しさん [2008/06/11(水) 20:57:47 ]
>>945
文句は無いんだけど、もし君が学校か何かの講師ならイマイチ。
安物のJava教本を読んだほうがいいかな

949 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 21:05:08 ]
ageるな厨房

950 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 21:10:47 ]
>>946
すいません、C:\Program Files\Adobeとかいう階層があったら、
Adobeを開いた時にC:\Program Files\Adobeという絶対パスを取得してFileに渡したいという感じです。
一応ググったりしながら下のようにやってみたのですが、関数で既にそういうものが用意されていたりするでしょうか?
TreeNode paths[]=konode.get(i).getPath();
String path="";
for(int j=0;j<paths.length;j++)
path+=paths[j]+"\\";

951 名前:945 mailto:sage [2008/06/11(水) 21:11:07 ]
>>948
個人的にはイマイチ講師程度ならうれしいよw

952 名前:デフォルトの名無しさん [2008/06/11(水) 21:50:03 ]
こういうアホ講師は得意げになっていって、後々面倒になるんだよね・・

953 名前:デフォルトの名無しさん [2008/06/11(水) 22:13:24 ]
>>949
怒るとすぐこんなふうになるし、こいつは短気なんだろw

954 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 22:28:56 ]
>>950
JTreeが実際に何を象徴しているか、JVMは知らないんじゃないかしら?

955 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 22:34:36 ]
>>939
丁寧にdクス。

956 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 23:03:20 ]
>>940
TreeWillExpandListenerに渡されるTreeExpansionEventから引っ張れる、これ
java.sun.com/javase/ja/6/docs/ja/api/javax/swing/event/TreeExpansionEvent.html#getPath()
とは別のもの?

957 名前:933 mailto:sage [2008/06/12(木) 06:07:03 ]
ありがとう



958 名前:デフォルトの名無しさん [2008/06/12(木) 14:33:54 ]
すいません、最近javaをはじめた者です。
buf[i+1]<<8|buf[i]&0xFF
これの"|"は何を意味しているのですか?

959 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:36:55 ]
論理和

960 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:55:12 ]
>>958
ビット単位のOR

961 名前:デフォルトの名無しさん [2008/06/12(木) 15:20:06 ]
たぶんバグw

962 名前:デフォルトの名無しさん [2008/06/12(木) 15:39:46 ]
jsp:invokeの意味が全然わからないんだが、
これって要するに他言語で言うeval?

jsp:doBodyとのちがいもわからん

963 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 15:58:14 ]
>>958
他のは分かるけど、ということ?なんか不自然な気が

964 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 16:29:31 ]
>>962
JSPはほとんど知らないけど、
java.sun.com/products/jsp/syntax/2.0/syntaxref2017.html <jsp:doBody>
java.sun.com/products/jsp/syntax/2.0/syntaxref2021.html <jsp:invoke>
このへんざっと見る限り、
・doBodyは、そのタグで囲まれた部分全体を(フツーのJSP文法で?)解釈して処理する
・invokeは、タグの中身に複数のfragment(attributeの一種らしい)があるような複雑な構成で、
 個々のfragmentを指名して、その内容をdoBody的に処理
みたいな感じ?とすれば「全部eval」と「一部eval」ということになるかもしれんね。

965 名前:デフォルトの名無しさん [2008/06/12(木) 17:28:58 ]
会社の経費精算システムがjavaアプリで作られており、Windowsマシンで動いております。
作りが悪くて各項目ごとに、出発・到着・金額はいいとして、国や日本円とかをいちいち
入れなくてはならず、毎回入れる項目はだいたい同じなのでスクリプトで自動入力させたいのですが
javaアプリのフォームにデータを入れてボタンをクリックさせるツールとか方法は
あるのでしょうか?
vbscriptとか自動入力クリックツールとかはjavaアプリは全然動かすことができません。

966 名前:デフォルトの名無しさん [2008/06/12(木) 17:31:53 ]
何の作りが悪いって?

967 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:12:26 ]
入力した整数を自動的に因数分解するプログラムを作るにはどうすればいいのでしょうか



968 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:16:28 ]
>>967 自分が手計算で因数分解するときの手順をそのままプログラムで書けば良い

969 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:19:53 ]
>>967
1は任意の整数xの約数であるから、x=1・xと因数分解できる。■

Java 素因数分解
でぐぐるとか?

970 名前:デフォルトの名無しさん [2008/06/12(木) 18:29:02 ]
■は一体何の意味?

971 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:31:17 ]
>>968
>>969
すみません。もう少し勉強しなおしてきます。

972 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:43:19 ]
>>965
作った業者に改良を依頼したらいいと思うよ

973 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:48:38 ]
>>970
D.Q.N.(「父さんこのイモ何のイモ?」の略)

974 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:49:35 ]
int x = 9801;
java.util.Map<Integer, Integer> map = new java.util.TreeMap<Integer, Integer>();
int f = 2;
while (x >= f) if (x % f == 0) {x /= f; if (map.get(f) == null) map.put(f, 1); else map.put(f, map.get(f) + 1);} else f++;
System.out.println(map);

975 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 19:04:54 ]
整数xの約数
とあるけど、-23*1とか0*1でもいいのかな
君のプログラムはどういう仕様になってるの?

976 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:54:56 ]
>>967の問題が素因数分解であるなら、入力は正整数だから>>975は心配無用
アルゴリズムは基本的に>>974の方法で良いが、細かいことをいうと

y = ⌊√x⌋ とすると、
ループ継続条件は x > 1 かつ f ≤ y
(ループ終了時 x > 1 なら、その x が最後の素因数)

977 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:20:23 ]
>>962 >>964
jspは実行前にコンパイルされるはずだからevalというには語弊があるな。funcallとかapply?



978 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:29:13 ]
質問です。
JAVAで、指定したフォルダをエクスプローラで開くことは出来るでしょうか?
Windows以外で動作しなくても構いません

ひょっとしたらRuntimeやProcessで出来るかとも思ったのですが、
あれはexeやjarファイル等の起動しか出来ないようで……

979 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:31:08 ]
Windowsに限るならexplorer.exe使えばいいよ。
オプションはスレ違いなので調べてちょ。

980 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:37:28 ]
>>979
即答ありがとうございます
何とかなりそうです

981 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:37:42 ]
>>978
JDK6以降なら java.awt.Desktop#open(java.io.File) でも開けるっぽい。

982 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:53:22 ]
>>978
explorer C:\Program Files
みたいに引数つければRuntimeでいける。

983 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:18:47 ]
>>981
こんなのがあったのか……
JDKのバージョンにこだわりはないので、エクスプローラの引数指定よりこっちの方がスマートですね
色々試してみます。
回答ありがとうございました

984 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 05:28:52 ]
>>976
少し苦しいけど許してあげるよw
以後軽率な発言は控えるように






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<277KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef