[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 09/27 12:34 / Filesize : 223 KB / Number-of Response : 857
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2007/03/31(土) 13:57:18 ]
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

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

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド99【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1173026128/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

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

次スレは>>980あたりで。

237 名前:197 [2007/04/06(金) 01:51:20 ]
>>206
レス有難うございます。
おお、確かにそうですね。
ラベルは表示するだけって思い込んでたので
イベントハンドラの事をぽっくり忘れてました。

>>218-221
レス有難うございました。

クリックのイベントで実装してみたいと思うのですが
javaからURLを指定してブラウザを起動する事はできますか?
解るかたいましたら教えてください。

238 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 01:55:07 ]
>>237
つ java.awt.Desktop

239 名前:197 mailto:sage [2007/04/06(金) 01:56:08 ]
すいません。連続して質問します。

JLabelに表示される文字列を
スクロールして流れるように表示させたいです。
自分ではTimerクラスを使って文字列を
少しずつ編集すれば出来るかと思ってますが、
重そうであまり賢い方法とは思えません。
そういった機能を持つクラスや別の方法はありますか?

240 名前:197 mailto:sage [2007/04/06(金) 01:56:51 ]
>>238
うっす。どうもっす。
早速調べてみます。

241 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 02:53:28 ]
>>239
環境にもよるし編集内容にもよると思うが全然重くなかった
public class MarqueeLabel extends javax.swing.JLabel implements java.awt.event.ActionListener {
private StringBuilder sb = new StringBuilder();
public MarqueeLabel(String text) {
sb.append(text);
setText(sb.toString());
new javax.swing.Timer(40, this).start();
}
public void actionPerformed(java.awt.event.ActionEvent e) {
char c = sb.charAt(0);
setText(sb.deleteCharAt(0).append(c).toString());
}
public static void main(String[] args) {
javax.swing.JFrame f = new javax.swing.JFrame();
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
f.add(new MarqueeLabel("abc def ghq jkl mno pir stu vwx yz@ "));
f.pack();
f.setVisible(true);
}
}

242 名前:197 mailto:sage [2007/04/06(金) 03:48:44 ]
>>241
レス有難うございます。
確認までして頂いて感謝です。

あの、全く関係ないんですけど
今あるjavaGUIらしいデスクトップアプリを使っていて
その中の文字列がスクロールしている部分があります。
その文字列のスクロールが文字単位ではないんです。
Timer使って文字列を編集しながらスクロールさせると
どうしても文字毎単位になっちゃうじゃないですか?
なんか意味不明な説明になってきたような・・・

例えば、Timerを使った方法だと
"abcde"という文字列がラベル上に左詰で表示されているとして
次にスクロールしたら"bcde"という表示になりますよね。
左端のaは絶対にあるかないかです。
でも、最初に話しましたアプリだと、aの一部も
表示しながらスクロールされるんです。
文字列としてではなく画像として扱ってるんかな・・・

なので、そういったスクロールさせるクラスとかメソッドが
あるのかと思って>>239で質問しました。
でも、これ以上時間かけても解らないので
もう>>241の方法で行きたいと思います。
有難うございました。


243 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 03:51:01 ]
servletではなく,クライアントPCで動作するアプリケーションとして
ファイルのアップロードをするプログラムを作りたいと考えています

サーバ側でファイルを受け取るのは一般的な画像掲示板を想定しています
その際multipart/form-dataでエンコードされたデータをPOSTすれば良いことまでわかりました

エンコードにjavax.mail.Multipartを利用すれば良さそうだと思いましたが,
デフォルトでform-dataに対応していない(サブクラスの記述をしなければいけない)ため,
現在の私に使えそうにありません
そこで参考になりそうなサイト/書籍を紹介していただけませんでしょうか

244 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 03:56:58 ]
>>242
自前で描いちゃえ

245 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 04:50:35 ]
>>242
>>244の言うようにJComponentあたりを継承して自前で書くのが一番描画の自由度が高いね
自由度は低いけどこういう手もある
public class SmoothScrollLabel extends javax.swing.JScrollPane implements java.awt.event.ActionListener {
private javax.swing.JViewport viewport;
private java.awt.Point point = new java.awt.Point();
public SmoothScrollLabel(String text) {
viewport = getViewport();
viewport.setView(new javax.swing.JLabel(text));
new javax.swing.Timer(40, this).start();
}
public void actionPerformed(java.awt.event.ActionEvent e) {
int width = viewport.getView().getSize().width;
if (point.x > width) point.x = -width;
else point.x++;
viewport.setViewPosition(point);
}
public static void main(String[] args) {
javax.swing.JFrame f = new javax.swing.JFrame();
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
f.add(new SmoothScrollLabel("abc def ghq jkl mno pir stu vwx yz@ "));
f.pack();
f.setVisible(true);
}
}



