1 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 15:21:29 ] 過去ログ、関連スレッド、よくある質問とその回答、 質問をする前に、貴方が見なければならないサイトについての情報は、 下の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質問・相談スレッド101【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1177938653/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 次スレは>>980 あたりで。
237 名前:デフォルトの名無しさん [2007/06/07(木) 13:55:29 ] ノートパソコンにJavaをいれたいのですがどうすればいいですか? 共有ソフトが使えません。
238 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 13:57:35 ] 開発環境一式をCDなりDVDに焼いてノートパソコンにインストールする
239 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 16:13:10 ] >>237 共有ソフトという謎のモノに詳しい人に聞きなさない
240 名前:デフォルトの名無しさん [2007/06/07(木) 16:39:33 ] winrarとかいうヤツ
241 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 17:39:19 ] 今日からJAVAをはじめようと思ってNetBeansをインストールしたのですが、 何をどうすればいいのか良く分かりません。とりあえずプロジェクトなるものを作って、 出来たMain.javaにネットから持ってきたHelloWorldの表示プログラムを貼り付けたのですが、 実行してみるとエラー?かなんかで実行できません。しかも文字化けしてるし・・・。 Cannot find nbproject/build-impl.xml imported from E:\a??a?-a?°a?ca??a みたいな感じなのですが・・・。助けてください
242 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 17:51:45 ] >>241 ttp://pc11.2ch.net/test/read.cgi/tech/1154582593/l50
243 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 17:54:09 ] そっちで聞けって事ですね! ありがとでう
244 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 19:06:17 ] GUIの左上のアイコン(コーヒーカップの絵)って変えられないんですか?
245 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 20:27:18 ] >>244 java.awt.Window, java.awt.Frame,javax.swing.JFrame,javax.swing.JWindow あたりの setIconImage() setIconImages() かな?
246 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 21:36:36 ] >>245 詳しくありがとうございます 変更できました
247 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 22:03:17 ] JTableの列にJButtonをいくつか描画して、それぞれのイベントリスナを実装しました。 まず手始めに、そのボタンをクリックするとコンソールに そのボタンが存在するrowを表示するもので試し成功しました。 次はボタンが押されたら、そのボタンが存在する行を削除するものを試しましたが、 消せたり消せなかったりします。消せないときはボタンとしての機能が 完全に止まっていてイベントすら発生しません。 原因がさっぱりでわかりません。
248 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 07:43:48 ] ソースもなければエラーメッセージも無しか、ゆとりは凄いな。
249 名前:247 mailto:sage [2007/06/08(金) 08:14:31 ] すいません。携帯からだったもんで。 そして今もまた携帯からなんで出直します。
250 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:12:36 ] 質問です。 テキストフィールドに入力された文字列がプログラム中で指定されている文字列と正しいかどうか判定するには、 どう記述したらいいですか?
251 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:16:11 ] >>250 >>1
252 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:18:22 ] >>250 <input type="text" name="hogehoge" value="" /> ↓ request.getParameter( "hogehoge" ).equals( "tashiro" )
253 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:59:45 ] SwingUtilities.invokeLater()を使うのが推奨されているのは setVisible()のほかにどのような処理がありますか?
254 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 11:06:18 ] >>253 ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/SwingUtilities.html#invokeLater(java.lang.Runnable) >このメソッドは、アプリケーションスレッドが GUI を更新する必要があるときに使用されます。
255 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 11:17:36 ] >>254 具体的にはどういうときですか?
256 名前:デフォルトの名無しさん [2007/06/08(金) 13:04:57 ] >>234 お願いします 誰か助けてください
257 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 13:38:24 ] >>256 つ やさしいJava
258 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:00:58 ] 現在1つのthreadを使って、start()やsuspend()でアニメーションを作り停止・再開をしているのですが、 停止したアニメーションを初期状態の位置に戻すにはどのようにしたらよろしいでしょうか? [停止]ボタンを押すとint a=1されます。 で、suspend()したスレッドをresume()で呼び出し、run()内部にint aで分岐させて初期状態に戻そうとしているのですが、 停止したところから続きが再開されてしまい困ってます。 stop()→resumt()、stop()→start()では駄目でした。 スレッドを1度破棄してもう1度作るとか、そんな恐ろしいことしなきゃ無理なんでしょうか?
259 名前:デフォルトの名無しさん [2007/06/08(金) 15:08:04 ] fillPolygonなんかで多角形を一色に塗る方法は分かったのですが、 ゲームなんかでよくあるように画像をはめ込むことはできませんでしょうか?
260 名前:デフォルトの名無しさん [2007/06/08(金) 15:08:54 ] Cとアセンブラ、VB使いですが。 Java 初めてです。 クライアントからタッチパネルから「かなorカナ」入力させ、 (銀行のATMの漢字版) サーバー側で、日本語漢字の候補を、クライアントに送る・・・ というような、ミドルウェアや製品を知りませんか? サーバーJava で、ゴリゴリのプログラミングはNGというのが上からの命令。 参考サイト・商品サイトだけでも、ご存じの方いらっしゃいますか???
261 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:39:32 ] >>258 アニメーションさせるならばSpliteを作成するのが基本。 ダブルバッファリングから初めてスプライトの基礎を学ぶといいよ。 簡単なシューティングゲームくらいすぐ作れる。 >>260 サーバーJavaでゴリゴリプログラミングはNGってのが意味不明。 タッチパネル(クライアント)の開発元に問い合わせれば、そのタッチパネルのアドオンとかでありそうだけど、そっちは調べたの?
262 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:51:46 ] >>261 SpliteをJava APIで探しましたけど見つかりませんでした。 JSplitPaneじゃないでしょうけど、 BasicSplitPaneDivider BasicSplitPaneUI らへんでしょうか? ああ、言い忘れましたが一応ダブルバッファリングはSplitとやらを使わずに出来てます。申し訳ないです。 Spriteでぐぐっても出てきませんでした。もう少し詳しく教えていただけませんでしょうか?
263 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 16:23:08 ] >>262 基本APIにゃない。 自分でコンポーネントクラスを拡張して作るんだよ。
264 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 16:47:55 ] >>263 spliteに関しては後で調べてみようと思います。 早い話、ThreadとRunnableではループし続けるアニメーションしか作れないのかを知りたいです というか後程ソースを出して再度書き込んでみます。お手数おかけしました
265 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 18:02:04 ] JAVAを始めようかと思ってるのですが、オブジェクト指向についてちょっと聞きたいことがあります。 僕はFLASHをよく作るのですが、オブジェクト指向の概念というのはFLASHもJAVAも類似しているのでしょうか? 実際、まだクラス、オブジェクト、継承など全く理解していません。 FLASHでいうところのシンボル、インスタンスと同じものとして考えてもいいのでしょうか?
266 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 19:56:17 ] >>265 類似とまではいかないかも知れないけど、似ているところはある。 というのもFlashというかActionScriptがオブジェクト指向っぽく書かれている。
267 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 21:10:36 ] ネットで検索しながらiBatisとHSQLDBで簡単なアプリ(非WEB)を作ってます。 そこで質問なのですが、HSQLDBスタンドアロンモードを終了させる時はSQLで"SHUTDOWN"と打て、 とあるようなのですが、ibatisからSHUTDOWNを流そうとするとエラーになってしまいます。 どうやったら終了させられるのでしょうか?
268 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:42:20 ] swingでタイピングソフトを作ってるのですが、キーボードの取得方法がわかりません。 KeyListenrを使って、できるのでしょうか? ActionListenerならある程度わかるのですが。
269 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 22:50:39 ] 今やってるプロジェクト(オープン系)で「seasar」っての使ってるんですが なんか、そのプロジェクトのリーダーが 全てのビジネスオブジェクトとDAOをシングルトンで 管理するように設定したって言ってました。 俺としてはありえないと思ったんですが、 これって正しい方法なんでしょうか? 俺の考えが間違ってんですかね。
270 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:01:32 ] >>269 漏れもありえないと思う
271 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:20:47 ] >>258 =264 > スレッドを1度破棄してもう1度作るとか、そんな恐ろしいことしなきゃ無理なんでしょうか? スレッドをsuspendで止めるほうがよっぽど恐ろしい。 スレッドの状態管理オブジェクト作ってwait/notifyで止めたり状態変更したりしましょう。
272 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:34:42 ] getGraphicsメソッドについて質問があります。 public class Test extends Applet{ ... } class Draw extends Canvas{ ... } という二つのクラスが有り、Drawの中でダブルバッファを行おうとしているのですが、 Graphics gBuf , Image imgBufをメンバ、initメソッド内にて imgBuf = createImage(300,300); gBuf = imgBuf.getGraphics();としたのですが、imgBufがnullとなりグラフィックコンテキストが取得できません。 しかしinit()を呼び出すタイミングによってはきちんと取得できていたりでどうにも安定しません。 この辺りを詳しくご教授願えないでしょうか。宜しくお願いいたします。
273 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:36:45 ] >>270 やっぱりそう思いますか? 周りにいる同じプロジェクトの人たちに聞いても 誰も疑問を抱いて無いんですよね。 何がおかしいの?って感じで。 自分の考えが間違ってるのかって悩んでたんで、 安心しました。 ありがとうございます。 これから数ヶ月そんなプロジェクトに 関わんなきゃいけないと思うと気が重いっス。
274 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:58:14 ] >>272 paint の中で createImage するしかない。 コードが見辛くなるけど初回の gBuf == null のときとそうでないときで処理をわける。
275 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 00:28:06 ] >>274 回答ありがとうございます。 paintの中でしか生成出来ないんですか…わかりました。やってみます。
276 名前:デフォルトの名無しさん [2007/06/09(土) 00:35:20 ] リアルタイムJAVAってどうやったら使えるの?
277 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 00:43:25 ] >>276 質問の意味が良くわからん。
278 名前:デフォルトの名無しさん [2007/06/09(土) 00:55:31 ] 普通のVMとは違う特殊なVMやリアルタイム用のAPIとかあるの? です。 ないかな。
279 名前:デフォルトの名無しさん [2007/06/09(土) 00:59:22 ] >>278 ねーよ、バカw 詩ねwww
280 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:00:43 ] >>278 ttp://jcp.org/en/jsr/ JSR1な
281 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:13:20 ] Javaなんかで文字化けしやすい文字とかってあるのでしょうか?
282 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:20:44 ] >>281 どういう状況を想定してるの?
283 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:34:14 ] いや何となく
284 名前:デフォルトの名無しさん [2007/06/09(土) 02:08:51 ] 窓の手で、「右クリックでコマンドプロンプトを可能」にしたのですが困っております。 これで現れるコマンドプロンプトでは、コンパイルが出来ません。 「スタート」→「アクセサリ」→「コマンドプロンプト」のものでは出来ます。 何か対処法はありますでしょうか。
285 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 03:06:36 ] 窓の手の作者に聞け 「右クリックでコマンドプロンプトを可能」にした時に出るコマンドプロンプトに環境変数を設定する方法について
286 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 06:33:51 ] >>264 つーか、スレッド別に作っても、結局UIスレッドに委譲しなきゃダメじゃん
287 名前:デフォルトの名無しさん [2007/06/09(土) 06:37:11 ] 「アプリケーションソフトウェア」ってのを作りたいんですが、 そもそもプログラム以前に、この四角い枠を出現させる方法が分かりません。 「このデータはアプリケーションである」と宣言する方法みたいな、 そういうことを教えてください。
288 名前:デフォルトの名無しさん [2007/06/09(土) 08:55:17 ] >>287 そういうことがやりたいならC#のほうがいいな。
289 名前:デフォルトの名無しさん [2007/06/09(土) 09:00:19 ] >>287 JFrame JDialog setVisible(true);
290 名前:デフォルトの名無しさん [2007/06/09(土) 09:17:10 ] ヒントになりました。どうもありがとうございました。 会社がJAVAを主力にしていて、その勉強の一貫でもあるので、 ここはJAVAでやってみます。
291 名前:デフォルトの名無しさん [2007/06/09(土) 11:38:15 ] こんなことをしたいんだが、方法はありますか? /** * @param vo ヴァリューオブジェ * @param memberName メンバ引数名 public void (Object vo, String menberName) { //voのmemberNameに対応するgetterを呼び出す }
292 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:40:40 ] リフレクション
293 名前:デフォルトの名無しさん [2007/06/09(土) 13:27:36 ] javaのオンラインリファレンスを見ても、 目的のソフトを作るにはどのクラスを使えばいいのか全く分からないのですが、 どうすればそういうのが分かってくる様になるんでしょうか? オライリーのリファレンスマニュアルとかを見ればいいんですかね?
294 名前:デフォルトの名無しさん [2007/06/09(土) 13:30:22 ] インターフェースを実装する事って、 そのインターフェースの中にあるメソッドが必ず使われるという担保だけで ちゃんとメソッドが組み込まれていれば必ずしも必要ではない? 上記の場合、クラスにメソッドがあるけど、インターフェースが実装されてない場合 コーディングルール的な事をのぞけば、単純に動かすということだけであれば わざわざあとで実装する必要性はない?
295 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 13:52:35 ] >>294 インターフェイスは、 メソッドが使われることを担保するのではなく、 メソッドが存在することを担保するものじゃないのか? 同じシグニチャのメソッドが存在してもインターフェイスを実装していない場合、 多態性の恩恵に預かれないんじゃないか? 複数のクラスをインターフェイスで総称できなくなる。
296 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:03:52 ] >>295 >メソッドが存在することを担保するものじゃないのか? 失礼しました その通りです。
297 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:03:59 ] >>293 たくさんサンプルを読め サンプルには何を実現しようとしているか目的が説明されているはずだ いろいろ読んでるうちにそれぞれのクラスはどういう目的でどういう使い方をするのか分かってくる あとは自分の目的に合わせて使う応用力の問題
298 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:27:27 ] 質問させてください パターンマッチで末尾にバックスラッシュ(もしくは円記号)があるかどうかを調べたいんです。 そこでサンプルを作るのですが String buf = "\\"; String pattern = "\\\\$"; System.out.println(buf.matcdes(pattern) ? "OK" : "NG"); は"OK"になるのに String buf = "a\\"; String pattern = "\\\\$"; System.out.println(buf.matcdes(pattern) ? "OK" : "NG"); は"NG"になってしまいます。 なにか勘違いしてるのでしょうか。 環境はWinXPで1.5.0_10-b03です。
299 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:35:07 ] すいません。matcdesをmatchesと読み替えてください。
300 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:36:34 ] String#matcdes(String pattern)は文字列全体がpatternにマッチするかどうか
301 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:38:35 ] あ、おれもまんまコピーしちまったwww String#matchesね
302 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:41:53 ] その用途に限るなら、buf.endsWith("\\")でいいんじゃない?
303 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 14:52:41 ] カタコトで「マッチデース」とか言ってる検索係の外人を想像した。
304 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 15:38:54 ] 文字列を、指定した幅内に描画する方法はありますか? 例えば、あるFontで"Sample"という文字列の幅が100だとしますと、この文字列の幅を80に縮小して、 Graphics g に描画する方法を探しています。 描画する文字列の幅は、以下のようにすることで得ることができました。 g.setFont(new Font("Serif", Font.BOLD, 30)); FontMetrics fm = g.getFontMetrics(); int size = fm.stringWidth("Sample") 実際に文字列を描画するには、Graphics#drawStringを使用すると思うのですが、 このメソッドには文字列の幅の指定ができないようです。 描画する文字列の幅を指定する方法がありましたら、ご教授お願いします。
305 名前:デフォルトの名無しさん [2007/06/09(土) 16:03:30 ] byte値を0xFFの形でsysoutしたいのですが、 どうすればいいのでしょうか? 初歩的な質問ですいません。
306 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:06:30 ] >>304 int x0 = 20, y0 = 20; double requestWidth = 100; String text = "ABC"; Graphics2D g2 = (Graphics2D)g; FontMetrics fm = g.getFontMetrics(); double m = requestWidth / fm.stringWidth(text); g2.translate(x0, y0); g2.scale(m, 1); g2.translate(-x0, -y0); g.drawString(text, x0, y0);
307 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:11:12 ] >>305 byte b = -1; System.out.printf("0x%X%n", b);
308 名前:289 mailto:sage' [2007/06/09(土) 16:12:04 ] >300 ありがとうございます。納得いきました。
309 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:16:13 ] >>308 末尾の文字列が\かどうかなら>>302 でいいと思う。 もし、任意のパターンが文字列中に含まれるかどうかを知りたいなら、 Matcher#find()を使って判定するとかかな。
310 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:21:53 ] >>307 ありがとうございます。
311 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:31:13 ] >>306 のstringWidthでは描画コンテクストを無視するからgetStringBoundsを使った方が正確かもね
312 名前:デフォルトの名無しさん [2007/06/09(土) 16:36:29 ] JAVAからwindowsのバッチファイルを引数を渡して起動したいのですが、 そういった操作をするクラスは用意されているのでしょうか? Runtimeというのを見つけたのですが、これは別物でしょうか? ちょっとコーディング試してみたのですが、ぬるぽが帰ってきます。 文字列入出力なら分かるのですが・・・。
313 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:39:22 ] すみません。 本を参考にjavaを勉強してますが、mybeansを使うところで、 1行目でエラーが出てサーブレットをコンパイルできません。 import mybeans;でコンパイルすると '.' (ドット)がないと出ます。 ただ、本にはimport mybeans;と記入するように書いてありますが、 付録のCDに入ってる手本のソースファイルにはimport mybeans.*; と書いてあったので、そのように記入してコンパイルすると、 今度は、パッケケージmybeansは存在しませんと出ます。 で、サーブレットをコンパイルする際の、ディレクトリの位置の問題かと思って、 mybeansパッケージと同じディレクトリでコンパイルすると、 1行目のimport mybeans;のエラーはでなくなりましたが、 2行目3行目のimport javax.servlet.*;とimport javax.servlet.http.*; のクラスが存在しないと出てしまいます。 開発環境はJDKの1.6.0.1とtomcat 5.5です。 mybeansを使うにはnetbeansなどの他の環境が必要なんですか?
314 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:43:46 ] package mybeans;とちゃうの?
315 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:56:48 ] >>312 public static void main(String[] args) throws Exception { Process p = new ProcessBuilder("hoge.bat", "moge").start(); java.io.Reader in = new java.io.InputStreamReader(p.getInputStream()); while (true) { int c = in.read(); if (c == -1) break; System.out.print((char)c); } in.close(); } hoge.bat echo %1
316 名前:310 mailto:sage [2007/06/09(土) 17:00:03 ] >>307 すいません。そのメソッドないです。 もしかして1.5じゃないとダメですか?
317 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:01:11 ] >>314 mybenasのパッケージ(ディレクトリ)に入れてある、 コンポーネントの方のjavaファイルの1行目はpackage mybeans;で、 試しに単独でコンパイルしたらコンパイルできました。 でもサーブレットの方のjavaファイルの1行目がimport mybeans;になってて、 >>313 のような状況です。
318 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:06:31 ] >>316 printf は .5以降じゃないとだめ。
319 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:23:09 ] >>316 実行環境のバージョンくらい最初から書け String s = Integer.toHexString(b).toUpperCase(); System.out.println("0x" + s.substring(Math.max(s.length() - 2, 0)));
320 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:34:56 ] >>305 final String hexdigit = "0123456789ABCDEF"; System.out.println("0x" + hexdigit.charAt((b >> 4)&0x0F) + hexdigit.charAt(b & 0x0F));
321 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 17:35:09 ] >>316 そう。printf()は1.5以降。 int i = (int)b; if (i < 0) i += 256; String s = Integer.toHexString(i).toUpperCase(); if (s.length() == 1) { s = "0x0" + s; } else { // s.length() == 2 s = "0x" + s; } System.out.println(s); あたりをどうぞ。
322 名前:デフォルトの名無しさん [2007/06/09(土) 17:55:03 ] JavaでWindowsのペイントのようなソフトを作りたいのですが、 参考になるお勧めの参考書・サイトありますか?
323 名前:310 mailto:sage [2007/06/09(土) 18:22:49 ] >>319 >>321 できました。ありがとうございます。
324 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 18:37:42 ] >>322 「お絵かき java」で検索
325 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 18:50:32 ] >>313 書のタイトルとページ数を書け。 もっているヤシがいるかもしれない。 その上でソースをあげてくれよ
326 名前:312 [2007/06/09(土) 19:00:26 ] >>315 ありがとうございます! エラーが5やら2で帰ってきて(作業ディレクトリ?)作業が難航していますが そのソースをモトに進めたいと思います!
327 名前:デフォルトの名無しさん [2007/06/09(土) 20:06:36 ] たぶん FAQ だと思うのですが、 整数を16進数表記に変換するには Integer.toHexString(i); とか Integer.toString(i, 16); とか があるとのことで、 byte[] b = {0x40, 0x24, 0x31, 0x08}; for(int i = 0; i < b.length; b++) System.out.print(Integer.toHexString(b[i] & 0x0FF)); とすると、 4024318 になってしまって 0 が抜けてしまいます。 CharacterEncoder ce = new HexDumpEncoder(); System.out.print(ce.encode(i)); も試してみたのですが、こちらは余計なものが付いてしまいます。 なんかすっきりした方法はあるのでしょうか?
328 名前:デフォルトの名無しさん [2007/06/09(土) 20:13:44 ] for(int i = 0; i < b.length; i++) System.out.print((b[i] < 0x10 ? "0" : "") + Integer.toHexString(b[i] & 0x0FF));
329 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:20:20 ] あ、byte か。 for(int i = 0; i < b.length; i++) System.out.print(((b[i] & 0x0FF) < 0x10 ? "0" : "") + Integer.toHexString(b[i] & 0x0FF));
330 名前:デフォルトの名無しさん [2007/06/09(土) 20:21:31 ] >>328 さっそくありがとうございます!! でもなんか昔の BASIC のコード見てるみたいでぜんぜんすっきりしないんですけど
331 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:44:45 ] System.out.print(Integer.toHexString(b[i] & 0x0FF)); を System.out.printf("%02X", b[i]); でだめ?
332 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:04:34 ] >>331 327じゃないけど sprintfみたいな機能ならあるとうれしい
333 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:18:48 ] >>328 =329 Integer.toHexString(b[i] | 0xffffff00).substring(6) とか。
334 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:23:06 ] せっかくPrintStreamにprintfが付いたのに PrintStreamがOutputStreamだからStringに持って来れん これだからJavaは使えん糞だと言われるんだよなぁ
335 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:38:25 ] >>334 String.formatメソッドとかFormatterクラスをよく調べてみたことある?
336 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:51:55 ] PipedOutputStream po = new PipedOutputStream(); PipedInputStream pi = new PipedInputStream(po); PrintStream ps = new PrintStream(po); for(int i = 0; i < b.length; i++) ps.printf("%02X", b[i]); byte[] bo = new byte[100]; int len = pi.read(bo, 0, 99); String s = new String(bo, 0, len); System.out.println(s);
337 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:55:55 ] すみません。HelloWorldのクラス化でいきなりもうダメぽです。 ↓のようなプログラムを書いたのですが、printlnの("の部分がコンパイル通りません。 なんかIDがありませんと言われてしまいます。何故でしょうか?意味が・・・ public class UserInput { System.out.println("Hello World"); } public class MyJavaTest { public static void main(String args[]) { UserInput(); } }