1 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:10:53 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド100【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1175317038 /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
730 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:13:53 ] >>728 補足。パッケージ名はclassファイル自体に埋め込まれるので、 HelloWorld2.classをC:\Source\javaに移動しても、 HelloWorld2のパッケージを移動したことにはならない。
731 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 13:53:20 ] >>727 おまえはおれか
732 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:25:56 ] まず訂正を。自分の書き込みを見てびっくりしたのですが、 >ディレクトリ直下のHelloWorld2.classを直接指定するのと >CLASSPATHの下の\test\HelloWorld2.javaを指定するのとで の2行目は\test\HelloWorld2.classのミスタイプです。 >>729 回答ありがとうございます。 .classファイルを探すのではなく、FQCNでクラスを探しに行くから test.HelloWorld2は存在するけれどHelloWorld2なんていう物は 存在しないという事ですね。 >パッケージ名はclassファイル自体に埋め込まれるので、 >HelloWorld2.classをC:\Source\javaに移動しても、 >HelloWorld2のパッケージを移動したことにはならない。 これについてですが、試しにソースはいじらずに.javaファイルを C:\Source\Javaへ移動し、Message→HelloWorld2の順にコンパイルしたところ、 Messageはコンパイルできたものの、HelloWorld2はパッケージotamesiが 見つけられずにコンパイルできませんでした。 また、普通にコンパイルしたHelloWorld2.classをC:\Source\Javaに移動して java test.HelloWorld2 してみたら Exception in thread "main" java.lang.NoClassDefFoundError: test/HelloWorld2 が出てしまいました。 「パッケージを移動したことにはならない」というのは 「単純にフォルダ移動してもパッケージ情報(?)は変わらないから パッケージと同名のフォルダに入れておかなければならない」 という意味でしょうか?
733 名前:728 mailto:sage [2007/05/21(月) 14:28:00 ] 名前入れ忘れ。。。 >>732 は>>728 です。
734 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 14:53:29 ] >>732 そういう意味でおk
735 名前:デフォルトの名無しさん [2007/05/21(月) 15:33:15 ] >>731 結局API読みまくった結果、ResultSetを直でいじくりまわすのはやめて、 内部クラス作ってそれのpublic変数に結果セットの最終行までResultSet.getStringしてって ArrayListのオブジェクトにつっこんでArrayListのオブジェクト.size()しました。 配列のサイズきめたくて結果セットの行数しりたかったんですけど、配列作るよりArrayListつかったほうが何かすっきりしました
736 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:14:08 ] >>732 合ってるがもっと単純明解な前提条件があるぞ。 フォルダの移動はOSのオペレーション、パッケージの指定はjavaの仕様。 根本的、本質的にもこの二つはまったくの別物。 くっつけて考えてしまうならそこが"間違えて分からなくなってる"部分だ。 まずは問題の切り離しからだな。
737 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 17:52:51 ] ネットワーク越し(現在使用しているのはRMI)にIterator的なオブジェクトを 渡して受け取り側が辿れるようにするには、各メソッド内で通信するよう自前で作るしかないのでしょうか。
738 名前:デフォルトの名無しさん [2007/05/21(月) 22:04:02 ] Byte a[]={0,0,0,1}; をa[0]〜a[3]のバイト列をもつint型に変換する方法教えてください。
739 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:11:55 ] a[0]<<24|a[1]<<16|a[2]<<8|a[3]
740 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:24:35 ] すまんすまん a[0]<<24|a[1]<<16&0xff0000|a[2]<<8&0xff00|a[3]&0xff こうだ
741 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:36:31 ] >>738 new DataInputStream(new java.io.ByteArrayInputStream(a)).readInt(); java.nio.ByteBuffer.wrap(a).getInt();
742 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:58:25 ] >>727 適当なトランザクションレベルで select count(適当なカラム) from テーブル という SQL を発行すればいいよ。リソースを消費を気にしないなら count(*) でも可。
743 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:10:41 ] >>735 対策まで一緒だな おまえはおれか
744 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 23:13:21 ] >>737 質問の意図が良く分からんけど org.JSON とか使うと解決するかもね
745 名前:デフォルトの名無しさん [2007/05/22(火) 00:55:41 ] サーブレットでsubmitやセッションしたりしないでその画面のままテキストフォームから入力された値を取る方法ってありますか?
746 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:14:01 ] セッション関係無くね?
747 名前:720 [2007/05/22(火) 01:24:15 ] ご回答してくれた方ありがとうございました。 >>721 自分で作ったGUIからWindowsのエクスプローラを呼ぶには? という質問でした。 結局JNI経由でWINAPIのShellExecuteを呼び出す形式で解決しました。 Webしかやったことない自分としては GUIは妙に難しく感じます^^
748 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:25:57 ] JavaScriptを使えばいい フォームの入力チェックにも使われている あー仕事がほしいー
749 名前:720 [2007/05/22(火) 01:29:44 ] >>745 Submitしないという時点でクライアント側の処理になります。 サーブレットでの処理は無理です。 Javascriptが一番手っ取り早いのでは?
750 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 01:46:17 ] >>745 言葉が意味わからんがsubmitなしではservletに渡すことは普通は無理 XMLHttpRequestを使えばできる(ブラウザー依存) いわゆるAJAXだな
751 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 02:49:06 ] >>745 Ajax GWT
752 名前:デフォルトの名無しさん [2007/05/22(火) 05:56:30 ] >>727 実は最初はそうしてたんですが、レコード数が膨大でcount(*)のリソースがどうしても気になって気になって、今の方法にしました。 >>743 もうステップ数を気にする時代ではないような気がしたので、リソースとのバランスを見ても、この方法がやはりベストなのかなと。 贅沢を言わせてもらうと>>727 を読んだ時点で教えてもらいたかったです・・・
753 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 06:11:20 ] >>752 ごめん ほぼ同じペースで同じことやってるみたいなのでw 当初は ArrayList へ移し替えやってたんだけど いろいろ事情があって 結局いまは ArrayList はやめて JSONArray に変更したんだけど 標準のコンテナ(Hash Map など)よりも意外と便利で病みつきになりそう
754 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 10:12:13 ] >>744 ありがとうございます。 質問の意図が分かりづらかったようですみません。 ネットワーク越しにリストとなるデータを転送する際、コレクションや配列をそのまま渡すと データが大量だった時にメモリを圧迫する可能性があるため、一気に渡すのではなく 少しずつ渡す必要があります。 そうするとIteratorのようなインタフェースから少しずつ取得できると理想ですから、 現在の私の状況であれば RMI 通信を隠蔽した Iterator 実装があると理想だったのですが、 見つけられなかったため質問しておりました。 JSONライブラリがこの背景と合っていたか不明ですが、少々調べてみます。
755 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 15:48:01 ] >>754 その渡そうとしているデータは、まさかDBからのクエリ結果だったりはしないよね?
756 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:07:53 ] なんでSunの命名規約はパッケージ名を全て小文字にすることになっているんですか? longpackagenameのように長いと読みにくいです。 LongPackageNameの方がいいと思うのですが。 …とうちのリーダー(Java未経験)が仰ります。 どうすればいいでしょうか?
757 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:29:05 ] >>756 long_package_name にするとか……
758 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:38:23 ] 大文字と小文字を区別する環境にも、そうでない環境にも同じように対応するためじゃね? ディレクトリ名がHogeとhoge両方作れてしまうOSとか。
759 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:49:23 ] >>756 どうぞご自由に。 それは厳密に規定された規約というよりガイドラインのはずです。 名前の衝突回避と読みやすさのために用意されています。 外部に公開するライブラリとかには止めた方がいいと思いますが 閉じたアプリケーションで、利用する分には害がないと思います。 が、自分の経験だけに基づいてプロジェクトに他の言語の流儀を持ち込むと 利用しているライブラリ等とずれるので、かえって汚くなってしまう可能性もあります。 In Rome, do as the Romans' do.
760 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:49:58 ] >>755 いえ、Iteratorの開放がリソースを制御していることはありません。 外部ライブラリですが、外部ライブラリがそのまま持ってしまっていると言う 事もないようです。
761 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 19:07:45 ] >>759 いまは仕様じゃなかったか? ファイルシステムの都合で利用できない文字を含む場合はUnicodeエスケープしろって書いてなかった? 昔はクラス名もパッケージ名も単語の頭は大文字を推奨してたけどすぐ変わったよ。
762 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 02:03:44 ] www.itmedia.co.jp/enterprise/articles/0608/25/news010_3.html {"ResultSet": {"type":"web", "totalResultsAvailable":242000000, "totalResultsReturned":3, "firstResultPosition":1, …略…, "Result":[ {"Title":"Apple", "Summary":"Macintosh hardware, software, and Internet tools. Offering Quicktime info, developer resources, and other items related to Apple computers.", "Url":"http:\/\/www.apple.com\/", …略… }, {"Title"、"Summary"、など次の結果…}, …略… } }
763 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 02:14:56 ] Eclipse使っている方いますか?
764 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 03:39:32 ] むしろEclipseでないと無理。
765 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 03:56:02 ] swingで一番上のJFrameでKeyEventを取ろうとしてもうまく取れません。 簡単なtoy programだとうまくいくのですが、panelをいくつか入れ子にしたものだと上手くいかない。 なにか理由が考えられるでしょうか? できればそこら辺を判り易く詳しく解説してあるサイトでも 教えていただければ幸いです。 あと、panelの上手な入れ子の仕方などの解説もあればうれしいです。 (ちゃんと表示されないこともあるので・・・)
766 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 04:15:33 ] >>765 その入れ子にしてるコンポーネント階層とどういう実装してるか言わないと分かる訳ないだろう。 描画に関しては重量と軽量を混ぜてて軽量が正しく描画されないって話じゃなければ描画を破壊してるだけ。
767 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 04:36:38 ] >>765 とりあえず>>403 以降のやりとり見てみそ
768 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 10:02:04 ] JTextPaneの幅や行数を指定するにはどうすればいいですか。 JTextAreaでは一部の文字色変更などができなかった為に乗り換えました。
769 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 10:08:39 ] >>768 JTextPane では文字の大きさが変えられたりするから 列数とか行数ってのは意味無いんじゃないかと。
770 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 12:03:00 ] なるほど、気がつきませんでした。 文字数で指定しても意味がありませんね。 私のプログラムは文字サイズが一意なので、JTextPane#setSize(int width, int height) メソッドを使えばよさそうですが、うまくいきませんでした。 サイズを指定しても反映されません。 GridBagLayoutを使っているのでこれが原因かと思い、他のレイアウト ―FlowLayoutを試してみましたが、同じくダメでした。 JTextPaneの大きさを指定するにはどうすればよいでしょうか。
771 名前:770 mailto:sage [2007/05/23(水) 12:19:07 ] 解決しました。 JComponent.setPreferredSize(Dimension preferredSize)メソッドが期待通りの動作をしました。
772 名前:デフォルトの名無しさん [2007/05/23(水) 12:29:39 ] インスタンスメソッドとクラス(静的)メソッドの使い分けがよくわかりません>< 一言でいうと、どういうケースで使い分ければいいのでしょう? インスタンス化の手間を考えなければ、 全部インスタンスメソッドでいいのでは?とか思ってる状態です。
773 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:10:10 ] Eclipseのインストール時に書込みエラーと警告が出てしまうのですが、 どなたか解決方法を教えていただけないでしょうか?
774 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:38:15 ] >>772 使い分けというか、具体的にどういう場面(ソース)でそう思ったとかを書いておくれ >>773 PC初心者板へどうぞ
775 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:08:28 ] RMIサーバを立ち上げ、普通にリモートメソッド呼び出しが可能な状態となるのですが、 RMIサーバをそのまま放っておくと数分後に以下のようなエラーが出てサーバが終了します。 java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is: java.net.ConnectException: Connection refused 数分後という原因がよく分かりません。何かのデフォルトのパラメータか何かに依存しているのでしょうか? なお、RMIサーバを起動するのが Linux, Windows ともに発生していますので、 Windows独自のファイアウォールなどとも違うように思います。
776 名前:775 mailto:sage [2007/05/23(水) 16:22:21 ] 計測したところ1分で落ちてしまうようです。 ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/rmi/sunrmiproperties.html を見るとデフォルト値が1分なのは sun.rmi.transport.tcp.handshakeTimeout ですが、クライアント側の設定のようですし、この値を設定してみても やはり1分で落ちてしまいます。
777 名前:775 mailto:sage [2007/05/23(水) 16:30:22 ] 自己解決しました。恐らくGCで削除されてしまっていたようです。 参照を持たせていたつもりが実は出来ていませんでした。
778 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:13:04 ] 配列に10種類の文字を入れておいてランダムに3つ取り出したいです ダブらないようにそういう制御させるにはどうしたらいいですか エロい人教えてくださいorz
779 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:14:43 ] 色んなやりかたがあるけど ランダムにシャッフルして 先頭の3つ取り出すとかどう?
780 名前:778 mailto:sage [2007/05/23(水) 19:16:20 ] あぁ!!そういうやり方もあるんですね でもどうランダムにシャッフルするのかわからないです・・・'A`
781 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:22:24 ] >>780 blogs.sun.com/javaev/entry/%E4%BB%8A%E9%80%B1%E3%81%AE%E3%82%AF%E3%82%A4%E3%82%BA_4_again_%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB blogs.sun.com/javaev/entry/%E4%BB%8A%E9%80%B1%E3%81%AE%E3%82%AF%E3%82%A4%E3%82%BA_4_%E5%9B%9E%E7%AD%94%E7%B7%A8_%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB
782 名前:デフォルトの名無しさん [2007/05/23(水) 20:23:40 ] Runtime.exec()を使って他マシンのプロセスを生成する方法を教えてください。
783 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:00:32 ] >>772 全部クラスメソッドにしようとしているなら考え直せとアドバイスするところだが、 全部インスタンスメソッドになるのは、クラスメソッドの必要性が出てくるまでは 放っておいてもいいんじゃないか。
784 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:53:15 ] >>772 783の言うとおりだな。 全部インスタンスメソッドで、ほとんどの場合は問題ない。 インスタンス生成のコストがって言うアホがいたら、何回作れば0.1秒?と聞いてやれ。 クラスメソッドにする必要性があるケース。 そうだなぁ、基本ライブラリで言えばインスタンス生成系かね。 Integer.parseInt()とかCalendar.getInstance()とか。 後はユーティリティ系、Math.max() とか
785 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 23:38:03 ] >>772 思いがけない仕様変更があったとき、 インスタンス生成の手間を惜しまずインスタンスメソッドにしておけば良かった、 と悔やむことはある。 逆は無い。
786 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 07:39:33 ] 漢字のJISコードをとるにはどうすればいいのでしょう? getBytes("JIS")とかして取得すると 半角英数などは ttp://ash.jp/code/ にあるようなコードがとれるんだけど 漢字だとマイナスの数値が取れたりしてうまくいかないんだけど・・・ どなたかご教授を
787 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:19:15 ] >>786 「JISコード」とは何? 区点コードのこと? ISO-2022-JP や Shift_JIS や EUC-JP での値?
788 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:24:04 ] 質問です。 class hogelist { hogelist(int data) { this.data = data; } public hogelist prev; public hogelist next; public final int data; } listのクラスなのですが、 hogelist(int data) { this.data = data; } の部分はコンストラクタなのでしょうか? 修飾子はいらないのでしょうか?
789 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 08:27:22 ] >>788 コンストラクタですね。 「class」のところと同じで、パッケージスコープなら public/protected/privateはいらない。
790 名前:デフォルトの名無しさん [2007/05/24(木) 10:00:24 ] package-privateと言って同一パッケージ内からのみ見えるアクセス修飾です。
791 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:28:34 ] >>787 ttp://ash.jp/code/ にあるような T → 54 試 → 3b 6e のような変換がしたいんです。 半角文字は上記のような値が取れるんですが・・・
792 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:29:15 ] >788 クラス名は大文字からはじめておけ。 class Hogelist { Hogelist(int data) { this.data = data; } んで、メソッド名は小文字ではじめる。 こうすれば、コンストラクタとメソッドとを混同しなくて済む。 って昔の人が考えたんですよ。名前の付け方のルール
793 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:38:03 ] >>791 byte[] raw = "試".getBytes("ISO-2022-JP"); してから、raw の先頭に 0x1b があれば先頭3バイト除去、 raw の後ろから3バイト目が 0x1b だったら末尾3バイト除去、 とすれば2バイトだけ残って 0x3b と 0x6e になると思う。 Shift_JIS や EUC-JP の場合は、そのまま raw が2要素の配列になるは ず。
794 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 10:40:39 ] >漢字だとマイナスの数値が取れたりして >漢字だとマイナスの数値が取れたりして >漢字だとマイナスの数値が取れたりして >漢字だとマイナスの数値が取れたりして
795 名前:デフォルトの名無しさん [2007/05/24(木) 12:02:37 ] ど素人質問ですみません JAVAって機械の制御に使えるんでしょうか
796 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 12:38:29 ] javaチップって携帯電話に乗ってたっけ?
797 名前:デフォルトの名無しさん [2007/05/24(木) 13:30:39 ] JAVAを使えるマイコンってありますか
798 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:44:41 ] おまえらJavaOne行ってこい
799 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 14:47:37 ] >>798 今年のJavaOneは もう終わりましたが
800 名前:デフォルトの名無しさん [2007/05/24(木) 18:17:51 ] 質問ッス ResultSet rs=stmt.executeQuery(sql) でResultSetの変数rsにsqlの結果を入れたわけですが、 中の列要素に大きなデータが入ってまして、あふれた分を切られてたわけです。 これは、どうやって解決すればいいんでしょうか?
801 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 18:48:17 ] 具体的にどの型のデータなの?
802 名前:800 [2007/05/24(木) 18:54:37 ] String型です。最高で500文字はあるみたいで・・・
803 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:13:43 ] >>798-799 半年ROMってから行ってくる
804 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 20:31:31 ] >>802 いや、DBの種類とカラムの方の型が問題なんだと思われ。
805 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:00:31 ] arraylistについて初心者でも分かりやすく 学べる解説サイトや本はないでしょうか? 知識としてはやさしいjavaを終わらせたレベルです。
806 名前:800 mailto:sage [2007/05/24(木) 21:34:16 ] >>804 今はJDBC-ODBCブリッジ使って、TextDriverに接続してます。 データはCSVに格納している状態です。 で、解決策がひとつ見つかりました。 StatementのsetMaxFieldSize()メソッドを使えば・・・となってたんですが、 エラーが出て使えません。 もう、どうしたらいいんでしょうか。
807 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:29:49 ] >>805 どこも一緒。 てか、やさしいJava読み終えるレベルってArrayListの解説すら読めないレベルなの? そうだとしたら、別の入門書やった方がいいんじゃね?
808 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:38:12 ] >>807 言い方が悪かったっす。 ArrayListというのが問題で急に出てきたんですが、 勉強するためによい参考書はないでしょうか?という意味です。 コンピュータ言語知識はJavaが初です。
809 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:44:52 ] >>808 java.sun.com/j2se/1.5.0/ja/docs/ja/
810 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:51:45 ] Introspectorについて詳しく書かれてるサイトか本はありますかね?
811 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:15:01 ] >>810 調べちゃいないが IBM の デベロッパワークスあたりにありそうな気もするが。 www-06.ibm.com/jp/developerworks/java/
812 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:18:00 ] >>810 基本だと思うけどbeansの仕様 java.sun.com/products/javabeans/docs/spec.html
813 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:21:40 ] >>808 ttp://d.hatena.ne.jp/Strada/20070226
814 名前:デフォルトの名無しさん [2007/05/24(木) 23:22:59 ] JDBCについて質問です。 ResultSet rs = stmt.executeQuery(sql); としてデータベースのでーたをrsに格納した後で、 while(rs.next()){ で上から1行ずつデータを読んでいきます。 これって同じ行をもう一度読み込んだり、 途中でもう一回最初から読んだりってできるんですか? 一回 rs.close(); してからもう一度 rs.next(); を書いてみたのですがうまくいかなくて。
815 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:35:28 ] >>812 基本なのですか・・・。 でも、全然そういったことを詳しく書いてるサイトや本がないのです。 あっても英語の本ばかりで。
816 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:39:04 ] >>813 ありがとうございます。
817 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:45:12 ] >>814 rs.relative(-1); とか試してみたら? closeはrsを使わなくなってからするもの。
818 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:47:47 ] >>814 Statement を作る際、引数を持つ Connection#createStatement() の第1引数に ResultSet.TYPE_SCROLL_SENSITIVE とかを与えれていれば、 ResultSet#next() だけでなく ResultSet#previous() や ResultSet#first() や ResultSet#relative() が使えるようになる可能性がある。 でも、JDBC ドライバが対応していないこともある。
819 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:52:34 ] >>807 やさしいjavaは確かに読めんな。三版持ってるが、C++との共通項くらいしか書かれてない。
820 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 02:54:27 ] >>814 DBのカーソル作成モードを変えると レスポンスが急激に悪くなることがあるし >>818 さんが言うように互換性も無くなる 一旦自前のArrayListを構築しなおすなどしてから 操作してもいいと思う でも一回最後まで読むから無駄が増えて やっぱりレスポンスは落ちるかも 読みながらArrayListにも入れていって 戻るときはそっちを見るとか工夫してくれ
821 名前:デフォルトの名無しさん [2007/05/25(金) 09:49:50 ] Java の GUI プログラムで、アイドル状態になったときの イベントを受け取ることはできないかな。 MFC でいう CWinApp::OnIdle みたいなの。
822 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 10:42:17 ] Idle状態ってなに?Focusを失ったとき?それならあるよ
823 名前:デフォルトの名無しさん [2007/05/25(金) 11:05:23 ] そうじゃなくて、他に処理すべきイベントがなくなったとき。
824 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 13:41:11 ] 面倒くさいから処理させたいものをプライオリティ最低のスレッドで動かしちゃえ
825 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:07:10 ] >>821 使ってるEventQueueでpeekEvent()がnullの時にアイドル時処理をするスレッドを使う。
826 名前:デフォルトの名無しさん [2007/05/25(金) 17:14:14 ] 文字列を指定した桁数ごとの文字列にして配列で返すみたいなことがやりたいです。 "aaabbbccc"を3桁って指定して["aaa","bbb","ccc"]みたいな。 forでがんばるしかない?
827 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:19:08 ] whileとsubstrでがんばるのはどうかな?
828 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:24:43 ] String s = "aaabbbccc"; String[] l = s.split("...");
829 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:31:45 ] >>828 思いつきは悪くないけどそれは正しく動かない。 >>826 for (String s : "aaabbbcccd".split("(?<=\\G...)")) System.out.println(s); でも、正規表現でアクロバティックなコードを書くのはお遊びとしては楽しいけれど、 >>827 のいうようにsubstringで分けたほうが分かりやすいし正道だと思う。
830 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 17:39:08 ] >>826 ほい。 余剰文字列は切り捨てられるので、それが嫌なら改造してね。 public String[] splitter( String in, int len ) { String[] al = new String[ in.length()/len ]; int index = 0; while ( in.length()>0 ) { al[index] = in.substring(0,len); in = in.substring(len); ++index; } return al; }