246 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 05:21:26 ]
>>243
このままで動作するかどうかは分からんが、これを基点に調べてみたら?
ttp://java-house.jp/ml/archive/j-h-b/051432.html
これならjavamailもいらない。

247 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 09:11:52 ]
>>243
ttp://jakarta.apache.org/commons/httpclient/
ttp://svn.apache.org/viewvc/jakarta/commons/proper/httpclient/trunk/src/examples/MultipartFileUploadApp.java?revision=480424&view=markup


248 名前:230 mailto:sage [2007/04/06(金) 09:48:49 ]
>>234
ありがとうございます。

オーバーフローの検出はどうするんでしょう?
マイナスになったら、と思いましたが、
足し算は出来てもでかい数字同士の掛け算だとマイナスにならないと気付きました。

249 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 09:57:26 ]
BigInteger使ったら?

250 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:18:56 ]
>>249
iアプリ作ってるんで。

251 名前:デフォルトの名無しさん [2007/04/06(金) 10:36:26 ]
画像をナナメに表示するにはどうしたらいいのでしょうか?
drawImage(image[0],x, y,width,height,this);しか知らず…orz

252 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:40:27 ]
>>251
ヒント:AffineTransform

253 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:43:07 ]
何でヒントだけ?

254 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:47:35 ]
>>248
> オーバーフローの検出はどうするんでしょう?
自前でやるしかない。

速度気にしないなら、c = a * b; した後で、
c / a == b ならオーバーフローしてないと判断する、とかね。

255 名前:デフォルトの名無しさん [2007/04/06(金) 10:52:16 ]
>>252
ありがとうございました。
rotate();だとか、それっぽい関数がありましたので勉強してみます。



256 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 10:58:48 ]
>>254
それでやると、 -1 * Long.MIN_VALUE でオーバーフローしてても検出できない。
他にもあるかもしらんけど。

257 名前:名無しさん mailto:sage [2007/04/06(金) 11:43:55 ]
ttp://gihyo.jp/dev/serial/01/java-calculation

ってどうよ

258 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 11:57:29 ]
>>254
ありがとうございます。
それで出来ました。

259 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 15:33:14 ]
Webアプリを作成しています。
画像ファイル用のディレクトリにある一部の画像が表示されないのですが、これ
はどの辺りに原因があるでしょうか。
開発環境から持っていった画像は表示されるのですが、フォームからアップロー
ドした画像が表示されません。いろいろ調べましたら、サーバ上の別のディレクト
リからコピーした画像も表示されないようです。画像ファイルのURLを直接指定
しても404NotFoundになってしまいます。
つまり、初期段階からあるHTML用の画像は表示されるのですが、後から追加し
た画像、フォームからアップロードした画像が表示されません。表示されない画
像を開発環境上のディレクトリにコピーして、それをサーバ上に持っていくと表示
されました。
初歩的な質問かもしれませんが、分かる方いらっしゃいましたら教えてください。

260 名前:251 [2007/04/06(金) 17:30:52 ]
画像の回転について詰まってしまっています。
以下のプログラムにおいて、rotateする前に(50,50)に表示しようとした画像まで
回転して表示されてしまうのはなぜなのでしょうか?
また、それを回避するにはどう書けばいいのでしょうか?

ソース
www.za.ztv.ne.jp/yosi-h/page001

実際のアプレット
www.za.ztv.ne.jp/yosi-h/Java.html

261 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 17:52:57 ]
>>260
ざっと見たところここが怪しい。
>g2.setTransform(at);
omote.setTransform(at);

262 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 18:00:42 ]
>>260
> Graphics2D#setTransform(AffineTransform Tx)

> Graphics2D コンテキストで Transform を上書きします。警告:このメソッドは新しい座標変換を既存の変換上で適用する
> 目的では使用しないでください。

