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/
309 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 16:05:00 ] おまえらそんな餌に食いつくなよ
310 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 18:24:38 ] アプリもアプレットも分からん人間には食いつきようもない餌だもんな。
311 名前:デフォルトの名無しさん [2008/05/20(火) 19:29:22 ] # # An unexpected error has been detected by Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77fcd989, pid=1392, tid=2524 # # Java VM: Java HotSpot(TM) Client VM (1.6.0-b105 mixed mode) # Problematic frame: # C [ntdll.dll+0x4d989] # # If you would like to submit a bug report, please visit: # java.sun.com/webapps/bugreport/crash.jsp # 何これ
312 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 19:31:30 ] JVMのクラッシュ
313 名前:デフォルトの名無しさん [2008/05/20(火) 19:38:45 ] 設計根本的に変えたほうがいいのかしら
314 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:01:41 ] マンガlovemakeの画像ってどうしたらコピーできますか?
315 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:49:29 ] Javaのデスクトップアプリでデータをローカルで持ちたいとき、 Windowsアプリで言うリソースみたいなかたちで埋め込むにはどうしたらいいの?
316 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:59:03 ] >>315 リソースファイルで埋め込めばいいよ
317 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:26:46 ] >>293 >質問お願いします。 いや、質問してるのは君だから。 「回答お願いします」か「質問させて下さい」だろ。
318 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:58:43 ] main(String[] args){ try{ HashMap<String , String> hashMap = new HashMap<String , String>(); putData(hashMap); System.out.println("HashMap(bb) : " + hashMap.get("bb")); System.out.println("HashMap : " + hashMap); } catch(Exception e){ e.printStackTrace(); } static void putData(Map<String , String>map){ map.put("da" , "Five"); map.put("db" , "Four"); map.put("bb" , "Three"); map.put("bc" , "Two"); map.put("aa" , "One"); } } これの実行結果が HashMap(bb) :Three HashMap :{db=Four, da=Five, aa=One, bb=Three,bc=Two} こんな感じになるんですが、これと同じように出力されるプログラムをHashSetで書くことはできますか? もちろん、HashMapなので出力した際の順序まで一緒には出来ないのはいいんdねすが
319 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:12:25 ] >318 DataEntry(String, String) というコンストラクタを持つクラスでも作って頑張ってください。
320 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 02:07:02 ] HashSet クラスには get だの put だのいうメソッドはないから無理。
321 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 07:09:50 ] HP-UXで稼動するWebシステムの保守を担当することになり Java未経験ながらいきなり画面の追加をやらされることになりました。 (Webサーバ:SunOneでアプリサーバ:WebOTX、DB:Oracleです) Javaは過去に勉強したこともありJavaDocなど使えば、何とかソースは読めるのですが、 ソースを格納するディレクトリの構成がイマイチよくわかりません。 なぜこのファイルはここのディレクトリに入れるのか? とか、 このディレクトリに入れなければならないってのはどこで定義づけられているの? というようなことです。 ソースの読み方のような入門書じゃなくて、 Webサーバのディレクトリ構成などJavaでのサーバ構築についての 書籍やアドバイスがあれば教えていただきたく。 「UNIXでJava使ってサーバ立てるならこれは基本書だろ!」 というようなものがあれば、ぜひ読んでみたいのですが。
322 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 07:34:32 ] そんなんプロジェクト毎のルールだろ? 仕様書嫁よ。
323 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 09:51:11 ] WEB-INFとかマニフェストファイルのことじゃないの? いままでの開発をどうやってたのか知らないけど、 最近のIDEとかだと配備までやってくれるよ
324 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 09:56:55 ] アプリケーションサーバのマニュアルを読め、で済む話。
325 名前:デフォルトの名無しさん [2008/05/21(水) 14:15:58 ] 特定の文字列が、作成可能な『ファイル』を示しているかどうかを判定するにはどうすればいいでしょう? ……いえ、以下のようなコードを書いてみたんですが、「a:\backup\」がtrueになるんですよ。 public boolean check(String fileName){ File tempFile = new File(fileName); try{ tempFile.createNewFile(); if(tempFile.exists() == false || tempFile.isFile() == false){ return false; } tempFile.delete(); return true; }catch (IOException e){ return false; } } EclipseのデバッガでcreateNewFileまでで止めてみると、tempFileの中身は「a:\backup」として表示されています。 どうやら最後のパス区切りは無視されてるようなふいんき(……素でtypoした(汗))です。 これは「文字列の最後の一文字がパス区切りではないこと」で判定するしかないのかな?
326 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 15:22:28 ] >特定の文字列が、作成可能な『ファイル』を示しているかどうか イミフ。ファイル名の事? OS依存。 それとも任意のファイル名でファイルが作成できるかって事? OS依存。
327 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 16:49:11 ] >>325 javadoc で createNewFile を確認しましたか?(特に戻り値を) File は単純ではないクラスですし、扱い方自体を確認した方が良いと思います。
328 名前: mailto:sage [2008/05/21(水) 18:43:41 ] パソコン買おうかと思ってるんだけど、QuadのCPU買ってマルチスレッドのプログラミングをJavaで組んだら WindowsXPでもマルチコアに対応したプログラムになってくれるんですか?
329 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 18:50:29 ] javaのマルチCPU(コア)対応って具体的にはどこら辺まで対応してるんだろうね。
330 名前:325 mailto:sage [2008/05/21(水) 20:25:07 ] >>326 失礼しました。つまり「a:\backup\」と指定されたら「backup\なんて名前のファイルは作れない。\はファイル名には使えないし、ディレクトリ名じゃなくファイル名を指定しろ」というチェックをしたかったのですよ。 >>325 のコードにすれば、ファイル名に使える文字だけが含まれているかと「実際に書き込めるか」が一緒にチェックできると思ったのですが。 最後の「\」を無視して「a:\backup」と「a:\backup\」を等価に扱ってしまうのは、Javaの(WindowsのOS依存の部分の)仕様なのでしょうか? >>327 はい、trueなら作成成功、falseが帰ってきたら既に存在する、ということですよね? 既に存在する場合の処理はもう少し詰める必要があると思いますが(canWriteを使えばいいかな?)、まずはファイル名の問題をお聞きしようと思い、あのようなコードにした次第です。 ステップ実行をさせると(>>325 で書いたとおり)createNewFileの後にa:\backupが作られてしまっているのです。 これは(デバッガの表示どおり) new Fileした時点で最後の「\」を無視して「a:\backup」としてFileのインスタンスが作られてしまっている、ということではないのでしょうか? ちなみに、他の不正な文字(backup*など)を指定すると、意図したとおりにIOExceptionで落ちるようです。
331 名前:325 mailto:sage [2008/05/21(水) 20:31:51 ] ……失礼。 書き込んだ直後に気が付いたのですが、Fileの仕組みだと、「a:\backup」と「a:\backup\」を等価に扱ってもかまわないのですね。 Fileが扱うのはあくまでパスであり、(まだ存在しない場合)そのパスがディレクトリを示すのかファイルを示すのかは、mkDirするかcreateFileするかによって(後で)分かれる。 よって両者は区別する必要は無いので、「a:\backup」と「a:\backup\」は等価に扱ってよい、という理解でかまわないでしょうか?
332 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:20:02 ] >>328 ちゃんとスレッドを使えばそうなる
333 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:24:12 ] Point型に文字を四つ格納したいんだけどどうすればいいの?
334 名前:デフォルトの名無しさん [2008/05/21(水) 22:49:35 ] 質問です。 JScrollPane を使って、エクセルのように動的にサイズを変えるようにしたいんですけど どうしたらいいでしょう? JScrollPane のスクロールバーが端の状態で左右のボタンを押したら 自動でサイズが拡張する感じです。 JScrollPane つかうと無理なんでしょうか?
335 名前:334 [2008/05/21(水) 23:10:21 ] JScrollPane から JScrollBar とってこれるんですね。 でも、JScrollBar のノブが端にあるときにボタンを押しても AdjustmentEvent は投げないみたいなんで、だめそうですね・・・
336 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:26:21 ] >>328 なる。
337 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 01:16:05 ] すみませんアノテーションについての質問です クラスとかフィールドとかメソッドにつけたアノテーションは リフレクション使って取り出すのはわかったのですが ローカル変数につけたアノテーションの取得方法がわかりません ご存知の方お教えください、お願いします
338 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 01:34:19 ] 無理っす
339 名前:デフォルトの名無しさん [2008/05/22(木) 01:51:31 ] javaからMySQLに接続し、任意のテーブルの列数を取得したいのですが PHPみたいにmysql_num_rows()みたいなメソッドはありますか? javadocのjava.sql.*の項を参照したのですが見つからなかったので。
340 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 01:54:40 ] select countすれば?
341 名前:339 [2008/05/22(木) 02:01:19 ] >>340 javaでってことに考え過ぎてそっちの方をすっかり考えてませんでした 試してみます。ありがとうございました。
342 名前: mailto:sage [2008/05/22(木) 04:41:06 ] >>332 >>336 どうもありがとう。
343 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 08:41:01 ] ttp://mainichi.jp/enta/geinou/graph/200805/21/?inb=yt ネット証券会社が主催するFX(外国為替証拠金)取引コンテストの発表会が21日、都内で行われた。 コンテストに特別参加するグラビアアイドルの滝沢乃南さん、山本彩乃さん、折原みかさん、山口愛実さん、佐々木梨絵さん の5人が顔をそろえ、シストレに挑戦する意気込みなどを語った。 同コンテストは、自分で作成したトレードソフトの機能を評価する「シストレソフト部門」と、 FX初心者でも安心の仮想マネーを使った取引を体験できる「トレード部門」で賞金総額2000万円を争う。 シストレ優秀ソフトは、最高2000万円までの範囲内で買い取りの可能性もあるという。登録受付は22日から。 仮想取引は6月2日〜09年4月30日までとなっている。 ▼トレード部門 初期資産500万円で、デモ取引のトレード収益を競っていただきます。 https://www.click-sec.com/corp/guide/demo/ ttp://www.yomiuri.co.jp/komachi/news/mixnews/20080521ok02.htm ▼賞金総額 ■社長特別賞(シストレソフト買取価格) 10,000,000円 ●シストレソフト部門賞 1位300万円 2位100万円 3位50万円 ●トレード部門賞 1位300万円 2位100万円 3位50万円 ●前期MVP賞 50万円 ●後期MVP賞 50万円
344 名前:デフォルトの名無しさん [2008/05/22(木) 14:52:37 ] おい、おまえら。俺様が、Java入門者向けに環境変数自動設定ツール作ってやったんだけど、 Vectorにうpしようか迷ってる。まんどくさいんだけど、うぷしたらダウソする人いるかな?
345 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 15:01:25 ] 入門者に自動で設定させんな
346 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:34:46 ] ていうか作らなくても既にそういうバッチがあった気がする。
347 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:53:15 ] っていうかNetBeansとか入れれば環境変数なんて 設定しなくていいし
348 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:48:59 ] JSPでDecimalFormatを使うために下のような指定を行い、 <%@ page import="java.lang.Object.*" %> 下記を書いたのですが、下のようなエラーになってしまいます。 DecimalFormat form = new DecimalFormat(); form.applyPattern("#,###"); int i1 = 20000; out.println(form.format(i1)); DecimalFormat cannot be resolved to a type どなたか解決策を教えていただけないでしょうか。 もしかしてインポートするクラスが間違ってたりするのでしょうか?
349 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:51:33 ] お騒がせしました、、import java.text.*;で行けましたorz
350 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:34:10 ] java のプロファイラで、「今はこれを使うのがベスト」ってなんだろう。 お勧めがあれば教えてください。 自分がググって見つけたこと ・Eclipse プロファイラプラグインは、開発が止まっていて Eclipse 3.3 に対応していないと聞いた。 ・Eclipse TPTP のプロファイラは、重すぎてうんこ というのを ぐぐると見かける。 ・NetBeans 6.1 のプロファイラがいいらしい。 IDE 統合型でない場合は、HPjmeter があるが(これはつかったことがある)、 これくらいでしょうか。
351 名前:デフォルトの名無しさん [2008/05/23(金) 00:16:20 ] インターフェースを実装したクラスのメソッドに継承もとのコメントを転写したいのですが 何か簡単な方法はないでしょうか?
352 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 00:52:36 ] Ctrl+C V
353 名前:デフォルトの名無しさん [2008/05/23(金) 00:54:32 ] >>352 何個もあるのでツールとか使って1回でさくっとできる方法でお願いします。
354 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:52:05 ] コピペは最も代表的なアンチパターン
355 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 03:24:50 ] >351 何も書かないこと。Eclipse3.3.2 は確認。 どうしてもコメントを書きたいなら、javadocに察知されないように気をつけて。 そういうことではない?
356 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:02:47 ] 前スレで20桁以上の計算をしたいと相談したとき、BigDecimalやBigIntegerを使うようにアドバイスをいただいた者です。 今度はiアプリで20桁以上の整数の計算をしたいのですがどういう風にすればいいでしょうか? ググってみるとDoJaではBigIntegerが使えないという記述を見つけたので相談しました。 よろしくお願いします。
357 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 11:52:02 ] 自分で実装するしか
358 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:02:17 ] >>356 BigIntegerのソースそのまま使うとかw
359 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:05:33 ] そしてGPLに感染、と。
360 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:58:29 ] OpenJDKはクラスパス例外付きだろPhoneMEがクラスパス例外なしだ。
361 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:22:37 ] java.mathパッケージのままだとライセンス上問題でるだろうし パッケージ改変したり部分的にパクった場合はクラスパス例外適用されんだろ。
362 名前:デフォルトの名無しさん [2008/05/23(金) 16:24:29 ] とっても基本的なことなんだが、 なんで int i=2; String k; String l; k="a8"; l="a" + i; とすると、なんで、k!=lになるんでしょう。
363 名前:デフォルトの名無しさん [2008/05/23(金) 16:25:32 ] 間違えた。 int i=2; String k; String l; k="a2"; l="a" + i; こちらです。 よろしくお願いいたします。
364 名前:デフォルトの名無しさん [2008/05/23(金) 16:25:59 ] 間違えた。 int i=2; String k; String l; k="a2"; l="a" + i; こちらです。 よろしくお願いいたします。
365 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:28:14 ] この違いを勉強しろ k.equals( l ) → true k == l →false
366 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:29:31 ] >>363 >>1
367 名前:デフォルトの名無しさん [2008/05/23(金) 16:29:39 ] ちなみに、こちらだと、str1==str2になり、ほかは等しくなりません。 2=3なら気持ちが分からんでもないけど・・・ String str1 = "aaa1"; String str2 = "aaa" + 1; String str3 = "aaa" + String.valueOf(1); if (str1==str2){System.out.println("str1=str2");} if (str1==str3){System.out.println("str1=str3");} if (str3==str2){System.out.println("str3=str2");}
368 名前:デフォルトの名無しさん [2008/05/23(金) 16:34:18 ] 初心者の質問なんですけど 2次配列に値を入れたいのですが、 例えば・・・ int a[][] = new int[10][10]; a[][] ={ {1,1,0,1,1,1,1,2,1,1}, {1,3,1,1,1,4,1,1,1,1}, {7,1,1,5,1,1,1,6,1,1}, ・ ・ ・ { } }; こんな感じで 要素の殆ど同じ数が占めている データを2次配列に入れたいんです。 どうやったら綺麗に力技じゃなく入力できますか?
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)すべきでしょうか?