【初心者】Java質問・相談スレッド97【大歓迎】
小 面 童 / ,、r'";;;;;;;;;;;;;;;;;;;;;;;;;;;;;`';,、 ,r';;r" _ノ わ が 貞 L_ /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\ ,';;/ ) 何 っ .許 が //;;/´ `' 、;;;;;;;;,,l;;' /ヽ と と ぱ さ. /.,';/ ヽ;;;;,l;L_ .,,、,--ュ、 ';;;;;;;;;i な 童 ま れ l |;|┌--‐フ ┌----、、 |;ヾr''‐ヽ, ,、ィ'r-‐''''''‐ヽ ';;;;;;く !! 貞 で る i |l ~~__´ 、 ``'__''''┘ |;;;;;l rO:、; ´ ィ○ヽ 'i;;;;;厶, じ の l _|. <,,O,> 〉 <,,O,,> |;;;;;| `'''"/ `'''''"´ !;;;;;;;;ヽ ゃ は ._ゝ'|. / 、 |; ,' / 、 |;;;;;;;;;;;;;レ、⌒Y⌒ヽ ぞ 「 | | ( ) .ソ l ,:' _ ヽ .|;;;;;;;//-'ノ ヽヽ | _,ニ ニ,,,,,_ ', ゞ,' '"'` '" i;;;;;i, `' / ⌒レ'⌒ヽ厂 ̄ `| ,、ィ-‐''__'''‐-`,、 '' ', i、-----.、 `''"i`'''l 人_,、ノL_,iノ! ', :i゙''''''''''`l' ` _人__人ノ_ヽ ヾ゙゙゙゙ニニ'\ ,' ト、, / ヽ. L__」 「 止 笑 L_ ヽ〈 i| Vi゙、 ハ ワ {. ヽ. -、、、、 ' ノ ま い 了゙, ,ヽ===-'゙ ,' , // ヽ ハ ハ ヽ. ハ ) ら が | ',.' ,  ̄ , ' ノ /./ ヽ, ハ ハ > /|ヽヽ、___,,,,、 'く ん > ヽ.  ̄´ / ,、 ' / / \ ハ ハ / ノ. | ヽ フ / ノ:lゝt-,-‐''" / ,.ィ゙ /
俺ロリコンで大人の女に興味ないから、童貞卒業する時は牢獄に行く時なんだよね
.,Å、 .r-‐i'''''''''''i''''‐-、 o| o! .o i o !o .|\__|`‐´`‐/|__/| ○ |_, ─''''''''''''─ ,、 / _ | l .,,,―''"^ ,,/::::::::::::::::::::::::::::::`゙'''ー-,,// _,-::'^::::"":::::::::::"""^:::::::::::::::::::::::::::::::::::::;;;、-''''''"`''-、 ,/゙:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/゛ `i、, ,/:::::::::::::::::::::::::::::::::::(●),::::::::::、(●)、.::;/ i、 i:::::::::::::::::::::_;;;;;;_::::::::::::::::,,ノ(、_, )ヽ、,,:::::::::i l 'i、:::::::::::::::/ `i、:::::::::::::-=ニ=- ':::::::::::::i, ,i //`i、,::::::::'i、 /::::::::::::::`ニニ´::::::::::::::::::'i ,i | l '''-;;;_`-''゙::::::::::::::::::::::::::::::::::::::::::::::::::::\ ,,/ ○ `'''―;;;;;;_;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;_;;.".'=―''"^ //  ̄ ''''''''''''''''''''  ̄\\ | l / / と) (_つ
,/.゙゙゙ ゙.";;ヽゞ゙''-、、、 ,..-'"´ ̄\
/___, -一ァソ;ゞ-;:ii>;,,,,,゙ 、 _」 ,/´ ヽ
,-‐¬  ̄---┘'7ノ" ヾミ! <. `i´ ,.-''´ ヽ
, -‐ ''" し' '´_ /,ィ!ヘー' iミ;! `r‐ヘ. 〈 ,.-''" ヽ
,r/ __ ,イソ iミ;! ヽ `''ヽ_〈 r┬ |
/ ||ヽ -' / ̄ ) ,.==、、_ ,__,,,..、、、 i;;リ ヽ、__ゝ-' ノ
>>1 乙であります!
,r ' ヾ、 ,-、____ , ノiト´ _ィェァ了 (ェoヮ、 /!7 / /
/ ヽ `ー-ソ Yl.| ´!| |!` ! ! } / /
. / \_ / レl /u__,ゝ i:l‐' / /
 ̄/ li / _二' _、〉 i l / /
/ ヽ ´  ̄ ` i/ ,/ゝ____/
/ __/\ゝ、 , ノ/ト、\:./井井井井;;/
/ J |:井\ー --''"/井ヽ ヽ井井井井/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|::|. |井井\ . /井井 | |井井井;;:/
\___________):| |井井井\/井井井| |井井井/
/::| |井井 井井 井井井| |井井/
/ 井| |井井,ノー-'-ー---‐'--'ー'´
/井井 | |井/
/\井井 .| |;;'"
/ \井.|::/
| \<
ヽ \
`ヽ、 \_
`ヽ、 !
`ヽ、 ノ
) (
_ _ _ノ )
(_(_(_(_(_ノ
6 :
デフォルトの名無しさん :2007/02/02(金) 17:09:07
テキストファイルから1行ずつ読み込んで、String型の配列に 格納していく方法が思いつきません。 BufferedReader br = new BufferedReader(file); String line; while((line = br.readLine())!=null){ /* ここでどのような処理をすればよいのか ?*/ } どなたかアドバイスお願いします。
うん。そっちにカキコしたら、マルチウザス^ω^)って言うがなw
>>6 配列に入れるっていうなら
まず配列を定義してみてください。
12 :
デフォルトの名無しさん :2007/02/02(金) 17:35:04
マウスの絶対座標を取得する方法はあるのでしょうか? コンポーネントに対する相対的な座標は求められますが、画面に対する絶対座標を知りたいのです。
>>6 ほいよ
String[]a=new String[0];
while((line = br.readLine())!=null){
String[]b=new String[a.length+1];
System.arraycopy(a,0,b,0,a.length);
b[a.length]=line;
a=b;
}
>>12 つ MouseInfo & PointerInfo
15 :
6 :2007/02/02(金) 17:42:41
テキストの行数によって、配列の要素数が変わってしまうので まずそこから問題にしなければいけなかったんですね。 String str[] = new String[readLine()の動作した回数]; とすればよいでしょうか。ちょっとやってみます。 宿題や課題ではないのでこちらで質問させていただきました。 回答してくださった皆様、ありがとうございます。
>>12 Tiger以降で
java.awt.MouseInfo
java.awt.PointerInfo
かな。
それ以前なら、コンポーネントの座標を、
親を辿りつつ変換していけば不可能ではないと思う。
(Insetsのあるものは忘れずに)
17 :
6 :2007/02/02(金) 17:44:12
リロ忘れすみません。 >11,13 も参考にしてみます。ありがとうございました。
>>18 どうしても配列でっていうから。効率は無視
>>6 本当なら行数の分からないものを格納していくなら、
配列ではなくArrayListのようなサイズを動的に変更してくれるものに格納する。
そのあと、配列に変換するにはList#toArray()がある。
>>11 東大のページなのに文字コードがISO-1022-JPとは
ちょっとまてー
>>15 なんじゃそりゃ、そういうときは配列使わず、
List使うのが望ましい。
つうか、一つのStringにまとめるというてもありだが。
>>15 を見ていたら
StringWriter/StringReaderクラスをおもいだしてしまった。
銅でも良いが。
どうしても配列でなんて言ってたっけ?
配列に格納していく方法が思いつかないほどに配列に格納したいという熱意が伝わる質問だった
【 課題 】アウター、インナー、ボトム、靴の4つのグラフィック(ちゃんと着用時のような配置で)を用意し、 それぞれに対して6色程度色が選択できるようになっており、 色を選択するとその対応した部分が選択した色に変わるプログラム 【 形態 】1. Javaアプリケーション 【 GUI 】2. Swing 【 期限 】今週土曜 【 Ver 】1.5.0 【 補足 】とりあえず途中までは自力でやってみましたが、ペイントで用意した絵を どこに貼り付け?ればよいのかわかりません(JLabelでしょうか・・・?) また、全ての色の全ての部位(6×4=24種類)をペイントで用意はしました。 どなたかお願いいたします・・・
仕事なのか?
28 :
デフォルトの名無しさん :2007/02/02(金) 20:04:35
0xF0 ってどういう意味ですか? ビット演算子という項目を見ているんですが ソースの中で普通にint型整数として扱われてて意味ワカリマセン。
>>28 16進法による数値表現。値としては、
10進法で表した240
あるいは
2進法で表した11110000
に等しい。
32 :
デフォルトの名無しさん :2007/02/02(金) 20:15:50
聞き方がまずかったです。0xf0の0xってどういう意味ですか? 後ろがなんとなく16進数って言うのはわかったんです。 0xて前につけたものは全部16進数という意味ですか? あとはじめてココで聞いたんですけど('A`)誰か同じ質問してタンですか
33 :
デフォルトの名無しさん :2007/02/02(金) 20:18:24
攻?受?('A`)
35 :
デフォルトの名無しさん :2007/02/02(金) 20:19:57
というか、Javaでは16進数とかつかうのですか、、 自分で計算する時いちいち数値10進数に変換して計算してまた16進数に戻さなきゃいけない。。 そのまま計算できるように 16進数の九九とか覚えてるんですかね、皆さんは。
必要なら使う、使えるようになってるというだけ。 もともと家電やらの組み込み用の言語だし、ビット操作があってもおかしくはない。 16進の具体的な数値を芽にするよりも、個々のビットを上げ下ろしたりマスク したりするほうが操作としては多いし、必要なら関数電卓でもgoogleの電卓機能 でも使えばいい。
日本語の言語仕様ページあったんで保存しました('A`) ネタじゃないですヨ
39 :
本物の1 :2007/02/02(金) 20:35:41
すいません皆さん。
>>1 は偽者です。
本物は私です!
16進表記はビット列を考えるとき便利だよ。 使い慣れるてる人は0~Fのビットの並びを覚えてる。 仮に2進法のままで使えても長くなりすぎるしね。
こちらにも投げておきます 【 課題 】①横並びの3つの画像を下にスクロールさせる ②スクロールをストップさせるボタンを画像の下につける 【 期限 】2月5日(月) 【 Ver 】1.4.2 【 補足 】 画像の名前は Slot A.jpg Slot B.jpg Slot C.jpg でお願いします。 もう期限がギリギリなので、期限内になにとぞよろしくお願いします。 本当にお願いします。
マルチはスルー。 あっちでも蹴られるから、見なかったことにしよう #課題ってのは授業やら講義の流れがあって、その問題なわけだから、 #あっちの人たちはエスパーがいっぱい居そうだ…
>41① <table> <tr> <th> <marquee behavior="scroll"direction="down"> <img src="SlotA.jpg"> </marquee> </th> <th> <marquee behavior="scroll"direction="down"> <img src="SlotB.jpg"> </marquee> </th> <th> <marquee behavior="scroll"direction="down"> <img src="SlotC.jpg"> </marquee> </th> </tr> </table>
ごめんなさい≧□≦) Calendarクラスの
45 :
デフォルトの名無しさん :2007/02/02(金) 22:18:43
innterfaceの抽象メソッド(public abstractも付けなくても勝手にpublic abstractと解釈)は 共通部分はimplements 個別はextends で具体的に書くでOK? なんかやっと分かってきた みんな参考書が中途半端で困った・・・
正直、どういう授業で問題だされてるんだろ? 小学校、中学校、高校、大学、専門学校? 俺の頃は、プログラミングなんて大学院で 情報系に入るまで趣味だったし、 学部時代は、Fortranしか授業でやってないし Javaは大学時代にできた言語で覚えたのも趣味だし・・・・ 情報系の学部のヤツに聞いたら、Pascalを授業でやるけど Cは使えるのが前提とか言ってた 今じゃ、情報の授業とかが高校までにあるんだよな? なもんで、いったいどういう層がJavaの演習受けるのか興味ある。 こんな質問このスレであり?
プログラミング言語はCから。しかも大学の授業で。大学入るまでパソコン使ったことなかった
>>45 申し訳ないが何言ってるか分からん。
是非、参考書の名前を列挙して欲しい。
interface の実装と、クラスの派生はまったく別のもの。
49 :
デフォルトの名無しさん :2007/02/02(金) 22:31:02
すいません 尿漏れがひどいのですがどうすれば良いのでしょうか? よろしくお願いします。
(;´Д`)
51 :
デフォルトの名無しさん :2007/02/02(金) 22:46:18
>>48 悩まない&つまずかない
Java教科書の216ページ
Calendarクラスの ERA ZONE_OFFSET DST_OFFSET についておせーて、エロい人´Д`)
53 :
53 :2007/02/02(金) 22:52:00
JAVAを使ってニンテンドーDS用のソフトが作れますでしょうか。
>>44 大なりイコール四角小なりイコール?
ふざけてんのか貴様!
>>46 おれのときは、高速フーリエ変換のプログラムを作れ
だった。C言語でやった。あとからJavaでやりなおした。
複素数を戻り値にする方法をしらないと始めは皆
躓くものだね。オブジェクト指向がわかっていれば
どうにかなる問題でも
>>46 そういえば、おれはJavaをつかう授業は大学院にしかなかった。
なぜならまだC言語が主流だったから。
あとからJavaになってきた。
大学院ではJavaでなくてもなんでもいいから
好きな言語でソフトウェア設計市ロッテのばっかだったが
>>52 ERAは
GregorianCalendar(デフォルト)だと西暦/紀元前
JapaneseImperialCalendar(和暦)だと元号
ZONE_OFFSETは
タイムゾーンによるGMTからの差。
DST_OFFSETは
夏時間(daylight saving time)時に適用する差。
>54>55>58 39ね
>>53 もちろん作れる
ただし、その前にDS用のJVMを作る必要があるから若干手間は掛かる
61 :
デフォルトの名無しさん :2007/02/02(金) 23:14:50
>>48 A,B(a()のみ共通内容、b()は違う内容)
C,D(b()のみ共通内容、a()は違う内容)
てクラスを4つ作りたい時
上は
implementsでa()のみpublicにして具体的に書く、違う内容にしたいまだ決めないb()はabstractを付けて抽象メソッドにしておく
b()はA、Bクラスを作るときにextendsで別々publicにして書く
て言いたかったんだけど
うん。
63 :
デフォルトの名無しさん :2007/02/02(金) 23:18:57
皆若いな。 基礎工だった俺はFORTRANやらされた。 社工の奴はPASCALやってて正直羨ましかった。
JVMのアセンブラって実在するんですか?
FORTRANは今でも科学技術計算では主要言語の一つ。 PASCALは今も昔も教育用言語。 教育用=仕事で使う奴がいない。 Delphiは頑張ってたけど最近下火。
>>64 ニーモニックを使ってバイトコードを記述したものからクラスファイルを吐くものをJVMのアセンブラというのならそれはある
>>66 ありがとうございます。
できれば、名前を教えてください。
ぐぐってもJasminというアセンブラが昔あった(らしい?)
というくらいしかわかりませんでした。
>>67 ちゃんと探した?
jasminなら今でもあるよ
sourceforge行ってjasminで検索汁
foo hoge 意味を教えてくださいエロい人
foo hoge 意味 でぐぐれ
>71 フェイバリット英和辞典には載ってないですが?
>>70 何故、foo bar ではない!
まあ、引いても諸説あるだけで起源はどれかわからんよ
76 :
デフォルトの名無しさん :2007/02/02(金) 23:46:17
hageじゃ駄目?
hogeは日本人専用だからなあ
78 :
デフォルトの名無しさん :2007/02/02(金) 23:47:34
hage hige mage
ウチの会社ではhoge・hage・higeって使ってる。`
>>68 ,69
すいません。
sourceforge+jasminでぐぐったら、あっさり見つかりました。
お手数をおかけしました。
ググモバったら ほげ 米国陸軍の将軍 ふぉー HG ばー 味噌汁バー ぴよ 気絶 って出ました。 ありがとうございました
83 :
デフォルトの名無しさん :2007/02/03(土) 00:02:11
>>65 今でもPASCAL教えてるとこなんてあるの?
会社の先輩に「javaは終わった。これからはRuby on Railsだ」と言われました。 本当でしょうか?
>>84 話半分くらいに聞いとけ。
ただRoRのようなやり方がワークフレーム全盛のjavaに影響は与えるだろうな。
ワークフレームってなんだよwフレームワークに訂正。 RoRをいじってみたけど、ERP的なものを感じたな。
87 :
デフォルトの名無しさん :2007/02/03(土) 01:14:08
夜分遅く失礼します。今文字列が羅列(メールのヘッダ情報と本文)した データからヘッダ情報とメールアドレスだけを取り出したいです。 この場合どういったものが有効でしょうか? 考えたのは全て1つの配列に入れて正規化で読んでいくことかなぁと 思ったのですがイマイチな気もしています。
>>70 プレースホルダーってやつだよそれは
英語版Wikipediaで "place holder"で検索してみるといい
89 :
デフォルトの名無しさん :2007/02/03(土) 01:51:26
mod_jkの1.2.20がコンパイルできなくて困ってます。誰か教えてください。 前に1.2.18はコンパイルできたののですが・・・・
ビルド済みのやつを使えばいいじゃん
91 :
デフォルトの名無しさん :2007/02/03(土) 02:05:42
失礼しました。macなのでソースからコンパイルするしか手がないのです。 もしバイナリ版おいてあるところがどこかにあったら教えてください。
う、macか…… すまん、バイナリ置き場はlinuxとwinしか残念ながら分からないや
macosxもapacheのダウンロードサイトにあったのか macは気にしたことないから気づかなかった でもjkの1.2.20はバイナリが置かれてないね
>>86 ワークフレーム最高!
ネーミングがいいなあww
ワークフレーム、 その名も、 働 く 炎
入社してそろそろ1年仕事にもなれてきたぜっていう 新人君が頑張ってんだからからかうんじゃない! 枠フレーム
ヨガフレイム
98 :
デフォルトの名無しさん :2007/02/03(土) 02:47:31
classファイルをjavaファイルに変更する方法はあるのでしょうか? できるのなら、教えてください。
mv Test.class Test.java
102 :
デフォルトの名無しさん :2007/02/03(土) 06:51:18
≪急募≫日本国女王<未経験可:年収600万以上> 【仕事の内容】 日本国女王として、夜の国際交流事業に従事して頂きます。 【具体的には】 英国大学に通学の上、喫煙・飲酒およびあらゆる人種との性行為などの業務に従事し、 写真や日記にコンテンツ化した上で、所定のブログおよびmixiを更新して頂きます。 作成されたコンテンツはブログ経由のインターネットを通じて、全世界に配信されます。 【応募要件】 ・不労所得で生活をされたい方。 ・ゲイに恋をする方歓迎。 ・黒人・白人・黄色人種のコックに興味がある方歓迎。 ・肌が浅黒く小太りの方、容姿がゴリラに類似している方歓迎。 ※各種風俗嬢経験者優遇致します。 ※Uターン、Iターン歓迎致します。 【労働条件】 勤務地 イギリス(当初配属先)、東京23区、他全国・全世界出張有。 勤務時間 9:00~17:00(実働7h) 給与 年俸制600万円以上(入家1年次)※国税から捻出され、所得税が免除されます。 ※一定基準を満たせば天皇に昇格する制度有。 【待遇・福利厚生】 各種社会保険完備、交通費支給、各種手当全額支給、寿退職金制度(上限1億5000万円) 【休日・休暇】 週休7日制、有給休暇、連続休暇、介護・育児休業 【募集理由】 前任者が週刊文春に掲載された上、性病に感染したため。
103 :
53 :2007/02/03(土) 07:04:00
今ログを読んでた …ウチの商業高校は基本情報の初年度の時 COBOLで受けさせられたのを思い出した Javaデ受ケタカッタナー
105 :
デフォルトの名無しさん :2007/02/03(土) 14:04:50
beansのクラスメンバー変数宣言のすぐ上に @Control という記述がありました。 どのような働きをするものですか?
WebLogicか? Beehiveか? @で始まるのはTigerで導入されたAnnotationと呼ばれるもの。 メソッドやクラスに任意の属性を付け、他のツールから利用したりする。
107 :
デフォルトの名無しさん :2007/02/03(土) 15:17:52
>>107 インスタンスをストリームで送受信したり、ファイルに保存したりすること。
Serializable は、その機能を持つクラスであることを示すインタフェース
#自作クラスでは「必要になると」要実装であり、手間がかかるヤツ
>>107 簡単にいうとスタートレックに出てくる転送機のことだよ
)、._人_人__,.イ.、._人_人_人 <´ お 金 返 し て っ !! > ⌒ v'⌒ヽr -、_ ,r v'⌒ヽr ' ⌒ // // ///:: < _,ノ`' 、ヽ、_ ノ ;;;ヽ // ///// /:::: (y○')`ヽ) ( ´(y○') ;;| / // //,|::: ( ( / ヽ) )+ ;| / / // |::: + ) )|~ ̄ ̄~.|( ( ;;;|// //// /// :|:: ( (||||! i: |||! !| |) ) ;;;|// /// ////|:::: + U | |||| !! !!||| :U ;;; ;;;| /// ////|::::: | |!!||l ll|| !! !!| | ;;;;;;| //// // / ヽ::::: | ! || | ||!!| ;;;;;;/// // // // ゝ:::::::: : | `ー-----' |__////
あまりに初歩的な質問ですいません。例えば int linecount = 0, i = 0; for (; i < len && linecount != line -1; i++) {... ↑ この単独のセミコロンは、どういった意味になるのでしょうか? お願いします
>>111 ループ開始前の処理がないってことを意味する。
>>111 for文の初期化コードの最後を表すデリミタ
>113教える才能ないな・∀・)
for文は中身が省略して書くことができる。 で、 int linecount = 0, i = 0; for (; i < len && linecount != line -1; i++) {... これは始めに初期値を設定してるからわざわざ for (i = 0; i < len && linecount != line -1; i++) {.. って書く必要がないってばっちゃがいってた.
すいません、技術的な話ではないのですが・・・ 仕事でなく趣味でJavaを書いてる人にお聞きしたいのですが 普段何を作ってらっしゃるのでしょうか? PC向けのフリーソフトなんかでJavaで書かれてるのはあまり見ない気がするし Javaの人口に比べれば携帯アプリも少ない気がするし、 webサーバーで動くプログラムでも書いてるのでしょうか
スレ汚しすま(自分と同じトラブルにあってサポートに「そんな事例はありません」といわれ 泣き寝入りしている人の為に以下の情報を残します。) J-COMが提供しているマイシールドがバージョンアップされたがそれを適用した所、 ・マシン終了時、ハングアップして終了しない ・次のマシン起動以降、3~5分でsvchost.exeが死にマシンがまともに動かなくなる。 (マウスカーソル以外動かない状態になる。) またIEなどでインターネットを見ていたとして、見えなくなってしまう。 なんとかマイシールドをアンインストールしたが、それでも挙動はおかしいまま変わらない。 WindowsXPHomeを再インストールしまともに動いている所に、またマイシールドをインストールしたら また同じ挙動になった。 ※ マイシールドが入っている状態で、無効化すると5分以上過ぎてもまともに動いていた。 こんな現象に出会った方、J-COMにちゃんとクレームしましょう。 (クレームが入っていない、と言い張っているが、少なくとも私はクレームしました。)
>>116 俺は主にiアプリを作るためにJavaやってる。
今までに作ったのは自分の趣味に関係するiアプリで知り合いにしか公開してない。
あと暇つぶし用の自分で考えたゲームのiアプリとか。
J2SEでは表計算くらいしか作ったことはない。
昔J2EEもやろうとしたけど結局PHPで作ってしまってほとんどやってない。
>>111 なんだか美しくないコードだ。
どうせならwhile文にすればいいのに
つうか、linecountとiの宣言をそのセミコロンの左に
いれてもいいのに。
わざとそうやっているということは、それら二つの変数を
for外部でも使っていると言うことだな?
ちょっとソースコードが汚い。
CheckstyleやFindBugsでソースコードを
調べた方が良いと思う。
・ 。 _ ・ . ・ ___ノ。。\____ ー_  ̄_--ノ ┏━━━━━━┳━━━━━━━━━━━━━━┓ ┃⇒ コピペ ┃馬鹿か゛ あらわれた。 ┃ ┃ 氏 ね ┃と゛ うする?▼. ┃ ┃ 逝 け ┃ ┃ ┃ ROM. ┃ ┃ ┗━━━━━━┻━━━━━━━━━━━━━━┛
ファイル転送機能を実装してみようと思っていろいろ調べているんですが、どこまで送れたかを表示しながら送信する方法が分かりません…。 プログレスバーが進んでいって100%で送信完了、ってのがイメージです。 受信の方はInputStreamのavailableメソッドを使えば書けそうなんですが、送信がよく分かりません…。NIOを使うしかないんでしょうか? Java Network Programming(ちょっと背伸びして新しい英語版を買ってみたもののまだ読めてません…)を眺めていたら、nioはHTTPサーバーみたいにコネクションが乱立してスレッドたててらんないときだけ使え、って書いてあったので躊躇しています。 よろしくお願いします。
>>122 ググレ、プログレスバーの部品ならあるぞ
125 :
ぴゅあ :2007/02/04(日) 00:38:31
>>122 プログレスバーはAWTには無いはずだが、Swingには有る。まぁ自作も可能。
あとは、必要な情報を全部自分で仕込めば問題なし。
生ソケットでやるなら、最低限、ファイルサイズを送るプロトコルを実装しないと
受信側は割合を知ることは出来ない。等など…
HTTPを使うなら、送信側の設定にもよるが、それから取得すればよいかと。
127 :
122 :2007/02/04(日) 01:04:48
>> 124, 125, 126 あんまり環境依存にはしたくないのでJNIは使いたくありません。 GUIはSWTでやるつもりです。PureJAVAじゃありませんが、まぁ主要なところは大体対応しているのでいいかと…。 スレッドを立ててBufferedOutputStreamのcountを監視しながら送り込むとか、そんな感じになるんでしょうか。 自分でいろいろ作らないといけなそうですね。ObjectInputStream/ObjectOutputStreamとかが使えると楽そうだと思ったんですが。 がんばってみます。ありがとうございましたm(_ _)m
>>125 JNI使わなくても出来るよ。やっぱぴゅあ様って馬鹿だな。
人 人 人 人 ( ゚ー゚) ( ゚ー゚) ( ゚ー゚) ( ゚ー゚)  ̄ ̄  ̄ ̄  ̄ ̄  ̄ ̄ ┏━━━━━━┳━━━━━━━━━━━━━━┓ ┃⇒ コピペ ┃煽りか゛ あらわれた。 ┃ ┃ 氏 ね ┃と゛ うする?▼. ┃ ┃ 逝 け ┃ ┃ ┃ ROM. ┃ ┃ ┗━━━━━━┻━━━━━━━━━━━━━━┛
131 :
111 :2007/02/04(日) 01:35:03
色々 アドバイス さんくすでした~
>>125 お前、恐らく、古いJavaの本を読んで発言しているだろ。
「Javaの落とし穴」とか読んでないか?
133 :
124 :2007/02/04(日) 01:47:05
>>127 SWTのほうが環境依存しているだろうが馬鹿。
PureJavaなプログレスバーがあるからググれと言っているんだ
134 :
124 :2007/02/04(日) 01:48:02
>>130 ぴゅあはAA厨だったのか。
たまにでるカツオの親父のAAも奴が犯人だと?
135 :
127 :2007/02/04(日) 02:19:06
>>133 SWTなら主要なOSはカバーしてるからとりあえずはいいかと思っています。Swingは見た目が好きになれなくて。GUIはちょっとずつ分かってきたんですが、ネットワーク部分がよくわからなくて質問しました。主旨が伝わりにくくてすみません。
ファイルのバイト数とかを送ったりしないといけないみたいですが、プロトコルを自作するにあたって参考になる本とかってありませんか?
Look&Feel 変えないの?
>>135 > プロトコルを自作
そりゃ Java の話題じゃないな。
138 :
デフォルトの名無しさん :2007/02/04(日) 04:39:10
夜分遅く失礼します。 蓄積したメールの集まりからメールから必要な情報(主要ヘッダや本文)を 抜き出したい時どうすればいいんでしょうか? メールは.mbox形式で1通1ファイルで保存しています。
企業の使いっぱしりの方にお聞きしたいことがあります。 UMPCや、それを気取ってる小型PC、W-ZEROなどでJavaを使いたい(プログラムを書く)のですが、可能ですか?
質問します。 windows環境で接続しているドライブをすべて表示させたいのですが どうすればいいでしょうか? char driveLetter; String drive = new String(); for(driveLetter = 'A'; driveLetter <= 'Z'; driveLetter++){ drive = String.format("%c:\\", driveLetter); File file = new File(drive); if(file.exists()) System.out.println( drive + "ある"); } 上記のようなものを考えてみたのですが、こうするとドライブに メディアが入っている物のみがif文に引っかかってしまいます。 なにか方法を教えていただければ幸いです。
>>140 File.listRoots() はどう?
使い勝手のいいテキストエディタ教えて ターパット?使いにくい
143 :
デフォルトの名無しさん :2007/02/04(日) 12:54:45
6桁の16進文字列(000000~FFFFFF)をColorオブジェクトにするメソッドって標準で用意されていますか。 また、逆に変換(Colorオブジェクトから6桁の16進文字列)するメソッドも存在するのでしょうか? ↓こんな感じのやつです public static Color getColor(String str) { Color retColor = Color.WHITE; if (str != null && str.length() == 6) { String rStr = str.substring(0, 2); String gStr = str.substring(2, 4); String bStr = str.substring(4, 6); try { int redInt = Integer.parseInt(rStr, 16); int greenInt = Integer.parseInt(gStr, 16); int blueInt = Integer.parseInt(bStr, 16); retColor = new Color(redInt, greenInt, blueInt); } catch (Exception e) { retColor = Color.WHITE; } } return retColor; }
Color.decode(String)かな。
apiリファレンス見ればいいと思うよ 逆はなさそう
逆はgetRGBしてformat("%02x%02x%02x")に食わせるのかな。
147 :
143 :2007/02/04(日) 13:29:47
逆を作ってみた int redNumber = color.getRed(); int greenNumber = color.getGreen(); int blueNumber = color.getBlue(); redNumber <<= 16; greenNumber <<= 8; int retInt = redNumber + greenNumber + blueNumber; String retStr = Integer.toHexString(retInt); for (int i = retStr.length(); i < 6; i++) { retStr = "0" + retStr; } return retStr; 解答して頂いた方々のご意見を参考に最適化してみます。 ありがとうございました。
>>139 無礼にも使いっ走りとレッテル張られて
まともに答える香具師はいないと思うぞ。
149 :
124 :2007/02/04(日) 13:39:25
151 :
デフォルトの名無しさん :2007/02/04(日) 14:16:10
俺の非力なマシンじゃ、 Eclipseは相当きつい。
Emacsでいいじゃん
154 :
デフォルトの名無しさん :2007/02/04(日) 15:01:33
>>151 レスありがとうございます。参考にします。
サンクス! エディタって色々あるんだなぁ ちょっくら探してきます
157 :
デフォルトの名無しさん :2007/02/04(日) 15:29:26
そもそもターパットって何だ?
159 :
135 :2007/02/04(日) 15:39:23
>>136 ,151
SwingでもSkinで外見が変えられるんですね。
そのうちチャレンジしてみます。
でも中途半端に似ている分かえって怪しいような気も…(笑
ターパットw
時代遅れなオバサンがつける肩パッドかw
163 :
デフォルトの名無しさん :2007/02/04(日) 16:10:27
こんにちは、質問です。 フォルダを指定して、その中にあるファイルの内容を 表示したいのですがどう書けばいいのでしょうか?
164 :
デフォルトの名無しさん :2007/02/04(日) 16:14:54
画像処理プログラムの実行時間とメモリ使用量を測ろうと考えています。 以下の方法に対してアドバイスをいただけるとうれしいです。 ・実行時間測定方法 cygwinを使ってtime関数を用いて実行時間を測ろうとしていたが java自体の起動時間もカウントしてしまうために少し遅い値が算出されてしまう。 そこで long l1 = currentTimeMillis(); for(int i = 0; i < n; i++) 処理プログラム; long l2 = currentTimeMillis(); のようにして計算した値をnで割ったものを実行時間とする ・メモリ使用量測定方法 処理プログラム中の何カ所かで使用量を出力し、その最大値をメモリ使用量とする。 このようにすれば実行時間とメモリ使用量は求められますが、 入力する画像のピクセル数によって異なってきます。 ですから実行時間とメモリ使用量をピクセル数で割って s/ピクセル、KB/ピクセルの値を求めることも考えられますが 値が小さくなりすぎてしまいます。 画像を扱うプログラムでの実行時間とメモリ使用量は どのように表せばいいのでしょうか?
>>163 フォルダの中にあるファイルの一覧を表示(ってprintすればいいのか、
フォルダを開きたいのか、他の表示方法がいいのか?)するんじゃなくて、
ファイルの内容を表示するの?
>>164 分子を大きくするか分母の数字を小さくすれば?
nanoTimesなりByteなり、KピクセルなりMピクセルなり
168 :
163 :2007/02/04(日) 16:33:23
レスありがとうございます。
>>165 ローカルにあるフォルダを開きたいです。そこでファイル総数やファイル中の
情報等を取り出して表示するのが目的です。
>>166 失礼しました。いえ、むしろ
>>138 の続きです。POPサーバに接続せずに
メール保存用のフォルダからメールデータを読みたいんです。この場合の
SessionとgetFolder()の関係がわからなくて質問しました。
169 :
53 :2007/02/04(日) 16:55:12
JAVAを勉強して、フリーのプログラマーなるのは可能でしょうか。
60の意味が分からんようじゃ厳しいな
172 :
デフォルトの名無しさん :2007/02/04(日) 16:59:19
>>169 技術も資金も営業も一人でやるというならフリーでもやれるんじゃない?
ま、しょぼい仕事しかないけどな。
class append { String str; String cookie (StringBuffer stb){ str = stb.append("kie").toString(); return str; } String cook (StringBuffer stb){ str = stb.append('k').toString(); return str;} } public class wordAppend{ public static void main(String args[]){ final StringBuffer sb = new StringBuffer("coo"); append ap = new append(); System.out.println(sb.toString()+" "+ap.cookie(sb)+" "+ap.cook(sb)); } } 実行すると coo cookie cookiek という結果になるのですが、 coo cookie cook という結果を出すにはどこを変えればいいですか?
>>176 こういう命名法を見ると標準表記は遵守より必須だと思ってしまう
とりあえず mainめっそどに有る sb の値を逐一出力してみたら?
もちろんprintlnの中は一つ一つ分解して。
>>141 140です
listRoots()を使い無事解決できました。
ありがとうございます
>>176 class AppendUtil {
String cookie (String str){
return str + "kie";
}
String cook (String str){
return str + "k";
}
}
public class WordAppend{
public static void main(String[] args){
String str = "coo";
AppendUtil ap = new AppendUtil();
System.out.println(str
+ " "
+ ap.cookie(str)
+ " "
+ ap.cook(str)
);
}
}
>177 System.out.println(ap.cook(sb)); System.out.println(ap.cookie(sb)); とすると 結果は cook cookkie となって、前に実行したメソッドの結果を後のメソッドの引数が 受け継いでしまう(?)のですが、そうならないようにするにはどうすればいいか わかりません。final 修飾子で sb を固定すればいいのかと思ったんですが... 標準表記については今後気をつけます。 >179 すみません、append()が使いたいんです。
>>180 final の効果は、その変数が一度しか代入されないことを縛るだけ。
その変数が参照型なら、インスタンスの内部で保持している値なり、
配列の各要素なりは変更可能。
StringBuffer.append は「内部で保持している値」を変化させるため
値を変えたくないならば、コピーするしかない。
#そもそも
>>176 のような結果を得たいのにappend を使うこと自体…
>>180 public class WordAppend{
public static void main(String[] args){
String str = "coo";
AppendUtil ap = new AppendUtil();
System.out.println(str
+ " "
+ ap.cookie(str)
+ " "
+ ap.cook(str)
);
}
/** Creates a new instance of WordAppend */
public WordAppend() {
}
}
class AppendUtil {
String cookie (String str){
StringBuffer sb = new StringBuffer(str);
return sb.append("kie").toString();
}
String cook (String str){
StringBuffer sb = new StringBuffer(str);
return sb.append("k").toString();
}
}
>>180 class append {
String str;
String cookie (StringBuffer stb){
StringBuffer sb = new StringBuffer(stb);
str = sb.append("kie").toString();
return str; }
String cook (StringBuffer stb){
StringBuffer sb = new StringBuffer(stb);
str = stb.append('k').toString();
return str;}
}
public class wordAppend{
public static void main(String args[]){
final StringBuffer sb = new StringBuffer("coo");
append ap = new append();
System.out.println(sb.toString()+" "+ap.cookie(sb)+" "+ap.cook(sb));
}
}
宿題は宿題スレで
185 :
168 :2007/02/04(日) 19:41:49
Fileクラスを使ってリストは出せたのですが総数と言うことになると リストを自分でカウントしなければならないでしょうか? あともうひとつ質問です。 フォルダ内のファイル中の単語を抜き出してカウントまたは、判定を行いたい のですが(例えばファイル内に時刻が記述されてて特定の時間はAグループ、 別の時間ならBグループなど)この場合はどんなクラスを使えばいいのでしょうか?
>>185 listFilesを使ってると思うが、ディレクトリも込みなので
isFileでカウントすればヨロシ
行単位でよければ、BufferedReader.readLine で読み取る。
後は正規表現クラスなりStringの機能なりでチェックすればヨロシ
#まあほかにもいろいろ方法はあるだろうが…
www.softbeat.co.jp
188 :
デフォルトの名無しさん :2007/02/04(日) 20:21:27
>>186 レスありがとうございます。総数取れました!てかlistFiles使ってませんでした・・・
これのlengthとかで普通に出来ますね。。。不出来過ぎて恐縮です。
>BufferedReader.readLine で読み取る。
うーむ、頭の中で理解できてないと言うかファイル配列の中をただずっと
読んでいく(=1つ1つのファイル関係なく)様なイメージなのでしょうか?
これがわかれば正規表現は学んだのでいけそうです。
完全な初心者です プログラムの実行を一定時間とめたい場合はどうすればいいですか? 調べてもスレッドの止め方しか見つからず・・・
191 :
189 :2007/02/04(日) 20:58:59
メインの処理をワンテンポづつずらしながら行ないたいのです スレッドを使う以外方法は無いのでしょうか?
おいエスパーコールだぞ
デバッガ使ってステップ実行とかそういう話かね。
コンソールアプリ? GUIアプリ? アプレット? サーブレット?
class Test{ public static void main(String args[]){ for(int i = 0; i <10; i++){ System.out.println(i); (何らかのとめる操作); } } } ってことかい?
196 :
189 :2007/02/04(日) 21:33:45
>195 それです ・・・って普通に Thread.sleep() でいけるのですね・・・スミマセン レスを見て雰囲気で解決しました。ありがとうございます
197 :
188 :2007/02/04(日) 22:07:58
なんだか頭混乱してきました。 Fileクラスからフォルダを指定して、その中にある複数のファイルを readLineで一行づつ読んでいくことは可能なんでしょうか?
>>197 1:File#list でフォルダ内のファイルを列挙
2:readLine で1行ずつ読む
何に混乱している?
199 :
デフォルトの名無しさん :2007/02/04(日) 22:55:49
今、実行したら次の動作をするJavaプログラムを作ろうとしています。 1.SetUpファイルを起動し、セットアップウィザードウインドウを表示する。 (これは、既存のEXEファイルを起動するだけ) 2.そのウィザードを立ち上げたときにフォーカスがあるテキストボックスにパスワードを 入力する。 EXE立ち上げは上手くいきますが、パスワードの入力が上手く行きません。現在のソース は以下のとおりです。 String StrPath = "C:/KIKUYAEDITER/setup.exe"; Runtime r = Runtime.getRuntime(); Process proc = r.exec("cmd /c start " + StrPath); Thread.sleep(5000L); //念のためセットアップ画面起動の時間を確保。 OutputStream ostr = proc.getOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(ostr)); char CPW = '1'; //とりあえず一文字入力する方法を探しています。 bw.write(CPW); bw.flush(); どなたか助けをください。よろしくお願いします。
java.awt.Robotでも使えば何とかなるのかも知れないと思ったが、 座標が分からないと無理か。
201 :
199 :2007/02/04(日) 23:12:34
>200 座標ですか?立ち上げたときにフォーカスがあるところに 入力してくれればいいのですが。 でも、いいヒントになるかも知れません。ROBOTを調べてみます。
>>199 あるプロセスの標準入力に叩き込んでも、
キーボード入力がアクティブになってるところには表示されないんじゃないかなぁ
あとは、その取得できるプロセスは cmd なんじゃ、とか思ってみたり…
203 :
53 :2007/02/04(日) 23:16:23
JavaでNintendo DSのソフトを作るフリープログラマか。
205 :
199 :2007/02/04(日) 23:41:16
>200 Robot robot = new Robot(); robot.keyPress(KeyEvent.VK_1); で"1"が入力できました。これで解決できそうです。 ありがとうございます。
起動したexeの画面にフォーカスが行ってるから、マウスの位置あわせ とか考えなくても、キーイベント投げるだけで入力できるってとこかな。
ちゃんとキーを離してやらないとなんとなく気持ち悪い
フォーカスさえ行ってればロボットで書けるのか
210 :
デフォルトの名無しさん :2007/02/05(月) 11:08:55
数値入力して動かすアプレットがあります 起動直後は数値として何も入力されておらず空白です この空白部分にこちらの指定する数値が入った状態で 起動させるにはどうすれば良いですか? また、プルダウンメニュー方式にして あらかじめ指定した数値から選択できるようにするにはどうすれば良いですか?
initでsetTextするだけ。セットする値は、ソースコード中に 直に書いてもいいし、param要素から拾ってもいい。 メニューはAWTだとChoice、SwingならJComboBox。 なお、これらは厳密にはプルダウンメニューとは呼ばない。 (Menu/JMenuならプルダウンメニュー)
フリーでオススメのJava bluetooth APIの実装教えてください
手持ちのJAVA入門書が2004年発行の少し古いものなのですが 新しいものを手に入れないとまずいことはありますか?
入門レベルなら大差ないといいたいところだが、 Generics(ジェネリクス)は載ってる? JDK1.4(Tiger)の正式リリースが2004年9月だから 載ってないかもしれんな。
×1.4 ○1.5
TigerにはGenerics以外にも結構な量の文法の追加があるから、1.4ベースの テキストだと面食らうことがあるかもしれんね。(拡張forとかauto boxing/ unboxingとか) 仕事でいじるようなコードだとまだ1.4ベースがザラにあるが。
>>213 新しいことは載ってないかもしれないけど
学ぶべき基本の多くはその本で十分だと思うよ。
ジェネリクスとかはその本が終わってから
どこかのサイトで学べばいい。
220 :
213 :2007/02/05(月) 15:58:04
見たところTigerは巻末に取ってつけたように触れられているって感じでした とりあえずこの本で基礎を学ぶことにしました みなさんアドバイスありがとうございました
JTextAreaメモ帳を作り、入力された文字列をtxtファイルに書き込みたいのですが、 改行も含めて同じようにファイルに保存するにはどのようにすればいいでしょうか? 簡単でいいので手順など教えてください。よろしくお願いします。
>>221 まずどうやって駄目だったか聞かせて欲しい。
なぜなら普通にやれば、改行ごと保存されるはずだからだ。
>>222 レスありがとうございます。
String str = jTextArea1.getText();
で取得したのですが、そのあとのファイルへの
書き込みの手順のようなものがよく分かりません。
お願いします。
File I/O について 勉強してみれば? ネット上の講座に 幾らでも書かれてるよ?
>>223 書き込み手順が良く分からないというより、全く想像がつかない、でOK?
226 :
デフォルトの名無しさん :2007/02/05(月) 21:49:34
JFileChooser jfc = new JFileChooser(); jfc.showSaveDialog(null); File f = jfc.getSelectedFile(); FileWriter w = new FileWriter(f); w.write(str,0,str.length()); w.close(); 余計なの省いたらこんな感じ? もちろんコンパイルが通るかとか確認してない。
228 :
デフォルトの名無しさん :2007/02/05(月) 22:00:44
>>227 ありがとうございます。
ちょっと今は確認ができないのですが、
参考にさせてもらいます。
ありがとうございました。
229 :
157 :2007/02/06(火) 01:21:34
はじめまして。 今クエリー文字などについて調べているんですが、ちょっと質問させてください。 gooやexcite以外で、同様にJavaプログラム中からクエリー文字列で検索できるサーチエンジン てあるんでしょうか? もし知っている人がいましたら、どうぞ宜しくお願いします。
>>229 Javaがどう絡んでくるかよくわからんが
Googleは、GoogleAPI用のJavaライブラリあるよな。
GETメソッドで検索が出来るって言う意味ならそれは検索エンジンの数ほどありそう。
名前欄は見ただけにしておく。
はじめまして。 サーバー上に保存しているファイルをダウンロードを実現する際、 大きいファイルだと書き込み途中で(?)、 IEのファイル保存のダイオログが出てきて、それをキャンセルすると、 "Broken pipe"という入出力のエラーが発生します。 このエラーを回避する方法ってあるでしょうかね? キャンセルを認識させることはできない気がするんで、 ダウンロードを実現する方法を変えた方がいいんでしょうか? もしよろしければ、その方法を教えてください。お願いします。
232 :
229 :2007/02/06(火) 01:42:58
>>230 回答有難うございます。
なるほど~、GETメソッドで検索できる検索エンジンはそんなにあるんですね!
もう一度自分で調べなおしてみます。
あと、名前欄のスルーしてくださって有難うございました(苦笑)
>>231 それのどこにJavaの部分が関係あるのでしょうか?
234 :
ぴゅあ :2007/02/06(火) 02:36:02
235 :
ぴゅあ :2007/02/06(火) 05:55:18
import文を書くときに『いmぽ』ってなってキモいのでどうしたらいいでつか?
236 :
ぴゅあ :2007/02/06(火) 07:35:40
ウェブから画像を取ってきて表示するアプリで、現在
pic.setIcon(new ImageIcon(new URL("
http://www. ~.jpg")));
のようにして取得して表示しています
この画像は一定時間で切り変わるので、
それに合わせてアプリ上でも変更したいのですが上手くいきません
上の文を15秒程度で再実行、のようにしてるのですが
表示されるのはずっと同じ画像で・・・
これはどう対処すればいいのでしょうか?
>>237 URL#openConnection()
URLConnection#setUseCache(false)
ByteArrayOutputStream#toByteArray()
239 :
237 :2007/02/06(火) 13:43:40
色々検索してみたけど難しいです・・・ もう少し説明を下さい・・・
URLConnection con = new URL("
http://www. ~.jp").openConnection();
con.setUseCaches(false);
InputStream in = con.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
while(true){
int len = in.read(buffer);
if(len < 0) break;
out.write(buffer, 0, len);
}
ImageIcon icon = new ImageIcon(out.toByteArray());
現在IIS+Tomcat4.1という環境でServlet+JSPに統合Windows認証を組み込んで動かしていますが、 認証後にユーザアカウントを取得しようとしても HttpServletRequest#getRemoteUser()→nullが返ってくる ヘッダを覗く→暗号化されてる(統合Windows認証の仕様らしい) という状況でユーザアカウントの取得方法がわからず苦戦しております。 何かヒント等いただけませんでしょうか。
>>216 そこらへんはちょっとサイトでググレばどうにかなるレベルだから
心配無用な気がする。
問題は、Genericsクラスの自作方法。
これがかなりムズい
バカだからね
アノテーションの自作方法と、自作アノテーションの使い道はいまだによく分かりません。
245 :
デフォルトの名無しさん :2007/02/06(火) 18:35:02
String strがローマ数字I~IXのみで構成された文章だったら真、 それ以外の記号や文字が入っている場合だったら偽を返す条件式を作りたいんですけど どうすればいいんでしょうか? 文字コードで範囲指定すると思うんだけどなかなか通らない・・・
通らないコードくらい書けよ
ローマ数字は1文字のやつ? IIIとかIXとかASCIIを並べたものも受理する?
248 :
デフォルトの名無しさん :2007/02/06(火) 19:06:27
>>246 static boolean isRoman(String str){
if(0x2160 <= str <= 0x2168){
return true;
}
else{
return false;
}
演算子が未定義ですって言われました
>>247 一文字だけ
並べたものは今回の仕様ではスルーして構わないようです
249 :
デフォルトの名無しさん :2007/02/06(火) 19:16:58
<=あほ<=あほ
249<=あほ<=あほ
0x2160 <= str && str <= 0x2168
a <= x && x <= b
>>251-252 トンクスです
でもやっぱり演算子が未定義って言われる・・・
ぷろぐらむの他の部分が違ってるのかな
もう少し見直してみます。ありがとうございました。
254 :
デフォルトの名無しさん :2007/02/06(火) 19:32:58
249<="あほ"<="あほ"
>>253 Stringじゃなくてcharで比較しないと
for (char c: str.toCharArray()) { if (c < XXX || YYY < c) { return false; } } return true;
return Pattern.matches("[1-9]+", str);
Java初心者の質問ですがお願いします。 SWINGでボタンのある画面を作り、そのボタンから 別のウィンドウを表示するというプログラムを作ったのですが、 別ウィンドウの表示時にモーダルにして、メインの画面に触れないように するにはどのようにすればいいですか?
>>258 別ウインドウを表示した時にメインウインドウをsetEnabled(false)してやり、
別ウインドウを閉じる時にメインウインドウをsetEnabled(true)する。
面倒さがないのは別ウインドウをモーダルダイアログにしてやることだが。
>>259 ありがとうございます。
別ウィンドウはJTextAreaを使っているのですが、
モーダルダイアログでもテキストエリアを表示することは
可能なんですか?
>>260 JFrameでできることの多くはJDialogでできるはず。
>>243 おい、そんな簡単に作れるのかお前に。
バカじゃないっていうんならJakarta Commons Collectionsの
Generics対応版開発に協力してリリースを早めてくれ。
こっちひあ待ちくたびれているんだよ。
Sourceforgeにあるベータ版に近いものしか使えないし。
まだまだ未完成なんだよGenerics対応版Collectionsは。
おれはGenericsなクラスは、本当に単純なものしかつくれない。
ArrayListやHashMapみたいなものを実装するなんてとんでもなく難しいぞ<>括弧だらけにんって大変だ。
ソースコード見てみろ。あんなものを実装するなんてかなり、頭がよくないと難しい。
>>244 アノテーションのほうが簡単だと思うが。
というおれはまだろくに使ったことがないが。
@Depricatedや@OverrideやJUnit4の@Test,@Beforeばかり使っているなあ
使い道としては、クラスの中にメソッドが多すぎたときにメソッドを識別するのに使えそうだな。
それに、使い方によってはpublicやprivateなどのようなモディファイヤ(修飾子)を
定義するようなこともできるかもしれない。
どっちみち、アノテーションを使えばXDocletがいらなくなることは自明だろう。
きみ、ちょっと頭悪そうに見えるから、 もうすこし、かしこく見られる努力をするといいよ。
264 :
デフォルトの名無しさん :2007/02/07(水) 10:40:13
import java.io.*; class hiro { public static void main(String args[]) throws IOException { System.out.println("1~10までの偶数のみ出力します。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br readLine int komo = Integer parseInt(str); if((komo%2) == 0) {System.out.println(komo); } else {System.out.println("偶数を入力してください。") continue;} } } これエラー出るけどなんで??
ループ分の伴わない continue
mainの中身をさらに while (true) { } で囲む。
267 :
デフォルトの名無しさん :2007/02/07(水) 10:53:44
ありです!!
なしです。 アリコロリもつけます。
class Dentaku { void tasizan(int a,int b) { System.out.println(a+"+"+b+"="+(a+b)); } } class MyClassc { public static void main(String args[]){ Dentaku dentaku1 = new Dentaku(); …① int a; int b; a = 1; b = 1; dentaku1.tasizan(); } } ①の部分の最後になぜ()がつくのかがよくわからないので 教えていただきたいです。
+は左結合の演算子なので、括弧を付けない場合は、 ..."="+a+bの左側にある+が先に計算されて、文字列結合になってしまう。 あと、tasizanの呼び出し時の引数間違ってるぞ。
>>269 ①の () は、それがjavaの 文 法 だから。
272 :
デフォルトの名無しさん :2007/02/07(水) 12:40:12
N元連立1次方程式をjavaでプログラムを作りたいのですがどうしてもできません。 教えてください。
273 :
デフォルトの名無しさん :2007/02/07(水) 12:52:09
N元連立一次方程式が理解で来てないなら理解してから来い
スクロール付きのテキストエリアで、 文字列を追加していって枠の範囲を超えると 表示は古いものが表示され続けてしまいます。 新しく追加した分を自動的に表示したいのですがどうすれば出来ますか? 今はappendで先頭に追加しています けれど表示は末尾が表示され続けています
>>263 おまえ
>>243 と同一人物か。
お前も賢く見られたければ
何かいいたいことかけ。
どこぞの馬鹿が煽るためにわざと
他人のレスをどっかから
コピペしてるだけにしかみえないから、
>>262 について何か言いたいことがあるなら
トリップ付けて欲しいな。
本人は >何かいいこと 書いてるつもりみたいね。
277 :
デフォルトの名無しさん :2007/02/07(水) 19:19:29
極座標の情報(距離と角度)からx座標とy座標を得たいのですが、 どう書けばいいのでしょうか? y = r*sin(θ); x = r*cos(θ); ですがsin()やcos()はありませんよね。。。
>>277 java.lang.Math.sin()
java.lang.Math.cos()
>>277 import static java.lang.Math.sin;
import static java.lang.Math.cos;
JDK1.5より前なら上のようには書けず、
Math.sinとかMath.cosとか書く必要がある。
280 :
デフォルトの名無しさん :2007/02/07(水) 19:28:35
281 :
デフォルトの名無しさん :2007/02/07(水) 19:38:59
インターフェースの例としてポリモーフィズムをあげられ 猫がニャーで犬がワンと鳴かれても全然現実的でなくて メリットが全然理解できません 参考になるものありませんか?
>>281 JavaSEが参考になる。
java.util.Comparatorの使い方とか、
SwingのJList、ListModel、AbstractListModel、DefaultListModelの関係を見るといいよ。
283 :
デフォルトの名無しさん :2007/02/07(水) 19:51:30
284 :
デフォルトの名無しさん :2007/02/07(水) 21:32:39
JAVAで携帯とかパソコンで動く簡単なゲームを作りたいんですが、 特別なソフトがいるんでしょうか? あとそういうやつについていい参考書があればお願いします。
しるかボケ!
>>274 swingならJTextArea.setCaretPosition(JTextArea.getText().length());
>>284 携帯は携帯専用スレに逝け
このム板で携帯で検索しろ
PC用については、まず
>>1 を嫁
質問させてもらいます。 Fileクラスを使って作成したフォルダに 同じくFileクラスを使って作成したファイルを 入れるのにはどうすればいいですか? お願いします。
もとからそのフォルダにつくるかmoveしろハゲ
291 :
デフォルトの名無しさん :2007/02/07(水) 23:51:21
>>287 べろべろばー うほほほほ
おチンチンびろーん ∩___∩
∩___∩ | ノ ○─○ヽ_∩__∩ おばびげぶがべべべ
| ノ ヽ/⌒) / /3 3 | ヽ
/⌒) (゜) (゜) | .| | ( _●_) |o⌒ ⌒o|
/ / ( _●_) ミ/∩―-、 |∪| /⌒(_●_)⌒ ミ
.( ヽ |∪| / / (゜) 、_ `ヽ ヽノ | |∪| /
\ ヽノ / / ( ● (゜) |つ ∩. ヽノ∩
/ / | /(入__ノ ミ | ノ⌒ ⌒ヽ
| _つ / 、 (_/ ノ / (。)(゜)|
| /UJ\ \ \___ ノ゛ ─ー| (⌒_●⌒)ミ
| / ) ) \ _彡、/ |U UU_/
∪ ( \ \ \ | | ||
\_) あびゃばばばだーん . .| |nn _nn|| あひゃひゃひゃひゃひゃ
292 :
デフォルトの名無しさん :2007/02/08(木) 00:51:58
javaアプレットを政策してクライアント側で 実行できるようなプログラムを制作すると 基本的にはファイルの読み書きのような操作を することができません。 その理由を詳しく述べなさい 学校のレポートで出たんですが、教えていただけないでしょうか 調べても短い説明しか出てこず 詳しく述べることができませんorz
>>292 おれも短い説明しか出来ない
つ サンドボックス
いろんなファイル情報盗まれたり、変な風に書き換えられたら困るよね っていうことじゃね?
>292 ページ開いたら自動的にPCのデータ削除されたりしたら困らんか? 入出力系のバッファサイズは大きいほうがいいのですか? データのコピーなどのソースではせいぜい8kb程度なので やはり適切なサイズの決め方などもあるのでしょうか?
int bufferSize = (int)Math.min(8*1024, file.length()); // データサイズが既知の場合
297 :
デフォルトの名無しさん :2007/02/08(木) 01:31:31
>>293 調べてみます
>>294 どんなに調べてもその程度の文章しかでてこないんですよ・・・
>>295 その通りです。
おそらくそういう意味ではなく、仕組み的な意味で聞いてるのかも?
>>296 ありがとう
>>297 仕組み云々じゃなくて
アプレットのルールを決めている場所がそう制定している
一定のセキュリティを保つための制限なんだよ
299 :
デフォルトの名無しさん :2007/02/08(木) 02:21:10
JtextFieldってStringにキャストできないのですか?
300 :
ぴゅあ :2007/02/08(木) 02:30:22
JNI使わないと無理ですよ JTextComponent#getText
テキストから一行読み込み、一行書き込み、という部分を勉強してます テキストを一行削除、ってことはどうやればいいのでしょうか・・・? 一行読み込み、条件にあっていればその行を削除、 という風にやりたいのですが 何も無い文字列で上書きも試したのですが、 テキストを見るとポッカリ一行空いてしまいます
っ【StringBuilder】 これで何とかして。
303 :
301 :2007/02/08(木) 02:46:11
あ、テキストってのはテキストファイルのことです StringBilderを調べてみましたが、 自分の知識では同じ系統のものにすら見えません・・・ 初心者ですみません もう少し砕いて教えて欲しいです
削除する必要ないんじゃない? 0~5文字目、6~12文字目って 次の行は一行目のラスト+1を次の読み込みの頭にすればおk
>>289 コンストラクタなどで今のところ
架空のディレクトリになっている存在しないディレクトリパスを示す文字列を
入れて
mkdirs()を実行
>>292 とりあえずJava アプレットについてググれ。
>>301 つJakarta Commons IO
>>303 それなら、StringWriter/StringReader
>>297 電子署名 JarSigner
でググレ
.,Å、 .r-‐i'''''''''''i''''‐-、 o| o! .o i o !o .|\__|`‐´`‐/|__/| ○ |_, ─''''''''''''─ ,、 / _ | l .,,,―''"^ ,,/::::::::::::::::::::::::::::::`゙'''ー-,,// _,-::'^::::"":::::::::::"""^:::::::::::::::::::::::::::::::::::::;;;、-''''''"`''-、 ,/゙:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/゛ `i、, ,/:::::::::::::::::::::::::::::::::::(●),::::::::::、(●)、.::;/ i、 i:::::::::::::::::::::_;;;;;;_::::::::::::::::,,ノ(、_, )ヽ、,,:::::::::i l 'i、:::::::::::::::/ `i、:::::::::::::-=ニ=- ':::::::::::::i, ,i //`i、,::::::::'i、 /::::::::::::::`ニニ´::::::::::::::::::'i ,i | l '''-;;;_`-''゙::::::::::::::::::::::::::::::::::::::::::::::::::::\ ,,/ ○ `'''―;;;;;;_;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;_;;.".'=―''"^ //  ̄ ''''''''''''''''''''  ̄\\ | l / / と) (_つ
313 :
305 :2007/02/08(木) 04:27:18
>>310 「ArrayListのソースすら読めない馬鹿な人なんだ」と思いました!
314 :
デフォルトの名無しさん :2007/02/08(木) 09:52:20
class bb { int num; double gas; void setnum(int n) { num = n; System.out.println("車のナンバーは"+num+"です"); } void setgas(double g) { gas = g; System.out.println("車のガソリン量は"+gas+"です"); } } class kk { public static void main(String args[]) { bb koba = new bb(); koba.setnum(2231); koba.setgas(45.8); } } 実行できないんですがなぜでしょうか・・・
315 :
名無し募集中。。。 :2007/02/08(木) 09:56:02
ファイル名をkk.javaにする
317 :
デフォルトの名無しさん :2007/02/08(木) 10:11:32
ファイル名が間違ってました;;
318 :
デフォルトの名無しさん :2007/02/08(木) 12:23:56
enumって便利ですか? interfaceで定数を宣言より便利ですか?
公式文書の説明見てみれば? 便利じゃなかったら 標準仕様として採用されないと思う。
>>318 定数だと、思わぬ値を指定されたり間違った使い方をされるおそれがあるだろ。
指定できる値を完全に限定できるenumのほうが安全。
enumってシリアライズ・デシリアライズできないの? CやC#みたいにintとかにキャストできない?
enumは内部的にjava.lang.Enum というクラスのサブクラスなんだが、 このスーパークラスがjava.io.Serializableを実装しているので、 シリアライズ可能。 数値的な順序は ordinal()というメソッドで取得できる。
323 :
デフォルトの名無しさん :2007/02/08(木) 13:24:54
extendsとは何するための命令なのでしょうか? それとJPanelクラス GridLayoutクラスの用途を教えてほしいです
> extendsとは何するための命令なのでしょうか? Google 検索結果の一番上 > それとJPanelクラス サブクラス化して他のコンポーネントを組み合わせた汎用俺様コンポーネントを作るとか、 画面の一部だけレイアウトマネージャの異なる配置をしたいとか、用途はいろいろ > GridLayoutクラスの用途を教えてほしいです 縦横完全均等割付の n 行×m 列でコンポーネントを並べるためのレイアウトマネージャ
>>324 ありがとうございます><
本当に助かりましたっ!!
Javaの学習用の軽いエディタ、コンパイラはないでしょうか? エディタにコンパイル機能がついてる奴がいいです。
>>313 じゃHashMapにしろ
この揚げ足取り野郎め。
それでいいだろ。
お前がそんなに凄いなら
さっさとGenerics対応版Jakarta Commons Collectionsを
リリースしろ
>>318 interfaceで定数を作ると、勝手にそのinterfaceを
クラスに実装する奴がいてフィールド名が
被ることがあるからお勧めしない。
詳しくはEffective Javaを嫁。
従来の方式ならfinalなクラスにprivateなコンストラクタを
置いてpublic static finalな変数を置くという手法もあったわけだが。
>>326 Emacs(Medow)
スペックに余裕があるならEclipse
Medowで挫折って。。。
もしかして: Meadow
>>326 同じくEclipseを勧めるが、どうしても軽いエディタというならxyzzy。
少なくとも、インデントを自動的にやってくれないエディタは
プログラミングに使うべきではない。
337 :
デフォルトの名無しさん :2007/02/08(木) 18:31:24
char speed[] = {'速','度',':','0','0'}; char kakudo[] = {'角','度',':','0','0'}; Image ura; //ダブルバッファ用画面 Graphics omote; //ダブルバッファ用画面 public void paint(Graphics g){ omote.setColor(Color.white); omote.fillRect(0,0,500,500); omote.setColor(Color.black); omote.drawLine(70,400,450,400); omote.drawLine(100,430,100,50); omote.fillOval(ball_x,ball_y,10,10); //omote.drawChars(speed, 1,5,50,400); //omote.drawChars(kakudo, 1,5,150,400); g.drawImage(ura,0,0,this); } ↑上記の部分を含むプログラムについてですが、 このままだと正常に動作するのですが//の部分を入れると白か灰色(環境によるようです)で 塗りつぶされてしまってアプレットが動作しなくなってしまいます。 上記の部分についておかしな点はありますでしょうか? プログラム全体を見せられたらいいのですが、 ネットで全部任せたことが万が一にもバレると単位が出なくなってしまいますorz 丸投げというわけではないので宿題スレでなくここに書きました。
素直に再履しなさい
>>338 今まで課題のプログラムを毎週やってきて、この最終課題を出したら終了の今それは辛いorz
というか根幹部分はできているのでこのまま提出しても大丈夫なのですが、
付け足したいこと(337の//がついている2行)があってお尋ねしているような状況です。
上のプログラム内におかしな点がないというお答えでも、前進は前進ですのでありがたいです。
単位なんて落とすくらいが丁度良い。 というか今まで真面目にやってきてたらわかりそうなもんだが
トレースするなりデバッガで追うなりしたのか? //の部分と特定できていれば、その部分の変数、引数等をチェックするとか
,/.゙゙゙ ゙.";;ヽゞ゙''-、、、 ,..-'"´ ̄\
/___, -一ァソ;ゞ-;:ii>;,,,,,゙ 、 _」 ,/´ ヽ
,-‐¬  ̄---┘'7ノ" ヾミ! <. `i´ ,.-''´ ヽ
, -‐ ''" し' '´_ /,ィ!ヘー' iミ;! `r‐ヘ. 〈 ,.-''" ヽ
,r/ __ ,イソ iミ;! ヽ `''ヽ_〈 r┬ |
/ ||ヽ -' / ̄ ) ,.==、、_ ,__,,,..、、、 i;;リ ヽ、__ゝ-' ノ
>>1 乙であります!
,r ' ヾ、 ,-、____ , ノiト´ _ィェァ了 (ェoヮ、 /!7 / /
/ ヽ `ー-ソ Yl.| ´!| |!` ! ! } / /
. / \_ / レl /u__,ゝ i:l‐' / /
 ̄/ li / _二' _、〉 i l / /
/ ヽ ´  ̄ ` i/ ,/ゝ____/
/ __/\ゝ、 , ノ/ト、\:./井井井井;;/
/ J |:井\ー --''"/井ヽ ヽ井井井井/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|::|. |井井\ . /井井 | |井井井;;:/
\___________):| |井井井\/井井井| |井井井/
/::| |井井 井井 井井井| |井井/
/ 井| |井井,ノー-'-ー---‐'--'ー'´
/井井 | |井/
/\井井 .| |;;'"
/ \井.|::/
| \<
ヽ \
`ヽ、 \_
`ヽ、 !
`ヽ、 ノ
) (
_ _ _ノ )
(_(_(_(_(_ノ
このスレでは理解できないヤツは理解できるまで再履修推奨ということでage
どうでもいいけどなんでdrawStringじゃなくてdrawChars使ってるんだろうね。
頻繁にspeedやkakudoの内容を変えながら表示を更新する場合に、 char配列の要素に直接代入してStringのインスタンス生成を減らそうとしてるのかも? それよりも、どうでもいいけどなんでomote、ura、kakudoなのにspeedはローマ字表記じゃないんだろうね。
>>333 結局Eclipseじゃんかよ。
CPadかと思ったぜ
351 :
デフォルトの名無しさん :2007/02/08(木) 21:17:48
↓こんなかんじですこしズラすのってBoxLayoutじゃ無理でしょうか? ■■■■■■ ■■■■■■ ■■■■■■ ■■■■■■ ■■■■■■ ■■■■■■←は1つのコンポーネント
352 :
デフォルトの名無しさん :2007/02/08(木) 21:44:53
マジで初心者です。 質問なんですが、CD-ROMを入れたら「デバイスの準備が出来ていません」って 出るんですがどうしたらよいのでしょうか?故障でしょうか?詳しい方お願い致します。 釣りでは有りません。
それってJavaに関係あるの? 釣られた
354 :
デフォルトの名無しさん :2007/02/08(木) 22:45:50
初心者なんですけど、何かゲームを自分で作りたいって思ってプログラム の勉強をしようと思うのですが、Javaからはじめて大丈夫でしょうか?VBとか C++とかあるからどれから始めたらいいのかわからなくて・・
swingで、新規ウィンドウを開くことって出来ますか? ダイアログでの方法でしかわからず困っています
>>347 ( 丶
| }
,、_ { 'i
| ! !^i { |
.{ ' ' ,′ } }
{ ,′ | i'
.l i' r'゚'=、 i i'
| i' / ̄`''''"'x、 / ノ
ヽ( ,-=''"`i, ,x'''''''v'" ̄`x,__,/ , "
~`‐=:、__,,/ i! i, ̄ ̄ _/\/\/\/|_
| {0} /¨`ヽ {0}, l, \ /
1 ヽ._.ノ | < バーカ! >
{, `ー'′ .| / \
} 人 ノヽ |  ̄|/\/\/\/ ̄
/ `''' `ー" \__,/
/ ∠_
| f\ ノ  ̄`丶
| | ヽ__ノー─-- 、_ )
| | / /
| | ,' /
/ ノ | ,
/ / | /
_ノ / ,ノ 〈
( 〈 ヽ.__ \
ヽ._> \__)
>>357 JFrame frame = new JFrame("新規ウィンドウ");
frame.setVisible(true);
Oracleでいうところのnvl( data、"" )みたいな関数ありますか? nullだったら""に変換してくれるやつ
>>360 data = data==null?"":data;
_ _
/::::::::ヽ /::::::::ヽ
/:::::::::::::::::::l_,,. -,,,,‐┴、:::::::::::l
l::::::::::::::::/::::/⌒ヽ-'丶_;:/
ヽ:::::::::/::::::::/ ヽ
`- /::::::::::l '''''' '''''' l
l::::::::::::l (●), 、(●)、l
l/⌒ヽl ,,ノ(、_, )ヽ、∠
( ┐ / ヽ l
ヽ ヽ ト‐=‐ァ' / /
ヽ \、`ニニ´//
`ヽ ー-- ´ィ
ミ .,/) 、/)
゙, "' ´''ミ
(( ミ ;:'
'; 彡
(/~"゙''´~"U
>>354 言語の選択はどんなゲームを作りたいかにもよる。
まず考えろ
>>358 スプーの絵描き歌と何が合体しているのだろう
>>360 Jakarta Commons LangのStringUtils()
367 :
デフォルトの名無しさん :2007/02/09(金) 09:36:26
del パス名 でディレクトリ削除するプログラムってどうつくる?
>>365 バーカバーカとか言ってる鳥みたいな奴の AA
369 :
名無し募集中。。。 :2007/02/09(金) 09:48:13
char形式の文字をstringに代入する方法はありませんでしょうか?
372 :
デフォルトの名無しさん :2007/02/09(金) 09:58:15
>>370 String.valueOf(char[] data)
new String(char[] value)
StringBuffer.append(char[] str)
>>354 目的(Javaの勉強?商売?対象とするユーザの環境は?)を明確にしてから手段を選ぼう
>>372 ありがとうございました!
初めて見る文ですが自分でも調べてみます。
375 :
デフォルトの名無しさん :2007/02/09(金) 10:09:36
java io のですか?
376 :
デフォルトの名無しさん :2007/02/09(金) 10:11:02
てかマルチって多重に書き込みすることか? それっていけないのか
>>376 実は他でも教えてもらってたって、それぞれのスレで真摯に回答してくれてる人に失礼じゃね?
>>375 質問の意味がわからない
>>376 マルチ・・・マルチスレッド、マルチタスク色々あるけどJavaに限った事ではない
このスレッドでの質問はJavaに関するものだけにしましょう
379 :
デフォルトの名無しさん :2007/02/09(金) 10:44:01
そうですね・・・ 以後気をつけます。 ちょっとお聞きしたいんですが、 Fileクラスを参考に、 import java.io.File; class DirList { public static void main(String[] args) { File file = new File("./"); String[] list = file.list(); for (String dir: list) System.out.println(dir); } } Fileクラスのオブジェクトを作成するときに、("./");を設定してるのはなぜでしょうか??
380 :
名無し募集中。。。 :2007/02/09(金) 10:45:17
./がどういう意味を持つか考えろ
381 :
デフォルトの名無しさん :2007/02/09(金) 10:54:00
public void init(){ button1 = new Button("aaaaa"); button1.addActionListener(this); add(button1); requestFocus(); addKeyListener(this); } このプログラムにおかしいところはありますでしょうか? 上のままだとボタンだけが正常に動作し add(button1);を消すとキー入力だけが正常に動作するような状態ですorz
382 :
デフォルトの名無しさん :2007/02/09(金) 10:57:51
>>379 「カレントディレクトリ」で調べると良いですよ
>>381 何を作りたいのかがよく分からないので、おかしいかどうかの判断が付きかねます。
383 :
351 :2007/02/09(金) 11:24:10
マウスクリックやマウスオーバーで動的にレイアウトを変えたいんです
ちなみにズームするだけなら同じことはできています。
>>361 Alignmentは平均のラインに左を揃えたり右を揃えたりするものなので、
すべて左や右ならうまく機能しますが混ぜると意図したものになりません。
急に中央にワープしたり右に吹っ飛んでいきます。
>>363 ズラすだけなのにわざわざ格子単位で移動したくないです。
SpringLayoutなどでできませんか?
385 :
デフォルトの名無しさん :2007/02/09(金) 11:59:44
>>383 レイアウトの再構築を行えば「レイアウトを変える」事は出来ると思うのですが。何が出来ないのでしょうか。
386 :
デフォルトの名無しさん :2007/02/09(金) 13:45:34
import java.io.File; class kesu { public static void main(String args[]) { File file = new File(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine; String res = Integer.paraseInt(); file.delete(res); System.out.println(res+ "を削除" + (file.delete() ? "しました。" いろいろ見ながらやってたんですが、どこがだめでしょうか。 文字列を打たせて、その文字列に対応したファイルを削除するプログラムを作りたいんですが。 : "できませんでした。")); }}
387 :
デフォルトの名無しさん :2007/02/09(金) 13:49:05
import java.io.File; class kesu { public static void main(String args[]) { File file = new File(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine; String res = Integer.paraseInt(); file.delete(res); System.out.println(res+ "を削除" + (file.delete() ? "しました。" : "できませんでした。")); }} すいませんこれです
388 :
351 :2007/02/09(金) 13:59:00
>>387 ファイルを消すのにファイルの中身を読む必要はないだろ。
File file = new File( args[0] );
file.delete();
>>387 Fileクラスの使い方がわからないならjavadocぐらい読めよ
391 :
デフォルトの名無しさん :2007/02/09(金) 14:17:39
読むなんて面倒くさいじゃないですか。 ここならただでサンプルまで付けて教えてくれるし。
392 :
デフォルトの名無しさん :2007/02/09(金) 14:25:36
387です javadoc読んだんですが、deleteの使い方が判らないんです。 delete() はどこで指定したファイルを消すんですか?
>>392 お前はJavaのプログラミングのやりかたをもっと勉強すべき。
Fileオブジェクトは何を指定して作られる?
delete()は何から呼ばれる?
このメソッドがdelete(File)という呼び方じゃないのは何故だと思う?
394 :
381 :2007/02/09(金) 14:36:39
395 :
デフォルトの名無しさん :2007/02/09(金) 14:56:37
charに入っている数字をintに入れたいのですがどう書けばいいのでしょうか?
>>394 アプレット上にボタンがあるのでフォーカスがそのボタンに奪われてる。
解決方法はいろいろあると思うが、
>>394 に限れば、
addKeyListener(this);の代わりにbutton1.addKeyListener(this);を、
button1を生成した後に加えてやれば、フォーカスをもったボタンにキー入力があれば、
アプレットにそのイベントが知らされる。
>>396 ご回答ありがとうございました。動作しました。
>>395 やりたいのはどっちだ?
int i = Integer.parseInt(String.valueOf('1'));
int i = (int) 'a';
>>395 char c = '3';
int i = c; // (1)
int j = Character.digit(c, 10); // (2)
(1)か(2)のどちらかだと思うが……
400 :
381 :2007/02/09(金) 15:13:38
あれ…書き込まれてしまったorz
>>396 生成やらリスナーの追加やらはただ決まりごとをダラダラ書けばいいと思ってましたが色々とややこしいんですね。
以前も複合的にインターフェースを使っていたのですが、
その時はなぜか問題なく動作してしまって今回とまどってしまいました。
401 :
387 :2007/02/09(金) 15:18:26
すいません コンストラクタみてなかったです。
>>398-399 Integer.parseIntとかCharacter.digitとか見たこともない羅列が^^;
char型に入っている数字の一部をintに入れたかったので、
それらの助言から i = character[3];などのように書いたら動作しました。
if('character[3]' = 125)みたいな感じでJISコードか何かと
照らし合わせまくる文が必要なのかと思ったら意外とシンプルなんですね。。。
>>400 アプレットは入れ物の役割だけにして、
Canvasにボールの描画とキー入力の受け入れ(フォーカスもここに合わせる)を担わせて、
そのCanvasとbutton1をアプレットにaddするともう少し素直な感じになるかも。
少なくともあまり関係のないbutton1のキーイベントをもらってくるよりは自然っぽい気がする。
>>392 File fstream;
fstream = new File("hoge.txt");
fstream.delete();
みたいな感じ?
つかメソッド内のオブジェクトの場合、deleteって
自動的に呼ばれるんじゃなかったっけ。
407 :
デフォルトの名無しさん :2007/02/09(金) 15:27:56
point_x = 1; point_y = 1; から45度の角度の情報を得るような文章は書けますか? 逆(角度から座標値を得る)ならsinとかcosとかが使えるんですが…
>>404 たぶん(Javaにはないけど)デストラクタとdeleteを勘違いしてる。
自動的にdeleteが呼ばれるんじゃFileクラスでファイルを扱ったら自動的に消されちゃうw
409 :
デフォルトの名無しさん :2007/02/09(金) 15:29:49
>つかメソッド内のオブジェクトの場合、deleteって >自動的に呼ばれるんじゃなかったっけ。
>>404 自動的ってなに?
これぞ、オブジェクト指向的メソッドだよね。
対象オブジェクトに対する操作をメソッドとして実行する、と。
というか、消すだけなら
new File("hoge.txt").delete()
ですむんじゃない?
>>407 Math#atan2(double y, double x)
412 :
デフォルトの名無しさん :2007/02/09(金) 15:34:58
>>411 ありがとうございます!調べてみまっす。
>>404 java.io.File はストリームじゃねーぞ。
>>404 無茶苦茶だなw
1行目と2行目を分けて書くのもよくわからんし。
お待ちの患者さんどうぞ~ まだ未解決の方いらっしゃいますか~
416 :
デフォルトの名無しさん :2007/02/09(金) 16:24:04
どうしてプログラムはこんなにクソめんどいんですか?
人生もクソめんどいですから
>>416 無理にやらなくたっていいよ
世の中プログラムなんて書かない人の方が多いんだ、安心しろ
ドラえもんのプログラムは何行ぐらいあるんですか?
>>419 ドラえもんはJavaでは実装されていません。
未来のノビ博士になれるようにしようね。
421 :
デフォルトの名無しさん :2007/02/09(金) 17:22:43
一度描画した後の物体の色を変更したいのですが、CylinderではShape3DのようにsetCapability(Shape3D.ALLOW_APPEARANCE_WRITE)みたいなことはできないのですか?
MIDP2でMIDIシーケンサを作りたいんですが、 変数に16進数のバイナリを保存することはできるんでしょうか? 変数inにSMFのバイナリを置いておいて、 Player p = Manager.createPlayer(in, "audio/midi"); p.start(); という感じで再生できないかな?と考えています。 (auのオープンアプリは制約でデータを書き出せないそうなので)
>>367 Apache Jakarta Commons CLI
とおもったら、マルチかウザ
>>376 マルチポストするんじゃねえこのハゲ!
ッていう意味がマルチの意味。
>>383 他のレイアウトでパネルを埋め込んで
それからそのパネルに別のレイアウトを適用する
>>416 面倒くさいことが嫌なら、「自動化」についてググレ
>>420 あの感動的な偽ドラエモン最終回を見たな。
たしかに感動した。
がWikipediaを見たら指摘もたっぷり
>>421 いきなりんなこと書いてもわからんだろうが
Java3Dのことであることをちゃんと書け。
しかもどういう条件で物体の色を変えたいのか書け。
マウスクリックやキー押下が条件か? それとも時間か?
それがわからなければ質問に答えようがない
>>422 > MIDP2でMIDIシーケンサを作りたいんですが、
> 変数に16進数のバイナリを保存することはできるんでしょうか?
できる。MIDI以前にJavaの基本からやりなおせ。
> 変数inにSMFのバイナリを置いておいて、
> Player p = Manager.createPlayer(in, "audio/midi");
> p.start();
> という感じで再生できないかな?と考えています。
> (auのオープンアプリは制約でデータを書き出せないそうなので)
携帯電話ということは、Java Sound APIとは直接関係ないのか
携帯電話Javaは専用すれがあるから、そっちで聞け。au専用のスレがあったと思うが
434 :
421 :2007/02/09(金) 18:43:10
分かりづらくてごめんなさい。 条件はマウスクリックです!
435 :
デフォルトの名無しさん :2007/02/09(金) 18:43:55
436 :
421 :2007/02/09(金) 18:55:18
ありがとうございます! でも、ちょっと調べてみたのですが(調べ方が悪いのだろうけど)どうやって、Cylinderの色変更に適用するか分かりません。
437 :
422 :2007/02/09(金) 19:08:59
438 :
デフォルトの名無しさん :2007/02/09(金) 19:13:05
interface A { public void print(); } これって変? interface の中は何も書かなくても abstractになるはずなのに?
>>438 interfaceとabstractの違いが知りたいのですか?
440 :
デフォルトの名無しさん :2007/02/09(金) 19:17:03
>>439 publicってのがおかしいのかどうかを知りたいです
>>438 それ自体は何も変じゃないぞ?
ちゃんと暗黙に abstract になるし。
周辺のコードがおかしいんじゃないの?
442 :
デフォルトの名無しさん :2007/02/09(金) 19:18:48
>>440 ActionListenerのソースを見ると参考になるかと思います。
いや、java だと public つけても良いのか。単に非推奨ってだけで。
445 :
デフォルトの名無しさん :2007/02/09(金) 19:27:03
>>438 ,440
interfaceがパッケージプライベートの場合、そのメソッドがpublicでもあまり意味が無い
#コンパイルが出来なくて困ってるのか、単に一般的な記述法が心配なのか…
447 :
デフォルトの名無しさん :2007/02/09(金) 19:51:06
現在java studio enterprise8の中でアプレットを動かしているだけなのですが、 これをhtmlで動くようにしてネットで公開しようと思ったらどうしたらいいのでしょうか?
448 :
デフォルトの名無しさん :2007/02/09(金) 19:56:41
449 :
デフォルトの名無しさん :2007/02/09(金) 20:33:42
>>447 HTMLにタグを記述してjarとHTMLをWEBサーバーに置く
Vistaを使ってる人に質問なのですが、 Vistaって初期状態ではJava VMは入っているのでしょうか? また、入っているとしたら、どこのVMでバージョンはいくつでしょうか?
Java 2 プラットフォーム API 仕様 (日本語版)の誤訳とかを見つけた場合、 どこにメールしたらいいんですか?
>>438 インタフェース内のメソッド宣言は暗黙的にabstractでpublic。
明示的に書いてもいいが書かないことが推奨されている。
454 :
451 :2007/02/10(土) 01:59:05
>>453 JDK5のほうです。ありがとうございます。
メールしてみます。
JFrame内の拡大したい部分をクリックすると、 その部分を拡大表示する、というようなことは可能でしょうか? もし可能ならば、その方法も教えてください。 一応自分でも調べてはみたのですが、画像の拡大、縮小に関するものばかりで、 特定の部分を拡大する、といったものは見つけられませんでした。
>>455 Graphics#drawImageには特定の部分だけImageをスケーリングして描画するものがあるよ。
staticでメソッドを定義する意味ってなんですか?
インスタンスの属性に関わりのない処理を行える class Utility { public static char getFirstChar(String s) { return s.charAt(0); } }
>>458 なるほど・・・。
あと実装する時によく分からないのが、
staticメソッド中でstaticでない変数を持つ場合は
(たとえば、ループカウンタ等)
その変数自体がstatic変数として扱われるんでしょうか。
変数を生成するような複雑な処理の場合は、staticメソッドとして定義しないほうがいいんですか?
>>459 ループカウンタって普通はメソッド内のローカル変数では?
ローカルの変数に static も何もないけど。
461 :
デフォルトの名無しさん :2007/02/10(土) 05:47:32
Hashmapで質問があります。 class HashMapTest { public static void main(String[] args) { HashMap<String, String> map = new HashMap<String, String>(); map.put(name, num); public boolean change(String name, String newnum){ } } というHashmapのクラスがある時、名前は変更不可なのですが番号は変更可能 といった風にするにはどうすれば良いのでしょうか? 例えば、名前(string)が田中一郎、 番号(string)が001 というデータがある時、 田中一郎、002 という風に番号の変更は可能なのですが、佐藤一郎、001という風に 名前は変更出来ない、としたいのです。
Map ってどういうもんか分かってる? map.put("田中一郎", "002") でダメだと思った理由は何だと。
田中一郎、001 田中一郎、002 佐藤一郎、001 を追加後HashMapの中身を列挙してみろ , -──==二二/ ̄ ̄'i二二==─--、 l============/ 'i.===========l / `ー ミ、`丶、 l二二二二l _,、-'"彡''`´\ / `丶、 `,  ̄ ̄ ̄ ̄ ̄ ,'"_,、-'" \ / ヾ<l⌒l> `<l⌒l>' ヽ、 /  ̄  ̄ ヽ、 /l _l l_ lヽ (, ` 、_ 、,.___ ノ, -ヽ、 ノ-、ヽ、__/,-、 _,.-' ) `丶、_`丶、 _ `ー- '´  ̄ `--'' >_.'=-、_,.、- ー ' , ' ´ / 丶、 _ ``' .ー------------------イ,.- ^ ヽ==--‐、' i 丿 ̄ `` lー=====,=====,===== ( ,.- ^ iTTTl l lーーノ l / ヽ, ヘ ,.- ^ l l l l l ノ lー-く ( , i i , ) `ー-'`' ' ' ' '´ l __) l-----l l-----l `ー-'゙ .l====/ ヽ====l ノ----l l----l_ ,-‐'´ ) l `ー、 ' '---‐‐''´ `ー ---‐' '
464 :
デフォルトの名無しさん :2007/02/10(土) 09:51:16
j2sdk1.4.2_13winをインストールしました。 パス設定してjava-versionで確認すると >java. version "1.5.0_10" >java.(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03) >java. HotSpot(TM) client VM (build 1.5.0_10-b03,mixed mode, sharing) >java. version "1.5.0_10" ←インストールしたヴァージョンと違うんですけど、でも正しく動作はします。意味が判りません。 詳しい方教えてください。
パス設定とやらが上手くできてないんだろう
メモ C:\Program Files\Java\jre1.5.0_01\lib\ext\QTJava.zip;
QTJAVA C:\Program Files\Java\jre1.5.0_01\lib\ext\QTJava.zip
>C:\Program Files\Java\jre1.5.0_01\lib\ext\QTJava.zip; この怪しそうなパス消してもだめだ・・・
コマンドプロンプトでpath>path.txtってやってpath.txt晒してみ。
PATH= C:\WINDOWS\system32; C:\WINDOWS; C:\WINDOWS\System32\Wbem; C:\Program Files\Justsystem\BeatJam Music Server\; C:\Program Files\pcdNavi\bin; C:\Program Files\Fujitsu\sadata\fsaax; C:\Program Files\QuickTime\QTSystem\; C:\j2sdk1.4.2_13\bin;c:\j2sdk1.4.2_13\bin こんなです
>>470 C:\j2sdk1.4.2_13\binよりC:\WINDOWS\system32が前に来ているのが原因。
記述順を替えて、C:\j2sdk1.4.2_13\binが先頭に来るように汁。
それから、C:\j2sdk1.4.2_13\binは2つもいらない。
PATH= C:\WINDOWS\system32; C:\WINDOWS; C:\WINDOWS\System32\Wbem; C:\Program Files\Justsystem\BeatJam Music Server\; C:\Program Files\pcdNavi\bin; C:\Program Files\Fujitsu\sadata\fsaax; C:\Program Files\QuickTime\QTSystem\; C:\j2sdk1.4.2_13\bin; 訂正 なぜかProgramFileのJavaにjre1.5.0._10があるんですけどそれを消すと認証しなくなるんですよね
>>471 できました感謝です
でもなんで動いてたのか謎です。
474 :
デフォルトの名無しさん :2007/02/10(土) 11:11:12
javaを極めてしまったのですが次は何に行けばいいのでしょうか?
476 :
デフォルトの名無しさん :2007/02/10(土) 12:02:38
スミマセン…あるクラスでスレッドを起動させたあと、そのスレッドから、 元のクラスのメソッドを使う、ということはできるのでしょうか?
Frameの中にある部品が描画された後のImageが取りたいんだけど、 そういう事って可能? PanelにButtonとかいろいろ載っててそれを含めたImageが取りたい。
>>459 >staticメソッド中で、staticではない変数を持つ場合
この場合の変数は(メソッド内だけで使える)局所変数のことでしょうか?
そういうことであれば、その変数はクラス変数(=static変数)ではありません。
//変数を生成するのは、何と比べて複雑な処理なのだろうか
>>477 BufferedImageをつくってgetGraphicsし、
それをpaintの引数にすればOK。
>>476 可能。
>>477 ニュアンスは異なるが部品が描画されているイメージを『生成』する事は可能。
>>476 java.awt.EventQueue の invokeLater, invokeAndWait
javax.swing.SwingUtilities の invokeLater, invokeAndWait
一応こういうメソッドがある。gui 周りを扱うときには注意。
>>482 それは、イベント処理スレッドのキューに、
指定されたスレッドを追加するだけだと思われ
>>483 swing においては、微妙な理由で制約があるっぽい。
ttp://java.sun.com/docs/books/tutorial/uiswing/concurrency/dispatch.html >Some Swing component methods are labelled "thread safe" in the API specification;
>these can be safely invoked from any thread.
>All other Swing component methods must be invoked from the event dispatch thread.
awt 及びその他の gui コンポーネントについては記述が見つかってない。
どこかにあるかもしれんが……。
余談だけど、windows では Apartment Model Threading って概念あって、
java api がそのあたりをどういう風に覆い隠しているか、ちょっと確認する必要があるかも試練。
個人的な予想だけど、swing はそれを隠していないから、そういう制約があるんじゃねーかなーと。
んで、結局まとめると
>>476 別スレッドから元のクラスのメソッドを使用することは可能。
けど元のクラスが swing コンポーネントだったりする場合には注意が必要。
>>484 私は
>>476 はそういう話ではないと思ってる。以下蛇足。
Swingではスレッドセーフを犠牲にすることでも、高速化を行っている。
そのため、Swing関連のクラス、特にGUI周りを利用する際には、
SwingUtilitiesの該当メソッドを利用し、イベント処理スレッドキューに送り込むことで、
問題がおきないようにしたほうが良い。
極論を言えばmainメソッドも別スレッドなので、アプリケーション起動時に良く行う、
JFrameなどの生成にもSwingUtilitiesを利用すべき、なんて書いてある本も有る。
逆にActionListenerのactionPerformedメソッドの実装部に長々と無関係な処理を書くと、
あたかもGUI処理が止まって見えるようになる。
// WindowsとJava API との関係は面白そう
複数のスレッドが一つのインスタンスにアクセスする場合は、 スレッドセーフにする必要がある。正しくこれを実現するには技術がいる。 また、シングルCPUの場合は擬似的に並行処理をしているため、 マルチスレッドを用いることは、一般に、 うまく使えばレスポンスは良くなるかもしれないがスループットは落ちる。 したがって、多くのGUIフレームワークではUI回りの処理にシングルスレッドを用いる。 このスレッドは、UIスレッドとかイベントディスパッチャとか、そんな感じで呼ばれる。 (Swingの場合は、このスレッドは勝手に作られる。) これにより、UIのイベントハンドラをスレッドセーフに書かなくとも、 フレームワークがUIスレッドでこれを呼び出すため問題ない。 SwingUtilities.invokeLater などは、明示的にUIスレッドに処理を委譲することで、 スレッドセーフについて頭を悩ます必要をなくすための便利な機構であり、 制約なわけではない。 Windowsは知らないヘタレだけど、明示的に別のスレッドを作ったら やっぱり同じ問題は出てくるんじゃまいかと予想
>>400 亀レス
アプレット全体に処理を適用する必要があるのなら
java.awt.KeyboardFocusManagerとjava.awt.KeyEventPostProcessor
を使用したほうがいいと個人的には思う。
489 :
486 :2007/02/10(土) 16:28:13
>SwingUtilities.invokeLater などは、明示的にUIスレッドに処理を委譲することで、 >スレッドセーフについて頭を悩ます必要をなくすための便利な機構であり、 >制約なわけではない。 ああ、共有するデータがある場合は、 UIスレッドに渡した後に変更するとスレッドセーフじゃなくなるな。 悩ましい種が減るだけ。
>>489 スレッドセーフって単語に、ちょっと意味の齟齬があるんだけど
1: 複数のスレッドが同時に実行されると困る。時間を置いて1つずつ入るのならば問題無い
2: 別のスレッドから実行されると困る。時間を置いて1つずつ入るのもダメ
の2つの意味があって、swing のは2番目のほう。
>>490 スレッドセーフの意味は一つだけじゃないかな
Swingはスレッドセーフではないが、別のスレッドから接触する手段を用意している訳で。
Swing以外の非スレッドセーフクラスであっても、それを使用するスレッドが一つなら問題ないし。
任意のスレッドから任意のタイミングで実行しても、齟齬が生じない、というのが
スレッドセーフなクラス、だと思っているのだが…。
>>434 イベントリスナについて勉強した方が良い
>>491 ああ、ごめん。スレッドセーフそのものの意味じゃない。すまね。
>>488 java.awt.Robot使おうとしてた……
ありがとう
>>450 どうでもいいけど、そんなにJava使いたければ
自分でインストールすればいいじゃん
質問です TextArea ta=new TextArea(); ta.addTextListener(new TextListener(){... このtaを、JTextArea ta=new JTextArea()とした場合どのように書き換えれば いいのでしょうか? addTextListenerに対応するswingでのメッソドがわかりません。 よろしくお願いします
>>496 APIの写し
java.awt.TextArea の変更を監視するには、TextEvent の TextListener を追加します。
JTextComponent ベースのコンポーネントでは、DocumentEvent 経由でモデルから DocumentListeners に変更が送られます。
DocumentEvent は必要に応じて、変更位置と変更の種類を提供します。コードは次のようになります。
JTextArea.getDocument().addDocumentListener(DocumentListener);
愛だよ愛
501 :
496 :2007/02/10(土) 22:59:48
説明不足ですいません。テキストが変更されればメニューの状態を更新する といったものを作りたいのですが TextArea ta=new TextArea(); ta.addTextListener(new TextListener(){public void textValueChanged(TextEvent e) {。。。 そこで、498さんのアドバイスでコンパイルすると、エラーになりました。。 てか、初歩的な質問でm(__)m
JTextArea.getDocument() って書いちゃ駄目だよ? あなたのコードで言ったら ta.getDocument() になる。
503 :
デフォルトの名無しさん :2007/02/10(土) 23:35:57
try catch finally のfinallyって意味あるのか?
あるよ。
505 :
デフォルトの名無しさん :2007/02/10(土) 23:51:09
ネットワーク関連の質問ですが、 NICが自宅内LANに接続された状態で ダイアルアップを行い、JAVAアプリケーションからは 接続が確立されたダイヤルアップモデムを使用してインターネットに アクセスしたいのですが、JAVAからNICかモデムかを選択するには どのようにすれば良いのでしょうか? デフォルトでは、NICを使用してしまい、LANケーブルを 抜かないとダイヤルアップモデムを使ってインターネットに 接続できないようです。
>>503 お前、とりあえずファイル読み書きや
データベースやセッション管理プログラムを
作ってみろ。
初めてその有り難みがわかるから。
>>505 なんじゃそりゃ。
つうか、それJavaと関係があるのか?
Javaはプラットフォームでもあるが、プログラミング言語でもあるんだぞ。
このスレはプラットフォームというより、主にプログラミング言語としてのJava
についての質問スレだ。
一体、その「Javaアプリケーション」というやつが、どんなアプリケーションなのか
わからないことにはどうにもならん。
508 :
デフォルトの名無しさん :2007/02/11(日) 00:04:54
509 :
505 :2007/02/11(日) 00:06:20
>>507 インターネットにアクセスするアプリケーションです。
ダイヤルアップでアクセスする必要があります。
java.net.NetworkInterfaceクラスで、ネットワークアダプタの
情報を取得できるのですが、setメソッドが一切なく、
このクラスではアプリケーションが使用するネットワークアダプタ
を選択することができません。
Javaアプリケーションがダイヤルアップアクセスできるような
設定を行えるクラスはないものでしょうか?
510 :
ぴゅあ :2007/02/11(日) 00:13:57
511 :
デフォルトの名無しさん :2007/02/11(日) 00:14:14
>>505 VMの領域を越えてないかな。
思いつく限りでは
・別アプリを呼び出す
・JNI経由でライブラリ呼び出し
・JCom的なライブラリを探す
俺では力不足か・・・。
512 :
デフォルトの名無しさん :2007/02/11(日) 00:20:33
>>505 ん、JAVA Communicationでモデムに接続してモデムを操作でどうだ!?
)、._人_人__,.イ.、._人_人_人 <´ お 金 返 し て っ !! > ⌒ v'⌒ヽr -、_ ,r v'⌒ヽr ' ⌒ // // ///:: < _,ノ`' 、ヽ、_ ノ ;;;ヽ // ///// /:::: (y○')`ヽ) ( ´(y○') ;;| / // //,|::: ( ( / ヽ) )+ ;| / / // |::: + ) )|~ ̄ ̄~.|( ( ;;;|// //// /// :|:: ( (||||! i: |||! !| |) ) ;;;|// /// ////|:::: + U | |||| !! !!||| :U ;;; ;;;| /// ////|::::: | |!!||l ll|| !! !!| | ;;;;;;| //// // / ヽ::::: | ! || | ||!!| ;;;;;;/// // // // ゝ:::::::: : | `ー-----' |__////
テキストファイルを読み込み、100文字読み込むごとに改行コードを付加する、という事をしたいのですが、 「今何文字読み込んだ」というのは分かる物なのでしょうか?
>>516 ありがとうございます。
できればその方法も教えていただけるとありがたいです。
>>517 読み込むたびに何文字読み込んだかカウントしていけば、
「今何文字読み込んだ」というのは分かる。
>>518 あ、なるほど……。
こんな単純なことに頭が回らない自分はorzですね。
ご親切にありがとうございました。
520 :
デフォルトの名無しさん :2007/02/11(日) 10:23:43
標準Javaパッケージとはjavaまたはjavaxから始まるパッケージのことでよいのでしょうか?
521 :
デフォルトの名無しさん :2007/02/11(日) 10:51:33
522 :
520 :2007/02/11(日) 10:55:07
>>521 この中のパッケージを言うのですね。
ありがとうございます。
【質問】 class A { void hoge() {} } class B extends A {} class X { public void main(String[] args) { B b = new B(); b.hoge(); } } Javaの内部では、どう動いてるかについて質問。 こんな風に、Aを継承したBで、b.hoge()を実行する。 その時に、Bでは super.hoge() を実行しているのか、 それとも、Bの中に暗黙的に hoge() がコードとして記述されていて、 this.hoge()を実行しているのか どっち?
>>529 インライン展開できると VM が判断すればインライン展開される可能性はある。
この辺の挙動は、実装依存なので「Javaでは」という括りで取り扱うのは阿呆だし危険。
言語仕様的には hoge を呼び出してるだけ。普通は invokevirtual になると思う。
531 :
デフォルトの名無しさん :2007/02/11(日) 22:40:25
534 :
デフォルトの名無しさん :2007/02/11(日) 23:00:33
また質問してすいません… 今環境変数はC:\Program Files\Java\jdk1.5.0_10\binで設定してるんですが、C:\j2sdk1.4.2_02\bin\javacで設定したほうがいいんでしょうか…
535 :
デフォルトの名無しさん :2007/02/11(日) 23:02:36
すいません…更新してなかったもんで…
>>532 ,533
ありがとうございます
今までの設定を一応見直してるんですがよく分からないんですよね…
>>535 君はJavaでプログラミングを勉強する前にPCの使い方について2,3年勉強した方がいい
537 :
デフォルトの名無しさん :2007/02/11(日) 23:10:21
>>534 前者のままでいい。
後者にしたらコマンドjavacを打ったときに
C:\j2sdk1.4.2_02\bin\javac\javac
を探してしまうことになる
539 :
デフォルトの名無しさん :2007/02/11(日) 23:17:45
>>538 ありがとうございます
もっかい見直してみよう…
JSPとサーブレットを連携させて、セッション管理の勉強してるんですけど reponse.sendRedirectでリンクを飛ばしたのですが、リンク先でセッション変数の取得が出来ません。 sendRedirectではなく a href の文字リンク方式だとセッション変数取得出来るのですが。 どういう理由なのでしょうか? ご存知の方、よろしければお教え下さいませんか?
541 :
デフォルトの名無しさん :2007/02/11(日) 23:31:25
>>540 ほんとにセッションなのか?
できるはずだが。
「はず」じゃ困るんだよ君。役に立たない男だね
>>541 >>543 ありがとう。
たしかにセッション管理なんだ……。
色々と操作してみて、sendRedirectのリンク先指定を相対指定にしたら直りました。
"/project/main.jsp"と指定したら何故かセッション変数が取得出来ず
"main.jsp"ならOKっていう理由が分からないっす。
545 :
541 :2007/02/12(月) 01:09:03
あほな質問だけど、javaをインストールしても、他のデータ消えたり、 windowsに影響ないよね?
そんなことあったら大問題になるし誰もJavaなんて使わなくなるだろ。 たとえばあんたが彼女をあざむくためのフェイクのために、 独自にC:\Program Files\Java\j2re1.4.2_04というようなフォルダを作って そのなかにエロ動画を保存してる状態であればJREインスコしたら消えるかもしれんが。
既にインスコされている JRE でしか動かないアプリケーションやアプレットがあれば 動かなくなる。
550 :
デフォルトの名無しさん :2007/02/12(月) 03:36:07
>>549 これって何なんでしょうか…
開発環境?ですか?
>>550 エディタ。自動でコンパイルしてくれる。
552 :
デフォルトの名無しさん :2007/02/12(月) 03:41:30
>>551 エディタってことはメモ帳みたいなもんですか(`・ω・´)
まあまずJavaをインストールしなきゃいけないんですがね…
悪いことは言わない。キミはJAVA入門みたいな本買って読んだ方がいい。
554 :
デフォルトの名無しさん :2007/02/12(月) 03:52:08
>>553 そうですね(´・ω・`)
今日にでも買ってきますか…
「悪いことは言わないから~」「素直に~しとけ」 こういう表現使う奴の言うことは鵜呑みにするなよ。
もう何を信じていいかわかりません
自分で調べたものを信じろ。
ただし2ちゃんねるで調べたものは除外しろ 信じていいものもあるがS/Nが悪過ぎて取捨選択が難しい
559 :
デフォルトの名無しさん :2007/02/12(月) 04:02:53
4時になったことだし寝ます 色々とありがとうございました まあどうせまた来ますが
ということでここの書き込みは一切信じずに yahoo知恵袋や教えてgooで聞いてください
フォースの力を信じろ
第六感を使って感じるんだ
563 :
デフォルトの名無しさん :2007/02/12(月) 13:37:26
流れにワロタ
564 :
デフォルトの名無しさん :2007/02/12(月) 13:42:14
おまいら本当にひどいのなwwwww
>>559 本買え。本。
君の悩みは、どんなクソ本買っても大概は載ってる。
565 :
デフォルトの名無しさん :2007/02/12(月) 15:45:13
>>564 ありがとうございます
どんな本がいいんでしょうかね(´・ω・`)
とりあえず本屋出撃してきます
BufferedReader br = new BufferedReader( new InputStreamReader(System.in),1); String sb1 = new StringBuffer(br.readLine()); String sb2 = new StringBuffer(br.readLine()); System.out.println(sb1); System.out.println(sb2); これを実行しても何も表示されません。 変数を作りたいときはどうすればいいですか? 1回の入力で同じ値の複数の変数をつくりたいときはどうすればよいですか?
567 :
566 :2007/02/12(月) 16:17:04
すみません下3行のうち真ん中は気にしないでください。
>>566 > これを実行しても何も表示されません。
System.in に何も入力してないからでは?
569 :
566 :2007/02/12(月) 16:34:26
いえ、ちゃんと入力はしてます。 BufferedReader br = new BufferedReader( new InputStreamReader(System.in),1); String sb1 = new StringBuffer(br.readLine()); System.out.println(sb1); これだけだとうまくいくんですけど。。。
>>566 >String sb1 = new StringBuffer(br.readLine());
>String sb2 = new StringBuffer(br.readLine());
型が合ってないからコンパイル通らん。
String s1 = br.readLine();
String s2 = br.readLine();
StringBuffer sb1 = new StringBuffer(br.readLine());
StringBuffer sb2 = new StringBuffer(br.readLine());
どちらも期待通り2行入れたら2つ返ってくるけど?
2行目の入力待ちで止まってるんじゃねーのw
「1回の入力で」とあるからきっとそう。
>>565 本にも、いい本と酷い本があるから注意しろよ
574 :
デフォルトの名無しさん :2007/02/12(月) 17:08:50
>>566 ,, -──- 、._
.-"´ \.
:/ _ノ ヽ、_ ヽ.:
:/ o゚((●)) ((●))゚oヽ:
:| (__人__) |:
:l ) ( l:
:` 、 `ー' /:
:, -‐ (_). /
:l_j_j_j と)丶─‐┬.''´
:ヽ :i |:
:/ :⊂ノ|:
>>566 > 1回の入力で同じ値の複数の変数をつくりたいときはどうすればよいですか?
BufferedReader br = new BufferedReader(new InputStreamReader(System.in),1);
StringBuffer sb1 = new StringBuffer(br.readLine());
StringBuffer sb2 = new StringBuffer(sb1);
System.out.println(sb1);
System.out.println(sb2);
もし複数の変数というのが複数のインスタンスでなく文字通り変数を複数個ということならこれでもいい StringBuffer sb1 = new StringBuffer(br.readLine()); StringBuffer sb2 = sb1;
むしろこれでいいんじゃね? StringBuffer sb = new StringBuffer(br.readLine()); System.out.println(sb); System.out.println(sb);
変数1個しかないやんww
579 :
デフォルトの名無しさん :2007/02/12(月) 17:43:11
URL configURL = ConfiguredUniverse .getConfigURL("/workspace/JM3D/j3d_test.cfg"); とかやって設定ファイル読み込んでやると表示はできるのですが java.net.MalformedURLException: no protocol: \Documents\workspace\JM3D\j3d_test.cfg と怒られます。macでのパスの書き方を教えて下さい。
>>579 > no protocol
getConfigURLの引数はURLなんだから、
ローカルファイルを指定するならfile:を頭につけないと
581 :
デフォルトの名無しさん :2007/02/12(月) 17:56:33
>>580 レスありがとうございます。それも試しました。:でも引っかかるようなので
絶対/相対パスとして、file///workspace~ とか
してもやっぱりno protocolなのです。
>>581 うちのmacはjava3dを導入してないのでConfiguredUniverse#getConfigURLを試せないけど、
file:/Users/hogehoge/test/a.cfg
みたいに指定すれば普通にURLクラスのインスタンスを生成できるから、
ConfiguredUniverse#getConfigURLのmac実装の問題なのかも。
j3d_test.cfgのあるディレクトリで、
new File("j3d_test.cfg").toURL()を実行してそのURLを確認して、
それをgetConfigURLに与えてみるのは?
583 :
582 :2007/02/12(月) 18:28:31
getConfigURLにURLインスタンスを直接与えられないんで、 System.out.println(new File("j3d_test.cfg").toURL());の表示を見るという意味ね。 それか、new File(configPath).toURL().toString()を引数に与えるか。
584 :
デフォルトの名無しさん :2007/02/12(月) 18:34:15
>>582 レスありがとうございました。動きました!
問題はコンフィグファイルでした。やっと
喉のつかえが取れました。ありがとうございました。
Java swingのJTableを使って列2、行10のテーブルを作ったんですが、
>>585 誤爆です。
JTableで作ったテーブルは、クリックで選択状態になり、ダブルクリックで
入力状態にすることができますが、ダブルクリックしても入力状態ではなく、
選択状態のままにしかならない列を作ることはできますか?
よろしくお願いします。
_,,t-‐‐-、,-‐‐-、 三'::::::............... .....::::::`y,. ナ::::::::::::::::::::::::::::::::: :::::::::::::ヾ | ̄| V::::::::::::::::_{{ ({∫∬ノノjヾ:::::{ | ̄| | ̄| ナ::::::::::::::i`__,,,,,,,ァ_ _,,,,,_ t;;:ヌ | | | | イヘ::::::(ヾ~!,ャt、 !'''i ィtン )=f }f | | | | i {t)テ" ヘ' '___,イ ヽ_/ 介' | | | | _,rヘ_,j|!' /ー--''! |' |,.ィ―'''' ̄ /| | /二ク ! /;;:::'';;::''::;;:/ { ! 、 ヾニン ノ\ /'''::::;r|''':::;;;| | ! \ _,,./|::;;'''\ /:;;/ |;;;''::;;| 丶\ `__>-ー´ !;;;:'''::iヽ、 i/ |'::;;;;''| 三 ―''" !''::;;;;| /ヽ /⌒ヽ |;;''':::;| \ !;;::''|/ i / \{'';;;::''}  ̄二ニ= !::;;| | /ヘ |;;:::::;{ ‐- !/ | / i |:::;;;''! ー ! / | / l |;;'';イ } {、 〉、 ∧テ{ ヽ _ _,,,,;;;;;:::-==ニ;;;_ ノ __,イ´ / \_ //レ!  ̄  ̄ { ̄ | / `ー::v'´/ | i i | i / ̄ | | i、 | i / || ヽ |
>>586 TableModel#isCellEditable が false を返せばそのセルは入力可能にはならない。
多分 DefaultTableModel を使うようなコーディングになっているだろうからオーバー
ライドしてやれ。
JTable table = new JTable();
table.setModel(new DefaultTableModel(){
public boolean isCellEditable(int row, int col){
return false;
}
});
589 :
デフォルトの名無しさん :2007/02/13(火) 01:12:04
>>583 レスありがとうございます。見落としていました。お詫びします。
ついでに以下事後報告。
ノープロトコルの警告と作られたウィンドウ表示が変でした。
前者はパスをfile:/~/j3d_test.cfgで「:/」としていなかった為起こりました。
後者は多分、サンプルのConfiguredUniverseクラスを改造して使って
いてViewingPlatformが本プログラムとコンフィグファイル両方に
記述されたため本プログラムに書いた誤ったURLをスルーして
変な窓が出てたんだと思います。
590 :
387 :2007/02/13(火) 09:56:06
ちょと質問です。 文字列を読み込ませるときに、enterを押してからではなく、 その文字列が入力された時点で、その文字列を判定するメソッドって どのクラスにありますか??
>>590 コンソールからの入力だと、標準クラスには無いよ。
592 :
387 :2007/02/13(火) 10:02:23
うそ ないんですか・・・ 困った・・・
>>592 コンソールまでは、そのOSの管理範囲だ。
javaでやりたかったらJTextFieldでも用意してそこでチェック汁
>>590 cmd.exeやターミナル上でキャラクタベースのメニュープログラムでも
作ってるのかな?
595 :
ぴゅあ :2007/02/13(火) 12:40:27
>>592 どうしてもJavaの範囲で収めたいなら、
コンソールライクなGUIプログラムを作ってキー入力や表示を管理するくらいかな
597 :
387 :2007/02/13(火) 15:45:14
いろいろなレスありです。 JNIか・・・
>>ぴゅあ こいつのレスをマトモに受けるな
ちょいと失礼します 2進数の問題の質問したいんですけど・・・ どこで書き込めばいいんでしょうか(´・ω・`) Javaとか関係なくてすませorz
>>600 どうもありがとうです、早速行ってきます(´・ω・´)
サーバの中にあるファイルを指定して、ローカルに保存する処理をしたいのですが どうやってやればいいんですか? ちなみにサーバのIP、ファイルのパス ローカルの保存先のパス、保存名はパラメタで任意に変更可能 何か助言をお願いします
>>602 サーバって何サーバなの?
サーバの種類でサーバの中のリソースの取得方法が違うぞ。
そして、それはJavaプログラムからアクセス可能な種類のものなんだろうね?
>>590 JDK 1.6 からは java.io.Console が使えそうな感じ。
>>605 WebサーバとしてTomcatを使っている又はApache等のプラグインとして使っていて、
Web上のリソースとしてファイルを取り出したいというのなら、
普通にURLを指定してURLConnectionとかで取ってくればいいと思うけど。
それともそういう意味ではない?
>>604 元質問の時点でAPI見てみたが手頃なメソッドがなかった。
mustangのConsoleはあまり使い甲斐がない感じ コンソールで細かな制御をするようなアプリケーションには今のところJavaは向いていないと思う
>>604 あれはパスワードを入力させる時ぐらいしか使いようがない。
611 :
デフォルトの名無しさん :2007/02/13(火) 18:25:08
質問です。Cで構造体を struct person_spec { float tall; float weight; int age; }; int main(void) { struct person_spec MySpec; MySpec.tall = 175.5; MySpec.weight = 61.2; MySpec.age = 27; } を書くとしてjavaではどう書き直せばいいのでしょうか。 どなたか回答お願いします。
>>610 そのままではダメだけどそんな感じ
URLで表せるものを取ってくるのなら
new URL(spec).openConnection().getInputStream()で得られる入力ストリームからデータを取り出せる
詳しくはAPIドキュメントを読んでくれ
>>611 public class Person {
private double height;
private double weight;
private int age;
public static void main(String[] args) {
Person me = new Person(175.5, 61.2, 27);
}
public Person() { // デフォルトコンストラクタ */
}
public Person(double height, double weight, int age) {
this.height = height;
this.weight = weight;
this.age = age;
}
}
>>611 class PersonSpec {
float tall;
float weight;
int age;
}
public class Main {
public static void main(String[] args) {
PersonSpec mySpec = new PersonSpec();
mySpec.tall = 175.5f;
mySpec.weight = 61.2f;
mySpec.age = 27;
}
}
_,,t-‐‐-、,-‐‐-、 三'::::::............... .....::::::`y,. ナ::::::::::::::::::::::::::::::::: :::::::::::::ヾ | ̄| V::::::::::::::::_{{ ({∫∬ノノjヾ:::::{ | ̄| | ̄| ナ::::::::::::::i`__,,,,,,,ァ_ _,,,,,_ t;;:ヌ | | | | イヘ::::::(ヾ~!,ャt、 !'''i ィtン )=f }f | | | | i {t)テ" ヘ' '___,イ ヽ_/ 介' | | | | _,rヘ_,j|!' /ー--''! |' |,.ィ―'''' ̄ /| | /二ク ! /;;:::'';;::''::;;:/ { ! 、 ヾニン ノ\ /'''::::;r|''':::;;;| | ! \ _,,./|::;;'''\ /:;;/ |;;;''::;;| 丶\ `__>-ー´ !;;;:'''::iヽ、 i/ |'::;;;;''| 三 ―''" !''::;;;;| /ヽ /⌒ヽ |;;''':::;| \ !;;::''|/ i / \{'';;;::''}  ̄二ニ= !::;;| | /ヘ |;;:::::;{ ‐- !/ | / i |:::;;;''! ー ! / | / l |;;'';イ } {、 〉、 ∧テ{ ヽ _ _,,,,;;;;;:::-==ニ;;;_ ノ __,イ´ / \_ //レ!  ̄  ̄ { ̄ | / `ー::v'´/ | i i | i / ̄ | | i、 | i / || ヽ |
>>611 public class PersonSpec {
private float tall;
private float weight;
private int age;
public PersonSpec() {
this(57000, 550000, 30);
}
public PersonSpec(float tall, float weight, int age) { setTall(tall); setWeight(weight); setAge(age); }
public float getTall() { return tall; }
public float getWeight() { return weight; }
public int getAge() { return age; }
public void setTall(float tall) { this.tall = tall; }
public void setWeight(float weight) { this.weight = weight; }
public void setAge(int age) { this.age = age; }
}
public class Main {
void mainppoi() {
PersonSpec mySpec = new PersonSpec();
mySpec.setTall(175.5f);
mySpec.setWeight(61.2f);
mySpec.setAge(27);
}
}
>>612 ありがとう!百万の感謝を。
API見てきます。
public class PersonSpec { private float tall; private float weight; private int age; public PersonSpec() { this(57000, 550000, 30); } public PersonSpec(float tall, float weight, int age) { setTall(tall); setWeight(weight); setAge(age); } public float getTall() { return tall; } public float getWeight() { return weight; } public int getAge() { return age; } public void setTall(float tall) { this.tall = tall; } public void setWeight(float weight) { this.weight = weight; } public void setAge(int age) { this.age = age; } } public class Main { void mainppoi() { PersonSpec mySpec = new PersonSpec(); mySpec.setTall(175.5f); mySpec.setWeight(61.2f); mySpec.setAge(27); } }
>>611 public class person_spec {
float tall;
float weight;
int age;
public static void main(String[] args) {
person_spec MySpec = new person_spec();
MySpec.tall = 175.5;
MySpec.weight = 61.2;
MySpec.age = 27;
}
}
線形探索法なんですが、なぜかエラーが出ます。 どこをいじったらよろしいんでしょうか? class Sample1 { static final int [] a = {4, 1, 3, 2, 5}; public static void main(String [] args) { int x = 0; int i = 0; while(x != a[i] && i <= a.length) i++; if(i <= a.length) { System.out.println(x+"は存在する"); } else { System.out.println(x+"は存在しない"); } } }
621 :
デフォルトの名無しさん :2007/02/13(火) 23:47:59
エラーが出てるならエラーを貼れ そんなことも分らんのか
↑ ArrayIndexOutObBoundsExceptionがでてます
i <= a.length → i < a.length とか
624 :
デフォルトの名無しさん :2007/02/14(水) 00:08:00
それ以前に・・・
>>620 のプログラムは何をしたいんだ?
・i <= a.length → i < a.length ・while(x != a[i] && i < a.length) → while(i < a.length && x != a[i]) ・if(i <= a.length) → if(i < a.length)
悩んだが。 ・i <= a.length → i < a.length ・i < a.length 判定を先に でいんじゃね? というかどう考えても宿題だな。これ。
630 :
デフォルトの名無しさん :2007/02/14(水) 00:38:28
こうやろ class Sample1 { static final int [] a = {4, 1, 3, 2, 5}; public static void main(String [] args) { int x = 0; int i = 0; while(i < a.length) { if(x == a[i]) { System.out.println(x+"は存在する"); return; } i++; } System.out.println(x+"は存在しない"); } }
public class Sample1 { static final int [] a = {4, 1, 3, 2, 5}; public static void main(String[] args) { int x = 0; for (int i : a) if (x == i) { System.out.println(x+"は存在する"); return; } System.out.println(x+"は存在しない"); } }
>>632 return しないと「~は存在しない」も通ってしまうでよ
// まだ書きたいならメソッドにするのが良い
>>632 あなたはご存じないかもしれませんが、
return文はメソッド又はコンストラクタの呼び出し元へ制御を返します。
returnもしらねえのか馬鹿が
_,,t-‐‐-、,-‐‐-、 三'::::::............... .....::::::`y,. ナ::::::::::::::::::::::::::::::::: :::::::::::::ヾ | ̄| V::::::::::::::::_{{ ({∫∬ノノjヾ:::::{ | ̄| | ̄| ナ::::::::::::::i`__,,,,,,,ァ_ _,,,,,_ t;;:ヌ | | | | イヘ::::::(ヾ~!,ャt、 !'''i ィtン )=f }f | | | | i {t)テ" ヘ' '___,イ ヽ_/ 介' | | | | _,rヘ_,j|!' /ー--''! |' |,.ィ―'''' ̄ /| | /二ク ! /;;:::'';;::''::;;:/ { ! 、 ヾニン ノ\ /'''::::;r|''':::;;;| | ! \ _,,./|::;;'''\ /:;;/ |;;;''::;;| 丶\ `__>-ー´ !;;;:'''::iヽ、 i/ |'::;;;;''| 三 ―''" !''::;;;;| /ヽ /⌒ヽ |;;''':::;| \ !;;::''|/ i / \{'';;;::''}  ̄二ニ= !::;;| | /ヘ |;;:::::;{ ‐- !/ | / i |:::;;;''! ー ! / | / l |;;'';イ } {、 〉、 ∧テ{ ヽ _ _,,,,;;;;;:::-==ニ;;;_ ノ __,イ´ / \_ //レ!  ̄  ̄ { ̄ | / `ー::v'´/ | i i | i / ̄ | | i、 | i / || ヽ |
638 :
デフォルトの名無しさん :2007/02/14(水) 04:36:24
知らないことが馬鹿なんじゃなくて、自分で調べなかったことが馬鹿だぁ!だぁ!だぁ!
642 :
640 :2007/02/14(水) 14:37:36
>641 ちょ、ちょwww これプログラミング関係の本じゃねぇってwww
>>639 のどさくさに紛れて
>>640 は一体何を言いたいのだろう。
誤爆?
Javaの文字ひとつすら入っていないし
>>639 もプログラミングとはかんけいないんだよな。
名前がJAVAになってるNPO法人というのが面白い。
645 :
586 :2007/02/14(水) 21:53:42
>>588 回答ありがとうございます。
解決できました。
初心者ですがよろしくお願いします。 Swingで作成したJButtonを押したときにフォーカスが当たって 枠線がでますが、あの枠線の色を黒以外にすることはできますか?
サーブレットでのクッキーの使い方がわかりません… HTMLのフォームから入力したデータをクッキーで渡すにはどうすれば…??
_/ ─ / __ __/ ____/ / _/ /\___/ヽ /'''''' '''''':::::\( ) ノ + |(●), 、(●)、.:( ( ) + . | ,,/⌒ヽー、 .:::ノ ) . + | ,.-' ヽ 〉、ヽ== ノ + / __⌒〉ノ./ユ`J`’/ + / ̄ / /  ̄´iノ、 ./| . . レイ ./ト、 \ ( ./ヽ ( _ノl ヽ `7ー.、‐'´ |\-、 . ______________________ ____ |二|三│四│五│六│ │ │ │ │ │ ││ │ ├──┐ |萬|萬│萬│萬│萬│中│中│發│發│ │ |│中│發│ | └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘└―┴─┴──┘
>>646 枠線て文字の周りの四角いやつ?
あれはルックアンドフィール固定で変えられないんじゃないかな。
>>649 そうです、ボタンクリックしたときに出る四角の点線です。
ルックアンドフィールですか、設定用のメソッド等があるのかと思ったんですが。
ありがとうございます。
>>646 ざっとソースを眺めた感じ、
L&F依存で設定できない場合はあるかもしれないけど、少なくともMetalなら、
javax.swing.UIManager.put("Button.focus", java.awt.Color.red);
みたいな感じで変えられなくはない。
要は、フォーカスカラーを"Button.focus"をキーとしてプロパティに格納しているL&Fなら、
たぶん反映される。
652 :
649 :2007/02/14(水) 23:42:18
653 :
651 :2007/02/14(水) 23:43:34
あ、見たのはJDK5だから6ではまた変わってるかもしれないけど
654 :
651 :2007/02/14(水) 23:50:16
>>652 できることはできるけど、
クラスのソースを見ないと分からないドキュメントにはない裏技だから、
実装を変えられると役に立たなくなると思う。L&F依存だしね。
もしかするとDocumentedなtipsなのかもしれないが……
気になったんで"uimanager.put"でぐぐったら結構面白かった。 普段、どのL&Fにしてもデフォルトから変えないから気にしたことなかったよ。
hoo/bar/*.java のような、ワイルドカードを含むパス文字列から File オブジェクトの配列を取得する方法で簡単なのはありませんか? File.listFiles(FilenameFilter) を使うのでは、とは思ったのですが、もう少し簡単なのは無いのかなーと。
>>656 Jakarta Commons IOのFilenameUtilsにwildcardMatchてーのがあるみたい。
それを使った WildcardFilter があったりもする。
① Double dblval = 123456789012345.1234567899; System.out.println(dblval.doubleValue()); console ---------------- 1.0E15 ↑ 指数が出てしまっている・・・・ 整数15桁、少数10桁を許容するテキストボックスが有ります。 上記を登録するDBのカラムは数値型です。(oracle) 指数ではない値(123456789012345.1234567899)を登録する方法が分かりません。 ② DBに登録されている値(123456789012345.1234567899)をBIGDECIMALでの計算後、 DOUBLEのセッターに格納した瞬間に指数になり、指数が画面に表示されてしまいます。 指数ではない値(123456789012345.1234567899)を表示する方法が有れば教えてください。 大変なことになっていてとても調べる時間がありません、どうかご回答お願いします。
┌──────────────────────―┐ │ | │ | │ /■\ | │ (´∀`∩) | │ (つ 丿 | │ ( ヽノ | │ し(_) | │ | │ Now Onigiring. .. | │ | │ | │ しばらくおにぎりでお待ちください。 | │ | └──────────────────────―┘
double の精度は 25 桁も無い。 その要件なら double 使った時点で死んでる。
>>661 ①はまあ、後続の処理で指数のまま計算出来るので良いとして②が、、
指数のまま画面表示するのがNG、
double(指数のまま)でJSPまで持ってきて、
指数から戻したStringをゲット出来ないかと考えているのですがどうでしょうか。
BigDecimal のまま計算し続けて 表示は DecimalFormat 遣うとかじゃダメなの?
/\ /:入ヘ.丶、 /  ̄  ̄  ̄  ̄  ̄ .|/,-.、,-\∨/ / /||/| |\|:\ヽ∠ i _ / | `-', ,. ̄ 彡|:\ i ─.|-.|ミ ;\ヽ, / ひっひっひ /|:.| | .|:/ヽ  ̄ ̄\ _ _ / ; ヽ、 / ̄)/ ./\  ̄ ̄ ̄ ̄ ̄ ̄ \ヽ、 Y ̄ /;ヽ/:/ , .\ (  ̄ /|: /:/ |/ ..| く / ;/ |:/:/ / > \ / ./ / ヽ
665 :
デフォルトの名無しさん :2007/02/15(木) 04:36:01
Linux (FC4)でJAVA_HOME/jre/lib/fontconfig.* ってどれが選ばれたのか分かるのでしょうか? 誰かから引き継いだFC4のPCで普通に日本語使えたのですが、新しく別のPCにFC4をインストールして 前のPCで使ってたのと同じ jdk 1.5.0_06のRPMをインストールしたのですが、日本語が豆腐になります。 もとのPCでアプリを走らせて新しいPCのXサーバーで表示をさせるとちゃんと日本語になるのでフォントは ちゃんとあるようです。 それでおそらくfontconfigの選択のされ方が違うのではと推測してるのですが。
666 :
デフォルトの名無しさん :2007/02/15(木) 04:50:07
666get
667 :
559 :2007/02/15(木) 08:22:26
>>663 ①
大事なことを書き忘れていました、DBアクセスをhibernateで行っていて、
insert文を直書き出来ないのでDecimalFormatでStringを戻したあとdoubleにキャスト、Hibernateに投げています。
ああでも、本当にDBに指数入ってるか、Hibernateで指数入れるのやめられないか再確認だわ、、
②
DBに指数が入っていた場合、DecimalFormatが利くか不安が有ります、(試しますが重くなりそうですね)
doubleのみを使った計算も有りそうだし、やっぱり画面表示の際は指数を数値に戻したStringが欲しい、、、です。
668 :
649 :2007/02/15(木) 09:03:25
表示だけならふつうに DecimalFormat でできるっしょ
>>667 java.util.Formatter の %26.10f で double から文字列に変換すれば?
(そのままどこかに出力するなら PrintWriter か PrintStream の printf() でも同じ)
但し double の精度は足りないので下の方の桁が違う値になると思う。
なんでdoubleで扱いたいのかが分からん。
671 :
デフォルトの名無しさん :2007/02/15(木) 10:25:07
ひょっとしたら恥ずかしい質問かもしれません。 32ビット版で開発したJavaプログラムを(Windows x32) 64ビット版のOSにインストールしたら(Windows x64-Server) そのプログラムは64ビット版で動作するのですか? それとも64ビット版のJavaでコンパイルする必要がありますか?
そんな必要はない。
頭のいいトラブルシューターへの挑戦状だ(^ω^)つ やさしいJava活用編p120 モデルとビューでテーブルを作成しました。 コンパイルが出来、アプレットも表示されるのですがアプレット上の『ビューの変更』を押したら、コマンドプロンプトに『java.lang.NullPointerException~』が表示されます。 トラブルシューティングせよ! 教えれ!
>>673 モニタに向かって「がっ」って言い続ける以外の解決法は何ひとつ無い。
>674がっ(`・ω・)シ)"〇")
676 :
デフォルトの名無しさん :2007/02/15(木) 12:11:32
JAVAで自作掲示板にPOSTで値を送って 書き込むプログラムを作っているのですが 上手くいきません。 URLConnectionでやっています。 どなたかご教授いただけませんか?
677 :
デフォルトの名無しさん :2007/02/15(木) 12:13:36
JAVAで自作掲示板にPOSTで値を送って 書き込むプログラムを作っているのですが 上手くいきません。 URLConnectionでやっています。 どなたかご教授いただけませんか?
優しい俺様が教えてあげよう そんな質問の仕方では誰も答えられん
679 :
デフォルトの名無しさん :2007/02/15(木) 12:23:41
コタエマセン
673頼む
>677 public class Post { public static void main(String[] args) { try { // URLクラスのインスタンスを生成 URL helloURL = new URL("");// ここに掲示板URL // 接続します URLConnection con = helloURL.openConnection(); // 出力を行うように設定します con.setDoOutput(true); // 出力ストリームを取得 PrintWriter out = new PrintWriter(con.getOutputStream()); out.print("cmd=write"); out.print("name=あああ"); out.print("email=doaihdoa@yahoo.co.jp"); out.print("text=あああああ"); out.close();
>681が>677のソースです
>>682 multipart/form-dataの体裁を作ってprintする。
>>677 Commons HttpClient使えば簡単だよ。
>>682 マルチでスレ立ててやがったのか
くたばれクズウスノロ
>>681 writerでclose前にflushしていないため、尻切れの可能性。
改行していないようにみえる。コマンド認識が行単位なら…
//簡易メソッドが付いてる何かのほうが良さそうだが…
687 :
デフォルトの名無しさん :2007/02/15(木) 12:51:46
>>685 違うよ。
すれ立てたら、ここ紹介されたんだよ。
だから書き込んだんだ。
それもダメだと言うなら申し訳ない。
688 :
デフォルトの名無しさん :2007/02/15(木) 12:53:27
>>684 実はTOMCATをインスコしてるけど、使いこなせない。。。
参考サイトとかある?
聞いてばかりですまん。こういうプログラムは初めてで。。。
689 :
デフォルトの名無しさん :2007/02/15(木) 12:54:09
TOMCATはスレ違い
なぜここでいきなりTomcatが出てくるのか理解に苦しむ。
>>687 俺685じゃ無いが、「誘導されてきた」って最初に言わないと駄目だと思うぞ。
>>540 は実はリダイレクトではなくforwardを使っていた
西暦8桁、商品番号、単価、数量を入力して金額(TAX込み)を 出力するプログラムの設計書を書けっていわれたんだけど まず設計書なるものがどういうものかわからない。 具体的に設計書を教えてくれませんか?
>>543 「健闘を祈る」がCivilizationのあの最初の決めぜりふみたいで面白い
>>551 エディタという微妙な表現が面白い。
普通、IDEというのに。
細かい人はEclipseはツールのためのプラットフォームという。
>>663 printf()文を使えばDecimalFormatはいらない
と思った。
nioのノンブロッキングIOで取得したXMLをsaxで処理する方法 ってありますか? nio.ByteBufferをInputStreamにしてSaxParserに食わせるという 非効率な方法しか思いつかない… スレッドを生成しなくてすむというnioのメリットを享受したいんだけど XMLとは相性悪いんですかね。
>>704 説明不足ごめんなさい。
channelってSocketのInputStreamをnioのByteBufferにバッファリングしてる
イメージがあったので、それをまたInputStreamに変換しなおすのって
賢くないような、と思ったのです。
>>681 ヒント1
変数名=値 が連続する場合は区切りに & が必要。
ヒント2
値の中の記号はやはり %xx の形式にした方が良い。(URLEncoder)
ヒント3
close() する直前で flush() しておいた方がいいかもね。
ヒント4
HTTP の通信というのはサーバに接続後、サーバに要求を出した後でサーバからの
応答を受け取るという手順だ。
受け取らねばならんのだよ。送ってすぐ切断しちゃ駄目。
バイナリーファイルとテキストファイルの区別がつかないです。 ソースの書き方で分かれるってことですか?
>>708 もちろんググりましたよ。ただテキストファイル(メモ帳)しか使った
ことがなくてほかにバイナリーファイル(?)があるのかなとおもいまして…
テキストエディタとバイナリエディタ
>>709 テキストファイル以外のファイルは全てバイナリファイルだ。
そういう質問はPC初心者板で聞いてくれ
>>709 おまえがいつも見てるエロ動画をメモ帳で開いてみろ。
もしテキストが表示されたらそれはテキストファイルだ。
>>709 今一般に使われるOSでは、どんなファイルも
基本的には1Byteの数値を羅列したもの(バイトストリーム)だ。
テキストファイルだって例外ではなく
アプリケーション側が、読み取った数値を
文字コードと解釈して文字に変換して使っているに過ぎない。
もしテキストエディタに
文字コードの羅列でないもの(例:exeやclass)を読み込ませたら
化け化けの文字が表示されるだろう。
それは文字コードでない数値を文字コードとして無理矢理解釈した結果だ。
また、文字コードの体系は何十通りもあるから
違う文字コードと解釈した場合も当然化ける。
で、バイナリファイルは文字コードでないものを記録したものだ。
例えば実行ファイルはこの数値を「機械語」として扱うし
classファイルはこれをVMの為のバイトコードとして扱う。
…なのだが、Windowsなどはもう少し踏み込む必要があって
バイト単位でファイルの読み書きする際に2つのモードがある。
テキストモードとバイナリモードだ。
バイナリモードは前述の通り単純にバイトを読み書きするのだが
デフォルトであるテキストモードでは改行記号などの
いいとこで終わってるw
なぜか ろまじ で うてなく なた あと まかせる
SAVE "hoge",A がテキストファイルで SAVE "hoge" がバイナリファイル
/ // ._,,-' / \ / ''-' ,,-''二-''" / ̄ ̄ ─────── / "- `、 ._,-" / _/ ヽi .({ _,,_,, _,, -'/ __ """"""--"| .|i二 """""" __ / 丶 i i γ ヽ i i ___ ___ i i ( ^ ^ | / \ ,f ヽ | ^ ^ ) /、 {、(,_)ヽ< i i i ___ i i i >ノ(_,)、} //ト, l゙l丶 l-==-! ヘ,.| | ,f ヽ | |,ヘ !-==-l ///l゙l ヽヽ } !`/丶 | | i i .| | ///ト,´! { ノノ | \ l゙l゙丶丶 ( ^ ^ | .| | | ^ ^ ) ////゙l゙l / / | | !. i. l {、/( ,_、)ヽ< .) | | (. >ノ(、_, )ヽ、} l .i .! | |. | │ | -=ニ=-! / ∧,, ( ^ ^ ),,∧ヽ !-=ニ=- | │ | .| ヽ.ヽ. } ,!`ニニ´//.. { ノ(、_, )ヽ、 } \\`ニニ´ !, { .ノ.ノ |.丶 丶  ̄ ̄ ̄/ / ,,∧. -=ニ=- ,∧,, \ ̄ ̄ ̄../ / .| /\..\ `ニニ´//\ _ /| | \ \ ̄/ /| | \ 九住 .≡火 畄弋 Βヽ/ ┼┐〃 ││ ─┐ ノ ─┐〃 / / 木|ニ 口火 十 乂 .| 豕 ノ ノ ノ ,ノ ア ´| ,ノ 。 。
>>717 Aでセーブしとけば少しくらい破損しても直せるってばっちゃが言ってた。
でもたまたま^Zが入ってたらあとは打ち直しだって。
さがりすぎ あげとく
>>716 「Alt」 + 「カタカナ ひらがな」キー
初心者過ぎて申し訳ないんだけど、 キーワードで予約されてるstrictfpとvolatileって どういう意味でどういうときにどうやってつかうんですか?
( 丶 | } ,、_ { 'i | ! !^i { | .{ ' ' ,′ } } { ,′ | i' .l i' r'゚'=、 i i' | i' / ̄`''''"'x、 / ノ ヽ( ,-=''"`i, ,x'''''''v'" ̄`x,__,/ , " ~`‐=:、__,,/ i! i, ̄ ̄ _/\/\/\/|_ | {0} /¨`ヽ {0}, l, \ 使っちゃ駄目だから/ 1 ヽ._.ノ | < 予約語なんだよ! > {, `ー'′ .| / \ } 人 ノヽ |  ̄|/\/\/\/ ̄ / `''' `ー" \__,/ / ∠_ | f\ ノ  ̄`丶 | | ヽ__ノー─-- 、_ ) | | / / | | ,' / / ノ | , / / | / _ノ / ,ノ 〈 ( 〈 ヽ.__ \ ヽ._> \__)
volatileは、変数が他のスレッドにより 変更されてしまう可能性があるときなどに付けておく。 自スレッド以外が、変数をさわる可能性を考えて、最適化しすぎないようになるはず。 strictfp は、浮動小数点の扱いを厳密に行うとき。 普通、floatとかdoubleの計算はCPUの命令で 実行したりするのでCPU依存になる。 まあ、これを使うことはあまりないはず。
iTextでシコシコPDF出力するモノを作っていますが、 表・空書式を別のPDFファイルで用意しておいて、 値だけを張り込んでいくような処理をしたいのですが、 (つまりオーバレイです) 方法が分かりません。 どなたがご存知でしたら教えてください。m(_ _;m
>>726 別のPDFがiTextを使って自分で用意したものなら、
PDFにする前の状態、つまりiTextでシコシコPDF出力するモノに与える状態のもので、
張り込むべき値の部分がプレースホルダーになっているものを用意して、
PDF出力前に実際の値に置換してからPDF化する。
そうではないのなら、PDFを眺めて手動でPDF化する前の状態のものを作成するとか、
PDFを解析して空欄を認識してiTextの入力データ化するものを作るとか、
そういった処理をあきらめてPDFの方に直接、値を書きこむものを作るかする。
728 :
665 :2007/02/16(金) 00:07:13
>665 Linux (FC4)でJAVA_HOME/jre/lib/fontconfig.* ってどれが選ばれたのか分かるのでしょうか? スルーされましたがやっと自己解決しますた。straceかけたら動く方ではlibfontconfigをアクセスして ごにょごにょしてるが動かない方ではそれがないのが判明。 rpmのリストを見たら動くほうでは fontconfigとfontconfig-develがインストールされてるが動かない方ではfontconfigのみ。 そこで fontconfig-develをインストールしたら無事日本語が表示されました。 これはjdkのバグでしょう。
JDKのrpmのspecにRequires: fontconfigとか書いてないという意味でのバグ?
>>727 トンクスです。
実際にやりたいのは後者の方、前者の方法はなんとか調べられました。
しかし、
> PDFを眺めて手動で
にヘコみました。なんとか別の方法を模索します。
731 :
665 :2007/02/16(金) 00:58:06
>>729 いや、fontconfig-develがないとfontconfigの存在が検知出来ないという事がバグではないかと思います。
>>731 それならfontconfigのパッケージングミスという線が濃厚かも。
ランタイムはfontconfigのみで完結してるはずだから。
一部必要な物がfontconfig-develのほうに入ってしまってるのかもね。
733 :
デフォルトの名無しさん :2007/02/16(金) 02:23:55
ブラウザにHello worldって出力する方法教えてください
アプレットで?
735 :
デフォルトの名無しさん :2007/02/16(金) 02:33:47
>>734 はい。IEブラウザなどで表示する方法を知りたいんです
お願いします
getAppletContext().showDocument("javascript:alert(\"hello, world\");void(0);");
737 :
デフォルトの名無しさん :2007/02/16(金) 02:56:46
すいませんいまいちやり方が分かりませんでした。 java言語でプログラム書いて実行する時に別のブラウザで出すようにしたかった んですがもう少し自力で勉強することにします
738 :
デフォルトの名無しさん :2007/02/16(金) 06:00:23
Stringがnullかどうか調べたい場合に String abc; if(abc.equals(null)){ } else{ } という風にすると、NullPointerExceptionが出てしまい、 それをまたcatchしなければならなくなるのですが、 これを回避するにはどうしたらいいのでしょうか?
ミ ∠_)
/
/ \\
ウイーン Γ/了 | |
ウイーン |.@| | | ガッガッガッ
| / | 人
|/ | < >_∧∩
_/ | //.V`Д´)/
>>738 (_フ彡 /
741 :
デフォルトの名無しさん :2007/02/16(金) 15:59:01
>>742 ありがとうございました!
自分のプログラムがネットで動いてちょっと感動しました。
というわけで741のURL先でつまんないプログラムが見られます。
おめでと。 とりあえずその感動を忘れずにな。
STAGE1ごーるヽ(´ー`)ノ おもしろい。 ただし、STAGE2は運だなぁ
>>744 はい。現在は勉強のためにやっていますが
インターネットで公開できるとなると趣味としてもやる気が出てきました。
>>745 ありがとうございます。実はこれはとある講義の試験課題で、
小気味よく動くシンプルなゲームという題目だったのでこんなのにしました。
だいたいみんな1発目はぶっ飛ばしてしまって笑ってくれるw
>>743 やってみた
ムズいよこれ orz
面白いけどw
センスいーな。 うらやましー
>>747 難易度調整までは無理だったw
しかしSTAGE2は運の要素が大きすぎて確かにつまらんな…orz
センスはそこまでいい人間じゃありませんよ。
スレ違いなのでまあこの辺で。みなさんありがとう。
∧ ∧ (・∀ ・) <ねえこれって雑談でしょ? ノ( )ヽ < > ∧ ∧ ヽ(・∀ ・)ノ <VIPでやりなよー! (( ノ( )ヽ )) < >
, _____________________ ∧ ∧ / いいじゃねぇか・・・もっとどんどんやりなぁ。 / ヽ / ヽ ( おりゃあ好きだぜ、そういうちょっと弾けた奴ってさぁ・・・。 / ヽ____/ ヽ ヽ へっ・・・なさけねぇ・・・おふくろのこと思い出しちまったぜ・・・。 / ヽ / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / ヽ // / ⌒ ̄\ __,.. ヽ ,. ,._ ,.-,.、 -=二_ニニ==- i -,-===ゞ' く__,. _ i // j / / ノ -=ニ_ ̄ i ..::::ノ ヾ ̄ヾ- i __ノ `-/ノ `ツ __ニ_二=- | ....::::: . }:. | // // _,_{ ̄/ ̄ ̄ ̄ ̄/^/;;'´ ̄ ̄ | ,イ ,;_ .,ノ:::... i ヾ、_/ /_i______i_ヾ:;' | / , ´ ー ´`i ノ / -=j" ,_/ ! ノ /-====ー、 i ノ,.--、 / / / ヽ { ⌒ " ,、 ノ }ヽ \ ノ _} / \
┏━┳━┳━┓ ┏━┳━┳━┓ ┃ ┃ ┃ ┃ 、 ┃ ┃ ┃ ┃ ┏━┫ ┃ ┃ ┃ 九仕 三火. | -|- ┃ ┃ ┃ ┣━┓ ┃ ┃ ┃ ┃ ┃ 木比 口火 l Ο- 、、 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣━┓ ─- ─- 二|二.  ̄フ ┏━┫ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ,__. ,__. Ο- <. ┃ ┃ ┃ ┃ ┃ ┃ ┃ 、 ┃ ┃ ┏━━━━━━━┓ ┃ ┃ ┃ ┃ 九仕 三火 ┃ ┃ ┃ ┃ ┃ ┃l二 |、 | 「ヽ ┃ ┃ 木比 口火 ┣━┫ ・ヽ─/ ・ ┣━┫ l_ | `| Lノ ┃ ┃ ┃ ┃ ∨ ┃ ┃ ┃ ┗━━━━━━━━━┛ ┗━┳━━━┳━┛ ┗━━━━━━━━━┛ ┃ ┃ ┏━┻━┓ ┃ ┃ ┃ ┃ ┏━━━┛ ┣━┻━┓ ┃ ┃ ┃ ┗━━━━━━━┫ ┗━━━┓ ┃ ┃ ┗━━━━━━━┛
>>738 すごい釣りに見えたのは気のせいか?
こんな天然ボケな奴は初めて見た。
>>741 むかし、Windows3.1対応のBangBangという大砲のゲームを
思い出した。角度と強度を調整して敵陣の旗に砲弾を
当てるというくだらないゲームだが。
755 :
hoge :2007/02/16(金) 21:40:39
JAVAのWEBアプリでブラウザから要求を送信直後にブラウザを切断した場合 要求を受け、動作しているJAVAのスレッドはどうなるのでしょうか? セッションが切れた時点で処理を中止? 処理は最後までいくがレスポンスを返すブラウザが無いので 終了? どちらでしょうか?
>>724 >>725 ありが㌧。
どっちも本当に使う機会がなさそうですね。
入門書に解説書いてない理由が分かった気がしました。
>>755 普通にレスポンスを返すだけ。
そのレスポンスをブラウザが受け取ったかどうかなんてわからないから。
ちなみに、セッションはタイムアウトまで切れない。
>>753 Stringは、=じゃなくてequalsで比較しなきゃ駄目って
教えられたと推測。
こういう事が積み重なって
=の意味と、プリミティブ型とオブジェクト型を理解していくもんだろう、と。
760 :
hoge@755 :2007/02/16(金) 23:17:46
>757 回答、有難うございます。 悩みが解消しました。
>>758 なるほど。
すると、こんなこともやってそうだ。
if(a.equals(1000))
762 :
デフォルトの名無しさん :2007/02/17(土) 10:38:15
TOMCAT 5.5内部の実装例 705 :仕様書無しさん :2006/10/25(水) 09:08:04 doPostは内部でdoGetを呼び出す。ジャワ糞はジャワ上の実装では この逆をしているだろう。ところがTOM内部ではこうだった。 その後が爆笑 "POST".equals はないでしょう。 if ("POST".equals(req.getMethod())) {
何が悪いのかわからない。 if (req.getMethod().equals("POST")) { もしこうだったら万一req.getMethod()がnullだったときにぬるぽだぞ それとも"POST"を定数クラスに持っていけっていう話か?
764 :
デフォルトの名無しさん :2007/02/17(土) 10:55:00
>>763 がこう書くのは無問題、いくらでもやればいいと思うよ。
TOMCAT 5.5の内部コードであるのがどうかと思うだけ。
内部コードだからこそ体裁無視、可読性無視、速度重視、効率重視、
>>762 "".equals って分かりやすくて良いと思うのだが?
何が問題?
普通だろそんなの 何が面白いのか理解できない
768 :
デフォルトの名無しさん :2007/02/17(土) 12:35:59
内部コードだからこそ体裁無視=>ふむ 可読性無視=>ふむ 速度重視=>ふむ 効率重視=>ふむ まるでドカタ突貫工事みたいだな。
"".equal は可読性を下げて速度、効率UPのためだったのか!
>>765 いやいや、null になる可能性がある変数との比較の場合、
文字列リテラル.equals(変数) という書き方はどっちかというと
「推奨」されてるんだが。
771 :
デフォルトの名無しさん :2007/02/17(土) 14:23:32
コンパイラの最適化に関する質問です。 初心者なことだと思いますが、答えてくださるとうれしいです。 例えば、Mapからvalueを連続して取り出し、 処理を行うプログラムがあったとします。 Map map = [なにか]; for () {
F5F5F5
773 :
771 :2007/02/17(土) 14:34:34
途中で投稿押しちゃいました。すいません。 コンパイラの最適化に関する質問です。 J2SDK 1.4以上 Win32用 についてです。 初心者なことだと思いますが、答えてくださるとうれしいです。 例えば、MapからkeyとString型のvalueを連続して取り出し、 各々に処理を行うプログラムがあったとします。 Map map = [なにか]; Set keySet = map.keySet(); for (Iterator i = keySet.iterator(); i.hasNext();) { Object key = i.next(); String value = (String) map.get(key); // key, valueを加工 } この場合、変数key, valueのための領域は、 メモリ上にループ回数分確保されてしまうものなのですか? または最適化されるのでしょうか?
そんなレベルで気にすることではない。
そもそもメモリの確保とはどういう意味で言ってる? スタックとかヒープとかは理解してるか? そもそもその各ループ内で呼び出してるメソッドの処理と比較して ローカル変数2個の確保が有意な差を生むと思うか?
>>773 普通は Object key と String value のための領域は一個ずつ。
仮にループアンローリングとかしても領域一個ずつで良いと思うけど?
パフォーマンスを気にするのは悪くはないけど 中途半端な知識では無意味もしくは悪化させる可能性が高いぞ
>>773 このfor文終了するのか?
毎回iterator()してるぞ。
??
>>763 こんなハードコーディングしていると、将来的に
POST が POTETI になったときに容易に修正できないぞ?
大して変わらねーよ
783 :
771 :2007/02/17(土) 15:08:21
776さんの解答が一番近い気がしますけど、みなさん何かを非常に勘違いしているような。
僕は初心者なので
>>775 の言うようなことはわかりません。
だから聞いてるのですけどね。
では、質問の仕方を変えましょう。
key と value の宣言を、ループの外に出したほうが、
『効率がいいか、同じか』です。
・いい
・おなじ
この二つ以外は聞いていないのでよろしくお願いします。
>>773 の疑問は興味深い。
ループ内で変数の宣言をした場合、領域の確保と破棄がループ回数ぶんだけ
繰り返されるのか?、最適化によって確保と破棄が1度ずつになるのか?
結局、どっちなの?
変数.equals() よりも、文字列.equals() の方が 何が実行されるかが明確。わざわざ曖昧にする必要はない。
786 :
771 :2007/02/17(土) 15:10:56
『仮に』だけど、ループ処理しながらDBにINSERT10万件するなら、 意識せざるをえない問題なんだが。
787 :
778 :2007/02/17(土) 15:12:21
>>779 こうじゃなくていいの?
for (Iterator i = keySet.iterator(); i.hasNext();) {
Object key = i.next();
String value = (String) map.get(key);
// key, valueを加工
}
↓
Iterator i = keySet.iterator();
while ( i.hasNext() ) {
Object key = i.next();
String value = (String) map.get(key);
// key, valueを加工
}
788 :
デフォルトの名無しさん :2007/02/17(土) 15:14:04
どうでもいいな
>>786 これから処理されるものはメモリに乗らない。
すでに処理されたものは参照されないのでGC対象。
なので基本的にはメモリ上にあるのは現在処理中のものだけじゃん?
>>783 > 『効率がいいか、同じか』です。
実行時にどーなるかはわからん。
> ループ内で変数の宣言をした場合、領域の確保と破棄がループ回数ぶんだけ
> 繰り返されるのか?
みたいな間抜けな事をされる事は無いと思うが、
> key と value の宣言を、ループの外に出したほうが
がトリガーになって別の最適化がかかりにくくなったり
最適化されやすくなったりする可能性はあるかもしれん。
変数のスコープを無駄に広げてるので、たぶん最適化されにくくなると思う。
791 :
デフォルトの名無しさん :2007/02/17(土) 15:16:01
質問者の癖に生意気だな
792 :
デフォルトの名無しさん :2007/02/17(土) 15:17:41
>>786 じゃあ実際に10万回試せよ
試してから書き込め
794 :
771 :2007/02/17(土) 15:19:15
みなさん、ありがとうございますm(_ _)m
>>792 なぜ???
どうでもいいが、 わざわざループ内で get 発行しているくらいなら Entry 使った方が分かりやすいし、 パフォーマンスも上がるかもしれない。少なくともローカル変数の節約よりは。
796 :
デフォルトの名無しさん :2007/02/17(土) 15:23:02
>>773 ポインタ、参照ってわかる?
keyの参照、valueの参照、keySetの参照はヒープ領域に保存されるよ。
Object Key = i.next().clone(); //浅いクローニング
とか
Object Key = new OneObject((OneObject)i.next().clone()); キーの型が可変のOneObjectという型であると仮定して。
とすると、部分的にメモリ上に確保されるよ。
しかしこれらはforスコープ内のみで宣言しているので(ry
798 :
771 :2007/02/17(土) 15:24:41
>>796 悔しいです。というより腹が立ちます。
僕は幼稚なのでたかが掲示板の文字列にも腹を立てます。
あなたが嫌いだ。
799 :
771 :2007/02/17(土) 15:25:30
>>797 そんなことは聞いてませんのでいいです。
800 :
771 :2007/02/17(土) 15:28:11
801 :
771 :2007/02/17(土) 15:28:58
802 :
デフォルトの名無しさん :2007/02/17(土) 15:29:12
>>800 死ねよカス
売太の母ちゃんのおっぱいでも吸ってろw
803 :
771 :2007/02/17(土) 15:30:03
ここは俺が沢山居るスレですね
804 :
771 :2007/02/17(土) 15:30:35
本物は俺なんだぜ?wwwwwwwwwwwwwwwwwwww
>>773 を見ていたら気持ち悪くてイライラしたので
ソースコードを手術してやる!(激怒
Map<何かのクラス, String> map = [なにか];//[なにか]には<何かのクラス, String>が入ってる。
Set<何かのクラス> keySet = map.keySet();
何かのクラス key = null:
String value = null;
for (Iterator<何かのクラス) i = keySet.iterator(); i.hasNext();) {
key = i.next();
value = map.get(key);
// key, valueを加工
}
しかぁし! このfor文、使えない! こう改良してやる!(怒
for(Entry<何かのクラス, String> entry : map.entrySet()){
key = entry.getKey();
value = entry.getValue();
// key, valueを加工
}
いいか、同じかって 悪いって選択肢がなぜない? 実際どうかはjvmの実際次第で分からない。 言われてるように最適化が阻害されて悪くなる可能性もある。 よって意味的にシンプルで分かりやすい方が望ましい。 外に出す意味は無いだろう。
>>780 ResouceBundleでそこにgetBundleってやるってか?
それともEnum型でやったるか?
>>783 > 776さんの解答が一番近い気がしますけど、みなさん何かを非常に勘違いしているような。
> 僕は初心者なので
>>775 の言うようなことはわかりません。
> だから聞いてるのですけどね。
質問者でしかも初心者の癖に生意気だな貴様(怒
>>785 せめて
文字列リテラルは
private static finalにするかEnum型でとってくるべきだろうに。
812 :
771 :2007/02/17(土) 15:35:31
>>806 なるほろ。
>>逆に最適化が阻害されて悪くなる
この発想がないから、悪いという選択肢がない。
結論は、
『同じ』
ただい、むしろ悪い可能性あり
ですかね。
>>810 アプリケーションサーバの内部コードの話だぞ。
Enumなんかにするよりハードコードしたほうが早い。
ただでさえTomcatは遅いって文句言われてるのに。
javaって内でも外でも本当に同じなんだっけ? いや仕様上の話で。
>>786 > 『仮に』だけど、ループ処理しながらDBにINSERT10万件するなら、
> 意識せざるをえない問題なんだが。
生意気だな。そんなにパフォーマンスを気にしているなら
Javaの最適化よりもDBの最適化の勉強しして出直してこい。
そっちのほうが重要だ。
お前のINSERTする方法が非効率なのか、
テーブル設計が、重複データありで正規化されていないという糞DB
である可能性もあるんだからな。
ハッシュ云々の前にDB板でストアドプロシージャや正規化について聞いてこい。
>>798 DBに100万件INSERT考えている奴がそんなこと言ってもいいのか?
大事な顧客情報が入っているんじゃないのか?
818 :
771 :2007/02/17(土) 15:40:17
>>815 こういうのいるからこっちも強気に出るしかないんですよw
どうせ会社じゃヘコヘコしてるくせにさw
とりあえず効率が気になるならjavapでvm上でどういう命令になるのか 調べてみては? 実際にはこれが実行時に最適化される可能性があるが。
>>794 なぜじゃない。実際にやってみろと聞いているんだ。
DBにINSERTすると本番環境に悪影響を与えるというなら、
DBUnitを使え。
821 :
771 :2007/02/17(土) 15:41:19
なるほろ。 口だけ達者なバカばっかりってことはわかりました
>>819 むしろ、バイトコードへのコンパイル時は、
最適化はほとんどされないというのが定説
>>812 いやそもそも分からんと言ってる。
分からんからわざわざ変なことする意味はない
メモリ確保って意味じゃ、こんなスタックの話では普通有意な差はない。
最適化でほぼ変わらなくなるだろう。
>>814 今回の場合は同じ。
key も value もインスタンスは map から強参照されてるから。
で、
>>797 は参照って用語がインスタンスと言われるべきものがごっちゃになってる。
>>813 なるほど。
かといって、一般の、たとえば金融開発などで
真似されたくない罠。
頻繁に文字列を変更するとなると、ResouceBundleや
Enum使って欲しい。
間違っても定数interfaceなんて使わないで欲しいけどな。
826 :
771 :2007/02/17(土) 15:44:12
最適化もくそも ローカル変数がどうバイトコードに落とされてるか調べてからしゃべれよカスども
>>812 お前な、最適化うんぬん気にする前に
まずデータベースの勉強してからそういうことに悩め。
DBの最適化を怠ってJavaだけ最適化しても
何も解決にもならんぞ。
実際にバイトコード読んで調べた人数→0
>>818 >
>>815 > こういうのいるからこっちも強気に出るしかないんですよw
> どうせ会社じゃヘコヘコしてるくせにさw
おい、そうやって話をそらす前に
>>815 のアドバイスをちゃんと受けたのか?
データベースのこと勉強しろ。それだけは言える。
ループしながらDBにINSERT?
なにか怪しいんだよな。
まさか都は思うが、Selectで取り出した100万件のデータを一旦Mapにつめこんで
何かしょりしてから
再びINSERTするというあほなことをやってなかろうかと、お前を疑っている。
>>828 バイトコード見るぐらいなら言語仕様見ろよ。
831 :
771 :2007/02/17(土) 15:47:02
たぶん
>>823 の言ってることが一番正しいと思います。
>>効率がいいか同じかはわからん
>>メモリ確保って意味では同じ
でOK?
DBに10万件書き込む処理で こんなローカル変数の確保の仕方で悩むやつはあほだろ。 全く無意味。 この意味が理解できないならちょっと問題だろ。
833 :
771 :2007/02/17(土) 15:47:39
DBへの大量投入で困ってると誰が(ry wwwwwwwwwwwww
>>821 でお前、for文回しながらDBにINSERTするという
アホ手法に未だに拘って無かろうな?
賢い奴なら、for文の外でまとめてDBにINSERTするんだがな。
SQLには、
SELECT文とINSERT文を組み合わせるというテクニックなど
いろいろあるからな。
835 :
771 :2007/02/17(土) 15:48:43
最初からDBの話なんかしてねーよ。 話そらすなカスども。
>>826 カス共じゃねえだろうが。
JavaとDBを組み合わせたとき、
DBの最適化とJavaの最適化どちらを優先すべきか
調べてからしゃべれよ馬鹿ども。
>>828 バイトコード見る前にやることがあるだろうが。
DB設計はどうなっているのか見ろってんだ
>>831 で、DBのINSERTの件はどうなったんだ?
839 :
771 :2007/02/17(土) 15:50:29
>>829 >データベースのこと勉強しろ。それだけは言える。
>ループしながらDBにINSERT?
>なにか怪しいんだよな。
初心者だろうが上級者だろうがみんなやってると思うが。
何が怪しいんだ?
>>825 HTTPのメソッド名が頻繁に変更されるものか?
>>832 そもそも、
>>711 はJavaの最適化の前に
リレーショナルデータベースの最適化について学ぶべきだな。
それと、SQLの勉強もしたほうがいいな。
こいつアホだから。JOINつかいまくってパフォーマンス
落としまくるアホなんだろなw
843 :
771 :2007/02/17(土) 15:51:23
どっちが効率いいか聞いてんだ。 DBの話でごまかすなカスども
>>824 んん?
いや、インスタンスは実質関係なくて
今回のはただローカル変数の確保の仕方の話だろ?
スタック上での確保がどうなるのか、仕様では一応変わると思ったんだが、
俺正直javaの仕様は全然詳しくないから、
仕様上同じになるのかな?とも思ったんで。
>>833 お前は
>>786 で何か言ってるぞ。
たとえいくら「仮に」といっても、
お前の強気な発言から
「DBの最適化よりもJavaの最適化を最優先課題にすべきだ!」
と豪語しているように見えるのだが。
((⌒⌒)) ((((( ))))). | | <DBのチューニングこそ重要ニダ!!! .∧_∧ ∩#`Д´>'') ファビョーン ヽ ノ (,,つ .ノ .し'
何度も分からないって答えてるのにごまかしてんのはてめえだろ
848 :
771 :2007/02/17(土) 15:55:01
849 :
デフォルトの名無しさん :2007/02/17(土) 15:55:36
ただの引き合いだろ <DB
>>835 カスはお前だ。DB設計の事もわかっていないで
軽々しく「ループ処理しながらDBにINSERT10万件するなら、
意識せざるをえない問題」
などとほざいておいて威張るとはいい度胸だ。
>>786 でお前は一体何を言ったのか思い出せ。
>>840 お前も、時と場合によっては痛いといえるぞ。
ループしなくてもまとめてINSERTできるものを
わざわざループしながら100万回INSERTするなんて
馬鹿のやること。
853 :
771 :2007/02/17(土) 15:57:09
とりあえず僕はご飯たべてきます。 またきますね。 では。 ============================================================ ↓↓↓ 以下、もう来るな、氏ね など罵詈雑言が飛ぶ ↓↓↓
DBの設計すらわからないイルボンが生意気ニダ!! ((⌒⌒)) ファビョーソ!! |||| ∧_∧ ∩#`Д´>/ ̄ ̄ ̄/ バン!! ( ミつ_// VAIO/ バン!! {二二}三三三}
>>841 それならそうそう簡単に変更されない。
しかし、顧客名や商品コードなどは頻繁に変更される。
そういうときにあんな使い方されるのはトンデモだ。
>>786 どうみても、
DB処理とかとにかく「重い、パフォーマンスが重要な処理」では
そのループ変数の確保の仕方レベルのことを気にする必要があると言ってる。
>>834 >賢い奴なら、for文の外でまとめてDBにINSERTするんだがな。
これって一般的なのか?
俺は100件だろうが10万件だろうがループしながらINSERTしてるけど。
for文の外に持っていったところで、どこかでループさせないといけないじゃん。
サンプルコードぷりーず。
>>855 いつから頻繁に変わる物の話になったんだ?
+ + * ○__ + ∥ ~" ー 、,,_ + ∥javer > + ∧_∧ ∥ _,:--'´ * + ∧_∧ <`д´ >∥~ ~∧_∧ + ∧_∧ <丶`д´> _∧∧_∧つ <`д´ > 今度はどうやってごまかすニカ? <丶`д´>( ) `д´>`д´>::::::( )∧_∧ ∧_∧ ( ) |∧_∧ ) ∧_∧:::| | |<丶`д´>∧_∧<丶`д´> | | | <`д´ > | | <丶`д´>∧_∧ ( <丶`д´> ) 話そらすのは任せろニダ :::〈_フ__フ;;;;( )_フ__フ( <丶`д´>| | | .( ) | | :::::::::::::::::;;;;;;;∩∩ ;;;;;;;;;;;;;;;;;| | | ( );〈_フ__フ| | |〈_フ__フ:::::::::: :::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;〈_フ__フ;;;; ∩∩;;;;;;;;;;;;;;;;;;;〈_フ__フ;;;;;;;;;::::::::: :::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::
>>854 死ねチョン。勝手にニダと一緒にするなアホ。
不逞鮮人にDBなどろくにわかりやしねえよバーカ
>>855 だから場合によるでしょ。
サーバの内部なんてハードコードでいいし
頻繁に変更される設定ならResourceBundleなど。
しかし顧客名や商品コードは普通DBだろう。
>>844 >>784 が言うような意味では変わんない、って意味で言っただけ。
言語仕様レベルだとスコープが変わる。
VM仕様でいけば LocalVariableTable で key と value のところの start_pc と length が変わるぐらいか。
>>856 DB設計にも問題有りのケースもあるがな。
テーブルを分割せず重複データを並べた糞テーブルとか。
Viewも使っていないとか。
>>857 ヒント : SELECT-INSERT文
DBもしらないイルボンが生意気ニダ! ファビョーン!! r⌒ヽ (⌒⌒) r⌒ヽ/, 、、;(⌒ヾ ((⌒⌒)) /⌒) ), , 、 ヾ (⌒ヽ ド━ l|l l|l ━ン!⌒⌒);;)/. , 、\(⌒ゝ;(⌒ヾ ∧_∧ ⌒)/)) .,/ ,, ((⌒-丶(;;;(⌒ゝ;;(⌒∩#`Д´>'') ,⌒⌒);;;;;)))⌒) (;;;;(⌒(⌒;;;(⌒ ヽ ノ / ))⌒));;;;)-⌒)) ゞ (⌒⌒=─ (,,フっ.ノ ─=⌒⌒)ノ;;ノ;;;::) ((⌒≡=─ 人从;;;; レ' ノ;;;从人─=≡⌒)丿;;丿ノ
870 :
名無し募集中。。。 :2007/02/17(土) 16:02:40
くだらない話題が好きだなお前ら
>>863 お前いつぞやのドトネト厨か?
ドトネトの方がチョンの匂いがするのだがw
>>857 出来るときはそうするだろうし出来ない場合は出来ないわな。
JDBCってバッチ発行って出来るの?
俺は知らないんだ…
873 :
デフォルトの名無しさん :2007/02/17(土) 16:03:56
できるよー。
>>862 だから、"文字列".equals(str)
を一般的な話にしてほしくないっていう意味。
丁度DBの話もしているから
"カラム名".equals()
とかいうことやってたらかなりヤバイと思うべき。
テーブル名やカラム名が変わった、テーブルが分割された、
などに対応しきれないから。
そういうときはHibernate使えって話もでそうだが。
>>865 サーバ内部だからいいんだよ。
最後のは普通はたしかにDB。あくまで例として取り上げただけ。
>>866 あそういう意味ね、それなら了解、わかった。
>>869 の描いている夢だなw
DBを知らない奴は簿給だぞw
これだけはいえる DBで効率よくあれこれしたければ 副問い合わせやJOIN、UNIONについても勉強すべき。
>>874 カラム名を何かと比較するってどういう場合よ?ありえないコードだと思うけど。
880 :
711 :2007/02/17(土) 16:07:49
結局まともな回答は
>>866 だけですね。
バカなみなさんご苦労様ですwww
>>844 メソッドに呼び出す時に そのメソッドに必要なローカル変数は
全部一括で確保されるはずだから、その意味でも変わらないよーな。
unionにallつけない馬鹿がいたよ。
>>881 そうか、javaでもそういう動作になるのね。
その場合例えば初期化がどうなるかとかね。
まあ実質初期化は単にループ内での参照割り付けだけになるだろうから、
まあ実際同じになるんかな。
>>883 そんなことよりDBのチューニングのほうが大事だぞ
どうしてもDBの話に持って行きたいやつがいるな
大事大事じゃないじゃなくて、 仕様がどうなってんのかしりたかっただけだよ
>>880 結局あなたは効率よくDB設計することができないわけですね。
馬鹿な言い訳ご苦労様ですwww
892 :
デフォルトの名無しさん :2007/02/17(土) 16:27:13
ていうかDBも一緒にやるなんて小企業だけでしょ。
893 :
711 :2007/02/17(土) 16:30:18
>>888 負け惜しみいってないで
>>783 をよんでくださいね。知らないなら引っ込んでてくださいね。
>・いい
>・おなじ
>この二つ以外は聞いていないのでよろしくお願いします。
>>893 上のほうのレスで「おなじ」って書いてあるのはスコープ外なのか?
895 :
デフォルトの名無しさん :2007/02/17(土) 16:46:32
あのさあ、どう作ってもジャワでのSQLは遅いよ。芋虫と毛虫のレース みたいだからあまり必死に考えても時間の無駄だよ。
896 :
711 :2007/02/17(土) 16:52:38
>>894 ここはあなたの日記帳じゃないのでまともな日本語が書けるようになってからカキコしてくださいね
IDも無い板でなにやってんだお前らw
898 :
デフォルトの名無しさん :2007/02/17(土) 16:57:00
あ~…みんなすごいっすね。話しついていけない
899 :
771 :2007/02/17(土) 16:58:24
僕が大量増殖して困ってまつw あと711もw
900 :
771 :2007/02/17(土) 17:24:25
ま、僕はデーターベースも詳しいのでテーブル設計の話など釈迦に説法ですけどねw
901 :
デフォルトの名無しさん :2007/02/17(土) 17:33:41
>>899さんはハッキングとかもできちゃったりしますか?
902 :
デフォルトの名無しさん :2007/02/17(土) 17:34:24
903 :
771 :2007/02/17(土) 17:43:24
>>901 DBの次はハッキングですかw
スレちがいですよ。
904 :
771 :2007/02/17(土) 17:47:22
本物です。 >>釈迦に説法 なんで、スルーしてました。 スルーしてるのが本物の僕です。
905 :
ネカマ由紀恵 :2007/02/17(土) 17:48:38
この流れで千に行く気ですか、そうですか。
906 :
デフォルトの名無しさん :2007/02/17(土) 18:00:09
______
| / | / |
| / | / |
|___.|___.| |
>>878 君、
∧ ∧ ∧_∧ | きみ確かDBできたよね?
(,,゚Д゚). ( ´д`) \___ _________
_ φ_C__┌――┐)_ ∨
/旦/三/ /..|.VAIO:.|ソ/./| ∧_∧
/|||||||| ̄ ̄ / ======// | (・∀・ )
|  ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄| . | ( <V> )
| | | / | | |
|______|______|/ (_(_)
____∧______
/ \
| あれはつい見栄で。。。 |
java って、.net の CodeDom みたいなのは無いんですか?
>>908 mustang以降なら TreeAPI 使っても良いし。
Javaの構文木作ってくれる解析器なら、さがせばいっぱい転がってないか?
>>908 メソッドとかコンストラクタの中身まで追っかけなくていいなら javax.lang..model でも良いけど。
HashMapの質問をさせて下さい。 HashMapのイメージは 値 キー ○○○-●----| ○○○-●----|---HashMap ○○○-●----| らしいんですが、私には ○-●----| ○-●----|---HashMap ○-●----| でしか使えません。 複数の要素を値に格納する方法がどうしても分かりません。 あるサイトには複数の要素を格納できると書いてあり、 別のサイトには一つしか格納できないとあります。 意味が分かりません…。 キーに県名を、値に県の情報「人口」「特産品」「県庁所在地」と言ったような データを格納したいのです。 よろしくお願いします。
県の情報をクラスにしたらダメなん?
>>909-910 色々と thx です。
やりたいと思ってるのは javax.script.CompiledScript の実装。
んで .net の CodeDom とか Reflection.Emit みたいなのでバイトコードを動的生成できないかなと思った次第です。
とりあえず、com.sun.source.tree と javax.tools 使ってみます。ありがとうございました(`・ω・´)
>>911 HashMap は、1つのキーの対して値は1つだよ。
内部的にはメモリ節約のために上のような構造になっていてもね。
ハッシュ値が衝突したときに、同じハッシュ値どうしを連結リストで結ぶと
>>911 の上みたいな感じになる。
っていうか、
>>911 のイメージは「キー」じゃなくて「ハッシュ値」が正解。
916 :
771 :2007/02/17(土) 19:20:34
>>911 キーに複数連なるってよりか、
キーから作られたハッシュに対してシノニムが発生するってだけじゃないの?
したらバケットとして複数が管理されることになるが。
すばやい返答ありがとうございます
>>912 それは制約上出来ませんので・・・
>>913 よく分かりませんが最新バージョンです
>>915 >>916 つまりやろうと思えば出来るけれど
>>911 の使い方は普通しないって事でしょうか
配列使わずHashMapを利用した二次元ぽいデータ格納を考えているんですけど
hashMap.add(県名,ArrayList)とかしかありませんかね・・・
>それは制約上出来ませんので・・・
どんな制約だよ、意味分からんよ。
>つまりやろうと思えば出来るけれど
>>911 の使い方は普通しないって事でしょうか
お前は意味を読み違えてる。やろうと思えばできるんじゃなくて、 で き な い !
どう考えてもクラスにするのがもっとも良い。 なんでだめなの? あとはハッシュの2重とかでもできるけど無駄が多いな。
921 :
771 :2007/02/17(土) 19:32:28
>>919 DB語るのやめとけってw
>>911 おとなしく値にBeanなりMapなり使ってくだたい。
>>918 課題上の制約です
できないのに
>>911 のイメージで説明されたのは何故かしら??
ArrayListとHashMapの違いがそもそも分からんのです…
HashMapのキーにオブジェクトを設定できるというくらいしか違い分かりませんが
それがイメージ上の二次元のデータ格納方法に繋がるんでしょうかね…
もうちょっと考えてみます、ありがとうございました
>>917 「やろうと思えばできる」ではなく「Mapにおいてはキーと値は必ず1対1。ただし実装はその限りではない」が正しい。
おとなしく、HashMap<T, List<T2>> とか HashMap<T, Set<T2>> が良いと思うぜ。
>課題上の制約です
先に言え馬鹿orz
>できないのに
>>911 のイメージで説明されたのは何故かしら??
おまえ、それほんどにその絵の通りに説明されたのか?授業かなんかで?
ほんとにひとつのキーに値が複数なのか?ひとつのハッシュ値じゃなくて。
ほんどに? ほんどにほんどに??
>>922 待てよ馬鹿。
値 ハッシュ
○○○-●----|
○○○-●----|---HashMap
○○○-●----|
試しに、ハッシュはキーの値を3で割った余りとして、次のデータを格納することを考えろ。
0 → A
1 → B
2 → C
3 → D
4 → E
5 → F
そのとき、HashMap の中身は
AD-0----|
BE-1----|---HashMap
CF-2----|
なのは理解できるか?
ぶっちゃけ、課題ってことらしいから、生徒に HashMap 自作させてる希ガス。
あるいは教師が無能か。
図Aを描いたのが教師だとすれば 無能な教師だったんじゃないかな。
>>924 ハッシュ値なのかキーなのかどうなのかは定かではありませんが、
データを格納するイメージとしてはそう説明されました
ArrayListのイメージは○-○-○-○-○-●
HashMapのイメージは
>>911 の通りで説明されたのですが
どうしてそういった違いになるのかがいまいち分からないのです
先生の言うことは忘れて大人しく
>>920 さんの言うように二重構造にすべきですかね、悩ましい
>>926 !?
なんでしょうね、それは・・・
もうちょっとハッシュ値について勉強してみます
>>929 国語辞書を思い浮かべて。『あ』 に該当する単語は何個あるか。『い』 に該当する単語は何個あるか。
HashMap では 『索引』 を見て、辞書を引くんだよ。
しつれー。『あ』 から始まる単語は~の方が適切だな。
932 :
888 :2007/02/17(土) 20:02:16
HashMapを語るのはDBのBTreeインデックスを理解してからにしてもらおうか
>>911 複数の要素を格納したければ、
List list = new ArrayList();
Map map = new HashMap();
list.add("a");
list.add("b");
map.put("key",list);
>>922 わからなければ連想配列とリスト構造についてググレ。
>>922 ArrayListは番号がついた順番にならんだデータ。
HashMapは順序の概念が無い。
配列の添え字を番号の替わりにキーを
使っているだけだと考えればわかりやすい。
PerlやPHPだと普通の配列もキーが数字になっただけの連想配列と同じように扱うことだし。
DBわからんやつはこのスレから出て行け!
いいかげん邪魔
既に書かれているが、ハッシュ表の実装の課題が出たんだろうな。 ハッシュ表は、ハッシュ値をもとにデータをすばやく引き出せるような格納 領域。ハッシュ値は、オブジェクトに対して所定の(ユーザーが決めた)計算で 求めた数値。(文字列なら、各文字の文字コードを合算してある定数で割った 余りとか) Javaではそのときに使うObject#hashCode()というメソッドがある。 できるだけ多くのオブジェクトに対してばらけた結果が返るように定義するが、 同じハッシュ値になるオブジェクトが生じる(コリジョン)のはやむを得ない。 解決方法の1つに、収納先をリストにしておいて、同じハッシュ値になるもの は数珠つなぎにして、たぐって探すというものがある。
nyのハッシュを想像すればいい
944 :
911 :2007/02/17(土) 20:53:26
なんとなくイメージは分かりました あとは実際の書き方なんですけど調べても複雑なものばかり HashMapの使い方、みたいな初心者用に書かれていないところを見ると 割と高度なテクニックなのかな
945 :
デフォルトの名無しさん :2007/02/17(土) 20:57:43
)、._人_人__,.イ.、._人_人_人 <´ D B !! > ⌒ v'⌒ヽr -、_ ,r v'⌒ヽr ' ⌒ // // ///:: < _,ノ`' 、ヽ、_ ノ ;;;ヽ // ///// /:::: (y○')`ヽ) ( ´(y○') ;;| / // //,|::: ( ( / ヽ) )+ ;| / / // |::: + ) )|~ ̄ ̄~.|( ( ;;;|// //// /// :|:: ( (||||! i: |||! !| |) ) ;;;|// /// ////|:::: + U | |||| !! !!||| :U ;;; ;;;| /// ////|::::: | |!!||l ll|| !! !!| | ;;;;;;| //// // / ヽ::::: | ! || | ||!!| ;;;;;;/// // // // ゝ:::::::: : | `ー-----' |__////
仕様はアルゴリズムとデータ構造をしっていないと理解できないものだが HashMapを使うのは簡単だぞ。 JavaでHelloWorldでググってみなよ
>>944 AbstractMapで検索。
あとhashcode()を算出するときに使うキーは final宣言すること。
949 :
911 :2007/02/17(土) 21:08:56
>>946 HashMapの基本的な使い方は分かるのですが、
二次元風にデータを格納する方法はHelloWorldにも書かれていませんでした
そっちの方は結構難しいのでは・・・
だからさDB使えば select 人口,特産品,県庁所在地 from tablle where 県名='' で複数入れられるんだよ
普通は県の情報をクラスにして格納する。難しさも面倒さもどこにもない。
いつのまにか宿題スレになっとる
953 :
911 :2007/02/17(土) 21:19:13
>>950 JAVA六日目のおいらには無理ですorz
>>951 クラスを作ってはいけないという制約があるのでorz
すみません、お騒がせしました
とても参考になりました、ありがとうございます
もうちっと一人で格闘してみます
授業聞いてて課題も解けないうえに 相談できる知り合いもいないようなら おとなしく再履しとけ
>>948 hashcode()は
Jakarta Commons LangのHashCodeBuilderを使うと楽じゃ老
Eclipseのプラグイン Commons4Eを使うとさらに楽
956 :
911 :2007/02/17(土) 21:47:51
>>954 授業ではなく、課題丸投げで自分で調べてやれって感じです
>>955 どうもありがとうございます、何の事かさっぱりですので
大人しく勉強します
957 :
948 :2007/02/17(土) 22:11:04
>>957 そうなると、不変クラスにはImmutableという名前のインタフェースを
実装しないとMapのキーに使うことができないという制約を
与えるべきではないか、
と思えてきた。
実際、TreeMapはキーになるオブジェクトのクラスにComparableインタフェースを
実装しないといけないようになっているし。
>実際、TreeMapはキーになるオブジェクトのクラスにComparableインタフェースを >実装しないといけないようになっているし。 いやそれはさすがに話が違うと思う…
HashMapのキーには不変オブジェクトしか使ってはいけないよ。論理的に。 MutableString s1 = new MutableString("あ"); MutableString s2 = new MutableString("い"); hashMap.put(s1, "北海道"); hashMap.put(s2, "沖縄"); s1.set("い"); MutableString x = hashMap.get(new MutableString("い")); What is x?
>そうなると、不変クラスにはImmutableという名前のインタフェースを >実装しないとMapのキーに使うことができないという制約を >与えるべきではないか、 これは利便性のためにわざとこうして(Immutable縛りを外して)あるんじゃないかな
DBを全角で書いてるやつらわざとだろw
class ClassA(){ String strA; String methodA(){ strA = "abc" return strA; } } public class MainClass{ public static void main(String[] args){ ClassA ca = new ClassA(); System.out.println(strA); /*ここが問題*/ } } こんな感じで、他クラスで定義される変数(例ではstrA)を使うことは できませんか? public をつければいいのかと思ってたけどだめでした。 恥ずかしい質問ですみません。
その前にコンパイル通るようにしたほうがよろしいことよ。
すいません class ClassA { … が正しいですね…
カプセル化とか勉強したほうがいいよ publicをつければ参照できるけど別クラスから触り放題。
967 :
デフォルトの名無しさん :2007/02/18(日) 02:08:38
VアプリのSDKでビルドしようとするとこんなエラーが出ます。 Eclipseで作ってる時点ではエラーがないんですが、どういうことなんでしょうか? C:\VODAFONE_VFX_SDK201\apps\ShootMIDP2\src\MyMachine.java:2: '.' がありません。 import ShootLauncher; com.sun.kvem.ktools.ExecutionException
携帯javaスレに失せろ!
確かに、書いてから間違えたと思いました…
971 :
965 :2007/02/18(日) 02:27:34
>966 アドバイスありがとうございます。もっと勉強します。 >969 ありがとうございます。本当に恥ずかしい質問でした...
972 :
デフォルトの名無しさん :2007/02/18(日) 02:28:03
JAVAでオリジナルのPCIのボードにアクセスしたいんだけど、 どうやればいいんでしょうか? (I/Oの読み書きが出来ればいいだけなんですが) VCでボードをアクセスするプログラムを書いて、 そのプログラムとJAVAのプログラムが通信する様な感じになるのかなぁ??
973 :
ぴゅあ :2007/02/18(日) 02:41:54
974 :
デフォルトの名無しさん :2007/02/18(日) 02:49:39
JNIをつかうんじゃね
975 :
デフォルトの名無しさん :2007/02/18(日) 02:55:13
976 :
デフォルトの名無しさん :2007/02/18(日) 03:29:40
会社の研修で課題を出されており、困っています。 どなたか、教えていただけると有難いです。 [課題] 入力した整数値をもとに1から入力した値の合計を求めて出力するプログラムを作成 *整数値以外(文字含)を入力した場合はメッセージを出力し、再度、整数値の入力を求めること。 *合計の出力の後に処理を終了するかメッセージを表示し、入力を求めること。 (「1」が入力されたら処理を終了し、「1」以外が入力されたら再度、整数値の入力を求めること。) *入力される整数値は、6ケタまでとする。それ以上は、エラーメッセージを表示し、再度入力を求めること。 という上記課題を、会社の研修で渡されました。 try~catchを使わず、mainメソッドのみでソースをつくることは可能でしょうか? 私、Javaの研修を始めて2週間程度でして、全然わかっていません・・・。 何をどうすればどうなるかも良く分からないので、出来れば詳しい解説等教えていただけると幸いです。 宜しく御願いします。
978 :
911 :2007/02/18(日) 03:46:27
おかげさまでなんとか形になりました 皆さんありがとうございました
>>977 回答できるスキルもないのに色んなスレチェックして楽しいですか?
Test.javaの中で、"Test"というStringを取得したいのですが クラス名をStringで返す方法ってないでしょうか?
>>979 まず自分が回答できるスキルを持ってから言おうね
>>980 new Test().getClass().getName()
Test.class.getName()
>>980 TestクラスのClassオブジェクトを取得してgetNameメソッドを呼ぶ
>>980 select 'Test' from dual
>>976 java暦一週間の俺が考えるに、
とりあえずjava.io取り込んで、
while(true){
>980次スレまだぁ~?だぁ?だぁ?
989 :
988 :2007/02/18(日) 14:53:50
>>987 すまん。規制中みたいで立てられなかった。
>>979 どんな奴が書き込みしてるかもわからないのに、よく書けますね。
ぇ?エスパーさんですかそうですか
回答できるならしてみろよwwwできないくせい
>>961 それなら、transientキーワードが特定のフィールドを
シリアライズしないように、特定のフィールドのみは可変にして
equals()やhashcode()やcompareTo()には使用させないようにして・・・
といっても理解して貰えるかどうかわからない
>>971 カプセル化については
とにかく、strAをprivateにしてstrAを取得するgetStrA()というメソッドを作れということ
おれが次スレ立てるか?
☆ チン マチクタビレタ~ マチクタビレタ~ ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 新スレまだ~? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | カプセル化 |/
たてたで
うめっぞ
1000ならこのスレのJavaプログラマは全員年収2000万以上
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。