> 座標変換を追加するために、transform、rotate、scale、またはshear メソッドを使用します。
この「transform、rotate、scale、またはshear メソッド」はGraphics2Dのね。

263 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 18:14:42 ]
>>260
omote,uraのネーミング変じゃないかい?混乱したぞ。

Graphics2D g2=(Graphics2D) g;
omote.drawImage(image[0],50,50,this);
//AffineTransform at=new AffineTransform();
//at.rotate(90*Math.PI/150.0,150+18,150+18); //画像の中心を回転の中心に合わせる
//g2.setTransform(at);
AffineTransform at = ((Graphics2D)omote).getTransform();
((Graphics2D)omote).rotate(90*Math.PI/150.0,150+18,150+18);
omote.drawImage(image[0],150,150,this);
((Graphics2D)omote).setTransform(at);
g.drawImage(ura,0,0,this);


264 名前:251 mailto:sage [2007/04/06(金) 18:15:38 ]
>>261
GraphicsクラスのomoteにはsetTransformメソッドがないと怒られてしまいました。

>>262
う〜ん、setTransformで座標を変えるやり方自体がよくないってことなのでしょうか。

最終的にやりたいのはマウスなりキーボードなりに反応して画像が回転して動く、ちらつきのないアニメーションです。
せっかく回答してもらってるのにいまいちピンとこない辺り、
勉強が足りないのかもしれませんねorz

265 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 18:18:32 ]
あ、g2もいらんね。
//Graphics2D g2=(Graphics2D) g;




266 名前:251 mailto:sage [2007/04/06(金) 18:55:09 ]
>>263>>265
おかしなネーミングで申し訳ないですorz
とりあえずやりたかった動作が確認できました。ありがとうございました。
完全に置き換えずにその時々で変換してやる必要があるってことですね。

267 名前:243 mailto:sage [2007/04/06(金) 21:50:01 ]
>>246-247
今帰ってきました
ありがとうございます
これから読んで,頑張ろうと思います

268 名前:デフォルトの名無しさん [2007/04/07(土) 08:48:29 ]
AXISのTCPMonitorを使用して外部インターネット(HTTP)との通信内容を調べたいのですが可能でしょうか?
ローカルマシンのwebアプリとの通信内容は見れたのですが。

269 名前:Java ◆KbC0ODWrJ2 [2007/04/07(土) 09:38:18 ]
可能

270 名前:デフォルトの名無しさん [2007/04/07(土) 10:51:46 ]
>>269
具体的にはListenPort,TragetHost,TargetPortをどのように設定したらよいでしょうか。

271 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 11:51:50 ]
リクエスト送った時と送らない時で
netstat -aの差分とってみりゃいいじゃん


272 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 15:59:03 ]
pattern、Matcherクラスの勉強してるときにある本の中にこういうコードがあったんですが

Pattern p = Pattern.compile("[a-z]");//正規表現をPatternクラスのオブジェクトにコンパイル
Matcher m = p.matches("aaaaaaaa");//指定されたパターンと、マッチング対象の入力テキストとが含まれることになるMatcherオブジェクトを作成する

この2行目のメソッド名はmatcherと間違ってるように思うんですがどうなんでしょうか?
JDKの資料調べてみて戻り値や引数の数からおかしいように思えます。
本の正誤表には載ってませんでした。おねがいします。

273 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:13:54 ]
matchesはbooleanを返す
macherはMatcherインスタンスを返す
ので、本が間違ってるね。


274 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 18:34:46 ]
javaでビープ音出したいんですけど
どうやったらできますか?

275 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 19:33:18 ]
Toolkit.beep()



276 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 19:33:42 ]
開発言語:JAVA、データベース:Postgresql8.1の環境で開発してます。

Driver driver = DriverManager.getManager(url文字列);
※url文字列 jdbc:postgresql:プロジェクト名
上記コードでSQLExceptionが発生します。
データベースアクセスエラーのようですが何故発生するか分かりません。
jdbcドライバが認識されていないのでしょうか!?

ご回答、アドバイスの方よろしくお願いします。

277 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 19:37:41 ]
接続できてないんじゃないのか。
コマンドラインから接続できるか確認すべき。


278 名前:276 mailto:sage [2007/04/07(土) 19:44:29 ]
>>277
ローカルのDBなので、DOSプロンプトからログインできることも確認できました。

