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 あたりで。
196 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:13:45 ] >195 全然無関係のところをまねしてどうする? やるべきことはShapeに渡す値を描画エリアのサイズ内に調整すること
197 名前:189 [2007/05/06(日) 20:54:32 ] >>196 shapeBeingDragged.moveBy(x - prevDragX, y - prevDragY); の部分を調整すればよいのでしょうか?
198 名前:デフォルトの名無しさん [2007/05/06(日) 20:58:22 ] >>181 つ NetBeans
199 名前:デフォルトの名無しさん [2007/05/06(日) 21:07:42 ] eclipse使ってたらなんか上書きモードになっちゃった。 どうやったら治るの
200 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:13:30 ] >>199 デフォルトのキーバインドなら insertキー
201 名前:デフォルトの名無しさん [2007/05/06(日) 21:17:39 ] >>200 インサートキーってどうやってonにしたりoffにしたりできるの?教えて
202 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:24:07 ] これはひどい
203 名前:デフォルトの名無しさん [2007/05/06(日) 21:25:38 ] eclipseでお勧めの本おしえて
204 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:27:24 ] >197 そう 元のCore Javaのソースはしらないけど ボールが描画エリアの端にあたってはねかえるのは 端の座標を越えたら増分を反転させているから そしてこの場合はDnDだから(つまり人間が操作しているから) 増分を反転させるのではなくそこの座標に制限する 言葉で説明するの面倒になってきたので コードで書くとこんな感じかな if (shapeBeingDragged == null) return; int x = evt.getX(); int y = evt.getY(); Dimension cs = this.getSize(); int maxw = shapeBeingDragged.width - cs.width; int maxh = shapeBeingDragged.height - cs.height; if (x < 0) x = 0; else if (x > maxw) x = maxw; if (y < 0) y = 0; else if (y > maxh) y = maxh; shapeBeingDragged.moveBy(x, y); repaint();
205 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:45:49 ] >197 わるい逆だ なれない変数名だったので混乱した int maxw = cs.width - shapeBeingDragged.width; int maxh = cs.height - shapeBeingDragged.height;
206 名前:189 [2007/05/06(日) 21:50:16 ] >>205 ありがとうございます。 ソースに組み込んでみたのですが、クリックをするとはぐれメタルが逃げるかのごとく、 画面上からオブジェクトが右下に消えてしまいます。
207 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:57:30 ] >206 mouseReleased()の方の実装もかえてね mouseDragged()と1行違いだから共通部分を切り出して 別メソッド呼び出しにすればいいかな if (shapeBeingDragged == null) return; int x = evt.getX(); int y = evt.getY(); Dimension cs = this.getSize(); int maxw = cs.width - shapeBeingDragged.width; int maxh = cs.height - shapeBeingDragged.height; if (x < 0) x = 0; else if (x > maxw) x = maxw; if (y < 0) y = 0; else if (y > maxh) y = maxh; shapeBeingDragged.moveBy(x, y); shapeBeingDragged = null; repaint();
208 名前:189 [2007/05/06(日) 22:07:18 ] >>207 こうでしょうか? synchronized public void mouseDragged(MouseEvent evt) { if (shapeBeingDragged == null) return; int x = evt.getX(); int y = evt.getY(); Dimension cs = this.getSize(); int maxw = cs.width - shapeBeingDragged.width; int maxh = cs.height - shapeBeingDragged.height; if (x < 0) x = 0; else if (x > maxw) x = maxw; if (y < 0) y = 0; else if (y > maxh) y = maxh; shapeBeingDragged.moveBy(x, y); repaint(); } synchronized public void mouseReleased(MouseEvent evt) { if (shapeBeingDragged == null) return; int x = evt.getX(); int y = evt.getY(); Dimension cs = this.getSize(); int maxw = cs.width - shapeBeingDragged.width; int maxh = cs.height - shapeBeingDragged.height; if (x < 0) x = 0; else if (x > maxw) x = maxw; if (y < 0) y = 0; else if (y > maxh) y = maxh; shapeBeingDragged.moveBy(x, y); shapeBeingDragged = null; repaint(); } ttp://a-draw.com/uploader/src/up22134.txt
209 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:14:49 ] >208 いいんじゃないかな 逃げ去るってことはその他にタイマー処理が行われているって 可能性が考えられるけど元のソースのボールの処理が残ってない?
210 名前:189 [2007/05/06(日) 22:39:11 ] >>209 タイマー処理は行われていません。
211 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:10:12 ] >210 moveBy()で加算しているようだから以下のように書き換えてみて left = dx; top = dy;
212 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 12:40:08 ] 二つのクラスがあったとして Class1のテキストフィールドにClass2のメソッドの処理結果を表示させたいんですがどのような方法が ありますか??メソッドは引数をもたないものとして
213 名前:デフォルトの名無しさん [2007/05/07(月) 12:45:05 ] SocketChannelでreadで-1が帰ってくる以外に正常切断を判断する方法はありますか。 FINで終わったのかどうかが知りたいです。
214 名前:213 [2007/05/07(月) 12:47:44 ] Class1のインスタンスをClass2に事前に持たさせておいて Class2のメソッドの処理結果がでたタイミングで Class2で保持しているClass1のインスタンスのテキストフィールドに表示させる
215 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 14:25:23 ] >>214 ありがとうです class2{ class1 cls=new class1 処理 cls.text.setText(処理結果);} このようにやってみたんですが表示してくれません・・・ エラーはないんですがどこが間違ってますか><?
216 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 14:41:05 ] >>215 class1でのテキストフィールドのsetTextはちゃんと働いてるの?
217 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 14:41:55 ] >>213 > readで-1が帰ってくる以外に正常切断を判断する方法 むしろ、こっちから close() してみる。 たぶん、相手はFINフラグを受け取るはず。 マジレスすると、仕様に書いてないなら無理だと判断すべき。
218 名前:213 [2007/05/07(月) 15:08:55 ] >>217 >>マジレスすると、仕様に書いてないなら無理だと判断すべき。 レスありがとう。Javadocにはかいてないんですよ。 FINフラグを受け取ってのread=-1なのか、その他の問題でのread=-1なのかを判断したいだけなのですが、 方法がさっぱしです。
219 名前:213 [2007/05/07(月) 15:14:18 ] >>215 class Class2 { private Class1 target; public void setNotifyTarget(Class1 target) { this.target = target; } public void Kekkadasu() { nankaNoSyori(); target.text.setText("処理終わり"); } } public static void main(String[] args) { Class1 cls1 = new Class1(); Class2 cls2 = new Class2(); cls1.text.setText("処理前"); cls2.setNotifyTarget(cls1); cls2.Kekkadasu(); } みたいなかんじではどうでしょうか。
220 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 15:38:45 ] 質問なのですが interfaceを利用してclassを作成しています 作成したclassを利用する際、設定ファイルやDBから読み込んだ文字列を利用して 動的にnewする対象を指定したいのですがやり方がわからないので教えてください www.wikiroom.com/java/index.php?FAQ#content_1_4 のclassを例にすると、 Performableインターフェイスを利用したEntertainerクラスとAthleteクラスが存在するときに 設定ファイルに Entertainer と書かれていたら Performable test = new Entertainer(); が実行され、 Athlete と書かれていたら Performable test = new Athlete(); が実行されるようにしたいです 例だとclassが2つのためifで判断したらよいのですが 実際には不定な1個以上の複数classが同一のインターフェイスで定義され それらのどれを利用するかをDBのマスタテーブルからclass名を読み込んで、その読み込んだ文字列にてnewを行いたいのです また、classは不定期に追加され、利用される可能性があります こういった実装は出来ないのでしょうか もしくは、実装できる場合、どのように文字列のclass名を指定したらよいのでしょうか よろしくおねがいします
221 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 16:03:23 ] >>220 Classクラスを使えばいいんじゃね? forName() と newInstance() あたり。 String str; Performable perf; /* このへんに設定ファイルから クラス名を読み出して str に 代入する処理があるとする。 */ try { Class c = Class.forName(str); perf = c.newInstance() } catch (Exception e) { // 例外処理 } だいたいの流れはこんな感じで。
222 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 16:07:10 ] >>220 java.lang.Class.forName(String className)#newInstance()
223 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 16:15:30 ] >>213 できました!! どうやら単純なミスをしていたようです^^; いろいろ参考になりました ありがとうございますm(__)m
224 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 16:49:50 ] 質問でs! a,b,cというlistと配列に入ってる"a","b","c"の文字列を比較したいのですが どうしたらいいでしょうか??
225 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 17:06:34 ] > a,b,cというlistと配列に入ってる"a","b","c"の文字列を比較したいのですが 解釈の仕方が複数あって、 具体的に何がどーなってるのか良く分からん。
226 名前:224 mailto:sage [2007/05/07(月) 17:30:16 ] たしかにわかりにくいです!すいません a,b,cという項目があって最初は選ばれていない状態ですよね。 で配列にはこのようにはいっていて 配列1 配列2 Aサン a Bサン b Cサン a Dサン c 配列Bを指定したらlist項目のbを選択させるといった感じです
227 名前:224 mailto:sage [2007/05/07(月) 17:32:46 ] 間違えました 配列1のBを指定したらですね
228 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 17:34:21 ] で、お前は何がわからんのだ
229 名前:224 mailto:sage [2007/05/07(月) 17:42:22 ] 項目を選択させるにはselectしかないかどうかってことです selectだとintしか指定できないから分岐させるしかないのかと・・・
230 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 17:44:54 ] >>229 java.awt.List の話でしょ? なら、項目選択するにはユーザが操作するか select(int) するしかない。
231 名前:224 mailto:sage [2007/05/07(月) 17:48:53 ] わかりました ありがとうございます!
232 名前:デフォルトの名無しさん [2007/05/07(月) 17:54:40 ] 国際化対応の場合に、UTF-8が多く採用されるのはなぜですか? JavaがUTF-8を採用しているからか、ASCII文字との親和性が高いからかな。 →どのようなメリットがあるかわかっていないですが… Java=ユニコード=ALL2バイトと思ってたけど、違うんですね… UTF-8は、レスポンス悪いとかあります?
233 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 18:08:58 ] >>221 >>222 確かにそれでOKです 大変勉強になりました ありがとうございました
234 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 18:15:51 ] >>232 > 国際化対応の場合に、UTF-8が多く採用されるのはなぜですか? 国際化対応で Shift_JIS とか EUC-JP は使えないでしょ。 ISO-2022でも ある程度国際化できるけど、実装面倒くさいし。 > Java=ユニコード=ALL2バイトと思ってたけど、違うんですね… = をどーゆー関係のつもりで書いてるのか分からんので、なんとも言えない。 > UTF-8は、レスポンス悪いとかあります? 場合による。1ギガバイトとかの馬鹿でかいテキスト読んだらレスポンス悪くなるだろうし。
235 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 18:56:09 ] >UTF-8が多く採用されるのはなぜですか? 1バイトで足りる連中がUnicode実装するとき楽だから。 PL関係なく実装者の都合でしかない。
236 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:09:21 ] エンディアンが存在しないとか、 ASCIIと互換性があるとか、 バイト指向だとか、 CCSがUCS4だとか、 結構便利なエンコーディングじゃん。
237 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:41:32 ] Java初めて20日です。 応用問題を解いているのですが、 各サイト、APIみても、 これを使うとか構造とかがでてこないもの がでてきました。 こういう場合はどうしたら 良いのでしょうか。 また 何を使うとかの ひらめきはどうしたら みにつくのでしょうか?
238 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 20:46:56 ] > ひらめきはどうしたら ロマサガで特訓してこい。
239 名前:デフォルトの名無しさん [2007/05/07(月) 21:21:53 ] String strに何か文字が入っているとします。 この中に入っている文字が整数かどうか調べるにはどういう風にすればいいでしょうか?
240 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 21:25:01 ] >>239 一文字だけ調べるなら Character.isDigit(str.charAt(0))
241 名前:デフォルトの名無しさん [2007/05/07(月) 21:30:50 ] 一文字ではなく文字列を調べる場合は他に方法ありますか? このCharacter.isDigit(str.charAt(0))をforとかで文字数文まわすとかしかないでしょうか?
242 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 21:36:06 ] parseIntでうまくいくかどうか調べる
243 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 21:42:05 ] 正規表現 -?[0-9]+ とか
244 名前:デフォルトの名無しさん [2007/05/07(月) 21:48:53 ] なんか isDigitsメソッドは指定された文字列が数字だけを含むかどうかを返します。例えばNumberUtils.isDigits("123")はtrueを返します。 www.atmarkit.co.jp/fjava/rensai2/jakarta08/jakarta08.html とか書いてるんですけど、これって何か拡張しないとだめなんですよね・・・
245 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:45:01 ] JAVAの入門書に載ってる最初のコードを実行したら、 X11のライブラリがねえとか言って怒られたよ。 本を見たらwin用の本だった。 JAVAってそういうのは吸収してくれないのな。 なんでもいいからウィンドウ出せやボケと思いました
246 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:46:42 ] >>230 > java.awt.List の話でしょ? エスパーすげー
247 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:57:23 ] Linuxか? Javaの、そういう差を吸収する部分(AWT)がX11を必要としているのよ。
248 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 23:00:29 ] >>245 この辺見て、デスクトップマネージャが入ってるか確認して。 java.sun.com/javase/ja/6/webnotes/install/system-configurations.html よほどの野良ディストリ使ってるとかでない限りは、Gnomeが標準になってると思うけど。
249 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 23:37:33 ] >>236 エンディアンはないがBOM忘れてる奴が多いがな。
250 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:06:19 ] エンディアン無関係だからこそBOMは本来不要だし
251 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:07:45 ] サイトに埋め込まれてるjavaアプレットのソースを知りたくそのページのソースを調べて、 「ファイル名」.classのファイルをDLしたのですが、eclipseやテキストで開くと(拡張子を.javaにしたりして) 、文字化けしていて読むことができません。 このような.classファイルは読むことができますか?
252 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:09:56 ] >>236 日本語は大抵3バイトになるのが鬱陶しいけどな。
253 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:21:12 ] >>251 バイナリエディタ。 つーかなんでバイトコードにソースが含まれてんだと小一時間・・・。 素直にお帰りください。
254 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:26:11 ] バイナリエディタがアンリエッタに見えた俺はアニオタ
255 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:26:43 ] >250 unicode.org/faq/utf_bom.html#29 An initial BOM is only used as a signature ― an indication that an otherwise unmarked text file is in UTF-8.
256 名前:251 mailto:sage [2007/05/08(火) 00:31:40 ] >>253 理解し損ねてました .classファイルを.javaに変換できる方法はありますか?
257 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:33:43 ] allabout.co.jp/internet/java/closeup/CU20051206B/index.htm
258 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:58:49 ] >>255 だから? UTF-8のBOMはエンコーディングの認識精度を上げるくらいしか役にたたないし、 在ることで困ることの方が無くて困ることより多いと思うが。 UTF-8 must contain a BOM.じゃなくてUTF-8 can contain a BOM.て書いてあるじゃないか。 だから、BOM付きを邪険にはしないけど、自分からわざわざ付けたりはしたくないな。
259 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 03:00:17 ] >>256 javap ディスアセンブラとかデコンパイラでググれ 空気読めるようになろうね。
260 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 04:19:20 ] GridBagLayoutがまんどくさすぎる このくらい自由が利いてもっと楽なのあれば教えて☆
261 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 04:39:21 ] SpringLayoutとかは? それか自由が利いてもっと楽なのを自作する
262 名前:260 mailto:sage [2007/05/08(火) 05:14:33 ] >>261 ありがとう 検討してみる
263 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 05:40:55 ] >>261 >SpringLayout へーこんなレイアウトマネージャがあったんだ これって機能的にNeXTとかMac OS Xのレイアウト機能とほぼ同じだね 直書きするのはめんどそうだけどSunがツールを用意してるのか 今度使ってみよう https://bean-builder.dev.java.net/
264 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 06:19:25 ] GroupLayoutってのもよさげ いろいろあんだね もうGridBagLayout使うのやめよう
265 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 06:29:07 ] NeXTStepもOSXも同じAPIですぜ
266 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 07:54:18 ] Javaに限ったことではありませんが、配列番号ってどうして0から始まるんでしょう。 1からのほうが色々すんなり行くと思うのです。
267 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 07:56:51 ] >>266 色々すんなりって例えば?
268 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 07:57:14 ] 一長一短だが、大体において 0 の方が便利。 なにかと計算量を減らせる。
269 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 08:40:45 ] >>267 一つ目の要素: array[0] より 一つ目の要素: array[1] のほうが分かりやすく自然だと思うんです。 もしあなたがそう思わないなら、それはプログラマーとしての観点を既に持っているからでしょう。 x番目の要素の添え字はx-1ですが、これがx-372だったとしたら 三番目の要素の添え字は、え〜っといくつだ?ってことになりますよね。 >>268 なるほど、確かにそうです。 納得しました。
270 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 09:12:46 ] >>269 量的にではなく指標だから0からは当然だとおもうよ。 定規が1から始まるのが自然だとは思わない。
271 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 09:20:39 ] swfup.info/view.php/6857.swf ↑このフラッシュを見てくれ もし、参加したくなったら 日本奇跡の逆転劇!! スロベニアを抜き単独4位へ wwwww.2ch.net/test/read.cgi/news4vip/1178574359/ 歴史的瞬間にぜひご参加を!!! どこから誘導されたかも書き込んでねー
272 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 10:37:37 ] 初心者です textfieldに"java"と入ってたとして、それに対して指定した数だけ"*"を追加したいんですが どうしたよいでしょう? 指定した数が3なら"java***"といった感じです。 値は変数にはいってます。
273 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 10:44:54 ] +
274 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 11:27:08 ] >>273 何文字か指定するにはどうしたらいいですか?
275 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 11:56:41 ] >>274 一昨日Java始めたばかりのオレが答えてみよう。 public static void main(String[] args) { String hoge = "java"; String fuga = "*"; int piyo = 3; for(int i = 1; i <= piyo; i++){ hoge += fuga; } System.out.println(hoge); }
276 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 11:57:45 ] サンクス! やっぱ繰り返すしかないのかな・・・
277 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 12:02:39 ] >>276 >指定した数だけ"*"を追加 って時点で繰り返しは必須だと思うんだけど。 繰り返しで何か都合悪いことでもあるのか?
278 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 14:30:20 ] >>266 数学の話だが中学校のころ数学教師が教えてくれた。 人間てのは非数を見つけてしまったから数字の0は無を表す 数字ではなく、負数を除いて起点となる数字らしい。 何もないわけではなく「0」という数字が存在している。 だから数学的に数字は0から始まる0起算らしい。
279 名前:278 [2007/05/08(火) 15:06:44 ] そういえば、数字ってのは+か-方向に無限に伸びていくけど0はそのどちらでもない±0という状態で・・・と続き 最終的にメタ数学の話になったから気にしない方が良いよ。 特に0と配列と演算記号の関係なんて。
280 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 15:12:02 ] >>266 >>269 Javaに限ったことではありませんってFORTRANプログラマの観点の立場は…
281 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 15:23:45 ] >>276 どうしてもというのなら繰り返し追加するものが文字列でなく文字限定だが、 public static void main(String[] args) { String s = "java"; char c = '*'; int n = 300; char[] cs = new char[n]; java.util.Arrays.fill(cs, c); System.out.println(s + String.valueOf(cs)); } みたいに繰り返し文を自分では書かない方法があることにはある。 あと、繰り返しでStringに追加する場合は、 StringBufferかStringBuilderを明示的に使った方がいいかもしれない。 追加するものが3個程度なら大して違いはないと思うけど、大量に追加するなら。
282 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 15:30:50 ] >>280 FORTRAN はウンコだから。 まあ、0 オリジンにしようと思えばできるけど。
283 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 15:40:07 ] >>266 配列を配列の配列のように扱いたい場合、 0 から始まった方が便利。 インデックス i, j が与えられた場合、 0 から始まる場合は i * SIZE + j だけでいいけど、 1 から始まる場合は (i - 1) * SIZE + j と、-1 が必要になる。 とか何とか、色々と 0 から始まった方が計算量が少ない事が多い。 一部逆もあるんだけどね。 0 から始まるというイメージは、C をやった方が分かりやすいと思う。 C だと「始点 + インデックス」の位置にある値を参照するという処理になってるから、 1 から始まると始点がムダになる。 始点をズラすと、始点の値を使いたい時にまたズラさないといけない。 他の言語も、このあたりのイメージを受け継いでるんじゃないかな。
284 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:36:02 ] >>269 1番目から始まる自然な序数を選択するよりも、 計算量の減少等の効率を重視して選択した結果なんで、 そういうものだと思って慣れるしかない。 0から始まる場合のインデックスは序数と考えずに、 >>283 が言うように始点からのオフセットと考えればいい。
285 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:53:18 ] リスナーって1つのクラスに1つまで??
286 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:58:15 ] >>285 なぜそう思うのかを知りたいもんだなw
287 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:02:10 ] でへ^−^ どんな風にかけばよろしいのかと
288 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:04:56 ] >>285 質問がインスタンスにリスナーをadd〜Listenerで登録するって意味ならたいてい複数のリスナーを追加できる。 もしset〜Listenerとかのメソッドなら一つしか設定できないかもしれない。 そのクラスのドキュメントを見れ。
289 名前:287 mailto:sage [2007/05/08(火) 17:13:24 ] わかりました!! で、itemlistenerってクリックされたときのみですか、、、? selectでindex指定しても動いてくれないんですが、、、
290 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:19:35 ] >>289 だからドキュメントを見ろと言ってるだろ。 java.awt.ListとかChoiceの話か? ちゃんとselectのところを読め。 > ItemEvent をトリガする唯一の方法はユーザの操作です。
291 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:22:28 ] addItemListenerの説明にも書いてるね
292 名前:デフォルトの名無しさん [2007/05/08(火) 18:57:16 ] スレッドに関してですが、テスト環境がないので質問させてください。 スレッドプールというものは実行のたびに空いてるCPUコアを探してくれたりするんでしょうか? それともスレッドが生成された時点でどのコアに所属するか決定してしまうのでしょうか?
293 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:10:01 ] 最近javaを勉強し始めました。 www.stackasterisk.jp/tech/java/javaPractice06_06.jsp#2_4 上記のサイトの通りにjspでカレンダーを作成する、というプログラムを書いていたのですが、 このサイトにあるDayTypeConstクラスの意味がよくわかりません。 この定数を変えると土曜日曜の色が変になってしまうのですが、どうしてそうなるのかがよくわかりません。 ご教授お願いします。
294 名前:デフォルトの名無しさん [2007/05/08(火) 21:19:16 ] pattern = Pattern.compile("ほげほげ"); 文字列が入ったString変数をmatcher.matches()で判定したいのです。 そこで数値(1〜9)以外の文字が入っていた場合trueとなるようにするには("ほげほげ")の部分に何と入れればいいでしょう? ためしに String str = "あ457" を pattern = Pattern.compile("[^0-9]"); でやったらfalseでした。 しかしString str = "あ" を pattern = Pattern.compile("[^0-9]"); でやったらtrueでした。
295 名前:デフォルトの名無しさん [2007/05/08(火) 21:26:02 ] ↑事故解決しました。
296 名前:デフォルトの名無しさん [2007/05/08(火) 21:45:18 ] FOX★公認!!! 俺たちのクリックで日本を一位にしようぜ!! “30年は日本に手は出せないな”という勝ち方をしたい wwwww.2ch.net/test/read.cgi/news4vip/1178602852/ 1. ポーランド 139,797,680 2. チリ 137,040,439 3. ★日本 86,475,213★ 4. イスラエル 80,930,530 5. スロベニア 57,137,042 6. フィンランド 40,857,499 石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった 人間はさらに発展し兵器を使う戦争を始めた そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・ 皇国を勝利へと導くには貴様らの参戦が不可欠である ・戦場 www.clickclickclick.com/default.asp ・まとめサイト www33.atwiki.jp/clickvip/