【初心者】Java質問・相談スレッド114【歓迎】
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。
http://pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド113【大歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1204363011/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝のう存じます。
次スレは
>>980 あたりで。
2 :
デフォルトの名無しさん :2008/04/05(土) 17:54:24
キチガイ乙wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
5 :
デフォルトの名無しさん :2008/04/05(土) 18:00:33
テンプレおせーよw
6 :
デフォルトの名無しさん :2008/04/05(土) 18:04:02
さんきゅ
8 :
デフォルトの名無しさん :2008/04/05(土) 18:57:22
やっほー
9 :
デフォルトの名無しさん :2008/04/05(土) 19:40:28
10 :
デフォルトの名無しさん :2008/04/05(土) 19:42:44
うはwwwwww 初心者乙wwwwwww
11 :
デフォルトの名無しさん :2008/04/05(土) 19:48:51
こんばんは。 現在無職で、個人でjavaを学んでいるものです。 コンパイルするとクラスファイルが出力され、これを実行するには java クラス名 と本で学びましたが、これを開発環境ではないパソコンで 実行するにはどうすればいいですか?よろしければ教えてください。
java クラス名
13 :
11 :2008/04/05(土) 19:51:29
開発環境がないパソコンでもjavaコマンドは使えるのですか? 知り合いのパソコンで自作したファイルを実行してもらおうと思ったのですが、 javaというコマンドが使えなかったらしいです。 javaランタイムはインストールされているらしいです。
14 :
デフォルトの名無しさん :2008/04/05(土) 19:51:37
java クラス名
15 :
デフォルトの名無しさん :2008/04/05(土) 19:52:01
ググレカスwwwwwwww キチガイ杉だろwwwwwwwwwww
16 :
11 :2008/04/05(土) 20:11:24
ランタイムが入っていればjavaコマンドも使えるんですね。 ありがとうございました。確かめてみます。
17 :
デフォルトの名無しさん :2008/04/05(土) 20:16:00
はいはいww お疲れさまwww
18 :
デフォルトの名無しさん :2008/04/05(土) 20:45:25
俺って天才だよな。おそらく史上最高の天才だ。 ふてぶてしいが、前にも言った通り俺とお前らでは天と地ほどの差がある。 すまんが、お前らはマジでキチガイだよ。頭が腐ってる。 つまりさ、いきなり登場した俺は天才すぎて場違いなんだよね・・・。 詳しい事いちいち言わないけど、結論としてはお前ら全員キチガイ で良い気がする。 オレがいいすぎてるだけなのかなあ・・・。 なんだか話が変わってすまないが、 そろそろX読みやろうよ。 ????って今思った奴は等幅フォントがお勧めだ。 以上、キチガイ達へww
19 :
デフォルトの名無しさん :2008/04/05(土) 20:46:21
これはかなり高度の技術だなwww さすが俺天才wwwww 等幅フォントじゃないとずれるけどwwwwwww
20 :
デフォルトの名無しさん :2008/04/05(土) 20:48:49
javaが出来なくて首になったのか?
21 :
デフォルトの名無しさん :2008/04/05(土) 20:50:04
お前らキチガイすぎてこれの解読もできないのか? そんなんじゃJavaプログラマ失格だね。首にしてあげるよ。
俺 て ん さ い す ぎ わ ろ た w ですかい? もうちょっと綺麗に文章書こうね^^ 無理ならせめてもっと漢字やカタカナを使おうね^^ それに、99%の人間は等幅じゃなんだから、 プロポーショナルフォントでも正しく表示されるように書こうね^^
23 :
デフォルトの名無しさん :2008/04/05(土) 21:10:43
ちょww真性キチガイ発見www お前X読みも知らないのかよwwwww それ単なる斜め読みじゃんwwwwww それにプロポーショナルフォントって何だw 天才でさえ意味の分からない言葉を堂々と使うあたり真性だなこいつwwww
X読みってかいてあるだろ 煽られて顔真っ赤なのは仕方ないけどちゃんと相手の意図を汲んでやりなよ。
25 :
デフォルトの名無しさん :2008/04/05(土) 21:16:11
誰に言ってんだ?
>>22 宛ならお前真性キチガイだし、
>>23 宛ならお前真性キチガイじゃね?
春ですよー
土曜出勤でも終わるメド付かず、明日は朝から母の介護で病院に行かなければならず、 そんなこんなでかなりテンパってるとみた。
28 :
デフォルトの名無しさん :2008/04/05(土) 21:55:33
キチガイ乙www 俺天才wwwwwww
29 :
デフォルトの名無しさん :2008/04/05(土) 22:04:45
どこの乳首だこのスレは
春満開だな
31 :
デフォルトの名無しさん :2008/04/05(土) 23:23:39
Graphics の drawString() で文字を画像に書いてるんですけど、 tab が消えちゃうんです。 自分でタブを見つけて、インデント位置とか計算してスペースに置き換えてやらないと いけないんですかね?
32 :
デフォルトの名無しさん :2008/04/05(土) 23:37:17
なんで初心者禁止にしねーんだよw
お前がスレ立ててそっちへ行けば良い話だろ。 大体 Java2 以降に始めた奴なんて全部初心者だっつーの。
>大体 Java2 以降に始めた奴なんて全部初心者だっつーの。 ねーよwww
35 :
デフォルトの名無しさん :2008/04/06(日) 00:07:54
これはひどい
*7とか言ってた時代が懐かしいね
それまだ Java じゃないし方向性も全く違うし。
Java2 以降なんてちょっと検索すれば情報出てくるような環境で育ったゆとり世代だろ。 必要とされる問題対処能力の度合いが全然違う。
39 :
デフォルトの名無しさん :2008/04/06(日) 00:32:35
次スレは33が来ないようなスレタイにしようぜ
お前が立てろよ初心者無視スレも知らんアホがw
初心者無視スレに行ってらっしゃい
42 :
デフォルトの名無しさん :2008/04/06(日) 00:39:00
なんだこの流れwww 初心者歓迎のままでいいけど、変なの無視でいいだろ
初心者ネタは荒れるからやめろよ 確かに邪魔だけど
44 :
デフォルトの名無しさん :2008/04/06(日) 02:33:32
初心者が荒れてどうする
45 :
デフォルトの名無しさん :2008/04/06(日) 02:35:29
結局誰にも天才と認めてもらえなかったようだな「ww君」は 能力の無さをさらけ出してたしな
昔々、時は J2EE やら C#/.NET の登場やらでム板も大変盛り上がっていた頃のお話。 それまで質問者の多数を占めていた 「自分で分析してキーワードで答えにたどり着ける」 層に 代わって 「動きませんできません」 系のニューエイジ層が増え始めた (ようは今の質問レベルに落ちた)。 業を煮やした誰かが 「初心者無視スレ」 を立ち上げたが程なく過疎。以後本スレの避難所として 細々と 1〜2 年 (くらいだったか?) 続いて終幕。ちょうど死滅スレ乱立時代の頃のお話。
懐かしい。じゃあと上級者向け質問に対する回答率が上がるとかレベルが上がるとかはなかったから、 結局初心者を締め出しただけで終わったんだよん。
48 :
デフォルトの名無しさん :2008/04/06(日) 07:56:59
ダブルより長い実数で円周率を調べるために使うみたいないくらでも長く 出来るようにするにはどうやればいいですか?
BigDecimal
EclipseとNetBeansどっち使ってる?
豊丸
javaについているdemoのライセンスのしつもんです。 demoを改造して配布したり売ったりしてもいいんですか?
だめ
>>52 デモのソースの先頭のコメントに再配布や改造について書いてあるから嫁
あぼーん
>>55 > アルジェリアで私の夫が社長を務めている会社が巨大な金鉱を発見したのですが(ry
マジレスおねがいします。
>>58 我々はアフリカのある王族を秘密裏に日本へ亡命する計画を立てています。
この計画には日本人の手助けが必要ですがクライアントの立場上警察機関への要請はできません。
ワッフルワッフル
60 :
デフォルトの名無しさん :2008/04/06(日) 13:19:48
それってブラックマネーじゃん 家に来た英文メールと同じだぞ
61 :
デフォルトの名無しさん :2008/04/06(日) 18:07:12
キチガイ乙wwwwwwwwwwwwww
62 :
デフォルトの名無しさん :2008/04/06(日) 18:09:00
実績の無い天才もどき乙w
63 :
デフォルトの名無しさん :2008/04/06(日) 18:11:14
実績の全く無いキチガイ乙w
64 :
:2008/04/06(日) 20:16:40
∩_ 〈〈〈 ヽ 〈⊃ } ____ | | /⌒ ⌒\ ! ! /( ●) (●)\! ! こいつ最高にアホ /::::::⌒(__人__)⌒:::::| / | |r┬-| / \ `ー'´ / / __ / (___) /
65 :
デフォルトの名無しさん :2008/04/06(日) 23:23:28
何かいい大人が喧嘩してるけどさ、やっぱストレスたまる仕事なんだな。
Java Studio EnterpriseはEclipseとNetBeansと比べてどうですか?
どうも何もJava Studio がOSS化してNetBeansになったんだろ?
理解しました。 Java Studio Enterpriseの後継がNetBeansなのですね。
69 :
デフォルトの名無しさん :2008/04/07(月) 13:58:27
>>65 俺はいい子供だけどwwwwwwwww
キチガイ乙wwwwwwwwwwww
70 :
デフォルトの名無しさん :2008/04/07(月) 14:00:51
Tomcat使ってます。 HTTPステータス 404 - サーブレット (サーブレット名) が利用できません っていうエラーが出ましたけど、どうしたらいいでしょうか。
71 :
デフォルトの名無しさん :2008/04/07(月) 14:03:04
ググレカスwwwwwwwwwww
ムトウハップとサンポール混ぜれば良いと思うよ。
73 :
デフォルトの名無しさん :2008/04/07(月) 14:06:23
キチガイと天才を混ぜれば良いんじゃね?
74 :
デフォルトの名無しさん :2008/04/07(月) 16:43:12
getAttributeの使い方がよくわかりません
75 :
デフォルトの名無しさん :2008/04/07(月) 16:44:09
天才の俺が教えてあげよう。 ググレカス
76 :
デフォルトの名無しさん :2008/04/07(月) 16:45:22
質問させていただきます。 Javaではよくパッケージ名にドメイン名を使用しますが、 (例:jp.co.hoge.project) ドメイン名にハイフンが入っていた場合 (例:hoge-hoge.co.jp) パッケージ名にはハイフンが使えないのですが、 どうすればいいのでしょうか? くだらない質問かもしれませんが宜しくお願いします。
77 :
デフォルトの名無しさん :2008/04/07(月) 16:45:51
ハwwwwwwwwwイwwwwwwwwフwwwwwwwwwンwwwwwwwww
ハイフン省略 アンスコで代用
ああ、テニスの時に履く
久しぶりに見たがずいぶんレベルが落ちたなこのスレも 春休みだからか?とにかく頭悪いのが多すぎ 頭悪いと自覚してるやつは少し口閉じとけ
81 :
76 :2008/04/07(月) 17:29:06
>>78 ありがとうございます。
>ハイフン省略
>アンスコで代用
このどちらかかなぁとは思ったのですが、
実際に「hogehoge.co.jp」や「hoge_hoge.co.jp」があった場合、
パッケージ名の一意性に欠けるのかなーと思った次第です。
jdk1.4.2で作成された既存 web アプリケーションを、Java VM だけ 1.6 に移行することになりました。 (ソースコード修正は行わない)。 ちなみに既存システムなので、1.4.2 でコンパイルされた class ファイルはあります。 このとき、以下のうちどうすべきですか? 1.jdk 1.6 ではコンパイルしない。 既存コンパイル済みの class ファイルを jdk1.6 で動かす。 2.jdk 1.6 でコンパイルしなおす。このとき、-source オプションは何もつけない。 コンパイル結果の class ファイルを jdk1.6 で動かす。 3.jdk 1.6 でコンパイルしなおす。このとき、-source 1.4 をつける。 コンパイル結果の class ファイルを jdk1.6 で動かす。 4.jdk 1.6 でコンパイルしなおす。このとき、-source 1.6 をつける。 コンパイル結果の class ファイルを jdk1.6 で動かす。 私の考察: jdk1.4.2 時代に作られたソースコードなので、当然ソースコードは1.4準拠です。 しかしこのソースは「1.4にはあるけど1.5以降で削除されたメソッド」は使っていないので、 jdk1.6でもコンパイルは通ります(←Generics は使ってないけど、1.6準拠と言える?) -source 1.4 をつけると class ファイル(バイトコード)も 1.4 準拠になるのですよね。 VM は jdk1.6 なので、-source 1.6 をつけて class ファイル(バイトコード)を 1.6 準拠のものを生成した ほうが、パフォーマンスはいいと考えました(計測してみたなどの根拠はありません)。 つまり正解は4.?
84 :
デフォルトの名無しさん :2008/04/07(月) 18:35:04
長すぎ氏ねwww 産業でまとめろ産業でwwwww
>>81 いや、_ はホスト名に使えないから大丈夫。
87 :
デフォルトの名無しさん :2008/04/07(月) 21:06:09
質問です。 コンストラクタを使ってオブジェクトを初期化しつつ 配列にする方法が分かりません。誰かぼすけて。
88 :
デフォルトの名無しさん :2008/04/07(月) 21:07:10
初心者氏ねwwwwwwwww キチガイだろキチガイwwwwwwwwwwwwww
89 :
87 :2008/04/07(月) 21:11:55
すんませんマジ初心者ですんません。 くだすれの方に逝ってきます。
90 :
デフォルトの名無しさん :2008/04/07(月) 21:18:28
ぼすけてあげるから俺を神認定してくれ。
面白いのが常駐してるな。
92 :
デフォルトの名無しさん :2008/04/07(月) 21:27:07
>>91 俺って天才だよな?
お前はキチガイなんだからとっとと俺をぼすけろ。
春は面白いな
94 :
デフォルトの名無しさん :2008/04/07(月) 22:06:43
夏も秋も面白いぜ?
95 :
デフォルトの名無しさん :2008/04/07(月) 22:46:11
質問です。 会社で使ってるアプリがJava6.0に対応してないから 5.0をインストールして使ってくれって言われたんですけど、 5.0で動いて、6.0で動かないって (6.0で不具合がでる) たとえばどんなことしてるんですかね? 5.0で動いてるアプリは、全部6.0でも動くと思ってたんですけど。
96 :
デフォルトの名無しさん :2008/04/07(月) 22:47:26
また初心者ですかwwwwwwwwwww 専門用語が出てこない質問とコード例がない質問はくだすれでぼすけとけwwwwwwwwwwwwwwww
>>95 そういうのは会社で直接聞いたほうがいいと思うぞ
98 :
デフォルトの名無しさん :2008/04/07(月) 22:49:55
キチガイ乙wwwwwwwwwwwwwww
>会社で使ってるアプリがJava6.0に対応してないから 日本語わからねーのかよカスがw
100 :
95 :2008/04/07(月) 23:04:19
会社でアプリつくってるエンジニアのスキルが不足してるから Java 6.0 で動かないまま今まで放置してるんだと思います。 一般的によくあることなんですかね?
101 :
デフォルトの名無しさん :2008/04/07(月) 23:05:32
ない。キチガイなだけ。
コストの問題で放置する事はある。
単に「動作確認してない」/「動作保証してない」だけだったりもする。
104 :
デフォルトの名無しさん :2008/04/07(月) 23:44:35
質問です。 以下のカスタマイズを行いたいのです。 フィールド変数の追加:private User u; コンストラクタの修正 引数の追加:User型 処理ぼ追加:フィールド変数に引数で受け取ったオブジェクトを代入する 「フィールド変数に引数で受け取ったオブジェクトを代入する」 以下カスタマイズ前のソースです。 class Reference extends JFrame{ JLabel lblId; //フィールド中略 public Reference(String title){ super(title); cnt=this.getContentPane(); cnt.setLayout(null); フィールドにprivate User u; コンストラクタの引数にUser user;を追加するのは分かるのですが 「フィールド変数に引数で受け取ったオブジェクトを代入する」 が上手くいきません。 Userは同パッケージ内の別クラスです。 古いコードですし、お手数をおかけ致しますがよろしくお願い致します
まあ、作るアプリが5.0だからEclipseも5.0で動かせとか言う会社もあるからなw
>>104 上手くいかないって意味が解りません><
フィールド変数ってあれだな、ミート焼肉定食みたいな言葉だな
108 :
デフォルトの名無しさん :2008/04/08(火) 00:14:40
>>106 ちゃんと引数のオブジェクトが渡せれば、別のクラスが実体化されて呼び出される筈なのですが
呼び出されません。
>>107 仕様書にその様に書かれてあるんですが、頭痛が痛い的な感じでしょうか・・・
フィールド=メンバ変数
110 :
デフォルトの名無しさん :2008/04/08(火) 01:51:34
リモートのモータ制御をするCプログラムにjavaのネットワーク機能 を使ってアクセスするような仕組みを考えているのですが RMIとネイティブインターフェイスの組み合わせで考えればいいのでしょうか 分かるかたがいいらっしゃったら教えてください
Cプログラムが独立した実行プログラムなのかライブラリなのか あるいはネットワークから操作するプロトコルのあるサーバ的ソフト なのかなどによる。
112 :
デフォルトの名無しさん :2008/04/08(火) 02:11:37
ごめんCプログラム自体にはモータ制御用のコマンド以外は持たせずに dll経由でJavaにつないでJavaでネットワーク機能を持たせる
113 :
デフォルトの名無しさん :2008/04/08(火) 02:19:58
後もうひとつ 全然話題の違うものだけど JDBCアクセスの件で PreparedStatement..setInt() etc. のメソッドを使って 汎用のテーブルデータのInsertメソッドを作ろうか迷ってるんだけど テーブルごとにメソッドを分けるのが一般的? ちょっと危ないのかなとは思うけどリスクの見当が付かない よかったらどういう弊害が起きうるか実務サイドでのアドバイスがあったら教えてください
Swing のパスワード入力とか KeyStore とか、パスワードを char[] 型で扱うものが多いけど String がマズくて char[] なら良い理由ってなに? うかつに toString() しても中が出ないくらいしか思いつかない。
失礼します。 SwingのGUIより、あるボタンを押したらURLClassLoaderで新規にClassを読み込み、 インスタンス化するプログラムを組みました。しかし、最初は読み込めるのですが、 1時間ほど時間を置いて再試行すると「ClassNotFoundException」が発生し、読み込み 出来ない場合があります。(100%発生するわけではありません。)この時、読み込もうとした Classファイルはロックされており、ファイル名の変更等ができません。 このような現象に心当たりはありませんでしょうか? 現象の起きているJavaのバージョンは1.4.2_05で、 1.6.0_05で現在テストを行っていますが、現象は発生していません。 情報不足かもしれませんが、宜しくお願い致します。
117 :
デフォルトの名無しさん :2008/04/08(火) 14:18:34
キチガイ乙wwwwwwwwwwwwwwwwwwwwwww
118 :
デフォルトの名無しさん :2008/04/08(火) 14:32:59
>>115 char[] だと自分で自由にクリアできるけど、
String だと自由にクリアできなくてメモリにパスワードの内容が残る可能性があるから嫌だとか?
120 :
デフォルトの名無しさん :2008/04/08(火) 17:10:23
すみません。スレッドの知識が必要なWebプログラムはどのくらいありますか? ほとんどですか?デッドロックとかいうやつです。
Web プログラムは全てスレッドの知識が必要です。
122 :
デフォルトの名無しさん :2008/04/08(火) 17:17:33
>>120 スレッド?
ほら、まさにココだよ、ココ。
えーと、スレッドフロート式掲示板だったかな。
2ちゃんみたいにその形式の掲示板はスレッドの集まりで成り立ってるんだよ。
あのさ、"スレを立てる"とか"糞スレ"って言うじゃん?
そのスレはスレッドの略なんだよ。
よし、スレについての知識が一つ手に入ったね。
これで君もスレッドマニアだ!
とは言ってもまぁマルチスレッドのフレームワークに乗るだけだから、 いくつかの注意点だけ気をつければ良いだけだけどな。
125 :
デフォルトの名無しさん :2008/04/08(火) 17:25:02
>>123 それはスレッドの知識があるということなんだよ。
自分にスレッドに関する知識があるか否かさえ分からないなんてかなり末期だな。
まあPGはきついし、俺も将来君みたいな認知症になる可能性もあるけどね・・・
126 :
121 :2008/04/08(火) 17:25:17
>>122 どうもありがとうございます>< よくわかりました。
>>123 じゃあ、求人に応募してみます>< ありがとうございました。
>>124 ありがとうございます。必要になったら、会社の人に聞いて見ます><
127 :
デフォルトの名無しさん :2008/04/08(火) 17:26:05
>>122 どうもありがとうございます<> よくわかりました。
>>123 じゃあ、求人に応募してみます<> ありがとうございました。
>>124 ありがとうございます。必要になったら、会社の人に聞いて見ます<>
128 :
デフォルトの名無しさん :2008/04/08(火) 20:44:56
自作で時間になったらスレッド起動するって言うようなタイマーを作ったんだけど やたらとメモリー食うらしくPCがうなったままなんだけど ミリ秒計算だからなのかな ある程度の時間までは時間単位とかにすべきなのかしら
129 :
デフォルトの名無しさん :2008/04/08(火) 20:48:01
PCがうなるwwwww ライオンかwwwwwwwwwwwwww
130 :
デフォルトの名無しさん :2008/04/08(火) 20:53:12
天才さん教えてあげて
131 :
デフォルトの名無しさん :2008/04/08(火) 20:54:03
あら黙っちゃったw
>>128 Timer と TimerTask を使え。
温暖化が進むから意味不明な実装すんな。
133 :
デフォルトの名無しさん :2008/04/08(火) 21:09:07
使ってこれなんだけど
コードとパンツを見せろ。
135 :
デフォルトの名無しさん :2008/04/08(火) 21:13:55
でかいから載せきん無いよw タイマーのループ間隔を緩めりゃいいんだよね基本的に 実務的にどうやってるか知りたいんだけど
タイマーのループ間隔ってのがもう意味不明な実装なんだよ。 タイマー使って時間になったか確認とかやってんだろ。
137 :
デフォルトの名無しさん :2008/04/08(火) 21:33:26
tomcatで呼び出すとき localhost8080/プロジェクト名/JSPですが webページのindex.htmlみたいに localhost8080/プロジェクト名/で呼び出すことはかのうですか? またその場合のやり方を教えてください
index.jsp
139 :
デフォルトの名無しさん :2008/04/08(火) 21:44:33
俺って天才だよなwwwwwwwwwww
140 :
デフォルトの名無しさん :2008/04/08(火) 21:57:21
知らないなら答えなくていいよw 時間食うだけ無駄だ
141 :
デフォルトの名無しさん :2008/04/08(火) 21:58:15
知ってるから答える。 ググレカスwwwwwwwwwwww
142 :
デフォルトの名無しさん :2008/04/08(火) 21:59:31
しらねえんじゃねえかw まったく
143 :
デフォルトの名無しさん :2008/04/08(火) 22:00:17
俺は天才だから何でも知ってるぜwwww 質問があるならなんなりとどうぞwwwwwwwwwwwwwww
春は怖いな。 ホームの端とか寄らないように気をつけよう。
145 :
デフォルトの名無しさん :2008/04/08(火) 22:55:41
ホームwwwww家ですかwwwwwwwwww わざわざかっこつけて英語で言わなくても日本語の方が分かりやすいからwwwwwwwwwww
ほんとうは怖いインターネット
148 :
デフォルトの名無しさん :2008/04/08(火) 23:44:03
ファイル名に欲しい文字 例えば「スレッド」 って言葉を持つファイルをコピーして 他のディレクトリに移すのはどうすればいいでしょうか?
149 :
デフォルトの名無しさん :2008/04/09(水) 10:06:07
アプリケーションにおいて、そのアプリケーションの現在行っている作業内容や状態などを保持し、状態が更新されたら通知したりするクラスを作ったりって、普通にしますでしょうか?
はい
151 :
デフォルトの名無しさん :2008/04/09(水) 10:25:28
>>149 java.beans.PropertyChangeSupport
MBeanじゃない?
subクラスを作ると自動的にsuperクラスのコンストラクターがよばれるのに subクラスでsuper()とかやってるコードをみるのですけど、どうしてですか?
155 :
デフォルトの名無しさん :2008/04/09(水) 14:07:02
初心者はとっとと火星探査機に轢かれて氏ねwwwwwwwwwwww
暗黙性を好まない流儀もあるということ。
157 :
デフォルトの名無しさん :2008/04/09(水) 14:30:58
以前動いていたプログラムがマシン変えてjavaインストールしなおしたら test.java:25: 文ではありません。 HashMap<String, ArrayList>list = new HashMap<String, ArrayList>(); ^ test.java:25: ';' がありません。 HashMap<String, ArrayList>list = new HashMap<String, ArrayList>(); ^ test.java:30: '(' または '[' がありません。 ArrayList <Integer>p=new ArrayList<Integer>(); ^ test.java:31: '.class' がありません。 ArrayList<byte[]> q; ^ test.java:31: 文ではありません。 ArrayList<byte[]> q; ^ エラー 5 個 とでて、動かなくなったのですがなぜですかね?? javaのバージョンとかの関係ですか??
158 :
デフォルトの名無しさん :2008/04/09(水) 14:34:39
当たり前だろwwwwwwwww バージョンの関係以外でどんな可能性があり得ると言うんだwwwwwwwww
159 :
デフォルトの名無しさん :2008/04/09(水) 14:36:46
>>158 すいません、解決するにはどうすればいいのですかね。。。
160 :
デフォルトの名無しさん :2008/04/09(水) 14:37:51
新しいバージョンで変わった機能を調べりゃ良いだろwwww 公式のサイトでも眺めとけwwwwwwwww
>>157 JDK 1.5 以降でコンパイルしろ。
インストールしなおしたらバージョンが下がったということか?
163 :
デフォルトの名無しさん :2008/04/09(水) 15:05:45
お前ら読解能力なさすぎだろwwwwww やっぱキチガイなんだなwwwwwwwwwww しょぼいバージョンから最新バージョンに変わったせいで 今までサポートされてた構文を受け付けなくなったってことだろ常考wwwwwwwwwww
もう春休みおわりだよな?なんか変なのが湧いてるね。
165 :
デフォルトの名無しさん :2008/04/09(水) 15:14:43
俺のことか?www 変なのじゃなくて正真正銘の天才だぜwwww しかも俺なんか何ヶ月も前から湧いてるんだがwwww 今に始まった話じゃないだろwwwwwww その上もう春休みが終わりとかwwwww 都会厨乙wwwwwwwwwwwwwwwww
166 :
デフォルトの名無しさん :2008/04/09(水) 15:46:13
いや見た目に変だ そもそもなんで張り付いてるんだ
167 :
デフォルトの名無しさん :2008/04/09(水) 15:46:34
解決策も示せないしな
168 :
デフォルトの名無しさん :2008/04/09(水) 15:48:00
解決策 ググレカスwwwwwwwwwwwwww
天才の割には語彙少ないしな
170 :
デフォルトの名無しさん :2008/04/09(水) 15:52:26
難しい言葉を使わないと言いたいことを表現できない方がキチガイだろwww 限られた語彙でいかに文章を作成できるかがポイント。 それを間単にできてしまった俺はまさに天才wwwwww
使わないと使えないもわからねーらしいぞ
172 :
デフォルトの名無しさん :2008/04/09(水) 15:54:55
>>171 のどこに「使えない」と書いてあるんだwwwwwwwwww
「使わない」で捉えたほうが普通だろwwwwwwww
キチガイすぎワロタwwwwwwwwwwwwwwwwww
173 :
デフォルトの名無しさん :2008/04/09(水) 15:55:18
間違えた、
>>169 宛だwwww
ミスするとはまさに天才の象徴wwwwwwwwww
175 :
デフォルトの名無しさん :2008/04/09(水) 15:55:52
176 :
デフォルトの名無しさん :2008/04/09(水) 15:56:12
>>174 いちいち反応したほうが面白いぜwwwww
さすが俺天才wwwwwwww
キチガイ乙wwwwwwwwwwwwwwwwwwwwwww
語彙少ないが難しい言葉にすり替えかよ さすが文章理解力も少ないな
178 :
デフォルトの名無しさん :2008/04/09(水) 15:59:07
語wwwwwwww彙wwwwwwwwwwwwwwwwwwwww
179 :
デフォルトの名無しさん :2008/04/09(水) 17:25:14
認めてもらえない自称天才って悲しいな
180 :
デフォルトの名無しさん :2008/04/09(水) 17:28:38
別に認めてもらえなくても俺が自分のこと天才って分かってるから良いんだがwwww 自分の真の能力を知ってるのは自分だけだしねwwwwwwwwwwww
181 :
デフォルトの名無しさん :2008/04/09(水) 18:16:44
すいません、ちょっとしたGUIプログラムを作ってるんですが オブジェクトを小分けしてると、数が多くなりすぎて訳が分からなくなります。 それと、ソースファイル数も多くなりすぎて訳が分からなくなってます。 大量のオブジェクトやソースの管理はどうやるのが効率的でしょうか?
packageで分ける?
・パッケージで分ける (コアライブラリに習って適当な機能単位などで) ・IDE を使う
184 :
デフォルトの名無しさん :2008/04/09(水) 18:20:32
自信と実力のバランスこそが大事だ 実力があっても自信がなければ生かしきれない 自信があっても実力がなければ痛い人になったりかわいそうな人になるんだけどね 実力を付けることが自信をつけることにもつながるのが救いだよ 努力して救われろ、自分に
独り言はポエム板で
187 :
デフォルトの名無しさん :2008/04/09(水) 18:27:42
ポエムっておいしいよね。おとといローソンで売ってたよ。
>>157 HashMap<String, ArrayList>list;
をループの外に出す。
HashMap<String, ArrayList>list;
for(){ とか
list = new HashMap<String, ArrayList>();
……
189 :
デフォルトの名無しさん :2008/04/09(水) 19:38:39
キチガイ発見。
if (sc.Charset == null) { InputStreamReader isr = new InputStreamReader(is); System.out.println("charset=" + isr.getEncoding()); } else { InputStreamReader isr = new InputStreamReader(is, sc.Charset); System.out.println("charset=" + isr.getEncoding()); } 自分の発生したソース
環境も分からんのに知るかよ。
荒らしている割には短文ばかりで、そんなに情報出したくないの?
194 :
デフォルトの名無しさん :2008/04/09(水) 20:17:51
荒らしなんかいつしたんだwwwwwww 荒らしといえる書き込みをアンカーで示してくれないかwwwwwwwww
195 :
デフォルトの名無しさん :2008/04/09(水) 21:19:19
wwwwで抽出すればすぐ引っかかる たまには頭使え
196 :
デフォルトの名無しさん :2008/04/09(水) 21:20:39
じゃあ頭使ってwの代わりに・を使うわ・・・・・・・・・・・・・・・・・・・・
197 :
デフォルトの名無しさん :2008/04/09(水) 21:40:56
おとなしくLinux板に帰ってほしい・・・
198 :
デフォルトの名無しさん :2008/04/09(水) 21:42:37
Linux・・・・・・・・・・・・・ キチガイ乙・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 何か・って気持ち悪いな。絵文字を入れてる携帯厨に見える。 というわけで:に変えるわ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
199 :
デフォルトの名無しさん :2008/04/09(水) 21:43:03
:じゃなくて@だった@@@@@@@@@@@@@ 俺天才@@@@@@@@@@@@@@@@@@@@@@
200 :
デフォルトの名無しさん :2008/04/09(水) 23:10:15
JDK1.5に、 何年の何月は何日まであるか、 というのを取得するAPIってありますか?
Calendar#getAcutualMaximum(Calendar.DAY_OF_MONTH)
202 :
デフォルトの名無しさん :2008/04/10(木) 08:41:47
何年の何月は何曜日かも分かる優れものだ サバンの人より早いかも
こっちが Calend まで入力した時点でもうサバンは答えてるよ。
204 :
デフォルトの名無しさん :2008/04/10(木) 09:06:52
APIじゃない。
205 :
デフォルトの名無しさん :2008/04/10(木) 09:52:22
157ですが、バージョンが新しすぎてダメということですかね?? ループの外に出しても解決しませんでした。。。
206 :
デフォルトの名無しさん :2008/04/10(木) 10:04:20
>>157 バージョン古いの入れたんじゃないか?
generics使ったソースを generics非対応のコンパイラでコンパイルした時のエラーっぽく見えるが。
208 :
デフォルトの名無しさん :2008/04/10(木) 15:42:24
キチガイ乙@@@@@@@@@@@@@@
いつまで張り付いてんだこの春厨
210 :
デフォルトの名無しさん :2008/04/10(木) 21:45:55
春休みはもう終わりましたよ@@@@@@@@@@@ キチガイ乙@@@@@@@@@@@@@@@@
211 :
デフォルトの名無しさん :2008/04/10(木) 23:37:55
じゃあニートか
文字列で表された計算を実行する方法は標準APIでありますでしょうか? String ans = calc("3+2*(5 + 2)"); こんな感じのイメージです。 スクリプトを実装してみようと思っているのですが、自分でRPNやらのパージングするのは少し不安でして・・・w
ScriptEngine
なるほどーJavaScriptをラッピングしてやるわけですね。。 とりあえずそれを利用しておくことにします。 ありがとうございました。
glassfish v2をur1にアップデートする方法が わかりません! securityのfile realmとかvirtual serversとか VM引数とかの設定を消してやりなおすのは 嫌です。
RPNくらい実装しろよw
217 :
デフォルトの名無しさん :2008/04/11(金) 17:39:59
やあキチガイ君@@@@@@@@@@@@@
218 :
デフォルトの名無しさん :2008/04/11(金) 19:54:40
ねえねえ、なんかこのスレ最近過疎ってるよね。 俺のせいなのかな。やっぱりそうなのかな。天才だしね。しょうがないよね。 君たちキチガイとは別世界に生きてるんだよ。 俺天才だな@
219 :
デフォルトの名無しさん :2008/04/11(金) 20:00:05
■■■■■■■■■■■■■■■■■■■■■■ ■■■■■■天■■才■■革■■命■■■■■■ ■■■■■■■■■■■■■■■■■■■■■■ 今からお前たちは全員天才ね。 俺はキチガイになった。 あーあ、俺キチガイなのか・・・@
220 :
デフォルトの名無しさん :2008/04/11(金) 20:24:53
俺キチガイすぎワロタ@@@@@@
221 :
デフォルトの名無しさん :2008/04/11(金) 20:40:20
こいつ警察に通報しといたほうがいいんじゃないかな 何か犯罪やらかしそう
222 :
デフォルトの名無しさん :2008/04/11(金) 21:25:39
ああ、そうだな。言われてみればそうだ。 俺はマジでキチガイだからね。念のため通報することを勧める。 お前ら頑張れ@@
居座るのは勝手だが@は3つ以上の連続にしてくれ。
224 :
デフォルトの名無しさん :2008/04/11(金) 21:29:59
NGは@@で良いだろ@@で@ @@なんか書く人俺ぐらいだぞ@@ 俺キチガイだな@@
225 :
デフォルトの名無しさん :2008/04/11(金) 21:33:46
ぬおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお おおおおぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ ぉぉぉぉぉぉぉぉぉぉぉ 俺は史上最高のキチガイだああああああああああああああああああああああああああぁぁぁぁぁぁぁぁぁ
226 :
デフォルトの名無しさん :2008/04/11(金) 22:50:43
なんか人いないね。俺がキチガイだからかな。困ったな・・・ まあとりあえずお前ら天才で良かったね。俺は真性キチガイなのに。 キチガイ最高だよね。そうだよね。 でもいくらキチガイになりたい人でも俺を恨まないでね。キチガイだから。
新着5で見えるの1ケくらい
228 :
デフォルトの名無しさん :2008/04/11(金) 23:51:12
つまり、お前は天才だよな?@
ひどすぎる...
230 :
デフォルトの名無しさん :2008/04/12(土) 14:32:30
俺はキチガイだからしょうがなくね?
231 :
デフォルトの名無しさん :2008/04/12(土) 15:39:00
荒らしても スレたては続けるから無駄だよ
232 :
デフォルトの名無しさん :2008/04/12(土) 15:39:38
このスレを潰そうだなんてこれっぽちも思ってないんだが@
M○工作員乙。そんなに危機感もってるのかな。(笑)
3-4月と9-10月によく見かけるのは何で 気候的な問題?
235 :
デフォルトの名無しさん :2008/04/12(土) 17:54:44
そうだね。過ごしやすい時期だから天才が湧きまくるんだよ。 俺みたいなキチガイももっと湧いてくれれば良いのになあ・・・
236 :
デフォルトの名無しさん :2008/04/12(土) 19:10:20
237 :
デフォルトの名無しさん :2008/04/12(土) 19:12:26
ああ、そうだな。 花粉が体内に入ってきてキチガイ作用を起こしてるんだ。 きっとそうだ。 花粉を体に入れなければ俺は天才になるのかな?
>>212 import java.io.*;
import java.net.*;
public class CalcClient {
public static void main(String[] args) throws IOException {
System.out.println(calc("3+2*(5 + 2)"));
}
public static String calc(String target) throws IOException {
URL url = new URL("
http://www.google.com/search?q= " + URLEncoder.encode(target, "utf-8"));
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0");
conn.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
String response = "";
for (String line; (line = br.readLine()) != null; ) response += line;
br.close();
conn.disconnect();
return response.replaceAll("^.*?(<h2 class=r>.*?<b>.*=\\s*(\\S+?)\\s*</b></h2>).*?$", "$2");
}
}
239 :
デフォルトの名無しさん :2008/04/12(土) 23:03:11
キ@@@@チ@@@@@@ガ@@@@@@@@イ@@@@@@@@@@
こんなの、荒らされてる部類には入らないだろう。 2chと言う場を考えれば、いちいち気にする方がおかしい。
241 :
デフォルトの名無しさん :2008/04/12(土) 23:18:14
自演に見えるからそういうレスは止めてくれないか@@@@@
242 :
デフォルト名無し :2008/04/12(土) 23:20:28
これは今もやってるのか?
243 :
デフォルトの名無しさん :2008/04/12(土) 23:22:03
何の話だい?@
245 :
デフォルトの名無しさん :2008/04/12(土) 23:27:45
ひでぇのはお前だ@@@@@@@@@@
247 :
デフォルトの名無しさん :2008/04/12(土) 23:37:44
全然すごくないんだが@
>>238 クスリと笑えるネタというのは冗長になってはいけない。
249 :
デフォルトの名無しさん :2008/04/13(日) 00:18:32
java1.5 です。 URL指定して、googleのページのhtmlを読み込みを行うプログラムを作成しています。 windowsでは、すべてのhtmlの読み込みができたのですが、 同じプログラムをlinxuで実行すると、読み込んでいるhtmlが途中で切れてしまいます。 どういったことが原因と考えられるでしょうか? また、対策などありますでしょうか?
250 :
デフォルトの名無しさん :2008/04/13(日) 00:19:31
うは@@@@@@@@@@ 初心者はくだすれ行け@@@@@@@@@@@
>>248 まあ言語仕様のせいでもあるし。
俺はウケた。
>>249 具体的にどういった方法をとっているのかを書いてくれないとなんとも言えないなぁ。
253 :
デフォルトの名無しさん :2008/04/13(日) 00:43:56
だよな@@@@@
254 :
249 :2008/04/13(日) 00:52:37
URL url = new URL(uri); URLConnection uc = url.openConnection(); InputStream is = uc.getInputStream(); // 入力ストリームを生成 BufferedReader in = new BufferedReader( new InputStreamReader( uc.getURL().openStream())); is)); このような形で読み込んだinから1行1行listに格納しています。 ただ、一つ懸念があって、 1行の文字数が20000もじくらいあります。 windowsだと20000文字全部もってくるのですが、 linuxだと5000文字程度で切れてしまいます。
255 :
デフォルトの名無しさん :2008/04/13(日) 00:53:07
で、それが何?@
>>249 情報が少ない。
・どんなAPIを使ってHTTPを処理しているのか?
・どのように切れるのか?同じ箇所でいつも切れるのか?
>254 試していないから解らんけど、文字コードとかBufferの部分で差異が出ている可能性が高いと思う。 おそらく行単位って事は、readLineとかやっているんだろうけど、HTTPヘッダとかの処理とか結構複雑。 とりあえず、InputeStreamからbyte単位でreadしてみたらどうだ? それで同じbyte数がLinux上でも取得できるかを確認汁。
258 :
デフォルトの名無しさん :2008/04/13(日) 01:06:46
>>257 > それで同じbyte数がLinux上でも取得できるかを確認汁。
自分でですか??
259 :
249 :2008/04/13(日) 01:08:01
>>256 APIはjavaですが・・。
切れる箇所はいつもおなじです。
>>257 HTTPヘッダとか意識する必要あるのでしょうか?
setRequestPropertyでAcceptあたりを確認してみます。
byte単位はやってみます。
あと、InputStreamの文字コード指定とかもやってみます。
聞いたらいろいろ思いついてきた!
あとなにかあればご教授ください。
>>258 だれすか
Readerのエンコーディング指定と実際に取得するものは合致してるのかな。
wsimportと同じ処理をJavaのプログラム上で実現したい しかも、ファイルに出力するのではなく、メモリ上に展開したい
>259 HTTPヘッダを、というよりはヘッダの改行コードとかの扱いだな。 終端文字はCRLFってプロトコルの仕様で決まっているから、プラットフォームのデフォルト改行コードと異なれば、単純なreadLineじゃダメ。 普通はApache-HttpClientみたいなライブラリを使ってしまうけど、生でやるのが目的ならば相手はバイナリデータと考えた方がいい。
Javaから外部プロセスの状況を取得したいんですが、どうすれば よいでしょうか? 具体的には、最前面にあるウィンドウのタイトルを取得したり、 外部のプロセスを閉じたりしたいです。 それと、キーロガーのように、グローバルフックでキー入力を フックしたりしたいのですが、そういうことをするにはどうしたら よいでしょうか?
264 :
249 :2008/04/13(日) 03:07:46
OSはfedoracore5を利用しています。 while(true)で無限ループさせるプログラムを作成したのですが、 コマンドラインから実行すると当然のことながら制御が行ったきりになってしまい、 ターミナルを落とすとプログラムも一緒に落ちてしまいます。 これをWindowsで言うところのサービスのように実行するにはどうすればよろしいでしょうか?
job制御、disownあたり?
>>265 「サービスのように実行する」のなら、Java単体ではできないんじゃないかなー。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/daemon.3.html を使って、CでJavaプログラムを起動するスタートアップを書くのが確実かなぁ。
そこまでやらないなら、標準入出力&エラー出力を閉じてnohup相当の処理を
した上でfork&execするようなシェルスクリプトを書くだけでいいかも。
単純に「行ったきりにならない」「ターミナルを落としてもプロセスは落ちない」
だけなら、「nohup java CLASS &」ただし、nohup.outに標準出力&エラー出力
が出続けるので注意。(rmしてもプロセスが生きてる限り見えないところに残る)
>>254 ちゃんとcloseしないと尻切れになるとどこかで読んだ気がする。
結果分かったら書いてくれ。
269 :
249 :2008/04/13(日) 10:54:49
>>268 すみません。下のほうでcloseはしているのですが、
切ったまま投稿してしまいました。
で、結果ですが、
>>257 >>260 の仰せの通り、
文字エンコーディングの問題でした。
BufferedReader in = new BufferedReader(
new InputStreamReader(
uc.getURL().openStream()));
is,"Shift_JIS"))
とやることで解決しました。
ありがとうございました。;
SwingのFrameの構造が良くわかりません。Panelに貼り付けるのかContainerに貼り付けるのかとかが良くわかりません 詳しく説明しているサイトか本ありませんか?
271 :
デフォルトの名無しさん :2008/04/13(日) 13:27:53
初@@@@@@心@@@@@@@@@@者@@@@@@@@@@@@@@@
>>270 いくらでもあります。ググるか、本屋に行くかもしくはアマゾンあたりで購入してください。
273 :
デフォルトの名無しさん :2008/04/13(日) 13:42:12
日本語でおk
274 :
デフォルトの名無しさん :2008/04/13(日) 14:56:04
拡張for文に出会ったり、使ったりしたことある人いますか?
275 :
デフォルトの名無しさん :2008/04/13(日) 14:59:47
呼んだ?@
276 :
デフォルトの名無しさん :2008/04/13(日) 15:02:23
マジですか。 書籍でしか見たことないですが… イマイチ使う気になれません。
277 :
デフォルトの名無しさん :2008/04/13(日) 15:03:51
で、何?
拡張 for は理論上でのみ存在する構文です。
279 :
デフォルトの名無しさん :2008/04/13(日) 15:04:52
Integer i = new Integer(0); plus(i); public void plus(Integer i) { i++; } これで、iの値が増えてくれないんですが、 Integerオブジェクトの値を増やすことって、 できないのでしょうか? C言語の、intポインタ的な使い方をしたいです。
280 :
デフォルトの名無しさん :2008/04/13(日) 15:05:14
拡張forは結構使えるよ。 慣れると普通のforには戻れない@@@
281 :
デフォルトの名無しさん :2008/04/13(日) 15:05:34
>>279 だから初心者はくだすれ行けよバカ@@@@@@@@@@@@@@@
>>279 i++;
は、実際には
i = new Integer(i + 1);
だから。
283 :
279 :2008/04/13(日) 15:09:46
>>282 いや、それは分かってるので、
増やす方法はないのでしょうか?
もしくは、こういう場合どうすればいいでしょうか?
という質問です。
284 :
デフォルトの名無しさん :2008/04/13(日) 15:10:16
なんかこのスレでのキチガイごっこは飽きた。 知ってる人は知ってると思うが、 俺の本拠地は別板にあるからそっちでの活動に専念するわ。 ノシ
int[] i = new int[]{0}; plus(i); public void plus(int[] i){ i[0] ++; }
286 :
279 :2008/04/13(日) 15:15:11
>>283 まず誤解させる書き方をしたことを詫びるべきでは?
いやさすがにおまいが勝手に誤解しただけだろう。 「なぜ増えないんですか?」 ならともかく。
290 :
279 :2008/04/13(日) 15:33:56
>>287 少し説明不足だったかも。すいません。
ただ、あなたも、もうちょっとちゃんと文章読んで答えて欲しい。。。
>>288 もっといい方法があるなら教えてもらえると嬉しいです。
291 :
287 :2008/04/13(日) 15:35:22
何コイツwwwwwww
春は終わったのに春厨がいると聞いて飛んできました
Javaアプレットで音を鳴らしたいのですが、 便利な方法はないでしょうか? AudioClipなるものは機能がしょぼすぎて使う気になれませんでした。 DirectSoundばりのものがほしいのですが……。
295 :
282 :2008/04/13(日) 16:29:37
>>279 読んだよ。
それが解っていれば、増やす方法がない事くらい解るだろ?
まさか、メソッドに渡すのではなくインスタンス変数に持てばいいとかってレベルの話か?
それとも、
i = plus(i);
int plus(Integer i) {
return i++;
}
とか、そんな回答が欲しいのか?
増やす方法の前に、増やす条件がなければ回答できねーよ
C 言語の int ポインタ的な、で通じなかった時点であんたに答えるスキルがなかっただけ。
C言語(笑) ポインタ(笑)
javaのObjectInputStreamについて伺いたいのですが、 ObjectInputStream ois; try{ ois=new ObjectInputStream(socket.getInputStream()); }catch(Exception e){ e.printStackTrace(); } とやった場合、結果が成功でも例外でも即座に戻ってきますよね…? どうも、tryのところでソケットに入力があるまで止まってしまう感じで、 どうしてそうなるか分からなくなってしまったのですが。
>>298 ソケットの入力ストリームからオブジェクトストリームのヘッダを読むので戻りません。
>>299 早速のご回答ありがとうございます。
ということは、最初の一回は何かオブジェクトを投げてここを通過させなければならない感じでしょうか?
それとも、ひょっとすると一個オブジェクトを投げるごとにnewでObjectInputStreamを作り直す必要があるのでしょうか。
301 :
300 :2008/04/13(日) 18:00:42
解決しました。ありがとうございました。
>>300 ObjectInputStream を先に new するなら、その通信相手は ObjectOutputStream を先に new しなければならない。
理由は自分で考えろ。
JNIを使ってC++のプログラムと連携しなけければならないのだけれど、 実行時にJREがエラーはいて止まる。 C++側から配列をもらってくるところで止まってるようだ。 Java側には、int配列の参照しか定義してなくて、 配列の実体はC++側で作って、jintArray型でJava側に渡されてきたのを結びつける、 ってことをやりたいのだけど、そもそもこういうことはできないのかな? できるとしたら、unsigned char *p を、 jintArray qにキャストする方法を教えて欲しい。 そのまま q = (jintArray)p; でいいんだろうか? まぁこっちは、C++寄りの話になってしまうのだけれど…
>>304 SetIntArrayRegion() 使って C++ の領域から Java の int[]にコピーするか、
Java 側では java.nio.ByteBuffer#allocateDicrect で得られるバッファ使って
C++側では GetDirectBufferAddress で得られるポインタ使うか。
>>305 素早い回答ありがとうございます。
早速書いてみます。
307 :
265 :2008/04/14(月) 00:51:59
>>266 disownは知りませんでした。
job番号が必要な辺り、今回は使えないかもしれませんが、
今後役に立ちそうです。ありがとうございました。
>>267 nohupで対応したいと思います。
丁寧にご教示頂き、ありがとうございました。
Fedora なら daemon があるんじゃないか。 /etc/rc.d/init.d/ の起動シェルいくつか調べてみ。
void main(String args[]) 前後省略 void main(String []args) 前後省略 入門書には2通りの書き方がありますが、 違いはありますか?
>>309 見た目の違いだけ。
void main(String[] args) が推奨される書き方。
void main(String args[]) はC言語の癖が抜けない人が使う。
void main(String []args) は変態が使う。
一番上以外の書き方をしている入門書は、コーディング標準を知らない無知な人が書いていたり
コーディング標準を知っていてわざと従わないへそ曲がりな人が書いていたりすると思われるので
内容が適当だったり、普通の人には理解しにくい説明がされている可能性があがる。
ありがとうございます。 そう聞いて今、Java Black Book 2001/12/21 (21page) に誤植見つけました!
313 :
デフォルトの名無しさん :2008/04/14(月) 11:26:39
文字列を1秒間隔で表示させるにはどうしたらいいですか?
スレッドのスリープ www.nextindex.net/java/thread/sleep.html
316 :
デフォルトの名無しさん :2008/04/14(月) 13:04:35
間隔を置いて1文字ずつを流したいのですが、何十秒間表示なしで、突然いっきに文字列が出ます。 どうしたらいいんでしょう。ソースはこれです。 public void paint(Graphics g) { Font font = new Font(null, Font.PLAIN, 30); g.setFont(font); FontMetrics metrics = g.getFontMetrics(font); String text = "Get down on your knees. Beg for your life!"; int margin = 30; int cx = margin, cy = 100, mx = getWidth() - margin; for(int i = 0; i < text.length(); i++) { g.drawString(String.valueOf(text.charAt(i)), cx, cy); try { Thread.sleep(500); } catch (InterruptedException e) { System.out.println(e); } cx += metrics.charWidth(text.charAt(i)); if (cx > mx) { cx = margin; cy += metrics.getHeight();
>>316 paint内部で Thread.sleep してるから。
>>316 天空の城ラピュタより。ムスカ全セリフ集(英訳版)か
319 :
316 :2008/04/14(月) 14:16:05
paint内にThead.sleepがダメいうことで、classをつくって、その中でsleepを定義してオブジェクトを作り、それをpaint内で呼び出して使おうとしましたが、うまくいきません。、Thread.sleepをどう使えばいいですか? public class SleepT { public void sleepii(){ try { Thread.sleep(500); } catch (InterruptedException e) { System.out.println(e); } } SleepT s = new SleepT(); public void paint(Graphics g) { Font font = new Font(null, Font.PLAIN, 30); g.setFont(font); FontMetrics metrics = g.getFontMetrics(font); String text = "Get down on your knees. Beg for your life!"; int margin = 30; int cx = margin, cy = 100, mx = getWidth() - margin; for(int i = 0; i < text.length(); i++) { g.drawString(String.valueOf(text.charAt(i)), cx, cy); s.sleepii(); cx += metrics.charWidth(text.charAt(i)); if (cx > mx) { cx = margin; cy += metrics.getHeight(); } }
>>319 drawString した内容は、paint() をいったん抜けないと実際の画面に反映されない。
そこはタイマーの出番だろう。 javax.swing.Timer それと、drawStringするよりJLabel使った方が楽な気がする。
322 :
デフォルトの名無しさん :2008/04/14(月) 15:26:32
これでどう? import java.awt.*; public class Sample extends Panel implements Runnable{ public static void main(String[] args) { Frame frame = new Frame(); Sample sample = new Sample(); frame.add(sample); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); new Thread(sample).start(); } public Sample() { setPreferredSize(new Dimension(200, 200)); } private int x = 10, y = 10, count = 0; private String text = "Get down on your knees. Beg for your life!"; @Override public void paint(Graphics g) { g.drawString(text.substring(0, count), x, y); } public void run() { for(int i = 0; i < text.length(); i++){ repaint(); count++; try { Thread.sleep(500); } catch (InterruptedException e) {} } } }
323 :
デフォルトの名無しさん :2008/04/14(月) 16:05:05
Javaでライブラリを作るには、どうすればいいですか?
jar でぐぐれ
325 :
デフォルトの名無しさん :2008/04/14(月) 16:28:32
javaで盗聴器を作りたいと思ったのですが違法ですか
文字のたれ流しならpaint使わずアクティブレンダリングすれば良いんじゃない?
327 :
デフォルトの名無しさん :2008/04/14(月) 17:56:43
ねえ。僕正社員なんだけど、いつも請負先はなんらかのフレームワークとか EJBつかわされるんだけど、派遣の求人見るとJSTL/JSP/サーブレットくらいの 職場があるんだけど、こういうところって本当にそれしか使わない? EJB/Xdoclet/Hibernate/Struts/Spring使いたくないんです。
派遣の求人担当なんてServletとEJBの違いどころか、Javaと組み込みCの違いもろくに解ってないぞ
329 :
デフォルトの名無しさん :2008/04/14(月) 19:18:31
(;´д`)
>>328 求人に応募すると、真っ先に技術シートとかスキルシートの記入を頼まれるんだが、
あの馬鹿しか記入できない仕組みやフォーマットは一体何?
それと変な適性検査を受けさせられて鬱になったこともある。
1, 2, 4, 5, 7, .... 続く数字は? とか変な図形パターンのやつ
ふざけんじゃねー! 小学生の知能テストかよ!
別な会社で不意打ちの経済学・金融学の試験を満点解答したら蹴られた。
ふざけんじゃねー! 馬鹿しか採用しないのかよ!!!!!
そりゃ単にあんたが向こうの要求するスキルを持ってなかっただけだろ。
332 :
330 :2008/04/14(月) 20:30:31
>>331 アセンブラ、C、C++、FORTRAN、Java少々、etc... 要求分析〜パッケージの製品マスタまで
携わったし、汎用機以外はオールラウンダーだよ。マネジメントは管理会計もOK。
どれも中途半端でしたということだな。
335 :
330 :2008/04/14(月) 20:44:23
中途半端ではないぞ。 後継の指導もしたし、どちらかと言えばやり終えたという感じだな。 しかし、一つ極めたら次へ、それも極めたら次へ・・・ これの繰り返し。 あれこれ極めたら出ていかなくてはならないような「技術畑のしきたり」が気に入らない。 発注側のプロパー社員をコントロールして何が困るのかよ! 醜い位意識ばかり持ちやがって > 技術者会社&派遣会社
ぐちはプログラマ板でどうぞ。ここはプログラム板、質問スレ。
人間性に問題があっただけだろう。よくあること スレ違いスマソ
落とした会社が何を考えたかよく分かる書き込みだな。スキル以前の問題ようだ。
質問というか一年前に初めてこの業界に入ってずっとVB6.0で開発してきたんですけど 来月からJAVAで開発をする事になりました。 VBは言語的に簡単と言われてますけどJAVAはどんなもんなんでしょうか??
BasicPlayer API使って音楽をループするにはどうすればいいのでしょうか?
>>339 適当な本1冊買って読んでから質問においで
そこで引き下がるな 食いついていけ
>>343 いえいえ JAVAの知識は皆無に等しいのでちと勉強してからまた来ます!!
スレ汚し失礼しました・・。
>>339 俺もVB出身で勉強中だけどJavaは大人の言語って感じだな。VBは小学生言葉。
JavaはVBの後継です
347 :
デフォルトの名無しさん :2008/04/15(火) 01:31:19
Windowsで作ったjarをLinux(Fedora 8)へ持っていって動かした所, ボタンのフォントが崩れてしまいました. 英字表記だと崩れず日本語表記だと崩れます. JForm.Textにも同じ表示をしているのですが,こちらは崩れません. WindowsではJDK6 Update5で作りました. SystemのPropertyでは共にuser.language=jaになっています. FontのFamilyも共にDialogでした. 他に何を調べるべきでしょうか?
348 :
デフォルトの名無しさん :2008/04/15(火) 01:50:42
Linuxのフォントの設定をした?
JForm.Text て何だ?
証明書でよくある「フィンガープリント」って何をハッシュ化したもの? Certificate#getEncoded()?
351 :
デフォルトの名無しさん :2008/04/15(火) 12:32:44
1個の窓に2つの画像をランダムに表示するソースですが、下記のところでシンボルを解決できないとエラーが出ます。なぜだかわかりません。 public MoleAttack(String title){ Mole moles = new Mole(); moles.setNoneImage(noneImage); moles.setMoleImage(moleImage); moles.setPreferredSize(size); moles.setBorder(new LineBorder(new Color(0,0,0))); getContentPane().add(moles); rand = new Random(System.currentTimeMillis()); timer = new javax.swing.Timer(300, this); timer.start(); } public void actionPerformed(ActionEvent e) { if (rand.nextInt(2) == 0) return; if(moles.getState() == Mole.STATE_NONE) //ここで、シンボルを解決できないと出る moles.setState(Mole.STATE_MOLE); // この部分も同上 } } class Mole extends JComponent { public static final int STATE_NONE = 0; public static final int STATE_MOLE = 1; private Image none, mole; private int state = STATE_NONE; public void setNoneImage(Image image) { this.none = image; if (state == STATE_NONE) repaint(); } public void setMoleImage(Image image) { this.mole = image; if (state == STATE_MOLE) repaint(); } public void setState(int state){ this.state = state; repaint(); } public int getState() { return state; } }
初心者すぎてスマヌ int i; double d; @i += d; ←コンパイルおk Ai = i + d; ←コンパイルエラー Aの場合はコンパイルエラーになるのは分かるんだけど なぜに@の場合だとエラーにならないの?
>>352 i += d は、
i = i + d じゃなくて
i = (type of i)(i + d) と同じって言語仕様で決まってるから。
ソース見てると import java.awt.*;の*;を使わずに クラス名をいちいち書き出しているソースがありますけど、 そうすると何かいいことあるんですか?
>>354 その後に import java.util.*; して、 List 使おうとしても曖昧とか言われない。
>>354 IDE無しでもソース見ただけで使用してるクラスが一目瞭然。
良くwebサイトとか見てると自動相互リンクとか言って登録するとき 相手側のページにリンクされてるかどうか調べに行くのとかあるんですけど、 あれってjavaで実装できます?
>>357 HTTPを理解してればjavascriptでもできるぞ
360 :
418 :2008/04/15(火) 18:41:00
今日アルゴリズムの授業が始まり、初日からこんな課題が出されました。 ユークリッドのアルゴリズム」のプログラム(Euclid.java)について、 次の問に答えよ。 #プログラムリスト↓ class Euclid { public static int gcd(int u, int v){ int t; while(u > 0){ if(u < v){ t = u; u = v; v = t;} u = u - v;} return v;} public static void main(String args[]){ int u = 100; int v = 25; System.out.println("u="+u); System.out.println("v="+v); System.out.println("gcd="+gcd(u,v)); }} 1-1)メソッド gcd を次のように変更せよ。 (変更点) 変数 u, v の変化がわかるように、途中経過を画面に表示させる。 1-2)メソッド gcd を次のように変更せよ(二つの変更点を同時に満たすように変更 せよ)。 (変更点1)教科書に述べられているように、% (余りを求める演算子)を利用 したものにアルゴリズムを改良する。 (変更点2)変数 u, v の変化がわかるように、途中経過を画面に表示させる。 変更後のgcdメソッドのプログラムと、gcd(1455,987)を実行させたときの実行 結果を示せ。 明後日が提出日なので、解答するのに大変困っています。 分かる人がいましたら、是非教えてください。
質問よろしくお願いいたします。 Javaをダウンロードしたのですが、インストール終了後に確認すると、 Java Plug in???? とメッセージが出て使えません。 osはXPです。 よろしくご教示ください。
>362 インストール後に、ちゃんとインストールされているか確認できる画面。 ちゃんとインストールされていれば、絵が出てくるみたいな。
そんなのあったのか
365 :
デフォルトの名無しさん :2008/04/15(火) 19:23:37
どうしてIDE使わないの?
ブラウザを全部閉じてやりなおしてみるとか。 IDE て、Eclipse なんかは別に JDK が必要なじゃなかったか? というかアプレットが動かしたいだけの人が紛れ込んだのかもしれないし。
367 :
デフォルトの名無しさん :2008/04/15(火) 19:32:41
サーブレットにて、異なる2つのJPEG画像をバイナリで取得し、 JavaMailに添付したいのですが、 なぜか同じ画像が2つメールに添付されてしまいます。 (2つ目に添付した画像×2) ただし、ファイル名は「image1.jpg」「image2.jpg」で添付されており、 同じにはなりませんでした。 ソース(その1) protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ImageDataHandler clsDataHandler; ImageDataHandler clsDataHandler_2; private byte[] bufImage_1 = new byte[1024]; private byte[] bufImage_2 = new byte[1024]; try{ bufImage_1に1つ目の画像情報をセット bufImage_2に2つ目の画像情報をセット /*** メール送信処理 ***/ // 1枚目の添付 clsDataHandler = new GazouDataHandler(); clsDataHandler.attached.write(bufImage_1); // 2枚目の添付 clsDataHandler_2 = new GazouDataHandler(); clsDataHandler_2.attached.write(bufImage_2); // メール送信 SendMail(clsDataHandler,clsDataHandler_2); clsDataHandler.attached.close(); clsDataHandler_2.attached.close(); }
368 :
367 :2008/04/15(火) 19:38:57
ソース(その2) /* メールの送信 */ public void SendMail(GazouDataHandler clsDataHandler, GazouDataHandler clsDataHandler_2){ try { 〜省略〜 /** 1つ目のボディパートを作成 **/ MimeBodyPart mbp1 = new MimeBodyPart(); // メールの内容を指定 mbp1.setText("テスト\n", "iso-2022-jp"); /** 2つ目のボディパートを作成 **/ MimeBodyPart mbp2 = new MimeBodyPart(); // 添付するファイル名を指定 mbp2.setDataHandler(new DataHandler(clsDataHandler)); mbp2.setFileName("image1.jpg"); /** 3つ目のボディパートを作成 **/ MimeBodyPart mbp3 = new MimeBodyPart(); // 添付するファイル名を指定 mbp3.setDataHandler(new DataHandler(clsDataHandler_2)); mbp3.setFileName("image2.jpg"); 〜省略〜 } catch (Exception e) { e.printStackTrace(); } } }
369 :
367 :2008/04/15(火) 19:40:02
/** * 添付ファイルクラス */ class ImageDataHandler implements DataSource{ ByteArrayOutputStream attached = new ByteArrayOutputStream(); public String getContentType() { return "image/JPEG"; } public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(attached.toByteArray()); } public String getName() { return ""; } public OutputStream getOutputStream() throws IOException { return attached; } } アドバイスしていただけると助かります。 よろしくお願いします。
371 :
デフォルトの名無しさん :2008/04/15(火) 20:39:47
>>360 の教科書の内容なんてしらねーよw
class Euclid {
public static int gcd(int u, int v){
System.out.println("アルゴリズムを開始\tu:" + u + "\tv:" + v);
while(u > 0){
if(u < v){
// ややこしいのでtの宣言を移動した
int t = u; u = v; v = t;
System.out.println("u < v のため値を交換\tu:" + u + "\tv:" + v);
}
u = u - v;
System.out.println("u -= v を実行\t\tu:" + u + "\tv:" + v);
}
System.out.println("u <= 0 のため終了\tu:" + u + "\tv:" + v);
return v;
}
public static void main(String args[]){
int u = 1455;
int v = 987;
System.out.println("u="+u);
System.out.println("v="+v);
System.out.println("gcd="+gcd(u,v));
}
}
>>368 でパートをどういう風に追加しているのか見ないと分からん
>>372 パートを追加するところです↓
// 複数のボディを格納するマルチパートオブジェクトを生成
Multipart mp = new MimeMultipart();
// 1つ目のボディパートを追加
mp.addBodyPart(mbp1);
// 2つ目のボディパートを追加
mp.addBodyPart(mbp2);
// 3つ目のボディパートを追加
mp.addBodyPart(mbp3);
どこか間違っているでしょうか?
>>367 >bufImage_1に1つ目の画像情報をセット
が間違ってんでねーの
376 :
デフォルトの名無しさん :2008/04/16(水) 00:43:18
すいません。 ご質問なのですが、お絵かきBBSなどyahooオークションの残り時間などの時間表示。 お絵かきチャットなどのJavaがエラーをしていて、コントロールパネルのアプリケーション追加と削除で消して。 再びJavaのサイトから無料DLしたのですがいっこうに治らないのですが、 なんとかなりませんでしょうか? エラーメッセージ:同じプロセスで実行中のいくつかの Java 仮想マシンによってラーが発生しました。 詳細おねがいいたします;;
[ツール]-[インターネットオプション]-[詳細設定] で、使わないJava バージョンのチェックを外す。
378 :
デフォルトの名無しさん :2008/04/16(水) 01:14:43
Java(SUN) <applet>に JRE 1.6.0_05を使用(再起動が必要) にチェックついていて、ほかにJavaはないんですが・・・ やはり治りません・・すみません>< 再起動もしてみたのですが・・ スパイウェア関係かとおもいスキャンしたけど検出されず・・。 ほかに可能性はなににあるのでしょうか・・無知ですみません;;
板違い ここはプログラミングする人のための板です Windows板のIE関連のスレとかへ
380 :
デフォルトの名無しさん :2008/04/16(水) 01:41:11
わかりましたー。いってみますー。お世話になりましたー
数年前のjava本でスレッドを勉強中なんですが、今もロックにはPOSIXのように 排他制御のmutexは実装されていないで、同期のsynchronizedを使うんでしょうか。
むしろあらゆるオブジェクトがmutexとして使えるのがJavaじゃね?
java.util.concurrent
384 :
381 :2008/04/16(水) 02:02:59
>>382 それがJavaのクラス設計なんですね。
ああくそー、C/C++の手ぐせが抜けない・・・ orz
385 :
381 :2008/04/16(水) 02:13:45
>>383 thx!
これならC/C++の手ぐせで使えそうだ。
しかしJavaってまだまだ発展中?
次のバージョンでも大き目の言語仕様の追加がある予定だしね 標準ライブラリもどんどん肥大化中だ
JCP に移管されてから肥大化が酷くなった。俺も俺もとレイプされまくり。
標準ライブラリだけでいまどきのブラウザつくれるほどのAPIが揃ってるからな。 何もなかった1.1が懐かしい。
389 :
デフォルトの名無しさん :2008/04/16(水) 10:38:50
エクリプスを使っています。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; と打ったところ、コンパイラーさんから 「インポートされたjavax.servletは見つかりません」とのご忠告。 そこで、「構成および実行」の「クラスパス」で 「外部jarの追加」「servlet-api.jar」を選択。 としたのですが、効果なし。 どうしたらいいんでしょうか?お願いします。
>>389 プロジェクト右クリックしてプロパティ-ビルドパス-ライブラリで外部JARついか
>>390 どんだけやさしいんですか!ありがとうございます!
392 :
デフォルトの名無しさん :2008/04/16(水) 14:51:45
C/C++より洗練され簡素化されたJavaの流儀を覚えるべきだね Cは低レベルでしか使われなくなるだろうし
質問です、 バイト配列byte[]からBufferedImage型に変換するにはどのような方法をとればいいのでしょうか。 さんざんググりましたが、BufferedImage→byte[]への変換は出てきますが、byte[]→BufferedImageは全く出てきません。 よろしくお願いします。
どう変換したいのかわからんけど byte[] b = ..... BufferedImage image = ImageIO.read(new ByteArrayInputStream(b));
395 :
デフォルトの名無しさん :2008/04/16(水) 17:14:30
現在、大学でJAVAの基礎を勉強しています。 参考書を買おうと思い調べたところ、結城浩さんの「JAVA言語プログラミングレッスン」が良さそうだと思い 本屋に行ってみたのですが、値段が高くて躊躇しています。 「JAVA言語プログラミングレッスン」は改訂第二版が最新らしいのですが、近所のブックオフに無印のもの(1999年初版発行のもの)がありました。 10年近く前のものだと、内容的に役に立たないでしょうか?
396 :
418 :2008/04/16(水) 17:30:45
今はこの問題が解けなくて困っています。 「エラトステネスのふるい」のプログラム(Prime.java)を、途中経過が分かるよう 次のように改良せよ。具体的には、以下のようにプログラムを改造せよ。 2の倍数をふるいにかけた直後の配列aの状態を画面に表示、 3の倍数をふるいにかけた直後の配列aの状態を画面に表示、 4の倍数をふるいにかけた直後の配列aの状態を画面に表示、 ・ N/2 の倍数をふるいにかけた直後の配列aの状態を画面に表示 改造後のプログラムと、実行結果を示せ(N=30程度で良い)。正しく動いている という説明も述べよ。 class Prime { public static void main(String args[]){ int N = 1000; int i,j; int a[] = new int[N+1]; for(a[1]=0,i=2;i<=N;i++){ a[i] = 1;} for(i=2;i<=N/2;i++){ for(j=2;j<=N/i;j++){ a[i*j] = 0; }}for(i=1;i<=N;i++){ if(a[i] > 0) { System.out.print(i+" ");}} System.out.println();}} わかる人がいましたら教えて下さい。
>>395 その講義さえしのげればよいなら旧版でもおk
今後どんどんJavaを使う予定なら頑張って新版を買った方が結局得だとおもう
>>396 スレチ
>>395 あれが高いだと?
赤本の値段見て出直して来い
本なんてなくとも海外のサイトなら情報は充実してるけど日本人は英語読めないの多いからな 日本のサイトはというと説明が下手なとこばかりな上に ほとんどがアフィリエイト目的で一度作ったら放置が多くていやになっちゃうね 俺が学生向けに何か作ってやりたいけどまだまだそんな知識はないから残念だ
401 :
デフォルトの名無しさん :2008/04/16(水) 20:00:33
洋書コーナーいけば少し安く同程度のが手に入るけどね 殆どは翻訳だし原書で見たほうが翻訳者の間違いとかも無くていい
海外のサイトはとくにjavaでゲーム作ろうってサイトが多くていいな。 desktop javaにしか興味ない人間にはSwingとゲームはちょうど良い。
残念ながら日本では英語を読める人が少ない。
>>403 まったくだ。
Javaのホムペを立ち上げても、頓挫したり飽きたりして放置プレイが多い。
日本のサイトに絞ってググっても、似たような糞ホムペしかヒットしない。
おすすめ海外サイトを是非
俺も知りたい
>>395 新人研修で同じ本使ったよ。
ヤフオクとかアマゾンで買えば?
408 :
デフォルトの名無しさん :2008/04/17(木) 00:25:33
話ぶった切ってごめん Java Mozilla Parser のAPI Document ってどこで手に入る?
NTTデータが作ったintra-martってフレームワークは使いやすい? これからの開発で使わされるんだけど、企業が作成したフレームワークって当りだったためしが無くて。
中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう! 中国に反撃しよう!中国に反撃しよう!中国に反撃しよう!
厭なことがあるとメディアに用意してもらった ネタに託して怒りをぶちまける奴
>>409 比較的に使いやすい類のフレームワークとは思う
でも、詳細設計のやり方次第で最悪になることが多い
Java でナノ秒精度の日時を保持するのってどうすんの?
>>413 ナノ秒精度に基づく制御はできないが、保持なら変数に代入するだけだから簡単じゃね?
double同士の比較をしたいのですが javaFAQには単純にa > bとかはだめでa - b > -1.0E-6 のようにしないとだめと書いてありました これ単純にする方法ないのでしょうか?
416 :
415 :2008/04/17(木) 18:05:27
あ、比較する時に有効桁数もチェックしたいのです。
十分単純だと思うけどな たかだか10文字かそこら増えるだけじゃないか
if(sign.equals('-')){ // くそバグ }
Javaの最新版をダウンロードしたいんですが 「エラー。お使いのオペレーティングシステムに推奨されたバージョンの Java がインストールされていません。 インストールされている Java のバージョンは Version 5.0 Update 6 です。 下のボタンをクリックして、お使いのオペレーティングシステムに 推奨された Java をインストールしてください」 そして推奨されたJavaをインストールするために下のボタンを押すと また「」の文章が出ます。以後、繰り返しになってしまいます。 正直パソコンのスキルが、あまりないのでどうすればいいのかわかりません。 最新版をインストールしたいのでご指導お願いします。
>>415 見て思ったのですが、なんでa>bが駄目なんですか?
>if(sign.equals('-')){ ('-') ('-') ('-') ('-') ('-') 顔文字に見えて嫌いだ
Javaのおすすめ海外サイトをそろそろ教えてください
俺もまだ知りたいです
>>419 いったいどこから何をダウンロードしようとしているんだ?
最新版を使いたいなら、既にインストールしてある 5.0 Update 6 はア
ンインストールしちゃっていいよ。
>>420 >>415 はaやbの有効桁数が指定されている時の話だから単純にaがbより大きいかどうかならa>bでいいよ。
最近のコーダーは機械イプシロンもしらんのか。
aのもつビットパターンで表現される数とbのそれとを 正確に比較するって意味で使うならa>bでいいけどね
あたりまえ
最近のコーダーは機械イプシロンもしらんのか。
マジレスしちゃうと、コーダーが知ってる必要はないわな。
432 :
デフォルトの名無しさん :2008/04/18(金) 09:17:13
JavaとDelphiってどっちが易しいでしょうか?
433 :
デフォルトの名無しさん :2008/04/18(金) 09:21:15
java
Forth77
ForthRAN77 /HELLO {(Hello, World!\n) ((A)) 6 WRITE STOP} PROGRAM HELLO
>>416 有効桁数 = 絶対値((a + b)/(a - b)/2)
で、友好桁数にならないか。
有効数字ってアルゴリズムから静的に決定するもんじゃないのか。
FileChannelを使ってファイルからintの値を取り出そうとしているのですが 具体的な方法がわかりません FileChannel channel = new FileInputStream("hoge.hoge").getChannel(); ByteBuffer bb = ByteBuffer.allocate(4); channel.read(bb, seekpoint); IntBuffer ib = bb.asIntBuffer(); ib.get(); これじゃ取り出せないのですがどうすればいいのでしょう?
439 :
デフォルトの名無しさん :2008/04/18(金) 14:54:26
質問です。 javaサーバーサイド(Servlet,JSP)までで、 mysqlデータベースをからめ、Eclipseで構築、 またはViで構築したいのですが、いい本ありますか? 私はCENT OSでサーバーを作っているので、その中に 組み入れたいのですが..... 板違いならここに聞けばいいよって教えてください。 よろしくお願いします。 まずは環境を作りたいです。
>>438 readしたぶんだけByteBufferのpositionが進むからでは?
readした後flipすればいいんじゃないかなたぶん
>>440 readでも進むんですね・・・
ありがとうございました
javaはchdir(カレントの変更)はできないんですか?
>>442 できない。昔の mac にはカレントディレクトリって概念がなかったから。
そうですか。
質問なんですが 入力された文字が数値なら次の処理に行き 文字列だったら数字が入力されるまで繰り返す っていうプログラムを例外処理を使わないで 作るにはどうすれば良いのでしょうか?
質問です。 時計を作成し、テキストフィールドに表示させるようにしたのですが、 時計が表示されているテキストフィールドに文字を入力する事が出来てしまいます。 テキストフィールドにキーボードからの入力が行われず、 時計の表示のみを行うにはどの様にしたら良いのでしょうか?
swingについて質問です。 ボタンを押すことで、画面構成を変化させるようなプログラムを作りたいのですが、 ActionListenerから呼ばれるメソッド内でコンポーネントをaddしても反映されなくて困っています。 以下のような感じを考えているのですが、「ボタンを押すことによってコンポーネントの構成を変える」 というのはどのようにすればよいのでしょうか? import java.applet.Applet; import java.awt.event.*; import javax.swing.*; public class Test extends Applet implements ActionListener{ JButton go=new JButton("開始"); // 開始用ボタン JLabel label=new JLabel("変化反映"); /** 初期化ルーチン */ public void init(){ go.addActionListener(this); this.add(go); //this.add(label); //ここに書くと表示される } /** ボタンを押されたときの処理 */ public void actionPerformed(ActionEvent e) { if(e.getSource()==go){ this.remove(go); this.add(label);//ここで追加しても反映されない this.repaint(); } } }
>>445 do{
str = input; // 何らかの入力処理
}while( !数値かどうか(str) );
>>448 add()やremove()をした後にはvalidate()を呼ぶ必要があるらしい。
詳しくはjavadocのContainer#add()あたりを参照。
>>449 ごめんなさい
その数値かどうかって判定が分からないです
普通は Integer.parseInt() で例外発生するかどうか。 めんどくさいが丁寧に最良パフォーマンスで実装するなら boolean digit = true; for(int i=0; i<str.length(); i++){ if(! Character.isDigit(str.charAt(i))){ digit = false; break; } } 例外より遅いかもしれないが楽して正規表現使うなら (符号無視) if(str.matches("\\d+")){ // 数字 }
Character.isDigitは全角数字や漢数字、デヴァーナーガリ数字などにも trueを返すから使い方によっては要注意。
454 :
448 :2008/04/19(土) 00:29:00
>>450 意図したとおりの動作ができました。ありがとうございます。
数値かの判定? 正規表現でいいじゃねーか
456 :
デフォルトの名無しさん :2008/04/19(土) 11:37:48
配列とループの質問なんですけど、 簡単に例えると、 配列: int[] i = {1,5,4,3,2,8,4,6,1,5,7,9,3}; があって要素番号を1から順にループしていって 最初の5が出た時に表示などの処理、 2回目の5が出た時にループも終了ってのはどうすればいいですか?
>>456 やりたいことを書いた方が良いレス付くと思うぞ。
表示するならタイマーか何かで要素を取得するルーチンにwait置かないとだめだろうし。
ついでにsetBackground(SystemColor.text)
461 :
デフォルトの名無しさん :2008/04/19(土) 12:05:46
>>456 int[] array = {1,5,4,3,2,8,4,6,1,5,7,9,3};
int count = 0
for (int i=0; i<13; i++) {
if (array[i] == 5) {
if (count == 0) {
System.out.println("5");
count++;
}
else break;
}
}
テキストファイルから数字を読みだすクラスを教えてください。 Stringとして読む方法ならわかります。
>>464 バイナリじゃなくてテキストなら、
Stringとして読んだ後で数値に変換する。
変換方法はちょっと前のやりとり参照。
467 :
464 :2008/04/19(土) 12:37:48
解決しまつた 読み出し結果 = Integer.parseInt(line.replaceAll("[^0-9]","")
以下のコードを実行すると、fillRoundRecの残像(?)が残ってしまいます。 Image img; // オフスクリーンイメージ Graphics g_off; // グラフィックオブジェクト int miss_count = 255; // オフスクリーンバッファ作成 img = createImage(640, 480); g_off = img.getGraphics(); // 描画領域の塗りつぶし miss_count += 4; if (miss_count > 255) { miss_count = 255; } if(miss_count != 255) { g_off.setColor(new Color(255, miss_count, miss_count,128)); g_off.fillRoundRect(10, 57, wx - 10 * 2, 28, 20, 20); } 残像とは、うすいピンク色の物体のことです。 デバッグしたところ、g_off.fillRoundRectが実行されていないときに残像が表示されてしまいます。 この残像を消す方法を教えていただけないでしょうか?
Vectorに入れたストリングオブジェクトからメソッドを参照しても見つからないと出ます・・・ Vector ve = new Vector(); String s = new String("One Two Three Four Five Six Seven"); ve.addElement(s); int len = ve.elementAt(0).length(); String substring = ve.elementAt(0).substring(len - 10, len); // 末尾の10文字を抜き出す System.out.println(substring); Vectorに入れると何か変わってしまうんですか?
>>470 elementAtの返値はObject型になってるのでキャストすること。
つーか、JDK1.4で学習するのは推奨しないが……
(String)(ve.elementAt(0)).substring(len - 10, len); え〜っと こういうことじゃないですよね…… Object型からの変換ってどうしたらいいんですか?
そういうことですよ
476 :
474 :2008/04/19(土) 21:24:14
わからない…… 教えてくだせorz
Object o = ve.elementAt(0); String s = (String)o; s.substring... と段階を追って書けばいいんじゃない?
System.out は final フィールドなのに System.setOut(PrintStream) を呼んだ後は 値が変わるようなのですが、 こんなことが可能なのでしょうか?
>>470 int len の行もキャストが必要。と言うか、操作するなら取り出しましょう。
List<String> list = new ArrayList<String>();
String str = "One Two Three Four Five Six Seven";
list.add(str);
String ret = list.get(0);
int len = ret.length();
if (len >= 10) { ret = ret.substring(len - 10); }
System.out.println(ret);
>>478 nativeで実現されてるからできる。
>>478 フィールドへの参照はfinalだけど、OutputStreamの中の状態とかは変化できる
大雑把に言えばこんな感じになっていると考えればOK
class System {
final OutputStream out;
void setOut(OutputStream out) {
this.out.setOutputStream(out);
}
}
finalはバイトコードレベルではただのフラグだな。 コンパイラが代入されたり継承されたりしないように尊重してるだけで、 バイトコードレベルでの代入自体は実はできるってことじゃないの?
483 :
474 :2008/04/19(土) 23:48:16
>>471 いまさらですがJDKについてkwsk
回答してくださった方ありがとうございます。参考にさせていただきます。
>>469 これを描画する前に真っ白の同じ形のものを描画すればOKでした。
おさわがせしました。
はじめまして、かなり初歩的な質問なんですが、 NetBeansで jTextFieldに配列を使って名前を付けるにはどうすればよいのでしょうか?? for (int i=1 ; i<=10 ; i++) { jTextField1[i] = new javax.swing.JTextField(); } みたいなことをやりたいのですが、やり方がわかりません... どなたかご教授お願いいたします。
>>483 今まではオブジェクトが何でも入れられたので、
取り出される要素の型が特定できない
そこでとりあえず、出した要素の型は全部Object型ということにして、プログラマにキャストをさせるようにしていた
ところがJDK1.5からはジェネリクスなる仕組みが用意され、格納できる型が固定できるようになった
こんな感じ
Vector<String> ve = new Vector<String>();
これでveにはStringしか入れられなくなる
ve.add("hoge");
ve.add(new Integer(1)); //エラー
格納できる型が指定できるのだから、取り出す型も自然に決まってくるので
キャストの必要がなくなる。ジェネリクスでぐぐってみては
あと蛇足だが、今ならVectorの他にLinkedListやArrayListが用意されている。違いは同期化の有無
>>486 1.5になってからもはやVectorを使わないような そんなことない?
System.outがfinalなのにセットできるのは昔の名残だ。
古いAPIがListではなくVectorを返しやがるみたいなときに 使わざるを得ないことはあるな。
それはListで受けられるだろう。 引数がVectorだとListのままじゃ渡せないが。
FocusLostでフォーカスを失ったときに、 失う前に元々フォーカスがあったところを調べるのってどうすればいいんでしょうか?
最近拾ったスクリーンセイバーがリモートネットワーク 72.5.124.55 ポート80に アクセスしようとしていたのでセキュリティーソフトでアクセス禁止にしたのですが、 jabaの何か、としか私には解りませんでした、ここの人たちに聞けば親切に教えて くれるという事で尋ねてみました。 素人の私でも解る説明で教えてください。
void focusLost(FocusEvent e) { Component lostFrom = e.getComponent(); Component gainedBy = e.getOppositeComponent(); } か?
494 :
491 :2008/04/20(日) 04:43:55
493さんありがとうございます!!なるほど! これで、元々フォーカスのあったコンポーネント(jTextField)に入力されている値を取得したいのですが、 lostForm.getText(); だとエラーになるんですが、これじゃ駄目なんでしょうか?? 何度もすいません。ご教授お願いいたします。
>>494 if (lostFrom == myTextField) {
String s = myTextField.getText();
}
==は同じオブジェクトを指してるかどうか型違っても==
編集しかけで送信してしまった。 ==は同じオブジェクトを指してるかどうかの判定だから、型違っても使える。
JTextFieldが複数あって、どれでも処理が同じ場合は いちいち==で比較するより if (lostFrom instanceof JTextField) { JTextField tf = (JTextField)lostFrom; String s = tf.getText(); } のほうがいいだろうな
499 :
デフォルトの名無しさん :2008/04/20(日) 12:41:16
Javaのパッケージで定義されているクラスの中身って見れます?? 例えば java.awt クラス Label のメソッドgetText()がどういう処理してるのかとか
ソースコード付いてるだろ
501 :
:2008/04/20(日) 12:46:41
Eclipseとか使ってたらF3で一発だよ。
Java ディレクトリに入ってる src.zip の中を見れ
503 :
デフォルトの名無しさん :2008/04/20(日) 13:04:18
あっ...ほんとだ
>>500-502 迅速な解答どもです
じゃあ、iアプリの
com.nttdocomo.ui
クラス Label
とか見れます?
探したけどdojaディレクトリの中探したけど見当たらん。。。
プロプラな部分のソースを付けるわけないだろ
MIDPならPhoneMEのソースが使えるがPhoneMEのMIDPは2.1だな。
Graphicsクラスで文字にアンチエイリアスをかけるにはどうすればいいのでしょうか? Graphics2Dクラスじゃないとできないのでしょうか?
507 :
デフォルトの名無しさん :2008/04/20(日) 15:41:36
Javaで2次元ベクトルを要素とする動的2次元配列 を作るにはどうしたらいいでしょうか? 配列はArrayListで作ってみたんですが、エラーが意味不明。。 あとdouble2つを持った2次元ベクトルクラスって標準ライブラリには無いんでしょうか?
java.awt.geom.Point2D.Doubleとか。
509 :
デフォルトの名無しさん :2008/04/20(日) 17:15:25
510 :
491 :2008/04/20(日) 17:35:11
>>495-497 早速のご回答ありがとうございます
if (lostFrom == myTextField) {
String s = myTextField.getText();
}
これって、元々テキストが入ってたテキストフィールドが「myTextField」ってことですよね??
だと、for文で全てのテキストフィールドを一致するか調べて探すっていう形になるんでしょうか?
511 :
507 :2008/04/20(日) 18:01:18
>>508 ありがとうございます。求めてたのはそれです、、が
java.awt.geom.Point2D.Double foo = new java.awt.geom.Point2D.Double();
はO.Kなんですが、
Point2D.Double foo = new Point2D.Double();
と書くとPoint2Dパッケージがないと言われるのですが、そういうものなのでしょうか??
あと、このクラスに限らず、ArrayListの2次元配列に入れたものを取り出すとき
bar = data.get(1).get(2).x;
等とやると、java.lang.Object クラスに変数xなんてない、
と言われるのですが、どうしたらいいのでしょうか?
>>510 ずらずら書くのもループで回すのも構成次第でしょう。
>>511 冒頭に
import java.awt.geom.Point2D.Double;
と書けばよいのでは?
漏れた。 JDK1.4までのArrayList#getの返値はObject型なのでキャストが必要。
ArrayList の現在の要素数を取得するにはどうすれば良いのでしょうか? ArrayList.size で取得できるかと思ったのですが、以下のエラーが出てしまいます 「size は java.util.ArrayList で private アクセスされます。」
>>511 importも分からずにCollectionとは恐れ入った
もう一回勉強した本を読み返すことをおすすめする
>>514 privateだからアクセスできません
>>514 メソッドとフィールドに関して勉強して来い
518 :
514 :2008/04/20(日) 19:23:24
>>516-517 レスありがとうございます
すいません、質問の仕方が変でしたね。
質問する時は最低限やったことを書くべきだと思ったので
size が private でアクセスできないことを確認した旨を書きました。
聞きたかったことは ArrayList の現在の要素数を取得方法です
動的にサイズが変化するので要素数の取得をするべきではないのでしょうか?
質問です。 あるJavasprictを改造中なのですが、フォルダの構成上、ファイルまでのパスをURL指定にしたいのですが、 以下の記述をどのように修正すればよいのでしょうか? downloadDir : '../ファイル名.php?img=フォルダ名/'
522 :
514 :2008/04/20(日) 19:40:44
523 :
478 :2008/04/20(日) 21:26:36
勉強になりました。ありがとうございます。
524 :
510 :2008/04/20(日) 23:00:53
なるほど。ありがとうございました。
525 :
デフォルトの名無しさん :2008/04/20(日) 23:49:12
javaのソースの中にたまに「class名#メソッド」 な記載があるのを見るのですが、これって何でしょうか。 staticだったら「class名.メソッド」だろうし staticじゃなかったら「インスタンス名.メソッド」かな と思っていますがそれ以外の何かがあるのでしょうか
>>525 インスタンスメソッドを示すときのお約束。
言語的にはそういう書き方はできない。
527 :
デフォルトの名無しさん :2008/04/21(月) 00:00:20
jTextFieldを複数用意していて、 それを全てクリアしたいのですがどういう方法でやればいいのでしょうか? for (int i=1 ; i<=100 ; i++) { myTextField[i].setText(""); } のようにやればできるのですが、 テキストフィールドの変数名に配列を使わないでやるには一つづつsetTextしていくしかないんでしょうか? それだとあまりにも面倒なもので... もし良い案をご存じでしたらお願いします。
>>528 思いつかないこともないですが、もっと面倒くさいです。
たとえば、getComponents() メソッドで属するコンポーネントを全て獲得し、
forで一つ一つJTextFieldかどうかを確認し、JTextFieldならクリアする…という方法があると思います。
531 :
デフォルトの名無しさん :2008/04/21(月) 00:28:09
ユークリッドの互除法を用いて、 与えられた2つの整数の最大公約数を出力するJavaのプログラムを示せ。 java GCD 45 18 ←入力 9 ←出力 この問題どなたか分かりますか?
532 :
デフォルトの名無しさん :2008/04/21(月) 00:40:15
>>492 です、
>>493 〜
>>529 の皆さん、ありがとうございました。
おかげさまで、スクリーンセイバーの件は解決できました。
興味が出てきたのでジャバの勉強もしてみようと思います、
これからいろいろと質問とか疑問に思った事を相談に来ると思うので、
その時は宜しくお願いします。
☆⌒(*^-゜)v Thanks!!
>>531 まず、ユークリッドの互除法でぐぐってみてはどうだろうか
一番上にWikipediaが来て、
1. 入力を m, n (m ≧ n) とする。
2. n = 0 なら、 m を出力してアルゴリズムを終了する。
3. n が m を割り切るなら、 n を出力してアルゴリズムを終了する。
4. m を n で割った余りを新たに m とし、更に m と n を取り替えて 3. に戻る。
こんな解説が載ってるわけだが
ループ文を break で抜けるように メソッドを抜ける方法はありますか? public void hoge(int i) { if (i > 3){ System.out.println("nothing to do"); //ここでメソッド抜けたい } fuga(); }
535 :
:2008/04/21(月) 01:42:05
return; と書けばいいよ。
返り値が void でも return が使えたんですね、知りませんでした。 ありがとうございます
javaの初めからあるクラスで、エクステンズしてもいいクラスと いけないクラスの区別のつけ方と、 クラスのオーバーライドしてもいいメソッドの区別の仕方を おしえてください。 オーバーライドしてもいいメソッドやクラスは正常に動作するという意味です。
自宅では問題ないいのだけれど、出先(友人宅や学校など)でJava Runtime Environment が入ってないPCでJavaアプリを使いたいのですが、USBやリムーバブルHDでJRE環境を 持ち歩くにはどうすればイイでしょうか?持ち歩いている人なんていないのでしょうか?
>>537 アクセス制限に引っかかることがなく、かつ final ではない場合、クラスの継承およびメソッドのオーバーライドが可能。
意味が分からなければ、実際にやれば分かる。コンパイルエラーになるから。
540 :
デフォルトの名無しさん :2008/04/21(月) 21:36:57
http://postlet.com/ このアプレットでは日本語ファイルの送信時に、文字化けが発生するので
ソースのUploadThread.javaの265行目のfile.getName()をUTF−8にエンコードするようにしてリコンパイルしました。
(コンパイルは通り、アプレットは生成されました。)
これをtomcat/struts環境で利用するとエラーが発生します。
オリジナルのアプレットは正常に動くのですが、リコンパイルしたものではエラーが発生する状況です。
この状態の回避方法を教えて下さい。
このアプレットで日本語ファイル名のファイルを文字化けなく送信したいです。
ログ読もうよ。TOMCAT_HOME/logs/stdout.log あたりになんか 吐き出されてるんじゃないの。
544 :
デフォルトの名無しさん :2008/04/21(月) 21:57:15
double x = 1010.101ってのを整数部と小数部に分けたいんだけど 整数部はMath.floor(x);でいいんだけど、 小数部はどうしたらいいのか分からないっす・・・ 小数部 = x - Math.floor(x)ってやると0.100999999999ってなっちゃうんです。
>>544 > ってやると0.100999999999ってなっちゃうんです。
doubleの数値を10進の文字列Stringに変換してから小数点で
トリミングして切り出せばいい。
今日からjavaやってみようと思う、コマンドの1つも知らない俺に優しいサイト&本ある? ポケット辞書みたいなのあったらありがたいんだけど
おー、調べるまで知らなかったけど、Javaにはfrac()ってないのか。
549 :
デフォルトの名無しさん :2008/04/21(月) 22:34:28
>>545 String seisu = String.valueOf((int)整数);
String bin = String.valueOf(1010.101);
String ss = "0." + sh.substring((int)seisu.length() + 1,
(int)bin.length());
小数部 = Double.parseDouble(ss);
みたいにやったらできました。ありがとうございました。
APIみながらコード書いてたらファイアフォックスのタブがもの凄い数になるんだけど プロのみなさんはAPIとか見ないの?
552 :
デフォルトの名無しさん :2008/04/22(火) 00:53:20
コンストラクターとは何の為に存在するのでしょうか?
インスタンス生成時に処理を行いたいから
>>551 いちいち見ながら書いてたら時間がすぐに経ちませんか?
といっても覚えられるものでも無いでしょうけどw
俺が遅いだけだと思うけどコード書くのって時間かかるものなのかな
やってるうちに「この手のメソッドはこのへんのクラスにありそうだな……」で 引数の順序とかだけ確認する感じになる。慣れとセンスが大事。
intからshortに変換するにはどのようにしたらいいでしょうか? int i = 5; short s; s = (short)i; ではeclipseに怒られてしまいます。
JDK 1.6 Security.getAlgorithms("SecretKey") で得られる共通鍵ファクトリの名前が "ACTORY.DES" とかに なってて先頭の "F" が抜けてるような気がするんだけど、これは直せなくなったバグの類なのかね。
JEditorPane editor = new JEditorPane(); JScrollPane scroll = new JScrollPane(editor); JTabbedPane tabbed = new JTabbedPane(); tabbed.addTab("title",scroll); Container container = getContentPane(); container.add(scroll); と書いた後で、editorを取得するにはどうすればよいですか。 getSelectedComponent()あたりを使ったが、editor取得まで たどり着けません。
>>561 ありがとうございます。
確かにおっしゃる通りだと思いますが、
将来的にタブ数を増減できるようにするつもりで、
動的に扱えればと考えていました。
>>554 IDEがAPIドキュメントの必要な部分をポップアップしてくれる
テキストフィールド内に 文字が入力された場合とされなかった場合とで 処理の内容を変えたいのですが テキストフィールド内に文字が入力されているかどうかを 判定できる方法があれば教えてください。
565 :
デフォルトの名無しさん :2008/04/23(水) 00:32:06
getText()
まあgetText()して正規表現?
567 :
デフォルトの名無しさん :2008/04/23(水) 00:58:52
可変長配列を使うと<identifierがありません>とエラーが出ます。なぜなんでしょうか? class FallPane{ Vector<AbstractFallBall> balls; //エラー部分 public FallPane() { //コンストラクタ balls = new Vector<AbstractFallBall>(); //エラー部分 }
エラーがでますではなく、出力されたエラーメッセージをコピペ汁
569 :
デフォルトの名無しさん :2008/04/23(水) 04:40:46
パッケージ名に「core」ってよく見るんだけど、どんなクラスを入れるの? ビジネスロジックのあるクラス?なんか重要っぽいという事しかわかんね。
フレームワークのutilsじゃなくてcoreな部分
571 :
567 :2008/04/23(水) 08:58:18
567です。 エラーメッセージはこうです。 Fall.java:83: <identifier> がありません。 private Vector<AbstractFallBall> balls; ------------^(この矢印は山形カギ括弧を指しています。) Fall.java:89: '(' または '[' がありません。 balls = new Vector<AbstractFallBall>(); ----------------^ 公開されているサンプルプログラムをそのまま実行しても こうなります。 なぜなのかわかりません。 java環境のバージョンは1.4.2で pcはmacです。
572 :
567 :2008/04/23(水) 09:01:28
>>571 のエラー部分の矢印が、ずれてますが
2つとも、Vectorの次の山形カギ括弧を指しています。
>>571 公開してるサンプルプログラムは 1.5以上必要で、
君の jdk のバージョンが 1.4.2 だから、コンパイルできない。
574 :
567 :2008/04/23(水) 10:09:12
VectorやArrayListなどの可変長配列は使えるんで、 オブジェクトの型を記述する<>の部分がjdk1.5じゃないとダメってことですね。 今のPCでは1.5にヴァージョンUPできないので、 その代わりとなるjdk1.4.2でも可能なコードってありますか? <>の部分をはずして使うと Fall.java:143: 互換性のない型 検出値 : java.lang.Object 期待値 : AbstractFallBall AbstractFallBall ball = balls.get(i); とエラーが出ます。
>>574 > AbstractFallBall ball = balls.get(i);
AbstractFallBall ball = (AbstractFallBall)balls.get(i);
みたいに、全部明示的にキャストするとか。
タイムゾーンの "Asia/Tokyo" みたいな 「地域/都市名」 表記って ISO かどっかで標準化されてんの? それとも Java 独自?
579 :
567 :2008/04/23(水) 15:11:58
575さん、ありがとう。 解決しました。キャストすればよかったですね。
580 :
デフォルトの名無しさん :2008/04/23(水) 15:16:58
キャストは明示的にやる癖つけた方がいいね
他人が見ることを前提に作らなきゃな
582 :
デフォルトの名無しさん :2008/04/23(水) 16:01:35
JavaMailでsetFlagsがサーバー側に保存されません。 (接続部分省略) Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_WRITE); //メッセージ数表示 System.out.println(folder.getMessageCount()); //適当なメッセージを取得 Message msg = folder.getMessage(2000); System.out.println(msg.getSubject()); //フラグを変更 Flags flag = new Flags(Flags.Flag.SEEN); msg.setFlags(flag, true); //フラグの立っているメッセージを取得 Message[] msgs = folder.search(new FlagTerm(new Flags(Flags.Flag.SEEN), true)); for(int i=0; i<msgs.length; i++) System.out.println(msgs[i].getSubject()); //再び総数と、未読数を取得 System.out.println(folder.getMessageCount()); System.out.println(folder.getUnreadMessageCount()); folder.close(false); store.close(); これで、実行すると未読数の数は減ります。 で、取得するメッセージを変えても、以前の物にフラグが立っていない状態です。
583 :
582 :2008/04/23(水) 16:05:37
DELETEのフラグをたてて folder.close(true); にすると削除されます。 やりたいことは、メールを削除しないで、処理していないメールのみを受信することです。 プロトコルはPOP3です。 削除フラグだけたててfalseのままcloseも試したけどリセットされてる感じです。 サーバーから削除しないで、新しいメールのみと受信はどうすればいいのでしょうか? お願いいたします。
584 :
582 :2008/04/23(水) 17:48:08
質問です!!!! try{ System.out.println("文字を入力してください"); BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) ); String str = br.readLine(); System.out.println(str+"をファイルに出力します"); FileWriter fw = new FileWriter( "test.txt" ); fw.write( str, 0, str.length() ); fw.close(); } catch( IOException e ){ System.out.println(e); } これで実行して文字を打ち込んでもファイルに出力されないんですがどこがおかしいですか?
>>585 です
ちゃんと出力されてました
すいませんもう二度と書き込みませんのでどうか許してください
588 :
デフォルトの名無しさん :2008/04/23(水) 21:04:20
Javaアプリケーション上から別のDOSで動くアプリケーションを呼び出したいのですが どうすればよいのでしょうか? Robotクラスでも何とかできるのですが、DOSアプリなので表示の必要は無く、 見た目上はJavaアプリケーションしか走ってない状態がいいのですが、方法がわかりません・・・。 よろしくお願いします。
590 :
デフォルトの名無しさん :2008/04/23(水) 21:15:27
>>589 おおありがとうございます!でけますた!!
591 :
588 :2008/04/23(水) 21:43:42
592 :
589 :2008/04/23(水) 21:45:04
なぜ、女なんだ
グロ貼んな
うpじゃねーし
近所の猫も飼い主に捕れたてのネズミをプレゼントしようとしてたな
>>540 ですけど下の様なエラーが出ます。
javax.servlet.ServletException: Processing of multipart/form-data request failed. Stream ended unexpectedly
at org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRequestHandler.java:194)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:405)
commons-fileupload-1.1.1.jarだったのをcommons-fileupload-1.2.1.jarに変更してみてからは上のも含め下の様なエラーが出ることもありました。
javax.servlet.ServletException: Header section has more than 10240 bytes (maybe it is not properly terminated)
at org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRequestHandler.java:194)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:405)
javax.servlet.ServletException: Stream ended unexpectedly
at org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRequestHandler.java:194)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:405)
この状況を改善するにはどうしたらいいでしょうか・・・
599 :
デフォルトの名無しさん :2008/04/24(木) 11:10:18
wicket.ApplicationPagesがimportできないのは…なぜ!? ちなみにwicketのversionは1.2.7です。 参考サイトはversion1.1.1を使ってるから名称が変わってるのかな?; 誰か教えてください><
バージョンのせいにしたいならバージョン入れなおして 試せよ
601 :
デフォルトの名無しさん :2008/04/24(木) 11:20:11
だってversion1.1.1が見つからなかったんだもん〜♪
602 :
デフォルトの名無しさん :2008/04/24(木) 11:39:25
javaからMySQLに接続し、データベースを操作するプログラムを作っています。 System.out.println("商品コードを入力してください。(5文字)"); System.out.print("商品コード:"); String str=br.readLine(); このstrの頭が全角スペースや半角スペース、未入力のときに例外処理(「未入力です」と出力など・・)を行う記述を教えてください。
if (str.startsWith(" ") || str.startsWith(" ") || str.length() == 0) { System.out.println("未入力です"); }
604 :
デフォルトの名無しさん :2008/04/24(木) 11:48:44
>>603 できました!
ありがとうございます!!
>>603 startsWithが先頭。
ということは最後の文字を弾くには・・?
endsWith
>>602 です
strにコードを入力させ、そのコードの情報を出力するプログラムなのですが
String str=br.readLine();
String sql = "select * from kadai where コード='"+str+"'";
ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs10.next()){
// コードデータを取得
String a = rs.getString("コード");
String b = rs.getString("名前");
String c = rs.getString("電話番号");
// データの表示
System.out.println("コード :"+a);
System.out.println("名前 :"+b );
System.out.println("電話番号:"+c );
}
ここで入力したコードに該当するコードがなかった場合、「コードは存在しません」と出力させる記述をお教えください。
ExcuteUpdateならintにして0か1で返ってきたのですがExcuteQueryだとできなくて・・
jar実行ファイルで起動するアプリを作ってるんだけど、わからない事があるので質問します。 antでコンパイルとjar作成をしてるんだけど、jarの中にLogback用設定ファイルを置きたい。 設定ファイルはクラスパスが通ってる場所に置けばいいらしいが、どこに置けばいいですか? あるいは、MANIFEST.MFのクラスパス属性にこう書けば良いよってのがあれば教えてください。
>>607 正しいやり方というか、標準的なやり方ではないかもしれんが
int count=0;
while(rs10.next()){
// 処理...
count++;
}
if(count<1) {
System.out.println("コードは存在しません");
}
とでもしたら?
>>608 普通は出来ないような気がするけど、FatJarとかなら出来るんでないかな?
613 :
608 :2008/04/25(金) 11:44:06
>>612 なるほど、もしかしたら設定ファイルじゃなくて、jarに突っ込んだLogbackのjarが見れてないのかも知れません><
FatJar試してみます!ありがとうございました。
実際のところ「Write Once, Run Everywhere」ってホントなのですか? 環境依存とかないのですか?
PC 程度以上ならどれでも動くよう作りこむことは出来る。 ただし実行環境や DB なんかのミドルウェア依存のコード書けば依存するに決まっている。 動かねぇと言ってる奴の大概はテメェのバグとどっからが環境依存かを分かってない無知。
616 :
608 :2008/04/25(金) 12:00:53
>>612 早速試してみたところ、いともあっさりと出来ました!
改めてありがとうございます!
>>614 各JVMでの、微妙な挙動の違いがトラブルの元になったりする
だから、どうしてもプラットフォームごとに動作試験をすることが欠かせない場合もある
そのことを指して(場合によっては皮肉を込めて)
Write Once, Test Anywhere
と言われることもある
テキストファイルを読み出すときに、指定した文字コードで化ける文字が含まれてたら 例外にしたいんだけどどうすればええんじゃ。
>>619 java.nio.charset.CharsetDecoder#onUnmappableCharacter(CodingErrorAction)
java.nio.charset.CharsetDecoder#onMalformedInput(CodingErrorAction)
622 :
デフォルトの名無しさん :2008/04/25(金) 23:49:00
SDKのインストールに関して質問させてください
SDKのインストールの途中、以下のエラーメッセージが出てしまいました
「このインストールに必要なキャビネット ファイル
'st160000.cab'は壊れているため使用できません。
ネットワークエラーまたはCD-ROMからの読み取りエラーが発生したか、
このパッケージに問題がある可能性があります」
以下のページ(英語)で同じ症状が出てるようなのですが、よくわかりませんでした…
http://forums.java.net/jive/thread.jspa?messageID=254470 行き詰まってしまいました。何かヒントを教えていただきたいです
よろしくお願いいたします
同じJNLPファイルを
http://www.java.com/ja/でダウンロードした実行環境で実行した結果 二台のPC中、片方だけ「could not create the java virtual machine」というエラーが出るのですが
何度か再インストールを試してみたり開発環境をつっこんでみたり、ぐぐって見たりもしたのですが
大体再インストールで直っている例が多く、具体的に何か弄ったり手動で消すような項目も見当たらず
行き詰っています。
何かしら糸口でも構わないので教えていただけないでしょうか。
>>622 可能ならブラウザのキャッシュを消してから、
ダウンロードし直し。
625 :
デフォルトの名無しさん :2008/04/26(土) 01:28:14
eclipseの参照検索のソース見たいんですが、ソースzip内のどこら辺か知ってる人いたら教えてください 出来れば主要クラス、仕組がざっくりと分かるサイトなんかも・・・
Javaで一般に使ってスピードが速い変数はどれですか? intは整数のみだし doubleは64bitで大きいし floatが適していますかね? でもあまりfloat使ってるの見かけないような。
そんなの気にしない
>>626 実数型のfloatよりも整数型のint方が圧倒的に速い。
しかし、現実には
>>627 の言うとおり。
そんなのを気にするほど神経を使うのなら、
そもそもJavaを選択することが間違っていると言える。
Cかアセンブラでも使っておけ。
>>626 まず原則としては
>>627 >>628 の言う通り。
あと、一般的には、CPUで直接計算可能なdoubleの方がfloatより速い。
(もちろん例外はある)
Intel CPU とか、小数は 80-bit で double より大きいだろ・・・。
>>629 float がCPUで直接計算できないとでも?
>>626 言語としてのJavaからはint演算とfloat演算でどっちが速いとか遅いとかは一切言えない。
本番の実行環境と実際に使用するコード(マイクロベンチではなく)で速度比較するのが一番手っ取り早い。
詳しく知りたいならJITコンパイラのコード読んでみるとか、
そこまで元気がないなら、前スレ906の
> デバッグ版のJDKだと -XX:+PrintOptoAssembly オプション付きで起動すれば
> 出力できるらしいって
http://d.hatena.ne.jp/kkawa/20080330 に書いてある。
でJIT後のアセンブリコード比較してみるとか。
みなさんいろいろなご意見ありがとう。 VBではintよりdoubleが一番速いとききました(32bitだから?)。 Cへの流用も考えているので 整数ならint、実数ならdoubleを使うことにします。 Cではfloatよりdoubleが速いんですよね。
VBはlongが速いだろ
> Cではfloatよりdoubleが速いんですよね。 そんなんCPUの世代が変わっただけで逆転したり、 コンパイラの最適化が変わっただけで逆転したりするよ。
使用型での2倍以下のの速度差を気にしてる初心者は 得てして100倍遅いアルゴリズムをどうどう使ったりしてるから注意
JRE5と6を両方インストールして firefoxがJavaアプレットを実行するのは5 ・・・という設定にするにはどうしたらいいですか <JRE5>/bin/javacpl.exe でfirefoxのアプレットタグサポートをONにし <JRE6>/bin/javacpl.exe ではOFFにする、 という方法を試みましたが、6で実行されてしまうようです (OSはWindows Vista)
>>638 Javaコントロールパネル->Java->Javaアプレットのランタイム設定でできない?
640 :
638 :2008/04/26(土) 19:03:35
>>639 その設定項目はパラメータの設定しかできないと思ってたんですが
有効/無効や優先順位も設定できたんですか?
もしそうであれば、設定方法を教えていただきたいです
それとも、パラメータでそういう設定ができるとか・・・?
複数のJREがインストールされてたらチェックボックスでどれかえらべるだろ。
32bit環境では例えばエクセルのVBAなどは常にIntegerよりはLongを使ったほうがいいってこと?
>>642 VBAのスレで聞け。相手してくれる暇人がいるかどうかは知らんが。
だーから分かんねーならレスするなってんだよ
お前が答えろ
double の 小数点下2桁以下を切り捨てて String に変換するにはどうすれば良いですか?
NumberFormat
そういえば昔初心者禁止を銘打った上級者スレがあった希ガス
>>46 > 昔々、時は J2EE やら C#/.NET の登場やらでム板も大変盛り上がっていた頃のお話。
> それまで質問者の多数を占めていた 「自分で分析してキーワードで答えにたどり着ける」 層に
> 代わって 「動きませんできません」 系のニューエイジ層が増え始めた (ようは今の質問レベルに落ちた)。
> 業を煮やした誰かが 「初心者無視スレ」 を立ち上げたが程なく過疎。以後本スレの避難所として
> 細々と 1〜2 年 (くらいだったか?) 続いて終幕。ちょうど死滅スレ乱立時代の頃のお話。
やばい。懐かしすぎる。死滅スレ乱立懐かしい。DocletやEJBスレもあって懐かしかったあの頃w
あの頃は凄かった。あの頃の彼らをたまに見かけるのが笑える。
いまだに同じ文体でマ板のJava系スレでJava叩いて.NET奨めるレスを見かけることがあるw
651 :
638 :2008/04/28(月) 00:10:38
>>641 ウィンドウ内のどこにもチェックボックスが見当たりません・・・
解決の糸口が見えてきたような気がするのでいろいろ試してみます
ありがとうございます
653 :
623 :2008/04/28(月) 14:55:15
色々とアンインストールしたりしながら試してみたところ カスペルスキーをアンインストールしたら could not create the java virtual machineが出なくなりました。 保護の一時停止しても駄目でアンインストールすると出なくなるんですが もうセキ板行ったほうがいい気もするんですが何かご存知の方居ましたら教えてください
654 :
デフォルトの名無しさん :2008/04/28(月) 17:33:30
中小企業勤務の者なのですが、ここで質問をさせてください。 会社の簡単な経理システムをJavaで組もうと思っているのですが、 実際にアプリケーションとして使う場合、どのような形で配布をすれば良いのでしょうか? 会社のシステムは、 WindowsXP機 2台 Windows2003 Server機 1台 WindowsVista機 4台 MacOS X Tiger機 2台 MacOS X Leopard機 3台 です。それぞれで使えるようにとJavaで組もうと思っています。
ダブルクリッカブルjarで十分
アプレット
JavaWebStart
レスありがとうございます。 とりあえず組んでみて、jarにするかアプレットにするかアンケートをとってみます。
JavaでのGUI開発にはNetBeansだな
NetBeans使いってなんでEclipseに敵対意識持ってるの?
>>658 鯖使えるならアプレットよりJavaWebStartの方が良いよ。
てかアプレットはやめときな。
>>658 jar→(利点)普通のアプリとして組める。(欠点)配布やバージョンアップが面倒。
アプレット→(利点)配布やバージョンアップが楽。(欠点)アプレット特有の制限(ファイルアクセスとか)が付く。
JavaWebStart→(利点)普通のアプリとして組める。配布やバージョンアップが楽。(欠点)情報が少な過ぎ。
>>660 GUIアプリを作るならNetBeansの方が便利だからじゃ?
>(欠点)情報が少な過ぎ。 JDKのjavadocにあるドキュメントで十分だと思うんだけど、他になんかいる?
665 :
デフォルトの名無しさん :2008/04/28(月) 18:52:57
WordprocessingMLとSpreedsheetMLを利用すればおk。
668 :
デフォルトの名無しさん :2008/04/28(月) 18:59:02
Apache POIでもできるね
Open Office
GUIのプログラム作ってて 別クラスにリスナー登録して、イベントを処理させてるんだけど ついついメインのウィンドウやらコンポーネントやらを やたらとstatic化してしまうんだけど、なんかすっきりしない。。 GUIのデザパタとか、設計のしかたってみんなどうしてるの?
それぞれが独立して使えるように作る
673 :
622 :2008/04/28(月) 23:51:59
>>624 ブラウザのキャッシュを消してからダウンロードし直してみましたが
PCの調子自体が悪くうまくいきませんでした
ですが別のPCを借りられたので、そちらにインストールできました
これから少しずつ勉強します
どうもありがとうございました
>>671 メインは、イベントソースとなる子を作る際に自分自身への参照を渡しておく。
new Clild(this);
コンポーネントは、それを受け取ってリスナに渡し、このリスナを登録する。
public Child(Parent parent){
Listner listner = new Listner(parent)
addListner(listner);
}
自分はいつもこんな感じだけど、もっと良い方法があるような気がする。
子は親に依存しないように作るのが理想
>>674 this(親)そのものを渡すのではなく、Observerとして渡す
無理に親からObserverを引き剥がしても、無駄に複雑になるだけだから親の実装インターフェイスとしてObserverを定義するのが一般的。
そうすることで、子の親への依存関係が薄くなる。
Buttonが特定の親からしか使えなかったらおかしいでしょ それと一緒
来月からPGとして入社予定で一からjavaを勉強しているものです。 とりあえず基礎の基礎からはじめてみたのですが、 文章の出力のところでわからないことがあるので質問させていただきます。 class Char2 { public static void main(String[] args) { char a = 'み'; char b = 'ん'; char c = 'な'; String d = "のピースイッツオーライ!"; int e = 3; System.out.println(a); System.out.println(a + b + c + d); System.out.print(a + b + c + e + "つ食べる。"); } } こういうプログラムを組んだのですが、 出力結果が、 c:\java>java Char2 み 37244のピースイッツオーライ! 37247つ食べる。 c:\java> こうなってしまいます。 なぜcharで宣言した変数が結合させると数値になってしまうのでしょうか? よろしくお願いします。
37244と37247の差にわろたw
吹いたw charじゃなくてStringを使えばいい 'な'じゃなくて"な"
681 :
674 :2008/04/29(火) 12:45:37
charは文字コードを表せる範囲の「整数」を格納する型です。 (現実には1文字1charの関係は破綻してるのだけど) 整数としては a = 12415 b = 12435 c = 12394 という量になります。 文字列なら、1文字であっても String a = "み"; のように文字列で扱う方が自然なことが多いです。 System.out.printlnは System.out.println(char)とSystem.out.println(String)(他にも)があって 前者は受け取ったcharの表す文字をプリントするので、aだけを渡した ものは文字として表示できてますが、それ以外は a + b ...などが整数 の加算として行われてしまうので、期待通りになってないわけです。
>677 あるボタンは特定の親に依存するのは別にありかと思う。 だが、親のある機能を実行するためのボタン(やメニュー)が複数ある事はよくある。 なので間接的に親を参照するってのが妥当。
a + b + c + dはこうなる int tmp = 'み'; // tmp == 12415 tmp += 'ん'; // tmp == 24850 tmp += 'な'; // tmp == 37244 String tmp2 = new StringBuilder().append(tmp).append("のピースイッツおーらい!").toString(); System.out.println(tmp2); こうすればコンパイラを騙せる "" + a + b + c + d
>678 ポイントはprintメソッドの引数が色々(int char String)あって、演算子(+)の優先順位とかから選択されているってこと。 cahrを+でつなげると整数として加算されるけど、Stringと+でつなげた場合は文字列として結合される。 基本的には考えなければどの型になるか解らないような書き方をする方がよくないので、680が正解。 でも、学習の段階ではある程度の仕組みを覚えなければならないのも事実やね。 結論だけ言えば、 System.out.println(a); は aをcharとして認識。 System.out.println(a + b + c + d); は加算した整数として認識。 直、(char)(a + b + c + d) だと話も変わる System.out.print(a + b + c + e + "つ食べる。"); これは、(a + b + c + e) + "つ食べる。" と考える。
>>680 ,682,684,685
皆さんレスありがとうございます。
ちょっとまだ学習していないの単語が出てきていて完全には理解できていないのですが、
・charで変数に格納されるのは、文字を表す「数値である」。
・計算した場合それは数値とみなされ、以後文字ではなくなる。(変数の中身は文字を表す機能は持ったまま)
・そのまま出力した場合は文字になる。
・ややこしいので一文字でも基本的にはStringを使ったほうがいい。
と言うことでよろしいのでしょうか?
>charで変数に格納されるのは、文字を表す「数値である」。 文字ではあるが、intの下位互換として振舞うので注意しなくてはならない。 >計算した場合それは数値とみなされ、以後文字ではなくなる。(変数の中身は文字を表す機能は持ったまま) 計算した場合は数値とみなされるが、文字となるかどうかはその結果を格納する変数次第。 例えば、 int r = a + b + c; とすれば整数だし、 char r = a + b + c; とすれば文字(ただし、このままだとコンパイルエラー) >ややこしいので一文字でも基本的にはStringを使ったほうがいい。 こればかりはケースバイケースだが、混乱するうちはそう思ってOK
・charで変数に格納されるのは、文字を表す「数値である」。 半分正解。このあたりは色々いじくってみないと分からないと思う。 ・計算した場合それは数値とみなされ、以後文字ではなくなる。 No。計算しようがしまいが、数値には変わりない。 だから、文字にint型の定数を加算して、文字に戻すということもできる(やりにくいような仕組みにはなっているけど)。 余談だが、この場合「計算」というより、「加算」とか「算術演算」という方がいい。計算は意味が色々あるから。 ・(変数の中身は文字を表す機能は持ったまま) No。byte、short、charの加算はint型に直されてから加算される。これはJavaの仕様。 ・そのまま出力した場合は文字になる。 Yes ・ややこしいので一文字でも基本的にはStringを使ったほうがいい。 結論としてはYes ややこしいかどうかではなく、状況に応じて「み」「ん」「な」などを文字として扱うか、文字列として扱うかを、プログラマが判断して選ぶ。
さすが簡単な質問には親切だな>ぽまいら
だって久し振りの休日なんだもん
>>687 ,688
ありがとうございます。
なんとなく感覚でですが理解できました。
とりあえずこのまま進めてみます。
今読んでるJava絵本を早く消化したいので(笑)
しかしやっぱり中々奥が深いですね、、、
PC用のプログラミングは初めてなので中々難しいです。
またわからないことがあったら聞きに来るかもしれません。
そのときはまたよろしくお願いします。
難しい質問はたいていの場合情報が少なくて回答しようがないか、長くなるから回答するのがタルイんだよ。
時刻ではなく、時間を保持するクラスって何を使えばいいんでしょうか?
> 時刻ではなく、時間を保持する ?
longでミリ秒を保持するってことで回答になっているのか?
>>632 debug版JDK(Windows x86 1.6.0_10)落としたけど、
Could not create the Java virtual machine.
Unrecognized VM option '+PrintOptoAssembly'
って出る。x86じゃ無理?ボスケテ
697 :
693 :2008/04/29(火) 15:14:01
動画の時間のようなmm:ssってやつを手軽に扱いたいのです・・・
>>675 既婚者のコメントみたいで意味深だなぁw
管理したい一番細かい単位(秒とか)で持って、 表示にSimpeDateFormatを使う。
700 :
693 :2008/04/29(火) 15:21:16
あ、もしかしてSimpleDateFormatってDateしか整形できない??
ミリ秒を渡せばいいぽいな。
704 :
696 :2008/04/29(火) 15:55:42
単純に落とすファイルまちがえてたorz betaじゃだめなのか
706 :
671 :2008/04/29(火) 23:50:05
Mediatorパターンっていいな 作り変えてみるわ みんなありがと
C#のGraphics.MesureStringに相当するコードってJavaにありますか? あれば教えてください。
FontMetrics のこと?
709 :
707 :2008/04/30(水) 17:56:02
FontMetricsで計れました。ありがとうございます。
710 :
デフォルトの名無しさん :2008/05/01(木) 00:37:18
jdkってzipで配布してないの? sunのサイト見たけどexeしか見つけられなかった
711 :
デフォルトの名無しさん :2008/05/01(木) 00:57:37
string k = "00" + Integer.toString( i ); eclipseで開発しておりまして、上記のように書き文字列の頭に00を付け足す事は 成功しましたが、空白を付け足すことができません string k = " " + Integer.toString( i ); こう書くと、出力される文字列に空白のスペースが付与されないのですが どうすれば解決しますか?
付くだろ糞ヴォケ
>>711 まさか、HTMLでやってて、ブラウザが空白を省略したなんてオチじゃないよね。
714 :
711 :2008/05/01(木) 02:01:13
>>713 そのまさか、かもしれない。今やってるのJSPだし。
<%@ page trimDirectiveWhitespaces="true" %>とかいじってたよorz...
715 :
711 :2008/05/01(木) 02:04:59
<pre></pre>のタグで挟んだら思い通りに出来ました。 解決までに4時間\(^o^)/
回線切って首つって死ねば良いと思うよ。
717 :
デフォルトの名無しさん :2008/05/01(木) 12:00:14
誰か質問に答えてください クラスの中のstaticで定義された変数って Cでいうグローバル変数じゃない? Cではさんざんグローバル変数嫌われてたけど、 何でJAVAでは認められてるの?
718 :
717 :2008/05/01(木) 12:00:41
すみません、追加です お願いします、誰か教えてください
static変数を使うか使わないかは自由。 当然使わない方が好ましいけど、final として定数のように使うことは便利だから用意されている。
720 :
デフォルトの名無しさん :2008/05/01(木) 12:10:42
もちろんpublic staticな変数はグローバル変数的な使い方もできる 一般的に乱用は好ましくない ただ例えばprivateで修飾すればアクセスを制限できる getter、setterメソッドを追加してやればアクセスを制御できる こういう点で単なるグローバル変数とは違う
722 :
デフォルトの名無しさん :2008/05/01(木) 12:12:25
クラスファイルが大きくなってきて ガベージコレクトか最適化か分からないけどカクカクするようになってきました。 そこでクラスファイル中で初期化だけに使う関数を消したいんだけど無理? ゲームの実行中は初期化に使う関数をガベージコレクトの対象から外したいのです。
メソッドはGCの対象にはならん。 クラスを分割して小さくしろ
クラスを分割してもクラスローダを分割しないと回収されないよ でも効果は薄そうな気がする とりあえず本当にGCが原因なのか確認しる -verbose:gc オプション付けて実行すればログが出るから jconsole を使ってもいいし
DatagramPacket に設定できるデータの最大サイズってどこでわかるナリか?
どっちかといえばNICとかOS側の制約な気がする
それどっかから取れないナリか? ネイティブでもペイロード長分からないんだっけ?
jspでフォームに入力されたメールアドレスが正しく無い場合 入力欄の下に”メールアドレスが正しくありません”と表示させたいのですが どのように実装するのが良いでしょうか? 似たページを複数作るのは手間が掛かりすぎます。
JSTL でも使え
>>728 取り方はわかんないなぁ。
どうせイーサだし、1500以下じゃだめなんかな?
PPPoEとか考えてるともっと小さくないとだめだろうけど。
>>729 JavaScriptでチェックしたら?
Jad と連携させて .class のソースビューワみたいなのを作ってるんですが そもそも、.NET における Reflector みたいなソフトって Java にはあるんでしょうか? よろしくお願いします
Refactorってのは知らんけど、あんたさんが作っているのはJadclipseってEclipseプラグインであるぞ
Java Native Interfaceはこのスレで質問しても大丈夫ですか? jchar型の変数にunicodeを代入したいんですがどうしても方法がわかりませんでした。 char型→jchar型の変換は見つけたのですが、char型[]をjchar型にする方法が知りたいです。 8bit(aなど)のものは問題ないのですが16bit("あ"など)がどうしても格納できません。 java神の降臨を願います。
めんどくせーので Java 側で byte[] ⇔ char[] 変換メソッド作ってそれを JNI から呼んでる。
736 :
デフォルトの名無しさん :2008/05/01(木) 23:49:04
メソッドの定義でこのようなのがあったのですが public static <T extends Comparable<T>> void sort(List<T> list) <T extends Comparable<T>> の部分がよくわかりません…。 この部分では何がどう定義されているのでしょうか? (T というクラスが Comparable<T> を継承してる???) Java Generics関連らしいのですが 単純に文法的な記述の意味がわからず困っています
> (T というクラスが Comparable<T> を継承してる???) そんな感じ。
『TってのはComparable<T>を実装したTだ』って宣言
String extends Comparable<String>とかな。 genericsの導入でComparable#compareToなんかもObjectではなく 特定の型を取れるようになったためにこうなる。
implementsですた。
742 :
736 :2008/05/02(金) 01:10:34
>>737-740 レスありがとうございます。
まだわからない所があるので、もう少し相手してもらえると助かります。
ドキュメントによると Comparable は インターフェースですよね。
インターフェースは継承ではなく実装するものだと理解してましたが
この場合はなぜ継承されているんでしょうか?
インターフェースも継承できる。 使いたいなら実装する必要があるだけ。
補足 この場合の使うというのはインスタンスを作るということに近い。
745 :
736 :2008/05/02(金) 02:28:32
>>743-744 う〜ん、よりわからなくなってきました。(´〜` ;)
もう一度インターフェースについて勉強しなおしてきます
>>733 レスありがとうございます
Jadclipseを実際に使用したところ
自分が欲しい機能を概ね満たしていたので良かったです
ありがとうございます
Servletの話で恐縮ですが <input type="text" name="group[1].line[10].name" value="hoge"> といったように名前のついたパラメータをサーブレット側で 取得しているのですが現在は1と10のところをループカウンタで まわして取得しているのですがあまり処理速くありません。 美しくそして速く処理できるアルゴリズムというか方法は ありませんでしょうか?
>>742 >インターフェースは継承ではなく実装するものだと理解してましたが
インターフェースを継承したインターフェースを作ることができるよ
public interface Foo extends Comparable<Foo> {
...
}
>>742 extends と implements を特に区別する意味がないっつーか。
T がクラスなのかインターフェイスなのかはわからんし。
>>747 なにをどうすると、処理が速くないんだ?
ループさせるのが普通だろ
配列を書くとき、 A[] a=A[10]; A a[]=A[10]; 文法間違ってるかもしれないけど、 四角の場所の違いはどのような考えがあるんですか?
C 風かそうでないか
A[] a → Java スタイル A a[] → C/C++ スタイル A []a → 変態
754 :
デフォルトの名無しさん :2008/05/02(金) 19:56:39
SimpleDateFormat がうまくいきません。 SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); sdf.parse("Wed, 30 Apr 2008 13:16:59 +0900"); これでうまくいきそうなんですけど java.text.ParseException: Unparseable date: "Wed, 30 Apr 2008 13:16:59 +0900" うまくいきません。 どこが間違ってるのでしょうか?お願いいたします。
755 :
734 :2008/05/02(金) 20:03:25
>>735 どしてもC側で処理を完結させたいのです。
仕方なくwindows.hを使ったSHIFT-JIS→UNICODE変換を行うことにしたのですが。
UNIXではwindows.hが使えないので困っています。
iconvを使った変換方法があるらしいのですが、iconvってUNIXのコマンドですよね。
C言語内で使用する参考サイトなど教えていただけないでしょうか。
>>754 そのままだと解析のロケールが日本なのでコンストラクタかなんかで Locale.US あたりを設定する。
>>755 プリプロセッサで差し替えるなりモジュール化設計するなりしときゃいいじゃん。
757 :
754 :2008/05/02(金) 21:37:29
JAVA基礎の本を一通り終え、次のステップに移りたいと思っています。 どんなことを勉強したらいいでしょうか?おすすめを教えてください。 例;GUIアプリ、JSP、サーブレットとか
自分が欲しいものを作る。
コンポーネントにフォーカスを設定するのってどうすればいいんでしょうか? どこかのサイトでみたのですが、 // TextBox1 にフォーカスを設定する this.textBox1.Focus(); // Button1 にフォーカスを設定して、成功した場合はその旨を表示する if (this.button1.Focus()) { MessageBox.Show("Button1 がフォーカスの取得に成功しました"); } これってあってますかね?このとおりやってみてもエラーなんです...
それなんていう言語?
>>760 はスレタイ 100 回読み直して腹を切って死ぬべき
ん〜javaって書いてあったんですけどやっぱ間違いですよね。。。 あの、、どなたかやり方教えていただけませんでしょうか?
MessageBoxつー名前が出てくる時点でMSの言語っぽい気配が濃厚なので、 たぶん.Netの何かじゃない?
とりあえずjava.awt.Component#requestFocusとisFocusOwnerを調べよ。
もしかしてJ#とか?
同じような質問なんですが、Enterキーを押したときに そのフォームに記入されている値をチェックし、 次のフォームに移動(TABを押したように)したいんですがどうやればいいんでしょうか?
Web 作成か WebProg 板逝け
769 :
767 :2008/05/03(土) 04:19:44
transferFocusでできました。すいませんありがとうございました。
3次元ベクトルを扱いたいのですが、Vector3Dクラスですと値がintのみになってしまいます doubleも扱える3次元ベクトルクラスは無いのでしょうか?
>>770 org.apache.commons.math.geometry.Vector3D でも使えば?
Java3Dのjavax.vecmath.Vector3fやVector3dを使えばいいはずだが、 Vector3Dとは何ぞや。
>>771 >>772 javax.vecmath.Vector3dで目的のものが出来ました。
私が見ていたVector3Dはnttdocomoの特殊なものだったようです。
774 :
デフォルトの名無しさん :2008/05/03(土) 13:14:16
NetBeansで.jarファイル(Javaアプリケーション実行ファイル)として出力するにはどうすれば良いのでしょうか?
776 :
デフォルトの名無しさん :2008/05/03(土) 14:56:19
777 :
デフォルトの名無しさん :2008/05/03(土) 15:25:34
はじめまして。 自宅にネットがつながっていないのですが、javaがつかいたいんです。 ネットカフェに来てUSBにダウンロードをして自宅で使用したいのですが、やり方がわかりません。 どなたか教えていただけませんか?
大嘘つきはふしあなしてからにしろ
ネカフェに1日行かなければ1ヶ月ネットが使えるよw
おまいら ADSL すらまだ使えない田舎や離島のことも配慮しろよ。
そんな田舎にはネカフェなんかないだろ
そこまで田舎じゃなくてもブロードバンドが普及しない離れ小島状態はけっこうある。 そうかと思えば基地局遠すぎて利得損失が大きいからADSLはダメで いきなり光が来ることもある。
街まで出てネカフェという状況も想像できないゆとり
>>780 ,782,783
だったら777に手取り足取り教えてやれよ
今JAVAの勉強中で置換をやっているんですが、先頭の文字だけ置換するのはどうやったらいいのでしょうか。 charAt(0)で取得すると変数は"先頭の文字"としてじゃなくて1つの文字とみなされ他の文字まで置換されて困っています。
ゆとりの逆切れ炸裂
意味不明 先頭文字置換なら、charAtで取得して、replaceFirstでOK もしくは、他の置換とかもあることが多いので、StringBuilderに格納してすべての置換処理を行い、toStringで置換後のStringを取得する。 StringBuilderの方が、文字列操作のクラスだけあって、色々やりやすいメソッドが多い
>>785 String s = "hoge";
t = "m" + s.substring(1);
とか
u = s.replaceFirst(".", "m");
とか
789 :
デフォルトの名無しさん :2008/05/03(土) 19:16:29
50枚ぐらいのJPanel(その上にも色々なコンポーネントを乗せて10) 見たのですが、CardLayoutで切り替えしているのですがどうも重たいです。 このぐらいの量だとベースのパネルにJPanel をくっつけて削除 した方がいいのですかね?その時に気をつけなければならないことは何ですか? 教えてください。宜しくお願いします。
CardLayoutで50枚ってユーザは全部使うの? 使用頻度の低いPanelは開かれたときに初期化するなど工夫すればいいと思う。 そもそも、CardLayoutを勘違いして使っていると思うぞ。 例えばRPGでオープニング画面とフィールド画面と戦闘画面と町の画面をCardLayoutで切り替えるとかやっているんじゃね?
791 :
デフォルトの名無しさん :2008/05/03(土) 19:31:13
>>790 どうもです。
作成して初期化するっていう感じでいいですかね?
作成するときにどれだけかかるかにもよりますが・・・
一応50枚のパネルは共通のインターフェース使っているので、
よく使う物は最初にロードしておいて定数ぽく使って、後は生成するというパターンが
いいですかね?baseのパネルから貼り付けたりremoveしたりでOKですかね?
ちょっと勢い余ってかなりの量のコードを組んでしまったので・・・Javaでこれだけ組むのは
初めてです。
なんだかグラフィックのリソースを食いまくっていて他に影響が出そうです
Java以前に、50枚切り替えとか常識的に考えて設計がおかしいだろ どういう手段を実現したいのかではなくて、どういう目的を実現したいかを説明してみ
業務アプリとか作ったことないのか…
794 :
790 :2008/05/03(土) 19:45:29
>>791 作成して初期化するって意味が解らん
新しい画面を表示するときにnewした所で一瞬
792も言っているが、まずは何をしたいかを説明した方がいい
>>787 >>788 有難うございました。本を見ながらなんとか出来ました。結城さんもうすこし分かりやすく書いてよ・・
StringBuilderとかまだ分からない言葉もありましたが助かりました。
796 :
デフォルトの名無しさん :2008/05/03(土) 19:53:13
>>792 詳しいことは省きますがあるアプリケーションを作っていて本当に様々な
操作をするのに50枚いるのですが、メニュー画面から親JPanelは50枚以上かな・・・
その上にももちろんJPanel載っています。そしてメニュー画面のボタンを押すと切り替えていっています。
そしてデータなどの入力・編集・印刷処理などをさせています。今現実的にうまくは動いているのですが、
ただ重たくて・・・できるだけ簡単に改造できればと思っています。
プログラムをロードするときに全部作っていてCardLayoutでばんばん貼り付けていました。
それをmediatorパターンで中央管理していたのですが・・・おそらくそこでJPanelを生成するクラスを作って
管理すればいいですかね?
797 :
デフォルトの名無しさん :2008/05/03(土) 19:58:27
>>793 その通りですw
言語処理系でプログラムをやっていたんですが急に業務用のアプリを速攻で作りましたw
Windowを使ってプログラムを書くのは初めてです。
>>794 インスタンスを作るという意味ですinit()やexit()をcallしています。
インスタンスを作ってあるものを。今はCardLayoutで切り替えて共通のインターフェースでinit()で
データの初期化やロードをしたりexit()メソッドを呼んだりしています。
>>793 確かに業務アプリには糞設計のGUIが散見されるな
m9(^Д^)
>>796 重くなっている原因がJPanelの数って話は推測ですか、実測した結果ですか?
また、起動パラメータやJavaのバージョンをあげるなど、ソースに手を入れずに出来る対策はされましたか?
ちなみにSwingであれば、大雑把に1.4から5.0にすると2倍、5.0から6にすると1.5倍くらいのパフォーマンスアップが見込めます。
起動時のヒープ確保量のデフォルトも大きくなっています。
801 :
デフォルトの名無しさん :2008/05/03(土) 22:09:01
>>800 どうもです。
残念ながら推測です。ただグラフィックの資源を食いつぶしているのではないかと
感覚的にしかつかんでいません。今5.0 を使っていますが、6.0にするとそれだけの
パフォーマンスがアップするんですか・・・ちょっと考えて見ます。
実行時のパラメータはメモリ関係の方はかなりあげています。
もうかなりの人間が使っているのでソースはいじりたくないですからね。
何せ、今回GUIでWindow自体の開発は初めてでデザインパターンやJavaの本を短期間で
読みあさりどんどん書いていってしまったのでここに相談させていただきました
>>798 質問している人間ではなく50枚も作るのかと言っている人間じゃないのか(笑)
803 :
デフォルトの名無しさん :2008/05/03(土) 22:19:58
教えてください、今ホームページを作っていてHTMLのsubmitボタンを押したときの 時間を取得するのは可能ですか? 昔本呼んだswingかなんかの処理ではたしかイベント処理があったと思うんが HTMLのボタンでもイベント処理とかできるんですか? 初心者なんで可笑しなこと聞いてたらすみません
Javaは関係なさそうな・・・ フォームとJavaScriptでいけるんじゃね?
>>804 すいません、今Javaを習っていて
web3構築を使ってホームページを提出しなきゃいけなくて
どーしても押された時間によって処理したいことがあって
ちなみにJavaScriptはまったく分かりません
swingもまだ習ってないんですけど
たしか昔本で読んだことがあって
>>805 Submitを押された時間ではなくて、Servletでリクエストを処理した時の時間ではダメなのか?
多少の誤差は出るが、十分な気がするけど。
むしろ、クライアント側の時刻なんて各マシンの時刻だから信用できるものでもないし。
よくわからんけど課題って習ったことを使えばできることなんじゃないの?
>>806 >Servletでリクエストを処理した時の時間ではダメなのか?
そういう方法もあるんですね、十分だと思います
ていうかDateクラスで得られる時間って
自分のパソコンに設定されている時間だってことに気付かされました
ありがとうございました
>>807 ショッピングサイトならなんとか作れそうなんですけど
落ちこぼれなんで、皆と違うものをと思ったんですけど
自分で調べろ的な学校だし
大人しくショッピングサイトのほうがいいかもしれません
809 :
デフォルトの名無しさん :2008/05/04(日) 01:51:50
例えばArrayListなどのインスタンスを、メソッドに引数として渡し、 メソッドの中で、そのインスタンスに対して操作を行うことは、 Javaのマナー的に、やらない方がいいのでしょうか?
モジュール結合度が上がる (共有結合になる) のであまり良くはない。 まぁクラス内に閉じていて private 宣言されているようなユーティリティメソッドとかなら良いんじゃないの。
ケースバイケース 禁忌ではない
むしろ、弄られないことを想定している場合は (そのメソッドが継承できるように公開されている場合は) 呼び出し側でコピーを作って渡すべき
操作を行うって書いてあんじゃん。 それにコピーなんか作らなくても Collections#unmodifiableList() で十分。
>>812 呼び出し側でコピー作るのか?
普通は呼ばれた方(コンストラクタ等)でコピーを作るんじゃね?
ArrayList(Collection col) とかそうだろ?
815 :
809 :2008/05/04(日) 17:29:19
>>810 >>811 どうもありがとうございます。
禁忌じゃないけど、あまり良くないという感じでしょうか。
ケースバイケースで考えてみます。
>>814 コンストラクタでコピーするのは、
生成されたインスタンスが内部に保持するフィールドを防御するためで、目的が違う。
それにコンストラクタは、明示的にクラスを指定しなければいけないから
何をするべきかは、ドキュメントをみて決定していいと思う。
>>813 unmodifiable〜で十分なのは、ごもっともで
>>815 むしろ、何が行われるかをドキュメントに書くことが重要
外見は同じでも、
/** ソートしたリストを返す。元のリストはそのまま */
List sort(List list)
/** 引数の list を破壊的にソートした後、そのリスト自身を返す */
List sort(List list)
の2つじゃ、使う側のどきどき感が違う
ドキュメントは重要は同意 設計の方針としては、どんな使われ方しても自分のバグにならないように保守的にするのが良い。 コンストラクタの中でのコピーはそういう観点でもある。
>>818 でもそれを徹底し過ぎると、メモリを無駄に馬鹿食いする危険性も。
Objectに変更可否フラグがあれば良かったのかもしれんが……。
たいしてつかわねーよw
>>819 それがドキュメントであり、設計なのでは?
シャローかディープのコピーでも違いがあると思うけど。
そんなふうに色々考えているうちに、頭のCPUがフル稼働して、自分が何に悩んでいるかすら忘れ、結局は一番簡単で手抜きの設計に落ち着くわけです
まさにYAGNIの原則。
防御コピーは徹底しろ。それが嫌な奴はオブジェクト指向言語など使うな。 どうせ、「オブジェクトを作ると遅くなる」とか言い出すのだろうし。
極論バカが来ました
防御コピーが極論か。 オブジェクト指向がこの世に出てから半世紀近く経っているのにな。
オブジェクト指向覚えたての社会人 2 年目かよw でも経験少ないから適材適所のような程度問題が判断できないんだよな。
全てのオブジェクトをイミュータブルにしてしまえばいいんだよ 停止し結晶化した世界は美しいぜ
吟遊詩人が現れた
>>828 それ何てErlang? まぁErlangだとI18N/L10Nが絶望的なので、実用を考えるなら
Scalaでありとあらゆるオブジェクトをvalで宣言するのが良さげ。
[問題]与えられた9個の変数(int型)の中から最大値と最小値を求め、表示しろ。 [解1]3つのメソッドを作る void setData(int...data){// ここでmaxとminを求める} int getMax() {} int getMin() {} // こんな単純な問題でメソッドを3つも使う必要があるのか? [解2]変数maxとminを持った内部クラスを作る class Data { int max; int min; } Data getData (int...oneDatas) {// 最大値、最小値を求めDataクラスに格納して返す} // なんか気持ち悪い。 先輩方はこのような宿題を出されたら、どのように解答したらいいと思いますか?
どういう状況で出された問題なのか解らないのではっきりとは言えないが、解答として間違っていないとは思われ。 クラスという概念になれるっていう場面ならば、解1の方が良いと思う。 だけど、setDataでmaxとminを求めるのではなく、フィールドに変数を格納しておき、getMax, getMinで最大(最小)を求める方が良い。 解2の方は内部クラスとして定義しているだけならば、本質は解1と何も変わらん。 1つのメソッドで2つ以上の値を返す時には普通に使う。
表示しろだろ? 素直にそのままやろうぜー max(int ...data)とmin(int ...data)を作っておいてそれを利用して普通に出力かな 2回も走査しないといけないじゃないか!って気持ち悪い場合は、これくらいのロジックだしその場で書く。 これくらいで新たなクラスやら、その結果専用のクラスを作るのはどうかと思う。
834 :
832 :2008/05/05(月) 10:01:00
補足。 解1でフィールドに保持しておくと、メモリ使用の点、最大最小を求めるコスト的な点ではデメリット。 だが、そのクラスに「平均値を取得するメソッドを追加しろ」という仕様変更に強いのがメリット。 全ての処理をsetDataでやっている場合、まったく異なる性質のメソッドを追加しているのにもかかわらず、最大最小を求めるメソッドがデグレを起こす可能性があるからね。
APIの使い方の話題なのか、for文とif文レベルの話題なのか、832の書くようなクラス設計の話題なのか、問題文に記述するべきだな。
>>831 本題には無関係だが、dataは複数形で、単数形はdatumだ。
(dataを単数扱いすることもあるらしいが、どちらにしろdatasにはならない)
アプレットが初期化されていませんって言うのはいったい何のエラーなんですか? あとアプレットをhtmlに組み込むのって<body>の中に何か書く必要ありますか?
839 :
デフォルトの名無しさん :2008/05/05(月) 20:40:18
すんません、メソッドについて質問させてください。 Aクラス ・メンバ変数ふたつ(static) ・メソッド(実行すると引数をもとに計算してメンバ変数の内容を書き換えるメソッド) 適当なクラスファイルでAクラスのインスタンスを生成して、 メソッドに引数を渡して処理をし、その次の行にAクラスのメンバ変数ふたつを呼び出したところ、 変数はどちらも初期値のままでした。なにがいけないのか全くわかりません。 どなたか教えていただけませんか。 メソッドは戻り値はなく、メンバ変数を書き換えるだけなのでvoid宣言してありreturnは書いてません。
>>840 どうして書き換えられていないのか心当たりになるようなケースありますか?
まずはコードを貼るんだ
とにかく問題のコードを書いてくれ
開始時刻と終了時刻を入力して経過時間とともに表示するプログラムです。 package XXXXXX; public class ex134{ /* クラスフィールド */ public static int hh, mm; public int subTime(int h1,int m1,int h2,int m2){ mm = h2 * 60 + m2; mm = mm - (h1 * 60 + m1); /* 終了時刻が翌日であるケースの修正 */ if (mm < 0){ mm = 24 * 60 + mm; } hh = mm / 60; mm = mm % 60; } }
import XXXXXX.*; public class XXXXXX{ public static void main(String[] args){ /* 変数 */ String buf; /* インスタンス生成 */ KeyIn key = new KeyIn(); ex133 ex = new ex133(); /* 時刻の入力 */ //入力文省略 /* 経過時間の計算と表示 */ //省略 ex.subTime(h1, m1, h2, m2); buf = " " + ex.hh; buf = buf.substring(buf.length() - 2); System.out.print("経過時間 " + buf + " 時 "); buf = " " + ex.mm; buf = buf.substring(buf.length() - 2); System.out.println(buf + " 分"); } }
すいません、貼り付けた直後に自己解決しました。 インスタンス生成するとこのクラスファイル名を間違えていました。 voidもintになってた!本当にすいません。
これもカーニハンの言うテディベアの話と同じ原理なんだろうか
マーフィーの法則w
>>832 ,834
わかりやすい説明ありがとうございます
>>833 getMin(int...datum)、getMax(int...datum)の二つのメソッドを作って提出したいと思います。
ありがとうございます。
>>835 問題のレベルとしてはif文、for文を正しく使うレベルだと思います。
しかし、授業ではメソッドやクラスを使うところまでは学んだので、これを使って問題を解いてみようと考えてみたら上手にメソッド分けが出来なくて・・・
>>836 英語の勉強をがんばりますXD
必要のないところにオブジェクト指向的なプログラミングをするのは 不必要な複雑さを導入するだけ
851 :
デフォルトの名無しさん :2008/05/05(月) 22:31:45
JSPでFormから入力された文字列をInteger.parseInt()で int型の数字にして利用しているのですが、例外処理の書き方が判りません。 Integer.parseInt()に"12345q"とか入った時点でエラー吐いて止まってしまいます。 どのように回避すれば良いのでしょうか?
parseIntで発生する例外をcatchするか、charにばらして1文字づつチェックするか、正規表現で数値かどうかをチェックするか、好きにしろ
853 :
デフォルトの名無しさん :2008/05/06(火) 00:22:03
Java SEのダウンロードページにアクセスできません このままでは仕事が出来ないので誰かインストーラうpしてください><><<<
(;゚д゚)ァ.... 本当に聞いてくれるとは思わなかった。ありがとう。 とはいうものの、今更バージョン違うなんて言い辛いorz
http://journal.mycom.co.jp/column/java/023/index.html を参考に勉強していたのですが
下のコードがバイトコンパイルを通らず困っています
バージョンを変えないといけないのでしょうか?
$javac GenericClass.java
GenericClass.java:1: '{' がありません。
public class GenericClass<E> {
^
GenericClass.java:3: '}' がありません。
}
^
エラー 2 個
環境は以下の通りです
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode)
本当に1.6のjavac使ってるか? javac -version で確認してみろ。 1.4とか出てきたならば、pathを確認してみるべし。
…間違ってました。orz パスを確認したら1.4 を呼んでました。 ちなみに 1.4 では javac -version が用意されてないようです
linkedlistで最後の要素を追加、削除するときは、その処理を実行するたびに先頭からたどっていくのでしょうか? それとも前回参照した値からたどっていくのでしょうか?
一般的な実装であれば最後に追加するのに先頭からどうこうすることはない。 気になるならば、ソース読んでみたら?
実装軽く読んだけど、まあ少なくとも線形探索はやってない感じ
先頭と最後尾へのアクセスに特化させて効率をよくしたのがLinkedListなんだよ 基本的なデータ構造なんだから覚えておけ
バカが現れた。
いやいや、釣りだろw
彼は僕達には理解できないLinkedListの真理に到達したに違いない
あぁ、まりちゃんね。
VMが落ちると出力されるコアダンプについてですが、 ファイルを見ても何がなんだかさっぱり分かりません?_? 最低限、コアファイルから分かる情報は拾えるようにしたいのですが コアダンプについて詳細に解説してるサイトを教えてくださいm(__)m できれば日本語のサイトが良いです。
コアダンプというのは、簡単にいえば、プログラムが動いていたときの そのプログラムが使っていたメモリの状態をファイルに落としたもの。 落ちたプログラムをデバッガにかけるときに、死んだときの状況を再現する ためにコアダンプを与えることが出来る。単体ではあまり意味はない。 デバッガとかgdbとかdbxという単語とペアでぐぐればいいと思う。
ありがとうございます。 コアダンプ単体では意味がないのですね。 教えていただいた単語も含めぐぐってみます。
[form.jsp]の入力フォームに入力された値をtxtファイルに書き出したいのですが、うまくいきません。 エラー無く[form_ok.jsp]に移動はしてくれるのですが、data.txtがどこにもつくられません。 どこをどう直すべきでしょうか。(改行が多すぎるとエラーが出たので、妙な改行になっています。すみません。) [form.jsp] <form action="form_ok.jsp" method="post"> <input type="text" name="data"><input type="submit" value="送信"> </form> [form_ok.jsp] <jsp:useBean class="form.form" id="mail" scope="session"/> <html><head></head> <% String data = request.getParameter("data"); form.main(data); %> <body>(以下略) [form.java] package form; import java.io.*; public class Mail { public static void main(String data) throws IOException { try{ FileOutputStream fos = new FileOutputStream("data.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos , "MS932"); BufferedWriter bw = new BufferedWriter(osw); bw.write(data); bw.close(); osw.close(); fos.close(); } catch(Exception e){ e.printStackTrace();} } }
long型を使って19桁までの計算はできましたが、20桁以上の計算のやり方がわかりません。 具体的に言うと12345678901234567890*12345みたいな計算です。 お願いします。
BigDecimal
整数だけでいいなら BigInteger
878 :
875 :2008/05/07(水) 13:46:56
879 :
デフォルトの名無しさん :2008/05/07(水) 19:17:43
プログラミング学びたいんだけどC、C++、JAVAどれから始めればいい?あとなんかいい本ある?
881 :
デフォルトの名無しさん :2008/05/07(水) 20:17:39
就活で使いたいんだよねー 今年学部で就活してみてIT技術の大切さが分かったから院でまた就活するときに使えるように ITコンサルいきたいって思ってるんだけどなにがいいかな?多分企業によっても違うんだろうけど、一番使い勝手がいいのは何?
こうやってまた学校が屑を押し付けてくるのか
Cは、その選択肢の基礎になる。 Cができれば、UNIXのカーネルも読めるし。
Cができればカーネルが読める、 英語ができればカーネルさんと話せる
追記です。 加えて System.out.println(t.getRoot()==null); => false になります。 nullではないと言ってるのにnullが出るのはなぜでしょうか・・
887 :
デフォルトの名無しさん :2008/05/07(水) 22:35:55
ファイルの書き込みをFileWriterでやるのはうまく出来たのですが 書き込むときにまっさらにして書き込みたい時はどうするのでしょうか? ループの中で一行のテキストを書き込んでるのですが、追記じゃなくて、その時書き込んだものだけが残るようにしたいです。 File file = new File("path"); file.delete(); FileWriter fw = new FileWriter(file); fw.write("書き込むテキスト"); とかやってみたけど、ファイルサイズ0になってしまいました。 お願いします
closeしろ
すみません。 .jadファイルと.jarファイルをアップして、 携帯でDLして、正常に起動できるようにしたいのですが、 どうすれば、いいでしょうか? とりあえず、2つのサーバーの内、一つのサーバーでは、 アップしたデータが携帯で正常に起動する事が出来たのですが、 もう一つのサーバーでは、ミスマッチと表示され、起動できませんでした。 .jarファイルは、URL認証がOKのサーバーじゃないと無理なのでしょうか? ちなみに、.htaccessに.jadと.jarのmime-typeは、追加しています。 すみませんが、どなたかご教授お願い致します。m(__)m
891 :
デフォルトの名無しさん :2008/05/08(木) 08:52:56
お邪魔します。同じく超初心者です。 課題でハングマンをいう文字当てゲームのプログラムを書いてる所なんですが、 なにやらもうにっちもさっちもいきません。 見本の一部がこんな感じです。 Word: _ _ _ _ _ _ _ _ _ _ _ _ _ _ Misses: Guess a letter: a Word: _ _ _ _ _ _ _ A _ _ _ A _ _ Misses: Guess a letter: e Word: _ _ _ _ _ _ _ A _ _ _ A _ E Misses: インプットされた文字をcharにストアしてanswerと照らし合わせて‥ みたいなとこですでに行き詰まってます。 for (int i = 0; i <= answer.length; i++) { if (answer.charAt(i) == input) { System.out.prin(input); } else if (answer.charAt(i) !=input) { System.out.print("_"); } } } 前に予想した文字もプリントしようとすると際限なく長くなっていっちゃうんですが‥‥ しかも答えはランダムに選ばれるので答えの文字数は不明です。 どんなループに入れたらいいんでしょうか? それと予想された文字を正誤順番問わず繋げてストリングにストアしろという ヒントも出してもらったんですが‥ 課題の目的としては、Boolean method, while loop, text processing、 あたりの知識を理解しろということみたいです。 かなり適当な説明ですが、なにかしらご教示いただけるととっても助かります。
>>889 どうしてそうなるの?
getRootでなんでそんなものを呼び出すのか分からない。
理由がないだろ
tomcat + データベースでjava.util.Dateを扱うときなんですけど。 データベースからrs.getDate()メソッドで日付を取り出したとします。 jsp側でDateのインスタンスを生成しデータベースから取り出したDateと生成した Dateをequials()で比較するんですけど上手くいきません。 何かおかしいところがあったらご教授下さい。
>>892 getRootの戻り値になっているDefaultMutableTreeNodeオブジェクトのtoStringが呼び出されて
いるのであってgetRootが直接手を下しているわけではないってことでわ?
>>893 > データベースからrs.getDate()メソッドで日付を取り出したとします。
こっちはjava.sql.Dateで
> jsp側でDateのインスタンスを生成しデータベースから取り出したDateと生成した
こっちはjava.util.Dateになってて違うオブジェクトを比較しようとしてない?
896 :
895 :2008/05/08(木) 10:50:01
そうかも・・・・早速修正してみます。助言ありがとうございます。
897 :
893 :2008/05/08(木) 14:35:20
どうしても上手くいかないのでjava.sql.Dateの日にちを拾得したインスタンスを Stringとして扱うことで解決させました。
>>895 equals()で比較している限りtrueになるので、それはない。
Date date = new Date();
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
System.out.println(sqlDate.equals(date)); // trueになる
System.out.println(date.equals(sqlDate)); // trueになる
>>895 日付以外のフィールド(時分秒)が一致していないのが原因じゃない?
899 :
893 :2008/05/08(木) 16:57:14
>>898 sql.Dateへのコンストラクターdate.getTime()を
System.currentTimeMillis()で行っていたのが原因かもしれません。
ConcurrentGCじゃなかったけ? ParallelGCは-XXオプションつけないとならない
JavaMailでアラビア語などの日本語や英語以外の文字の メールを送るにはどうしたらいいでしょうか?
ISO-8859-6などのアラビア語を扱える文字コードを指定すればいいんじゃね メーラもそれに対応してないと読めないと思うけど
UTF-8の文字列で送っちゃうのはだめなのかな。
UTF-8 か
>>902 さんのほうかどうかはともかく、メールのヘッダで
Content-Type: text/plain; charset="UTF=8"
と指定しておくのはわすれないように。
※
昔の日本の電子メールのとき(MIME 関連のヘッダをつけなくとも生JISにしておけばメーラで読めた)
のように、アラビア語圏の世界では、メールのボディの文字列をISO-8859-6 にしておけば、
ヘッダにMIME 関連のものをつけなくても読めるのだろうか。
いまどきはアラビア語圏といえども、たいていの人は Outlook とか ThunderBird(MIME 対応メーラ)なのかな。
>>903 ,
>>904 ありがとうございます。
本文に日本語も混ぜたいのでUTF-8で試してみたいと思います。
906 :
デフォルトの名無しさん :2008/05/08(木) 21:20:12
コントロールパネルに数行に渡ってjavaのluntime updateなたいなのが あるけど消していいの? それぞれ144MBくらいのやつ。
>>906 一番バージョンの大きいのが一つ入っていれば良い。
908 :
デフォルトの名無しさん :2008/05/08(木) 21:25:20
ありがとう。消したら、ウインドウズに設定してる?? みたいな表示が出て、ホントは消えないような感じがしたわw
909 :
初心者 :2008/05/08(木) 22:17:10
まじで素人な質問なんだけどコマンドプロンプトでディレクトリを移動したいんだけど指定されたパスが見つかりませんになっちゃうんだけどどうしたらいいの?
まず質問に適切なスレを見つけたらいいと思うよ
Aクラスを継承したB01〜B20クラスがあります。 このB01〜B20クラスは、B01とB05, B09とB15の ような感じで、2つのクラスをセットで使います。 このときに、 B01とB02の場合は、100 B01とB03の場合は、150 ・ ・ B19とB19の場合は、200 B19とB20の場合は、120 みたいに、クラスの全ての組み合わせで 決まった値を持ってくるようにしたいんだけど、 どうやるのがスマートなんでしょう?
それだけの情報だと、 Aのstaticフィールドに「Aのサブクラス2つ」(からなるオブジェクト) をキーにしたMapを持つ くらいか。 2つの組み合わせを別途クラスとして定義するほうがいいかもな。 AやBに具体性があるともうちっとよい助言が得られるかも。
クラス名を連結させてハッシュ関数に放り込むとか・・・・・?
914 :
902 :2008/05/09(金) 09:35:29
下記のようなソースでアラビア語を送ってみました。 OutlookExpressでは正常に表示できたのですが Beckyでは■になってしまいました。ただその文章をIEのテキストエリアに 貼り付けるとアラビア語が復活するのでBecky側の問題かもしれません。 プログラムとしては下記でよいものでしょうか? mimeMessage.setFrom(new InternetAddress(this.fromAddr,"", "utf-8")); mimeMessage.setRecipients(Message.RecipientType.TO, this.toAddr); mimeMessage.setSubject(this.subject, "utf-8"); mimeMessage.setContent(this.text, "text/plain; charset=utf-8"); mimeMessage.setHeader("Content-Transfer-Encoding", "8bit"); mimeMessage.setSentDate(new Date());
JAVA初心者です。 ファイルの保存をするために、下のようなメソッドを書きました。 FileDialog fd = new FileDialog(this, "Save", FileDialog.SAVE); PrintStream ps; FileOutputStream fos; public void save(){ fd.show(); String filename = sd.getFile(); if(filename == null) return; fos = new FileOutputStream(filename); ps = new PrintStream(fos); ps.print(display.getText()); ps.close(); fos.close(); } これをactionPerformedメソッドでボタン押下時に呼び出すようにしています。 保存ダイアログはちゃんと開くし、保存もできるのですが、場所の指定ができません。 違うフォルダを指定しても、javaファイルが置いてあるところと同じ場所に保存されてしまいます。 なぜなのでしょうか? JAVAを勉強し始めたばかりなので、トンチンカンなこと書いてたらすみません。
916 :
915 :2008/05/09(金) 09:51:28
すみません、saveメソッド内2行目は String filename = sd.getFile(); ではなく、 String filename = fd.getFile(); です。
>>915 ,916
試してないから違うかもシレンけど、
getFile()じゃなくてgetDirectory()じゃないの?
あと、JDK5以降だったら、showじゃなくてsetVisible使うんじゃなかったっけ。
>>911 それだけだと、「B01〜B20はインスタンスでいいんじゃないの?」って気がする。
showじゃなくてsetVisibleつかうのは1.4以降
よろしくおねがいします。 Simpleformatクラスを使用して、 Timestamp型をString型("yyyy'/'M'/'d' 'H':'m':'s"形式)にしたのですが、 このStringをTimestamp型に再変換するにはどうすれば良いでしょうか?
>>920 SimpleDateFormatでパースして、得られたDateを
Date#getTimeして、Timestampのコンストラクタに与えたらどうだろうか。
922 :
900 :2008/05/09(金) 14:36:32
923 :
920 :2008/05/09(金) 14:45:09
>>921 それで行けました!ありがとうございます!
>>919 FileDialogというかDialogやWindowに関しては1.4ではshowは非推奨メソッドではない。
deprecatedになってsetVisibleを使用しろとされたのは1.5から。
Componentは1.1からshowは非推奨だったので、
非推奨になるのが遅かったのはトップレベルウインドウ特有の何か事情があったんじゃないかと思う。
925 :
915 :2008/05/09(金) 17:15:00
>>917 ,919,924
レスありがとうございます。
getFileをgetDirectoryにしてみたり、showをsetVisibleにしてみたりしましたがやはりだめなようです。
ファイルの保存自体はできているのですが・・・・・・、なぜなんでしょうかね・・・
>>925 File file = new File(fd.getDirectory(), fd.getFile());
fos = new FileOutputStream(file);
>>925 FileDialogやめてJFileChooser使ってみれば?
928 :
デフォルトの名無しさん :2008/05/09(金) 17:53:06
プログラムを動かすとブラウザでホームページを表示できるようにしたいんですけど、どんな感じで書けばいいですか?誰かお願いします!
Desktop クラス使え
931 :
デフォルトの名無しさん :2008/05/09(金) 19:09:47
932 :
デフォルトの名無しさん :2008/05/09(金) 23:31:12
<T> XXX<T> hoge(XXX<T> xxx){...} という関数があったときに、返り値の型の <T> XXX<T> ↑ はどういう意味があるのでしょう?
Tという名前の型引数を使いますよ
934 :
デフォルトの名無しさん :2008/05/09(金) 23:41:23
>>933 Tの型は、
hoge(new XXX<YYY>());
と書いたときに決まっているのでは?
<T> XXX<T> hoge(XXX<T> xxx){...}
と、
XXX<T> hoge(XXX<T> xxx){...}
が同じということでしょうか?
ジェネリクスは型だけじゃなくてメソッドでも使えるんだよ
936 :
デフォルトの名無しさん :2008/05/09(金) 23:52:36
template<typename T> XXX<T> hoge(XXX<T> xxx){...} ということですか、納得です。 ありがとうございました。
うむ 精進しろよ
そんな感じ C++の化け物テンプレートほどの威力は無いが・・・・
っていうか並べて比べるのもおこがましい程度
そもそも比較すること自体が間違ってる。
templateはわかめみたいにふえていくからなあ
942 :
デフォルトの名無しさん :2008/05/10(土) 01:08:02
>>934 ごめん
その方法で生成した任意の型の出力が可能ってことでいいのかな
テンプレートパターンというのを知らない池沼がいるから困るwwww
久しぶり
今からでもランタイムサポートできないのかな
やりたきゃ自分でVMを実装するんだな 言語名はJava++ みたいな感じでwww
ジェネリクスがキャスト挿入のシンタックスシュガーだというのは 実装次第じゃなくて言語仕様で決まってることなの?
決まってる。
java7っていつ出るの?
来年。(予定は未定)
もうjava5以前のクソ仕様な部分はすべて後方互換性無視して 作り替えて欲しい。java5以降は神だが、それ以前はめちゃくちゃ。
import java.security.SecurityException; import java.io.IOException; import java.io.File; public class Sample{ public static void main(String[] args){ File f = new File("c:/test.txt"); try{ if(f.exeists()){ System.out.println("ファイルは存在します。"); if(f.canRead()){ System.out.println("ファイルは存在し、かつ、ファイルは読込めます。"); if(f.setReadOnly(){ System.out.println("ファイルを読取専用にしました。"); if(f.delete()==false){ System.out.println("ファイルを削除できません。"); }else{ System.out.println("ファイルを削除しました。"); } }else{ System.out.println("ファイルを読取専用にできません。"); } }else{ System.out.println("ファイルは読込めません。"); } }else{ System.out.println("ファイルは存在しません。"); } }catch(IOException e){ System.out.println(e); }catch(SecurityException e){ System.out.println(e); } } }
ファイル操作関連で、2点質問があります。 使用OSは、Windows xp Pro SP2で、c:/test.txtを作成後、上記プログラム実行時、ファイルを削除できないようにしたいですが、どうもうまくいきません。 ファイル作成時、ファイルのプロパティで、読み取り専用チェックボックスにチェックを入れてみた後、削除ができてしまうのも、なぜなのか、ちょっとわからないです。 読取専用なのに、削除ができることが、おかしいと思うのですが、ちがいますか。 Windowsの場合は、どうやったら、削除できなくすることができるのでしょうか。 それと、ファイルの読込み権限について教えてほしいです。 ファイルは存在し、かつ、フィルが読込めない時(権限がない場合)、プログラム実行時、ファイルが読込めないようにするには、どうすればよいでしょうか。 よろしくおねがいします。
>>950 JavaOne2008の時点では来年夏予定。
ファイルに対する読み取り専用ってのは、 (ファイルを存在させたままで)内容を変えることが出来ないということ。
958 :
915 :2008/05/10(土) 13:47:35
>>926 できました!ありがとうございます。
Fileクラスというのを使えば良かったのですね。
ちゃんと指定した場所に保存する事が出来ました。
どうもお騒がせしてすみませんでした。
画像データを byte配列に持ってて、ある位置に○を描画したり、 他画像を貼り付けたりするのってどうやるのでしょうか。。。
byte配列を画像データに展開して、○を描画したり他画像を貼り付けてから、byte配列に戻す
>959 1.画像データを読み込んで表示するプログラムの作り方を覚える 2.○とか簡単な図形を表示するプログラムの(ry 3.表示した画像と図形を画像データに変換するプログラムの(ry
963 :
962 :2008/05/10(土) 23:41:42
簡単な例ですが出来ました! BufferedImage srcImage = ImageIO.read(new File("src.gif")); Graphics2D graph = readImage.createGraphics(); graph.setPaint(Color.BLACK); graph.draw(new Ellipse2D.Double(100 100, 100 , 100)); ImageIO.write(srcImage, "gif", new File(workdir + "dest.gif"));
こんにちは。以下のソースをコンパイルすると、”Test.java の操作は、未チェックまたは安全ではありません。 注:詳細については, -Xlint:unchecked オプションを指定して再コンパイルして下さい。” という警告(無検査キャスト)がでるのですが、ソースを書き換えて警告が出ないようにする方法はないのでしょうか? javac -source 1.4でコンパイルするか、@SuppressWarnings("unchecked") を頭に付けると出なくはなるのですが…。 public void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException{ req.setCharacterEncoding("Windows-31J"); int index = Integer.parseInt(req.getParameter("test")); res.setContentType("text/html;charset=Windows-31J"); PrintWriter pw = res.getWriter(); //この辺でhtmlの前半生成・この直後まで削ると警告は出ない HttpSession session = req.getSession(); ArrayList<String> list = (ArrayList<String>)session.getAttribute("testArray"); //これ以降を削っても警告が出る if(list == null){ list = new ArrayList<String>(); } list.add(testValues[index]); //testValues[]はインスタンス変数で宣言済み //この辺でhtml生成 session.setAttribute("testArray",list); //この辺で</body></html>生成 }
>>964 無理。
@SuppressWarnings("unchecked") を ArrayList<String> list に付けるしかない。
966 :
964 :2008/05/11(日) 00:25:34
>>965 ありがとうございます。
session.getAttribute()の戻り値がObject型だから、
Stringにキャストできるかどうかわからない…のかと思ったのですが、
それで合ってるのでしょうか?
>>964 「@SuppressWarnings("unchecked") を頭に付ける」が正しい
1.4互換のソースとあわせて使う場合は仕方なし。
どうしても気持ち悪いっていうならば、@SuppressWarningsを許可するUtilクラスなんかを作成しておくのはあり。
@SuppressWarnings("unchecked")
public class SessionUtil {
public List<String> getAttributeList(HttpSession sesstion, String key) {
return (List<String>) session.getAttribute(key);
}
}
>>966 それで正しいよ。
静的なレベルではどんな型か解らない。
ただ、仕様としてList<String> 以外はありえない。
Tigerの拡張で、静的にList<String> 以外はいれられない/取得できないって制限をかけることが可能になった
969 :
964 :2008/05/11(日) 00:54:16
>>967 ,
>>968 ありがとうございます。
getAttributeで得たものを変数に格納しようとすると、
必ず出てしまう警告だということですね。
何か落ち着きませんが…次からは@SuppressWarningsを許可するクラスを作って対応しようと思います。
JSPでカレンダーを作ってます。 今月は問題なく表示できましたが、 先月、次月という2つのボタンを配置してボタンを押してそれぞれ表示させようと思うのですがどうすればいいのでしょう。 現在は先月、次月のボタンを配置したところまではやりましたが実行してボタンを押してみると、 先月はうまくいきましたが次月を押すと、先月と同じ動きをします。 リクエストパラメータを使う?とかなんとか聞いたのですがよくわかりません。
>>954 ファイルそのものじゃなくて、そのファイルがあるディレクトリを読み
取り専用にすればいいじゃないかな。
>>970 リクエストパラメータを使って何月のカレンダーを表示するかをサーバに渡せばいい。
わからなかったらリクエストパラメータとJSPでぐぐってから質問しろ
973 :
970 :2008/05/11(日) 11:03:33
>>970 すいません。
>リクエストパラメータを使って何月のカレンダーを表示するかをサーバに渡せばいい。
これがググってもわからなかったので質問させてもらったんですが。
<form method="post" action="calendar.jsp?year=<%=intYear%>&month=<%=intMonth-1%>">
<input type="submit" value="先月">
<b><%=intYear%>年<%=intMonth%>月</b>
<form method="post" action="calendar.jsp?year=<%=intYear%>&month=<%=intMonth+1%>">
<input type="submit" value="次月>
</form>
今はこんな状態です。一体どこにどうリクエストパラメータをつかうのかがよくわかりません。
>973 Java以前の話だ。 「HTTP POST GET パラメータ HTML FORM 」あたりのキーワードで調べろ
swingの勉強中なのですが、ImageIconクラスを使った画像の読み込みで 画像が表示されません。 自分でやってみてもダメだったので本に付属のソースをインポートしてやってみたのですがやはり表示されませんでした。 下記が本のソースで、画像ファイルstream.jpgはjavaファイルと同じディレクトリ(pkggui/以下)にインポートしてあります。 本のソースで表示されないあたり画像ファイルの置き場所が間違っているような気がするのですが、どうしたら良いのか教えてください。 public class ImageLabel01 extends JFrame { public static void main(String[] args) { ImageLabel01 w = new ImageLabel01( "Imagelabel01" ); w.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); w.setSize( 350, 250 ); w.setVisible( true ); } public ImageLabel01( String title ){ super( title ); JLabel panel = new JLabel( new ImageIcon( "stream.jpg" ) ); getContentPane().add( panel ); } }
Javaファイル(ソース)ではなく、クラスファイルと同じ場所に配置しているか?
>>976 そっちか!!と思ったのですが、
eclipseがbin/pkggui以下に勝手に置いてくれてたっぽくて今見たらありましたorz
ちょっとどうしても分からないので自分の状態が分かるよう
作業画面と実行画面をSSにしてみました。
こんな感じなのですが、どうでしょうか?orz
http://roo.moo.jp/hoge.jpg
>>978 アドバイスありがとうございます!
今絶対パス指定したり色々やってみたのですが、どうやらここでのファイル名はカレントディレクトリとして
プロジェクトのディレクトリを参照しているらしく、そこにファイルを置くか./bin/stream.jpgとすることで解決出来ました!
以前、ImageIO.read(getClass().getResource(image))で描画処理をした時は
imageに使うファイルはパッケージ以下に入れてファイル名だけを記述して行う形でOKだったため
参照しているディレクトリが同様かと思い勘違いしました><;
>>975 new ImageIcon(getClass().getResource("stream.jpg")) とすればいいと思う
入社して業務でJavaを使うので一から学びたいのですが、良い書籍などあれば教えていただけないでしょうか? オブジェクト指向についての解説もあれば尚良いのですが
入門程度ならやさしいjava以外ならなんでも良いんじゃない。
SJC-Pの問題集をやるのもあり 2ヶ月もあれば大雑把に概要は学べるだろ
今だとどんな本があるんだろか、と思って調べたら柴田望洋氏が何か書いてるな 明解C言語は良かったが、Javaはどうなんだろ いずれにしても、古いものは避けたほうがいい JDK5.0以降に対応しているもの
986 :
981 :2008/05/11(日) 18:30:04
すみません、経験書いていませんでしたね 学校でC++、Java、VBについては一応習いましたがあまり真面目でなかったことと、 卒業してから遊び呆けて全く書かなくなっていたツケが回って現在は忘れまくって酷い有様です。 先ほどちょっとJavaで四則演算のみの計算機作ろうと思ったら変数宣言の仕方までわからない状態でした。 Dim x as Integerって確かVBの方ですよね・・・なんでこれで通らないのかと悩んでみたり まぁ一応一度は習っていた経験は再習得には役立つと思うのですが、流石に変数宣言の仕方も忘れているようでは 何も知らないものと考えて一からと思っています。 Java以外の言語についても同様の状態です。 一応WhileやFor、If等は覚えていますが関数は殆ど忘れてます。 ちょっと上で挙げて頂いた本について調べてみます。
こういうレスを見るたびに悲しくなる
卒業して1ヶ月くらいプログラミングから離れていただけで知識が混濁するようではこの先やっていけないんじゃないか?
何しに学校行ってたんだ?時間の無駄はよくないよ
990 :
981 :2008/05/11(日) 18:43:34
自分には適正が無いという事かもしれません・・・が、悔やんでも仕方ないのでこれからはしっかり勉強して能力を維持していかなくてはと決意を新たに頑張りたいところです
あれだろ? レポート提出週は演習室で宴会みたいに大騒ぎしてたやつだろ んでレポートはDQNグループの中で一番頭いいやつのコピー レポート提出は考察とかを自分でまとめただけ
テストは過去ウラヤマシス けど、前年度と違う教授や、問題変わってたら落としてやがったwww あれは腹痛くなるまで笑ったぜww
>>990 とにかく書店行って入門書を斜め読みしてみ
一度とにかくやったことがあるなら、メタ的な知識はあるはず
適正がないと自分で判断したなら辞めるのは正しいよ こんな糞業界、適正でもないとやってられん
今学校でVBとかもやるんだな ちょっとびっくり
かたやDelphi、かたやScheme いろいろやるみたいですね
997 :
981 :2008/05/11(日) 18:54:24
>991 不真面目とはいえ提出物はちゃんと自分で仕上げていましたよ 悲しいかな当時学んだ内容が脳に定着してくれなかった訳ですがそれは卒業後のだらけだけが原因ではなく、 学生当時の勉強への力の入れ方が足りなかったのもあったのだろうという事ですorz >993 そうですね、そうしてみます。ただ定期圏内にあまり大きな本屋が無いのが残念ですが・・・
998 :
デフォルトの名無しさん :2008/05/11(日) 18:57:59
無闇にCの作法が混ざりこんできてるのが感じられるなあ かえって混乱が起きてるようにも感じるが
おれ、ハカーになれるかも知れない・・・
1000 なら Java 死滅
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。