279 名前:デフォルトの名無しさん [2007/04/07(土) 19:47:26 ]
boolean型の値を出す関数を組み合わせて、if(A&&B)のように使うことは出来ますでしょうか?
また、全てfalseの場合にある動作をさせたいのですがどう書けばよろしいでしょうか?
-func1()&&-func2()&&…のようにマイナスで反転させることってできませんよねorz

280 名前:274 [2007/04/07(土) 19:55:10 ]
>>275
レス有難うございます。
あの、指定した秒数だけビープ音を出したいんですけどできますか?
別にビープ音じゃなくても音なら何でも構いません。

281 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 19:55:36 ]
!func()で反転するじゃん

282 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 20:01:12 ]
>>273
ありがとうございました。

283 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:29:23 ]
>>276
原因はよく判らんけどとりあえずorg.postgresql.ds.PGPoolingDataSource使ってみれば?
JavaDocでも
>データソースへの接続時には DataSource オブジェクトの使用をお勧めします。
とかいってるし。


284 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:38:25 ]
>>279
そもそも && や || は1行目みたいなことのために使うものだ。

全てがfalseの場合、は !A && !B のように書く。論理の反転(否定)は!演算子。
また、ド・モルガンの法則というものがあり、
!A && !B は ! ( A || B )ともかける。


285 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 21:51:10 ]
>>280
何に使うのかわかんないけど
System.out.printでbeepをあらわすエスケープシーケンス出すとか
javax.soundを使ってみるとか



286 名前:276 mailto:sage [2007/04/07(土) 22:15:45 ]
>>283
回答ありがとうございます。

>org.postgresql.ds.PGPoolingDataSource使ってみれば?
使ったことが無いのでなんとも言えませんが、やってみます。

287 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 22:20:06 ]
>>276
エラーの内容を晒さないと無理かと

288 名前:デフォルトの名無しさん [2007/04/07(土) 22:31:52 ]
>>271
わかんねっす

289 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 00:50:51 ]
>>288
ごめん書き方悪かったかな。
TCPモニタを使用しない状態(<ここ重要)で、リクエスト送った時のローカルportとリモートhost,port
をDOSプロンプト(Windows?)のnetstatを使って見てみればということ。
やり方は、結果はネットワーク的に何もしない状態でもたくさんでてくるから(単一マシン内で起こるパイプとか、いろんなサービス(共有)とかのレシーバ待機)、
リクエスト送った時と送らない時のnetstatの結果を比較してみてその差が求めたいものだと思う。
例えば、
netstat -a 1>c:tcpmon.txt
とかやれば、1[interval]のオプションついてるから1秒おきにctrl+c押すまで延々とnetstat発行してくれてtcpmon.txtにキャプチャーしてくれる。(netstat ?でヘルプを見て)
その状態の途中で、リモートにリクエストを送ってやる。
そして、おもむろに時間がすぎた後ctrl+c押してnetstatコマンドを止めてやる。
そして連続して出されたnetstatの結果の差を見る。差の中にリモートhostとリモートportがあると思う。
あとはリスナーのやり方含めてローカルホストの場合と同じでしょう。

290 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 01:23:42 ]
EclipseってC#みたいですね

291 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 08:27:17 ]
未だにifの条件式考えるときに、||がいいか&&がいいか頭をひねってしまう。
特に条件が!の時に。みんなこんな?それとも俺が低脳なだけ?orz

292 名前:291 mailto:sage [2007/04/08(日) 08:44:23 ]
失礼、あまりにも低脳な発言ですた。

293 名前:デフォルトの名無しさん [2007/04/08(日) 09:39:07 ]
MPGの全フレームを抽出するためのソフトを作るために
Javaライブラリを探しているんだけど、
こういうのってどこで探せば見つかるの?

294 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 11:07:08 ]
google

295 名前:デフォルトの名無しさん [2007/04/08(日) 11:10:53 ]
>>294
探したけど無かったw



296 名前:デフォルトの名無しさん [2007/04/08(日) 11:13:57 ]
もっとがんばれ

297 名前:質問 mailto:age [2007/04/08(日) 11:35:41 ]
JavaとCどっち学んだほうがいいか?

298 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 11:48:51 ]
どっちって。。。当然両方だろ。
プログラマなら何種類かの言語使えるのが普通。
そこまでじゃないならVBやスクリプトで充分。

