トップページ⇒tech
1001コメント338KB

【初心者】Java質問・相談スレッド69【大歓迎】

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2005/07/22(金) 09:43:52
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

以下のエラーが表示されて、途方にくれているあなたは、下のページへ。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath

前スレッド
【初心者】Java質問・相談スレッド68【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1119115837/l50

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */

また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりでお願い.....
0809デフォルトの名無しさん2005/08/16(火) 21:11:29
自作自演臭がするの?(w
0810デフォルトの名無しさん2005/08/16(火) 21:14:54
SCWCDの試験勉強してんだけど、
昔 Value Object って呼ばれてたデザインパターンが
Data Transfer Object に名前が変わっちゃたの?
マーチンファウラー先生が変えようって言いだしたの?
0811デフォルトの名無しさん2005/08/16(火) 21:15:18
>>808
消えろ、夏自治厨
0812デフォルトの名無しさん2005/08/16(火) 21:58:06
>>810
それはきっと・・
ハーマイオニーがハリーポッターに囁いたんだよ。
0813デフォルトの名無しさん2005/08/16(火) 22:24:43
Windows環境でアプレットシステムを構築しているのですが、
文字コードのことで悩んでいます。

皆様がご存じの通り、Unicodeでは
£などの文字は文字は同じでもSJISから変換したか、
MS932から変換したかで
Unicode上のコードポイントが異なってしまいます。

自分のシステムでアプレットから取り込まれたUnicode文字の
コードポイントをみるとMS932から変換されてしまっているようなのですが、
これをSJISからのコードポイントに変換させる方法が
ありましたらご教授願えますでしょうか?
0814デフォルトの名無しさん2005/08/16(火) 22:24:50
>>717

具体的にはこれなんです。

<script type="text/javascript">
<!--
function clear_loginForm() {
var f = document.forms['loginForm'];
f.elements['loginForm:_link_hidden_'].value=null;
f.target='';
}
clear_loginForm();
//-->
</script>

form id=loginFormのあるページでは
こんなスクリプトを吐くんですよ。

ブラウザの「戻る」を使ったとき本来飛ぶページじゃなくって
入力したテキストがクリアされて同じページに戻るんで、
こうならないようにしたいんですが、調べてもどこにも出てこないもので・・・
0815デフォルトの名無しさん2005/08/17(水) 00:09:32

  板  違  い  だ  っ  つ  ー  の
どこに目つけてんだよ貴様の脳天はピーマンかだいたいじゃばすくりぷとは低能のオナニー言語なんだよ馬鹿アフォ池沼童貞苞茎キモオタデブクソクズ真性糞尿DQN半島人
0816デフォルトの名無しさん2005/08/17(水) 00:12:04
>>815
自分のことか?
0817デフォルトの名無しさん2005/08/17(水) 00:39:32
>>815
自己紹介は板違いだよ
http://life7.2ch.net/intro/
0818デフォルトの名無しさん2005/08/17(水) 00:41:27
>>815
> どこに目つけてんだよ
はそっくりそのまま返そうか。
JSF知らずに息巻いてるんじゃないよ。厨房め。
0819デフォルトの名無しさん2005/08/17(水) 00:42:04
>>816-817
はいはい、お疲れさん
書き込み終わったらうんこ3ガロン飲み干して氏ね
0820デフォルトの名無しさん2005/08/17(水) 00:43:22
>>818
同じツッコミをしようと思ったがJSPは別スレあるから確かにスレ違いなので辞めた。
0821デフォルトの名無しさん2005/08/17(水) 01:06:05
全然スレ違いって事もないだろう<Java質問の範疇ではある
まぁ、ここで聞いても答えが得られる可能性は低いだろうから
専門スレへ行くべき質問だとは思うけど・・・・・・
0822デフォルトの名無しさん2005/08/17(水) 03:39:50
メモ帳開いて命令文をポチポチ書き込んで
今のところ文字しか出てこないしょぼいPRGを作ってるんだけど
セーブ機能とかつけるのは無理ですか?
JAVAでオンラインゲームとか作ってるところもあるから
結構作りこめるかもと思ってるんだけど
0823デフォルトの名無しさん2005/08/17(水) 04:45:14
>>822
とりあえずおまいが思いつく既存ゲームの機能は
たいてい出来るから安心したまえ。
0824デフォルトの名無しさん2005/08/17(水) 09:32:32
>>822
Java は、元々業務用システムに特化してるから、グラフィック面が
弱いんだよ。だから、まともなゲームプラグラマーはJavaを
相手にはしない。Swingの遅さと機能の無さは有名だしね。
まだまだって面は否めない。本格派指向なら、他の言語に移行すべきだ。
一応、経験者からのアドバイス。
0825デフォルトの名無しさん2005/08/17(水) 09:56:12
>>824
なんでゲームプログラムでSwingがでてくるんだよ
どのへんが経験者だよ
自分が出来ないからって嘘は言うなよな
0826デフォルトの名無しさん2005/08/17(水) 10:27:53
セーブできますかって聞いてんのにswing関係ないよな。
java.ioパッケージを勉強しなさいってことになるのかな。
0827デフォルトの名無しさん2005/08/17(水) 11:00:36
>>824 が釣りの経験者で
>>825 がまんまと釣られたってところですかね
0828デフォルトの名無しさん2005/08/17(水) 11:08:13
他人を装った釣り宣言みっともない
0829デフォルトの名無しさん2005/08/17(水) 11:59:09
釣られてムキになるのもみっともないよな
0830デフォルトの名無しさん2005/08/17(水) 12:10:40
>>828
図星かよm9(^Д^)プギャー
0831デフォルトの名無しさん2005/08/17(水) 15:07:55
>>830
m9(´・ω・) カワイソスゥ♪
0832デフォルトの名無しさん2005/08/17(水) 15:51:53
(´,_ゝ`)プッ
おまえら仲良くしろよ
0833デフォルトの名無しさん2005/08/17(水) 18:58:38
>>830
またその顔文字m9(^Д^)ダッセ━━━━━
0834デフォルトの名無しさん2005/08/17(水) 19:10:19
ダサイなら使うなよm9(^Д^)プギャー
0835デフォルトの名無しさん2005/08/17(水) 19:18:48
byte[] の変換についての質問です。
byte[] を数値に直す時に BigIntegerを使っているのですが、BigIntegerの変換が2の補数で変換する為に、
1バイトを 127〜-128 として扱います。

対象のデータが補数表記ではなく 1バイトを 0〜255 として扱っています。
このデータを byte[] で読んだ後に、 正しく数値に直したいのですがどうすればよいのでしょう?

1. byte[] tmp =  { 00000011 }
   (ソースじゃないです。書き方がわからん・・・ビットの配列)

   BigInteger aaa = new BigInteger(tmp)
System.out.println("結果:"+ aaa.toString() )
 上記のようにやると 結果: 3 となります。

2.  byte[] tmp =  { 10000010 }
 BigInteger aaa = new BigInteger(tmp)
System.out.println("結果:"+ aaa.toString() )
 
上記のようにやると 結果:-124 となります。
そうではなくて、これを 130 と表示するにはどうするのでしょう?

ちなみに java1,3 でできると、なおうれしいです。
0836デフォルトの名無しさん2005/08/17(水) 19:24:54
>>835
byte[] が1要素だけなら、
BigInteger.valueOf(tmp[0] < 0 ? tmp[0] + 256 : tmp[0])
だけど。
0837デフォルトの名無しさん2005/08/17(水) 19:27:03
複数要素のときは
new BigInteger(1, tmp)
でいいのかも知れず。
08388352005/08/17(水) 19:32:58
早速レス感謝!!
837さんのやり方で試してみて、NGなら836さんのやり方でやってみます!
0839デフォルトの名無しさん2005/08/17(水) 21:41:15
ここが適切かどうか判りませんが…

Webアンケートを作成するシステムを考えていて
XMLでアンケートの内容を定義し
XMLからHTML、Formの内容チェックするJavaScript、サーバ側で動くperlスクリプトを生成しようと思っています。
この変換にはXSLTか、JavaでDOMを使おうと思っています。

こんな感じのフレームワークみたいなのが既にあれば、
それを使った方が効率良さそうなので使いたいのですが、該当するのありますか?
有るなら、なにを調べればよいですか?

0840デフォルトの名無しさん2005/08/18(木) 00:26:23
>>839
作ろうと思ってめんどいから辞めた。アイデア料払え。
0841デフォルトの名無しさん2005/08/18(木) 01:11:49
>>839
誰がそのXMLをかくのかなぁ?
その手間考えれば、そんな事やる事自体めんどくさい
隣に座っている奴にもう一回・もう一度聞いて見れよ、おそらく答えを見つけているはずだ
そしてやつはこう答える N.....
0842デフォルトの名無しさん2005/08/18(木) 01:16:49
トナリノヤツヲアナドルナ
カレハジツリョクヲカクシテイル
シラナイフリヲスルノガトクイデス
カレガ「クワシクナイ」トイウハツゲンヲシタトキ
カレハジツリョクヲカクシテイル
0843デフォルトの名無しさん2005/08/18(木) 01:21:12
>>777
このへんかなぁ、違ってたらすまん。

java.util.jar.JarInputStream
http://www.google.co.jp/search?hl=ja&q=JarInputStream+%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0844句読点書けないバカをサマージャンボする俺 ◆9NQzQ21lx. 2005/08/18(木) 01:25:09
>>841
0845デフォルトの名無しさん2005/08/18(木) 02:33:39
http://www.c21-online.jp/
このゲームJAVAで作ってるらしいけど
なるほどグラフィックはショボイな
0846デフォルトの名無しさん2005/08/18(木) 11:18:08
java.awt.Frame に描画する形で簡単なゲームを作成しているのですが、
マウスボタンを離したときに処理をさせる方法が分からず困っております。
自分は Java に関しては完全に初心者ですので、
Java ではマウス系のイベントは processMouseEvent で処理するという程度しか分かりません。
C# 言語であれば、MouseUp イベントで簡単に処理できるのですが・・・。
08478462005/08/18(木) 11:22:05
質問なのに sage てしまったので age ます。
0848デフォルトの名無しさん2005/08/18(木) 11:24:31
ttp://www.uploda.org/file/uporg172310.zip
モナーゲーム作ってみた。感想プリーズ
0849デフォルトの名無しさん2005/08/18(木) 11:27:45
>>846

手元のJAVA本を見てみたんですが、
MouseListenerインターフェースのmouseReleasedメソッドを
実装するとイベントがとれるみたいですね。
「MouseListener mouseReleased 」でグーグル検索してみると
サンプルコードが見つかるかも。


0850デフォルトの名無しさん2005/08/18(木) 11:29:55
>848
setup.exe叩くと外に繋ぎに行こうとするんだけど、何で?
08518462005/08/18(木) 11:44:51
>>849
ありがとうございます。
さっそく検索してみます。
0852デフォルトの名無しさん2005/08/18(木) 12:04:45
( ゚д゚)ノ ハイ!質問!
おまいら教えてくださいお願いします。

tomcatでJSP動かしているんだけど
out.print();
で表示される文字数って限界ある?
同僚が動的に作ったHTMLをStringBufferにぶち込んでそいつを
out.print()で表示させようとしているんだけど途中で途切れるんだよね。

これtomcatの設定?Javaでバッファオーバーフローなんて無いって聞いたから・・・。
0853デフォルトの名無しさん2005/08/18(木) 12:11:53
JavaでVBとかのDoEventsみたいな機能ってありませんか?
メインループ処理しながらイベント処理もしたいのですが。
0854デフォルトの名無しさん2005/08/18(木) 12:27:40
JSPなのにout.print使ってる時点でナンセンス
0855デフォルトの名無しさん2005/08/18(木) 12:30:25
超的外れ
0856デフォルトの名無しさん2005/08/18(木) 12:48:42
>>854
俺もそう思うんだけどそう作っちゃったからってガンコに聞かないんだよね。

っつーか自己解決しました。結局同僚は何にもしてないけど(#゚Д゚) プンスコ!
out.flush()で強制的に出せばよかったんだね。
もうちょい出なかった理由を調べ「させます」、同僚にw
0857デフォルトの名無しさん2005/08/18(木) 13:12:46
>>856
同僚に「その調べてる時間でさっさと直せハゲ」って言え
0858デフォルトの名無しさん2005/08/18(木) 15:02:56
以前手伝ったプロジェクトのリーダーは、
サーブレットでHTMLテキストをStringで組み立ててセッションにセット、
その後でJSPにフォワードしJSPで表示、
なんていう方法をとってた。JSPの意味がない…。
多分大手Fあたりから教わったんだと思う。
0859デフォルトの名無しさん2005/08/18(木) 16:07:07
Web系以上簡単な分野なんてないのにチャチャっとつくれんのか
0860デフォルトの名無しさん2005/08/18(木) 16:24:46
>>845
すごい。Javaでもここまで作れるんだ。
でもページの中にJavaって文字は見つからなかった。
どこに書いてますか?
0861デフォルトの名無しさん2005/08/18(木) 17:38:26
JButtonとJLabelを複数持ったカスタムコンポーネントを作ろうと思っているんですが
どのように作っていいものか分からないで困っております.

どなたかご教授ください.
0862デフォルトの名無しさん2005/08/18(木) 17:47:28
>>861
説明不足
もっと詳しく書け
08638612005/08/18(木) 18:00:36
すみません.

JButtonとJLabelのセットで一つのUIコンポーネントを作って
それを使いまわしたいんですが

自作のクラスのメンバにJButtonとJLabelを持たせて何かを継承すれば
Swingで用意されているJButtonやJTextFieldのようにaddして行けるのでしょうか?
0864デフォルトの名無しさん2005/08/18(木) 18:27:26
>>863
1. java.awt.Panel または javax.swing.JPanel のサブクラスを作る。
2. コンストラクタで必要なコンポーネントを並べ、ボタンのイベントリスナなどを登録する。
3. 外部から操作が必要なら public なメソッドを定義する。

いじょ
0865デフォルトの名無しさん2005/08/18(木) 19:29:28
以下再掲です。

JavaでVBとかのDoEventsみたいな機能ってありませんか?
メインループ処理しながらイベント処理もしたいのですが。

コンストラクタ() {
  ・
  ・
  ・
  this.mainLoop();
}

private void mainLoop() {
  while(true) {
    ・
    ・
    ・
    DoEventsのようなもの
  }
}

マウスイベントとか() {
  ・
  ・
  ・
}

ってなかんじで作りたいのですが。
0866デフォルトの名無しさん2005/08/18(木) 19:38:11
DoEventとは根本的に考え方が違うが、なんらかの処理をしながらイベント処理するための機構はある
InvokeLatorとかInvokeAndWaitなんかを調べてみては
0867デフォルトの名無しさん2005/08/18(木) 19:43:50
>>865
再掲するな
0868デフォルトの名無しさん2005/08/18(木) 19:49:10
>>865
メインの処理はスレッド使え。
0869デフォルトの名無しさん2005/08/18(木) 20:35:52
>>864
分りやすい説明,有り難うございました
0870デフォルトの名無しさん2005/08/18(木) 21:43:50
<% if (flg) out.print(param); %>
こういう使い方ができるからout.printは必要。
0871デフォルトの名無しさん2005/08/18(木) 21:45:40
>>752
お前は正しいよ。自信を持って生きてゆけ。
0872デフォルトの名無しさん2005/08/18(木) 22:49:14
<% if (flg) {%>
<%=param%>
<%}%>
0873デフォルトの名無しさん2005/08/18(木) 22:58:39
さてお前ら問題す
特にWeb系が簡単だといった人に

JSPあるいはサーブレット内で
System.ext();
とやった場合どうなるか答えてみない?
0874デフォルトの名無しさん2005/08/18(木) 22:59:20

System.exit(0);な
0875デフォルトの名無しさん2005/08/18(木) 23:02:13
サーブレットコンテナのセキュリティによるんじゃない? (てきとう)
0876デフォルトの名無しさん2005/08/18(木) 23:37:42
>>872
なんかやたら冗長だなw
0877デフォルトの名無しさん2005/08/18(木) 23:43:49
>>873
鯖が落ちたぢゃねーか。ww
0878デフォルトの名無しさん2005/08/18(木) 23:46:27
>>877
そう、だからJava(サーブレットJSP)の使える個人HPサーバが少ない
そういう管理まで頭悩ませるからね
0879デフォルトの名無しさん2005/08/19(金) 01:24:35
JTextArea 内のテキストの選択開始/終了 (選択状態の変化) をイベントとして取りたいんだが
どうすれば良いんだ?
0880デフォルトの名無しさん2005/08/19(金) 01:29:06
>>873
やっぱり馬鹿だねWeb系は
中国人と賃金競争してるといいと思うよ
0881デフォルトの名無しさん2005/08/19(金) 01:44:30
賃金競争にすら参加できない>>880は救い洋梨ですか?
0882デフォルトの名無しさん2005/08/19(金) 01:51:24
>>878
セキュリティマネージャやアクセス制御って知ってるか? System.exit(0) やスレッド生成、
AWT (GUI) など動作に関する大抵のことは制限できる。個人のサーブレットを乗せられる
プロバイダが無いのはそんなことじゃなくて、処理が全て同一プロセス内のスレッドに
なっていることに起因している (CPU やメモリなどのリソースに関する詳細な制限が
できないなど)。
0883デフォルトの名無しさん2005/08/19(金) 02:01:03
>>882
forkなど数十年前からある概念だが・・・・IISとか?
0884デフォルトの名無しさん2005/08/19(金) 02:05:27
的はずれすぎ
うんこ3ガロン飲み干せよ
0885デフォルトの名無しさん2005/08/19(金) 02:11:02
君のマシンではスレッドが fork で分岐してるのか。ひでぇ実装だな。
0886デフォルトの名無しさん2005/08/19(金) 02:15:51
>>883
Web系馬鹿すぎ。コンビニでバイトしてるほうがいいと思うよ。
0887デフォルトの名無しさん2005/08/19(金) 02:17:15
まさかスレッドとforkを同一視するヤシがいるとは思わなかった・・・
0888デフォルトの名無しさん2005/08/19(金) 02:27:29
>>883
スレッドの話で fork を持ち出すのって、何か根本的に勘違いしてるようだな。
0889デフォルトの名無しさん2005/08/19(金) 02:29:56
IISってw
0890デフォルトの名無しさん2005/08/19(金) 03:16:25
それくらい馬鹿でもやっていけるWeb系
0891デフォルトの名無しさん2005/08/19(金) 04:28:37
>>879

テキストの選択はキャレットを移動することによって
行われているので、CaretEventとして取得できる。
0892デフォルトの名無しさん2005/08/19(金) 06:33:41
>>891
39
0893デフォルトの名無しさん2005/08/19(金) 08:09:00
NAME と SMALL_ICON を持つ Action のインスタンスをメニューと
ツールバーのボタンで共有したいんだが、ボタンの方のラベルだけ
消せないかな。
08948932005/08/19(金) 08:14:37
button.setAction(action) した直後に button.setText("") したらうまいこと
ラベルだけ消えました。
0895デフォルトの名無しさん2005/08/19(金) 09:23:08
趣味で簡単な2DRPGを作成しているんだけど、
AWTかSwingかどっちを使おうか迷ってる
どっちが良いと思われ?
0896デフォルトの名無しさん2005/08/19(金) 09:30:12
どっちもどっち。
ツリー表示やテーブルなど豊富な機能を使いたければ Swing
機能や設計で挫折しそうなら AWT
RPG なら自前での描画がメインだろ、好きなほうでやれ。
0897デフォルトの名無しさん2005/08/19(金) 09:55:42
Javaの場合、無限ループ中でも普通にイベント処理可能なのですか?
0898デフォルトの名無しさん2005/08/19(金) 10:20:07
無限ループしてるスレッドがイベントディスパッチャーのスレッドでなければ。
0899デフォルトの名無しさん2005/08/19(金) 10:24:54
イベントディスパッチャーって何ですか?
0900デフォルトの名無しさん2005/08/19(金) 10:28:19
>>899
夏厨になりきり夏を満喫するスレ@inマ板
ttp://pc8.2ch.net/test/read.cgi/prog/1121498900/
0901デフォルトの名無しさん2005/08/19(金) 14:05:59
質問させていただきます

JTableを使うときにDefaultTableModelを使用しようと思ったのですが上手くいきません
見てみると下記の関数内で正しくDefaultTableModelにデータが格納されていないようなのですが
原因が分からず困っております

private DefaultTableModel getDefaultTableModel()
{
if(defaultTableModel == null)
{
defaultTableModel = new DefaultTableModel();

Object[] row1 = {"1","TOKYO"};
Object[] row2 = {"2","OSAKA"};
Object[] row3 = {"3","NAGOYA"};
defaultTableModel.addRow(row1);
defaultTableModel.addRow(row2);
defaultTableModel.addRow(row3);
}

return defaultTableModel;
 
}

java1.5を使用しています
0902デフォルトの名無しさん2005/08/19(金) 14:16:40
「データが格納されていないようなのですが」って
しらべりゃええやん自分で
0903デフォルトの名無しさん2005/08/19(金) 14:19:07
>>901
・defaultTableModelをreturnした後にsetModelしていない
・defaultTableModelがnullじゃなかったら何も格納されない
これ以上のことはこのソースだけからじゃわからん
0904デフォルトの名無しさん2005/08/19(金) 14:30:19
>>902
デバグして
defaultTableModel.dataVector.elementDataの中身見たら
addRowした後にも空だったんですが,それ以上は分からず・・・

>>903
そのどちらも対処してありました
0905デフォルトの名無しさん2005/08/19(金) 15:19:51
>>901
addRowする前にaddColumnして先に列を確保しておかないと
列数0のテーブルに行を追加する扱いになって行追加が失敗するらしい

addRowする前に、
defaultTableModel.addColumn("Num");
defaultTableModel.addColumn("Place");
なりして必要な列を先に確保するとうまくいく
0906デフォルトの名無しさん2005/08/19(金) 15:45:35
>>905
なるほど,列を先に入れないと駄目だったんですね
これで先に進めます,本当に有難うございました.
09078972005/08/19(金) 21:54:10
public class Test extends java.awt.Frame{
 public static void main(String[] args){
  new Test();
 }
 public Test(){
  //フレームの基本設定は省略。
  enableEvents(AWTEvent.MOUSE_EVENT_MASK);
  show();
  mainLoop();
 }

 private void mainLoop(){
  while(true){
   //処理は省略。
  }
 }

 public void processMouseEvent(MouseEvent e){
  //処理は省略。
 }

 //他のメソッドは省略。
}

こんな感じのプログラムを作ったのですが、無限ループにはまって何もできなくなるはずが、
なぜか普通にマウスイベント処理ができたので不思議に思っております。
言語仕様なのか自分の使ってるPCやOSのせいなのが気になって開発に力が入りません。
Java言語に詳しい人、教えて下さい。
0908デフォルトの名無しさん2005/08/19(金) 22:35:01
メインスレッドとイベントディスパッチスレッドは別のスレッドだから
そんだけ
レス数が900を超えています。1000を超えると表示できなくなるよ。