299 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 11:52:19 ]
>>295
JMF以上のことがいるのか?
ibmにも有償ライセンスのがあった気がするが

300 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 11:54:49 ]
>>297
初心者ならJavaとC#覚えればいいと思う
熟練者ならC++・JavaScript・PL/SQLなども覚えるべき

301 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 11:55:07 ]
>>297
どっちでもいいと思う
俺はJavaとperlだけだな

302 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:33:24 ]
>>295
JMFで十分。それ以上は自前。

303 名前:デフォルトの名無しさん [2007/04/09(月) 18:53:27 ]
よろしくお願いします。
次のようなコードで、あるクラスのプロパティに、新規に作成した
オブジェクトを代入する場合、func2のように、一度、メソッドの
中で一次変数的に作ったものを代入するのは、よくないのでしょうか。
C++などでは、駄目なことは理解してますが、Javaでもマズイことなのか
どうか半信半疑なのですが。。

class someclass {

ArrayList arr;

void func1(){
this.arr = new ArrayList();
}

void func2(){
ArrayList tarr = new ArrayList();
this.arr = tarr;
}

}

304 名前:303 mailto:sage [2007/04/09(月) 19:01:05 ]
あ、失礼しました。new による作成ならC++でもヒープですね。
Javaでも、上記は問題ないように思いましたが、もし違っていましたら
ご指摘頂ければ幸いですが、とるに足らない内容でしたら、スルーして
頂ければと思います。すみませんでした。

305 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 19:45:28 ]
全く何の問題もないにょ



306 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 09:28:03 ]
ん、何が問題かよく分からんね。スコープは変数に掛かってくるのであって
オブジェクトの生成場所ではないですよ。

307 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 20:49:47 ]
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class TestClass extends Applet{
public void init() {
Scrollbar S = new Scrollbar(Scrollbar.HORIZONTAL);
S.setBounds(new Rectangle(15, 15, 180, 25));//ここがうまくいってない
add(S);
}
}

上のようなコードを書いて実行してもスクロールバーの位置・サイズが変更できません
どのように修正したらよいのでしょうか?

308 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:07:29 ]
>>307
www.google.com/search?q=setLayout

309 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:17:00 ]
>>308
ありがとうございます
setLayout(null);
とすることで解決できました

310 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:25:35 ]
プログラミングに関しては全くの初心者です。
iアプリを作りたいと思ってるんですが、プログラム組むのになにか専用のツールがあるんでしょうか?
それともメモ帳に打ち込んで作るのでしょうか?

311 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:26:48 ]
>>310
ttp://www.smg.co.jp/seminar/java/index.html

312 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:56:30 ]
すいませんプログラム初心者です。%=について悩んでおります。
具体的には
public class Enzan {
public static void main(String[] args) {

int x = 11;
int y = 10;

x %= 2 * 100;

System.out.println(x);

}

}
についてコンソールに11と表示されます。

自分ではx %= 2が1なので1*100で100がxに代入されると考えたのですが・・・。

313 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 22:03:57 ]
>>312
演算子の結合順位調べろ。

> 自分ではx %= 2が1なので1*100で100がxに代入されると考えたのですが・・・。
仮に、前半の「x %= 2が1」が 先に実行されたとしても
後半の「1*100で100がxに代入される」は絶対ないだろ。
前半部分には代入演算子あるけど、後半には何処にも代入演算子が無いし。

314 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 22:52:28 ]
equalsメソッドのオーバーライドについて質問です。制約として
・対称性 (symmetric): null 以外の参照値 x と y について、x.equals(y) は、y.equals(x) が true を返す場合だけ true を返す
などがありますが、これらの制約は、x,yが同クラスのインスタンスとしたことを前提としてるんですよね?
てなると、オーバーライドしたequalsメソッドで、AクラスオブジェクトとBクラスオブジェクトを
比較してtrueを返すような使われ方は、一般的ではないわけですか?

315 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:03:03 ]
>>314
一般的ではないという以前に、別のクラスのオブジェクトが等しいとみなされる場合があるのか?



316 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:07:06 ]
>>315
Mapのイコーリティって仕様で決まってんじゃなかったっけ。

317 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 00:17:17 ]
>>314
そんな実装、やってみれば無謀な事がわかる
A の何と B の何を比べるつもりなのか

318 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:11:02 ]
equals を再定義するにあたって、うっかり getClass の比較を忘れてたりすると、そんなことが起きたりする。

319 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:16:14 ]
>>318
getClass() での比較忘れてても、キャスト時に ClassCastException が飛ぶだけでは?

320 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:17:22 ]
generics使ってるとそんなequalsは使えない
Collectionで使う以外でequalsのオーバーライドはしたことないし

321 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:25:30 ]
……。 Generics があっても equals の引数型は Object で固定だし。

322 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:37:36 ]
>>319
ちがうちがう

class Sample {
    private final String id;
    // ...
    public boolean equals(Object obj) {
        return (obj instanceof Sample) && ((Sample)obj).name.equals(this.name);
    }
}

適当だけど、こういうプログラムを昔よく書いてた経験がありましてですね。
尤も、この解決策は、
1) instanceof を getClass の比較に変更
2) Sample または equals の宣言に final をつける
3) クラスが異なっていても id が同じなら同じとみなすようにマニュアルを変更
の3種類あるけど。

323 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:41:34 ]
いや、3種類も無いな。3番は忘れてくれ。

324 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:47:50 ]
java.util.Date が3番(?)だったりする罠。

どーでも良いけど、3番だと実装が name 比較してるから拙い罠。

325 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:50:00 ]
>>315
ListやMapの実装クラスは中身が一緒だったらequalsがtrueを返したような。
そういう意味ではクラス自体が違ってても等しいとみなしてよいことも
なくはない。



326 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 07:38:33 ]
>>325
うん、普通にあるよな。

327 名前:デフォルトの名無しさん [2007/04/12(木) 08:22:47 ]
車を運転する簡単なゲームを作っています。
左回転と右回転で何故か回転半径が違ったりする問題はありますが、
とりあえず車の挙動は完成しました。
現在壁にぶつかったら止まる動作を作っているのですが、
どうも上手くいかずここに書き込ませていただいた次第です。

アプレットの赤い点は、画像の表示位置である(car_x, car_y)を示したものです。
現在はこの座標を衝突判定に使っているので、前進しながらこの点が黒枠にぶつかると止まるはずです。
画像を回転させているからか画像左上の角と赤い点が一致しないことがあり、悩んでいるのはその修正です。
crash_check()内にあるコメントアウトは私があれこれ考えて修正させてみた式なのですが、
この修正を行ってRectangleに修正値である(car_x_check, car_y_check)を用いてもそれはそれでおかしな点を指してしまいます。
アプレット左上の数値はcar_angle(車の向いている方向)を示しています。
画像の回転もこの数値を元に行われます。

ソース
www.za.ztv.ne.jp/yosi-h/page001

アプレット
www.za.ztv.ne.jp/yosi-h/Java.html

328 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:45:17 ]
Javaの勉強をしようと思うのですが
触り始める前に前提知識としてこっちの言語かじっとけみたいなのってありますか

329 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:17:53 ]
言語難易度
C#>JAVA>C>C++
言語ルーツ
1.C(基本情報技術者試験と一緒に学習すると効率が良い)
2.C++(Cを学習済みの人でないと厳しい)
3-1.JAVA(UMLの勉強と一緒に行うと効率が良い)
3-2.C#(VisualStudioでGUIの作成を一緒に学習すると効率が良い)

330 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 13:00:31 ]
オブジェクト指向とMVCくらいは覚えた方が良いかも。

#ここでSmalltalkとか出してくると荒れる原因か・・・
俺はSelfの方が好きだが。

331 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 13:48:41 ]
>>328
まず英語。

332 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 14:06:24 ]
JAVA初心者にオススメのIDEを教えてください。

333 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 14:10:15 ]
>>332
eclipse以上

334 名前:332 mailto:sage [2007/04/12(木) 14:21:18 ]
ありがとうこざいます。
もうひとつ質問なんですが、携帯のアプリは専用のツールを用いないと作成できないのでしょうか?

335 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 14:33:06 ]
うん



336 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 14:44:55 ]
そのツールは、プログラミングするときに必要なのか、単にファイルを変換するときだけに必要なのかどちらなんでしょう?

337 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 15:24:03 ]
javaでグラフ描画したいのですがどんな手法が ありますかね? 今のところJFreeChartがフリーだし シェア ○ 信頼性 ? 拡張性 ○ 性能  ○ と思ってるのですが他にいいヤツありますか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<223KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef