1 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 12:32:06 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド116【歓迎】 pc11.2ch.net/test/read.cgi/tech/1213347130/ 次スレは>>990 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
486 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 00:55:47 ] >>483 Javaではけっこう手間がかかる 方針としてはたぶんこんな感じ 1.与えられた式を後置記法に変換する 2.左から式を読んでいく。数値だったらスタックに積み、 演算子だったら積んであった数値をスタックから出して計算する ちょっと複雑。詳しくは「後置記法」あたりで検索してみては 他にはJavaと連携できる別の動的言語を呼び出して、evalに通すとかって方法も無いではない
487 名前:483 mailto:sage [2008/07/23(水) 01:04:25 ] >>486 ありがとうございます。とりあえずやってます!
488 名前:455 mailto:sage [2008/07/23(水) 01:38:36 ] >>458 ありがとうございます、2でやってみたらとりあえず動きました! 本当にありがとうございました!
489 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 04:07:22 ] >>483 逆ポーランド記法 RPNでググレ
490 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 05:00:26 ] カッコに対応しなくていいなら、逆ポーランド使わなくとも2-passで、 1. 左から順に取り出して、乗除算だけ計算 2. 左から順に取り出して、残った加減算を計算 でいいじゃん
491 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 07:53:34 ] JavaCC
492 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 10:06:00 ] www.google.co.jp/search?hl=ja&q=%EF%BC%91%EF%BC%92%EF%BC%8B%EF%BC%91%EF%BC%93%EF%BC%8A%EF%BC%91%EF%BC%93%EF%BC%8F%EF%BC%91%EF%BC%91%EF%BC%8D%EF%BC%99%EF%BC%99%EF%BC%9D&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= Googleで計算してHTMLをパースして答えを取り出すのはどう?
493 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 10:36:12 ] グローバルフィールドとしてのオブジェクトの参照は何バイトくらい使用しているのでしょうか? 例を示すと下のような感じです。 class Hoge{ Hage h; // これのサイズ } class Hage{ } 特にメモリ云々を気にしている訳ではないのですが気になったので質問させていただきました。
494 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 12:27:52 ] >>493 調べたわけではないが内部的にはレジスタ長かポインタの大きさかな。 h に格納されるオブジェクトがヒープをどれだけ食ってるかは知らない。
495 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 12:52:39 ] オブジェクトヘッダの推定量なら、ちょっと古いけど groups.yahoo.co.jp/group/jvm-talk/message/68?expand=1 あたりが参考になるかも?
496 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 14:06:52 ] プロファイル取った方が確実
497 名前:デフォルトの名無しさん [2008/07/23(水) 18:41:53 ] 最近SwingのJTableからMySQLのTableの更新、追加、削除をするよう、それぞれプログラムを書いてみました。 お伺いしたいのですが、みなさんはこんな用途にSwingは使われますか? なにかもっとデータベースのプログラムの用途に向いたものがありそうな気もして、ご質問させてもらいます。
498 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 20:26:02 ] ・JavaDocの書き方について 自分で作ったクラスにつけるJavaDocの書き方に定石ってありますか? 英語でなら以下のサイトにあるのですが、その日本語版があれば教えていただきたい。 Requirements for Writing Java API Specifications java.sun.com/j2se/javadoc/writingapispecs/index.html
499 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 20:44:23 ] JavaDocの書き方 ・忘れんな ・日本語でおk ・メンテ汁 くらいじゃね
500 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:09:39 ] 言語が違っても書く内容は同じでいいでしょ
501 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:18:18 ] int A = 123; と定義して、Aが数値型かどうか判断するとき どうすればいいですか?
502 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:20:11 ] Javaでそれを判断しなければならない状況があるのか?
503 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:22:45 ] >>501 こうか? public class Test{ static boolean isNumber(Object o) { return o instanceof Number; } public static void main(String[] args) { int A = 123; System.out.println(isNumber(A)); } }
504 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:29:24 ] >503 ありがとうございます!! 解決しました。 isNumberを使えばよいのですね。 結構ググッたけど見つけられませんでした。
505 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:31:06 ] なんともはや
506 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:32:22 ] 503氏は見やすいように分離しただけで、 処理のキモはinstanceof演算子ね
507 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:36:05 ] ああ、そうですね>< isNumberは自作ですね。 instanceofは知ってたんですが、こういう 使い方は気づきませんでした。
508 名前:501 mailto:sage [2008/07/23(水) 23:46:52 ] さっきの続きですが、 インスタンスを生成せずに型を調べる方法はありますか?
509 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:52:24 ] >>508 ない。 インスタンス生成せずに型を調べたいケースってのも思いつかんが。
510 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:53:02 ] >>508 いったい何をしたいんだ。 そんなことが必要になる状況は、ふつうないぞ。
511 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:53:03 ] >503のってAをボクシングでIntegerに変換してからinstanceofしているわけで、なんか違うんじゃね?
512 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:53:56 ] プログラマが知っておくべきことだろそれは
513 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:54:41 ] >>508 ね
514 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:55:47 ] あれだ、Eclipseでも使えってのが回答か?
515 名前:508 mailto:sage [2008/07/23(水) 23:56:33 ] 具体例をあげると、 コンソールなどから入力された値が、文字なのか数値なのかを 判定したいんですけどこのような場合はどうすればよいでしょうか?
516 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:58:58 ] すみません。コンソールからの入力は確実にString型なので例が悪かったです。 コンソールから入力された値が本当にString型なのか確認したいときは どうすればよいでしょうか?
517 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:59:36 ] >>515 それは「値の型」を調べたいんじゃなくて、コンソールから来た「文字 列」が数字を表現したものかどうかを調べたい、ってこと。
518 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 23:59:38 ] String str = input(); if(input.match("[0-9]+")) { System.out.println("数字です"); }
519 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:00:29 ] >516 戻り値がStringな時点でString以外はねーよ
520 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:02:32 ] >>517 はい。そういうことです。 確かに書き方が悪かったです。 みなさん、申し訳ないです。 >>518 なるほど。ありがとうございます。 それのことです!!
521 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:03:04 ] ていうか自分でパーサ書けよ。それくらい
522 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:04:37 ] >>519 確かにそうなんですけど、無意味ですがやらなければならないんです。
523 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:13:10 ] 数値型かチェックした後に数値に変換するんだろうから、 変換ロジックと互換性のある検査ロジック使わないと駄目だよ。 例えば、Integer.parseIntでとNumberFormat.parseでは受け入れる文字列に違いがあるよ。
524 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:23:21 ] なるほど。参考になりました。 アドバイスを考慮してコーディングを進めていきます。
525 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:26:43 ] >>520 それは「書き方が悪い」んじゃない。その2つは全く違う概念だ。
526 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:36:03 ] そうですね。アドバイスを頂く過程で気づきました。 最初は、オブジェクトの型を調べなければならないと思っていました。 でも実は型を調べるのではなく、String型の中身が数値なのか文字なのか ということを調べることだったんですね。
527 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:39:12 ] 要するに自分が何したいか分かってないと
528 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 00:44:41 ] そうですね。分かったつもりになっていました。 以後気をつけなければならないな、と思います。
529 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 08:10:49 ] そういう時に例外使うんじゃないの?
530 名前:デフォルトの名無しさん [2008/07/24(木) 08:31:51 ] genericsの質問です。 自己参照する型はどう書くのでしょうか? つまり、 void someMethod( java.util.List<X> x ) { x.add( x ); x = x.get( 0 ); } がエラー/警告を吐かないようにするためにはXに何を書けばいいのでしょうか?
531 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 09:00:54 ] これでどうよ <X extends List<X>> void someMethod(X x) { x.add(x); x = x.get(0); }
532 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 10:45:30 ] javaソースからjavadocの要素を取り出してエクセルに出力するツールを作成したいのですが、 エクセルはPoiを使用する予定ですが、javaソースからjavadocの要素を取得するAPIが分かりません。 標準API問わず、何か便利jarかAPIありますでしょうか?
533 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 10:59:04 ] doclet API 使えば?
534 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 11:36:26 ] 画像を読み込みたくて BufferedImage img = ImageIO.read(new File("aaa.jpg")); を書いたのですが、コマンドプロンプトからは実行し読み込めるのですが、 Eclipseのデフォルトパッケージに入れたものからは読み込めません。 絶対パスで指定すればできるのですが、相対パスで書くにはどうすればいいでしょうか。
535 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 12:14:31 ] 相対パスってのはカレントディレクトリが基準なんだが、カレントディレクトリがどこかは確認したか? System.out.println(System.getProperty("user.dir"));
536 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 12:23:34 ] >>535 解決しました。 ソースのフォルダに画像が入っていたため読み込まれなかったようです。 また、コマンドプロンプトで実行したときはカレントディレクトリが ソースのフォルダになるため読み込めたようです。 ありがとうございました。
537 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:07:54 ] 外部コマンド(exe)を実行するために下記のような ソースを書いているのですが 連続する2つ以上のスペースが一つにまとめられてしまいます。 Runtime.getRuntime().exec(strCmd); これを正常に実行するにはどうしたらよいでしょうか? よろしくお願いいたします。
538 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:49:31 ] >>537 strCmd の中身がどんなときまとめられて、 まとめられることでどんな影響があるのさ
539 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:59:12 ] >>538 すみません。事故解決しました。 String strCmd[] = new String[3]; strCmd[0] = "hoge.exe"; strCmd[1] = "hoge1"; strCmd[2] = "hoge2"; Runtime.getRuntime().exec(strCmd); としたらOKでした。
540 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 21:17:10 ] >>483 >>492 import java.io.*; import java.net.*; public class CalcClient { public static void main(String[] args) throws IOException { String answer = calc("12+13*13/11−99= "); System.out.println(answer); } public static String calc(String target) throws IOException { URL url = new URL("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"); } }
541 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 23:07:52 ] 定期的に上がるネタだな
542 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:04:20 ] 質問させてください 今度、業務でJavaでGUI作ることになりました 会社から勉強しとけと言われているのですが、ここだけは読んでおけというウェブページ(できれば日本語)もしくは書籍はありますか? ちなみにSE6使うそうです 当方のスキルはJava関係だとSE6使ってwebアプリのロジックとservletまわり書いていました よろしくお願いいたします
543 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:09:33 ] Tutorialは一通り読んだ方がいいですね。 というかそれ読んで、自分でこなしたらそれだけで基礎知識としては十分だと思います。
544 名前:デフォルトの名無しさん [2008/07/25(金) 00:37:17 ] 質問させてください Eclipseだけはあるのですが、JDKは絶対に必要ですか?教えて下さい
545 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:38:17 ] eclipseスレへいけ
546 名前:デフォルトの名無しさん mailto:age [2008/07/25(金) 14:51:49 ] POI(HSSF)で、特定のセルにドロップダウンリストを 作りたいのですが作り方がわかりません。 そもそも作れるのかどうかも模索中なのですが・・・。 テンプレートファイル側でドロップダウンリストを 用意していたのですが、読み込ませた後でそのまま 出力したら、ドロップダウンリストが無効(消滅) していたので、対応してないのかな?とは思って いるのですが・・・ 稚拙な質問で申し訳ありませんが、どなたか救いの手を・・・
547 名前:デフォルトの名無しさん [2008/07/25(金) 14:59:06 ] 質問というか意見を伺いたいのですが、 Swingでアプリケーションのフォームを作成する場合に Model-View-Presenterパターンを適用したとすると、 TableModelはM/V/Pいずれの所有物とすべきですか?
548 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 15:04:15 ] モデル
549 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 15:13:46 ] 何とかパターンが2重構造になってると思えばわかりやすいかもね。 狭い目で見るとモデルで広い目で見ると別のグループに入ってる。
550 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 16:04:57 ] モデルとJTableを繋ぐアダプタってあたりでどう それってプレゼンタかな setValueというイベント(?)も来るし
551 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:11:41 ] >>547 のModel-View-Presenterパターンって、 Model-View-Controlerパターンと別物? ちょい気になったので教えて。
552 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:36:46 ] Presentation-Service-Persistence と混ざっているんじゃね?
553 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:48:22 ] >>551 ぐぐってみたが、別物っぽい。ただ、数分眺めただけなので、すぱっと違いのわかるページは見付けてないんだけど。
554 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 05:34:54 ] Modelの更新通知の責務がControlerにあるMVCじゃね?
555 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 08:25:07 ] mainのみのシングルスレッドでウェイトをかけるには、どうしたらいいのでしょうか マルチスレッド化してしまうのも考えたのですが
556 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 10:49:26 ] 5秒待つとかそういうことか? それなららばThread.sleep(5000);
557 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 11:13:35 ] mainに書こうとするとThread.sleepじゃ駄目じゃなかったか? 自身のスレッド取得してsleepとかだった気がする・・忘れた・・
558 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:35:48 ] javamailでhotmailへ送信ができません。 Properties props = System.getProperties(); // SMTPサーバーのアドレスを指定 props.put("mail.host","hotmail.com"); Session session=Session.getDefaultInstance(props,null); MimeMessage mimeMessage=new MimeMessage(session); // 送信元メールアドレスと送信者名を指定 mimeMessage.setFrom(new InternetAddress("asde@hotmail.com","七誌","iso-2022-jp")); // 送信先メールアドレスを指定 mimeMessage.setRecipients(Message.RecipientType.TO,"hogehoge@hotmail.com"); // メールのタイトルを指定 mimeMessage.setSubject("Hello World JavaMail","iso-2022-jp"); // メールの内容を指定 mimeMessage.setText("testtest","iso-2022-jp"); // メールの形式を指定 mimeMessage.setHeader("Content-Type","text/html"); // 送信日付を指定 mimeMessage.setSentDate(Calendar.getInstance().getTime()); // 送信します Transport.send(mimeMessage); ご教授お願いします
559 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 14:19:32 ] stacktraceでおk
560 名前:デフォルトの名無しさん [2008/07/26(土) 15:46:36 ] String を int に変換するのってどうしたらいいんですか?
561 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 15:56:19 ] >>560 入門書1冊やってから出直してこい
562 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 16:34:00 ] やさしいjavaにはそんな方法書いてなかったきがする。あれはダメだ
563 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 17:04:30 ] やさしい(ところだけ)Javaだからな
564 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 20:05:07 ] Stringからintは文字入力当たりで乗ってそうな気がするが・・
565 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:39:18 ] 教育は国家の土台なのに。 これじゃ砂上の楼閣だ。
566 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:05:00 ] やさしいjavaもやさしいC++も書いてあることかわらないからな
567 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:32:40 ] どんな頭してんだよw
568 名前:デフォルトの名無しさん [2008/07/27(日) 00:16:27 ] プログラム言語Javaを読んでて、finalがスレッドで特別な意味を持つ、って感じの説明の意味が分からん。 あるスレッドでStringをクラスのstaticフィールドに書き込んで、その後に別のスレッドからそのフィールドを 見ても、書き込んだ値が見えることが保証されない。でも、finalにすれば保証される。 不変オブジェクトだから同期が必要ない、と言うのはプログラマの誤解だ。 みたいなことが書いてあったが、値を変えない見るだけの変数なら、同期なんて必要ないし、 普通、他の言語でも同期なんてしないよな?ちがうのか?
569 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:21:01 ] >>568 値を変えないで見るだけ、というのは初期値の0から変えない場合に限る 他のスレッドからは、変更する前の値である初期値の0が見える場合がありうる www.ibm.com/developerworks/jp/java/library/j-jtp02244/ www.ibm.com/developerworks/jp/java/library/j-jtp03304/
570 名前:デフォルトの名無しさん [2008/07/27(日) 00:49:43 ] >>568 そう簡単な話じゃないってこったw
571 名前:kptdEsCUpYdeJPfdZFS mailto:qviwwp@ejnvyf.com [2008/07/27(日) 00:52:28 ] hQS1UB <a href="ejrfsnyjpyid.com/ ">ejrfsnyjpyid</a>, [url=fyhfhnswsdjf.com/]fyhfhnswsdjf[/url], [link=mevudxopwjek.com/]mevudxopwjek[/link], jwqpsqacgcmw.com/
572 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:19:57 ] あるスレッドで書き込んだものが別のスレッドで見えるのが保証されるのは 何らかの方法で同期化された場合だけ
573 名前:デフォルトの名無しさん [2008/07/27(日) 02:10:13 ] Javaでファイルの移動を実行させる場合には、みなさんは、どのメソッドを使ってますか? (コピーではなく移動)
574 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:12:13 ] File#renameTo()
575 名前:デフォルトの名無しさん [2008/07/27(日) 02:12:53 ] >560 www.nextindex.net/java/class/Integer.html StringをvalueOf()でInteger型にして、 Integer型からparseInt()でint型にする
576 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:13:13 ] File#renameTo
577 名前:デフォルトの名無しさん [2008/07/27(日) 02:18:06 ] >>574 import java.io.*; public class TestRenameToDir{ public static void main(String[] args)throws IOException{ File f = new File("a\\"); f.renameTo(new File("b\\")); } } こんな感じで書いてみたけど、フォルダ"a"の中身は移動してくれません・・
578 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:28:24 ] >>575 Integer#parseInt(String) で String から int に出来るだろw あと、Integer から int は parseInt() ではなく intValue()
579 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 07:01:20 ] >>558 MessageID は設定しなくていいのか? 他のところ(yahoo とか infoseek とか)には送れている? Outbound Port 25 Blocking な ISP かどうかは確認した? Hotmail 側でなんらかの受信遮断処置(Sender ID/SPFとか)をしていないか確認した?
580 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 08:52:03 ] >>573 カットアンドペーストをやりたいってこと? バイトストリームで新しいファイルに全て書き写して 元のファイルをFile#delite()で消すのは?
581 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 10:32:35 ] >>577 それだとaの中身をbに移動じゃなくて、aをbにリネームだな。
582 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 11:48:34 ] 流れぶったぎってすいません。 とりあえずJAVAの絵本を読んたので、これからJAVAを始めたいのですが 初心者から中級者あたりまで、大人の階段を一気にかけのぼれるような 本を教えてくださいませんか。 だいたい三冊〜四冊くらい買う予算は用意してます。 初級者→できる初級者→職場にいても舌打ちされない程度の雑用兼初心者→飯に誘ってもらえる程度の中級者 という段階を踏みたいです。 単純に、みなさんが昔参考にした本を、赤ちゃんレベルから順番に教えていただければいいかな、と。
583 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 11:53:56 ] 「本で勉強しました」っていうのは軒並み使えないので とりあえず何か作れ。
584 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 11:56:25 ] >>577 「ファイルの」移動だと言っとろーが。 a\c.txt b\ で a の中身を b に移動させたいのなら new File("a\\c.txt").renameTo(new File("b\\c.txt")); にしないといけないんじゃないか。
585 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 11:59:20 ] おまいら、今日は日曜なのに仕事してんの?
586 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:00:19 ] >>583 ありがとうございます。 本だけ読んでも、童貞のエロ孔明にすぎないですもんね。 でも、今の僕は「ハーイー」しか言えないイクラちゃん状態なんです。 せめて人間の言葉がしゃべれるレベルになるには、何か本を読まないとダメかなと。
587 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:07:03 ] >>582 「三冊〜四冊」読んだだけで「飯に誘ってもらえる程度の中級者」になれたら苦労せんわw 本を読んで理解するのも新しいことをするには必要だが、>>583 が言うように自分で作ってみたり、 誰かが作ったものを読んで、どうしてそうなってるのかとかどうしたらより良くなるのかとか考えろ。 そういうことで「階段を登れる」もんだと思うぞ。
588 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:07:09 ] >>582 入門書が終わって一通り言語仕様を理解しても、困ったことにそれだけじゃ足りない オブジェクト指向や周辺技術についての理解が必要 本はもちろん有用だが、コードを読み書きしないとダメ 一冊だけ。「Effective Java」どちらかというと中級者向けになるんだろうか しばらくすると第二版が出るらしい 入門書はよく分からん。ただ「独習Java」は勧めない
589 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:15:17 ] >>585 ここは仕事場だったのかw 完全に遊びに来てるぞww
590 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:16:30 ] >>587 そうですね。考えが甘かったス。 >>588 ありがとうございます。 その本を買って、わけのわからなさに打ちのめされてみたいと思います。 やっぱりコードの読み書きが大事なんですね。 サンプルの多そうな本を買ってみます。
591 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:25:32 ] >>588 俺は独習Javaやったんだけど、わかりやすくて入門書としては良いと思うんだが。 なぜお勧めできないの?
592 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:29:55 ] >>589 休日出勤の息抜きにカキコしてるの?
593 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:35:22 ] >>582 2冊目としては ・Sun認定資格 SJC-Pの教科書 ついでに資格もとれるかも ・JavaプログラマのためのUML UMLやOOPに関する知識がざっくり得られる。 ・Effective Java Java言語独特の作法、やってはいけない事を教えてくれる。 「独習Java」は俺もお勧めできない。
594 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:40:02 ] >>593 ちなみにお勧めできない理由を教えていただけると嬉しいです
595 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:41:57 ] >>591 いきなりオブジェクト指向とは云々と書かれてて頭を抱えた記憶があるのと、 使われているクラスが全体的に古い感じがする(VectorとかStringBufferとか) JDK5.0以降の構文拡張に関連する記述が少ない ・・・・と書いてて気づいたが、もう第4版が出てたのか。そっちは確認してない
596 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:08:31 ] >>595 なるほど。ありがとう。
597 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:11:59 ] >>595 StringBufferではいけないの?
598 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:15:48 ] 独習Javaは今となっては古いんだわ、1.4もしくはもっとふるいのがベースだから。 少し遠回りしてもOKならば、俺は勧めるよ。 あれをやり込めばかなりの量のコードを書くことになるからね。 その後、1.5に対応するために、開発者ノートシリーズ「Java1.5 Tiger」ってのをお勧め
599 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:23:04 ] >>597 今ならStringBuilderがある。違いは同期化の有無
600 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:27:36 ] >>599 StringBuilderが同期がないんでしょ?
601 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:27:52 ] >>593 ありがとうございます。 早速アマゾンで検索したのですが ■Sun認定資格 SJC-Pの教科書 これはありませんでした。正式名称でしょうか。 また、こういう初心者から入りやすい教科書系の本は、自分に必要だと思いましたので この本以外の教科書系で良いものがありましたら、よろしくお願いします。 ■JavaプログラマのためのUML 似たような名前の本が二冊ありました。ソフトバンクから出ているほうでいいのでしょうか? カットシステム社から出ている本も評価が高いようです。 すいません。
602 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:28:42 ] >>597 別に問題はない。ただ速度を求めるなら StringBuilder ってだけ。 最近は CPU も早いんだし、StringBuffer でもいいけどね。
603 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:32:27 ] >>598 「Java 5.0 Tiger」だな
604 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:38:47 ] >>601 SUN教科書Javaプログラマ(SJC-P) (SUN教科書) www.amazon.co.jp/SUN%E6%95%99%E7%A7%91%E6%9B%B8Java%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E-SJC-P-SUN%E6%95%99%E7%A7%91%E6%9B%B8-Paul-Sanghera/dp/4798112186/ref=sr_1_1?ie=UTF8&s=books&qid=1217133309&sr=1-1 JavaプログラマのためのUML www.amazon.co.jp/Java%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEUML-%E3%83%AD%E3%83%90%E3%83%BC%E3%83%88%E3%83%BBC-%E3%83%9E%E3%83%BC%E3%83%81%E3%83%B3/dp/4797325135 どちらもAmazonの評価は極めて低いようだ・・・ まあいろいろな人の意見を参考にしてくだされ
605 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:41:34 ] 今まで質問してる人と別人ですけど 俺も本で勉強してて「10日で覚えるJAVA入門」と 「トレーニグドリルJAVA」と「JAVA入門の入門」を買って 基礎の基礎から勉強したいから読んでるんですけど 挙げられた本買ってこようと思います
606 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:12:43 ] 独習javaは演習問題の解答がついてないからうんこ
607 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:40:33 ] >>604 SUN教科書Javaプログラマ(SJC-P) (SUN教科書)を購入することにしました。 評価が低くしているは「初心者向けである」という点らしいので、 逆に初心者の僕には持って来いですね。ありがとうございます。 UMLの本は、もう一冊のほうを買うことにしました。
608 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:51:17 ] 大人の階段上る君はまだシンデレラさ
609 名前:デフォルトの名無しさん [2008/07/27(日) 17:02:40 ] Javaをやってる時点でお子様
610 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 17:08:32 ] Javaを馬鹿にするやつはJava言語規定を読んだことがないんだろうな
611 名前:デフォルトの名無しさん [2008/07/27(日) 17:55:14 ] >>584 なるほど。 ということはjavaではディレクトリの移動は出来ない?
612 名前:デフォルトの名無しさん [2008/07/27(日) 17:58:36 ] item.rakuten.co.jp/book/4014609/ これ使ってるよ
613 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:10:50 ] >>611 ツッコんでいいやら呆れていいやら。 ディレクトリの移動と言っている動作が 「ディレクトリの中身を全て別のディレクトリに移す」 ことで、出来ないと言ってるのが 「File(を示す何か)クラスのrenameTo()のように一発で出来るものが無い」 という意味なら、Javaの標準APIでは無いかもしれない。 が、「javaで」出来ないのかといえば、数行〜数十行のメソッドを書けば出来るだろうし、 標準ではない Jakarta 等にはあるかもしれない。
614 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 18:17:16 ] ディレクトリの移動ってったって、 HDD上での位置は変わらないけど、 そこにどういうパスでアクセスするかって だけの話だからなぁ。 パス情報を変えればいいだけの話。
615 名前:デフォルトの名無しさん [2008/07/27(日) 18:26:35 ] こんなかんじで、ディレクトリ下のファイル一覧を作成しないと、ディレクトリ単位の移動はできない? import java.io.*; public class FileTest{ static FileWriter fw ; public static void main(String[] args)throws IOException{ System.out.println("どのディレクトリのファイル一覧を作成しますか? Directory?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); fw = new FileWriter("list.txt"); File f = new File(br.readLine()); File files[]= f.listFiles(); fileShow(files); fw.close(); } public static void fileShow(File files[]){ for (int i=0;i<files.length;i++){ if (files[i].isFile()){ try{ fw.write(files[i].getAbsolutePath()+"\n"); }catch(IOException e){System.out.println("書き込みエラーです");} } else if(files[i].isDirectory()){fileShow(getDirectory(files[i]));} } } public static File[] getDirectory(File file){ return file.listFiles(); } }
616 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:00:25 ] >>615 ディレクトリ自体のリネームはこんなじゃね? new File("hoge\\").renameTo(new File("hogehoge\\"));
617 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:21:36 ] >>615 java フォルダ 移動でググるとこんなとこが一番最初にでたぞ ttp://tids30.seesaa.net/article/34178646.html
618 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:40:31 ] >>617 上書きは個別に判断しなくちゃならないな
619 名前:デフォルトの名無しさん [2008/07/27(日) 20:26:13 ] >>617 いまのバージョンのJDKじゃコンパイルできないね。 何が原因なのだろう
620 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:40:43 ] >>619 単にclassやimport java.io.*; を省略してるだけ
621 名前:デフォルトの名無しさん [2008/07/27(日) 20:51:31 ] >>620 ありがとうございます
622 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:56:59 ] javax.scriptで使えるJavaScriptのDOMでXPath使える? xpath使いたくてチンコギンギンにしてるんだけど
623 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:11:01 ] そもそもDOMつかえね
624 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 02:54:31 ] 踏み台に使えるよ
625 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 15:57:50 ] アクセスレベルで、public、protected、privateはよく解かるのですが、 パッケージアクセスの使用すべきポイントがわかりません。 本来どのようなときに使うべきものなのでしょうか?
626 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 15:59:18 ] 他のパッケージに見せたくないクラスやメソッドに。
627 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:00:45 ] >>625 すみません。言葉不足でした。 パッケージ内でアクセスが可能なのはわかっているのですが、 クラス配置・クラス設計で考えたときに、パッケージアクセスを使用した方がいいクラス間関係ってどういったものがあるかが知りたいです。
628 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:14:50 ] 同じパッケージのクラスにはアクセスさせたいけど、それ以外にはアクセスさせたくない場合。 パッケージ共通で必要だけどパッケージ外では見せてもしょうがないものに使えばいいんじゃね? パッケージは何かの機能を実現するクラスの集合だから、パッケージ外部に公開する機能を補助するために、 パッケージ内部にだけ必要なようなものが存在することはあるんじゃない?
629 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:16:49 ] 例えば・・・・・・・、テキストエディタのコンポーネントを作るとする たぶん TextEditor クラス本体以外にも、LineBuffer とか UndoBuffer とか色々なクラスが必要に違いないが、 これらはエディタの実装のために必要なだけであって、使うだけの人は触らないだろうし触ってもあんまり意味ないと思われる これらテキストエディタ関連のクラスは全部 com.example.myname.texteditor だとかいったパッケージに入れ、 TextEditor や TextEditorEventListener だとかいった使う人用のクラスやインタフェイスだけ public にしといて、 LineBuffer とか UndoBuffer とかいった内部実装用のクラスはパッケージアクセスにしとけば、 外から見てすっきりするし、勝手に内部構造を触られてややこしいことになったりもしない
630 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:32:57 ] protectedがパッケージスコープも持つのに迷ってしまう人は多いね。
631 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:00:47 ] protected は基本的に継承用だろ。
632 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:02:07 ] Eclipse3.2.0をインストールして、言語パックNLpack1-eclipse-SDK-3.2.1-win32も上書きして メニュー等IDE自体は日本語になったのですが、IDEの[ヘルプ]→ダイナミックヘルプから見れるJavadocが英語のままです。 ここのダイナミックヘルプを日本語にしたい場合はどうしたらよいのでしょうか?
633 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:19:04 ] protectedはパッケージ外から継承されたとき用で、 パッケージ内は基本的にスコープなど気にせずに みんなパッケージスコープを使えっていうのが本来の設計思想。 メンバーのデフォルトスコープがパッケージスコープなのがその証拠。 パッケージ、モジュール、ユニット、ライブラリ呼び方はいろいろだが、 その範囲内は適当にという言語は多いからそれに倣ったのだと思う。 例えばdelphiはprivateがユニットスコープだった。 ただ、javaの利用者がアバウトな使い方を良しとしなかったのでそういった使い方は余りされていない。 みんな一生懸命privateと書いている。
634 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:24:12 ] >>632 mergedoc
635 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:28:50 ] >メンバーのデフォルトスコープがパッケージスコープなのがその証拠。 ってのはどーなんだろね? 単に新しい予約語考えるのが面倒だった、 既存の予約語 例えば package でパッケージプライベートにしても良かったけど 予約語に複数の意味持たせるのは汚いからあまりやりたくなかった、 とかも考えられるけど。
636 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:42:53 ] >予約語に複数の意味 それはすでに final がやっちゃってるような・・・
637 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:45:34 ] >>636 複数の使い方があるだけでいいなら class もあるし。
638 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 18:07:05 ] >>634 あの、MergeDocの解説の通りにやってみましたが ポップアップしか日本語になりません・・・ www.itmedia.co.jp/enterprise/0311/24/epn01.html
639 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 18:08:00 ] デフォルトでは右のほうに出るヘルプビューのjavadocを日本語で見たいです。
640 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 18:56:53 ] なぜjavaはカレントディレクトリを移動できない(させない)のでしょうか?
641 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:02:55 ] カレントディレクトリなんて、ユーザがコマンドラインで指定したファイル名を解釈するとき以外、何に使うんだ?
642 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:27:08 ] いまやWebのほとんどはjavaが絡んでいるって聞きますが、 具体的にWebでのJavaって何をさしているのですか? JavaによるWeb開発をしようと本屋に立ち寄ったはいいけど、 なにやら環境が沢山あり過ぎて何に手を出すべきか迷ってしまいます。 一般にWenでのJava=JSPの本を買うのが普通なんですか?(+DBMS)
643 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:32:23 ] >いまやWebのほとんどはjavaが絡んでいるって聞きますが その統計にjavascriptが混じってることは間違いない。
644 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:34:09 ] > いまやWebのほとんどはjavaが絡んでいるって聞きますが、 そんなことないw
645 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:38:26 ] Webっていってもただのホームページとかでなく、 業務で利用するようなWebシステムです。
646 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:38:33 ] 絡んでるってのはつまり サーバー上でJavaが動くって事じゃないか 動かしてるかどうかは無関係に
647 名前:デフォルトの名無しさん [2008/07/28(月) 19:39:53 ] すくなくとも、JavaScript本は買わないほうがいい 仕事じゃ使わない。
648 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:43:15 ] 使うよ
649 名前:デフォルトの名無しさん [2008/07/28(月) 19:46:42 ] 使うこともある程度 最近は
650 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:54:01 ] 仕事によるだろjk
651 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 19:55:50 ] Tomcatが主流
652 名前:デフォルトの名無しさん [2008/07/28(月) 20:06:57 ] JAVAにまつわる専門用語が氾濫しているが Webは儲からないのでやめたほうがいい
653 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:08:18 ] >>645 社内業務システムなんかだとASP.NETも多いぞ。
654 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 20:13:58 ] 社内業務システムはACCESSとEXCELだろJK
655 名前:デフォルトの名無しさん [2008/07/28(月) 20:41:49 ] Beanがお勧め
656 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:10:16 ] 学校でとりあえずjavaの基礎を習ったのですが、 そこではjavacでコンパイル、コマンドプロンプトからクラスファイルを 指定して実行したのですが、これがjavaの基本なのでしょうか? exeファイルを作って直接実行、ということは出来ないのですか?
657 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:15:29 ] >>656 run anywhereじゃなくなるから、exe化はJavaの思想とは違う。 不可能じゃないけどね。
658 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:21:09 ] exeの変わりにjarと起動用のバッチファイルを生成するプログラムを作ったことがあるよ。 裏でant呼んでコンパイルして最後に*,classを消してしまうプログラムなのだけどわりと重宝した。
659 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:33:27 ] exeにするのはjavaの思想に反しているのは分かりますが… となると、実行には常にコマンドプロンプト等が必要ということですか?
660 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:35:25 ] だからjarファイルにすればダブルクリックで実行できるって
661 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 21:59:24 ] Windowsのアプリが作りたいなら素直にC#にいったほうがいいと思うが Javaとたいして変わらないから
662 名前:デフォルトの名無しさん [2008/07/28(月) 22:18:26 ] C#の将来性は? 結局VC++が増加しそう
663 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:19:38 ] 学校で習いたてならそういう感想を持つだろうけど実際の開発でjavacは使わないから安心していい。
664 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:21:01 ] >>662 それをJavaスレで聞いてどーすんだ?
665 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:25:18 ] >>663 ? なにを使うの?
666 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:26:10 ] >>662 Google Code Jamの言語別統計をみると、C++とJavaが人気のようだけど。
667 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:28:04 ] くそ、こんなときにIDが表示されれば・・・
668 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:31:06 ] >>665 apache ant IDEのeclipseやnetbeansもこれを中で使ってる。
669 名前:デフォルトの名無しさん [2008/07/28(月) 22:33:07 ] >>666 世界ではなく日本国内では?
670 名前:658 mailto:sage [2008/07/28(月) 22:39:28 ] でてきた。こんなのです。学習用には重宝した。 //++@ sample //++m local.test.Hello //++ local/test/Hello.java package local.test; public class Hello { public static void main(String [] args) { new Hello2().hi(); } } //++ local/test/Hello2.java package local.test; public class Hello2 { public void hi() { System.out.println("hello world !"); } } //++ 以上をsample.txtに保存、コンパイルでsample.jarとsample.batを作って実行。 C:\>trj sample.txt C:\>sample hello world !
671 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:42:32 ] >>668 Antはコンパイラと言うわけではないのでは・・・
672 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:47:05 ] >>670 良く分からないが、それこそ、Antでするようなこと?
673 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:57:23 ] >>672 そのプログラムは ディレクトリ掘ってjavaファイル配置してbuild,xml作ってantを呼び出す。 jarだけ元のディレクトリにコピーして作業用のディレクトリを削除。 antはコンパイラというよりmakeユーティリティ。 makeと違ってjavacそのものではなくjavaのランタイムの中にある コンパイル用のモジュールやjarを作るためのモジュールを呼び出す。
674 名前:デフォルトの名無しさん [2008/07/28(月) 22:58:40 ] .NETやJAVAってどんどんいろんな物取りこんでんだな、 JAVAは JRubyでRubyが JythonでPythonが .netは ASP、Visual Basic、Visual C#、Visual C++、Visual J# 等が動くようになってる。 時代の流れは速いな・・・ これからプログラミングするには覚えるの多すぎるな 最近の若い世代は覚える技術が多すぎて可愛そうだわ
675 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 22:59:54 ] IronPythonやIronRubyもあるでよ
676 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:28:58 ] Javaは配列とオブジェクトは参照渡しということですが class Hoge{ public int x; Hoge(int t){x=t;} } public class Cui{ public static void main(String[] args) { Hoge A=new Hoge(7); Hoge B=new Hoge(999); change(A,B); System.out.println(A.x +" , "+B.x); } public static void change(Hoge A, Hoge B){A=B;} } 上の表示結果は「7 , 999」でchange内をA.x=B.xにすると「999 , 999」になる、 というのがどういうことなのかイマイチ分かりません。 参照渡しなら元のAはBのオブジェクトが指す所を指すようになって A=Bで「999 , 999」になるように思えたのですが、どうしてでしょうか?
677 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:31:46 ] 参照渡しをしているわけではありません。 参照を値渡ししてるだけです。
678 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:33:49 ] メソッドですでに参照として受け取ってるから。 mainメソッド内で持っている、あるオブジェクトへの参照Aと、メソッドで受け取った参照は、参照先は同じでも、別物。 だから、上の例ではchangeで確かにAの指す先はBとしてあるが、mainメソッド内の参照には影響がない。
679 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:38:08 ] オブジェクトの参照も「値」で、その値をコピーして渡してる感じ で、いいんだっけ?
680 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:57:48 ] main内の Hoge A=new Hoge(7); これでAが指してるアドレスが仮に0x1110〜0x1120だとすると、 change(Hoge A , Hoge B)でのAは別のアドレス(仮に0x2220〜0x2230)を指していて、 その中身が0x1110〜0x1120に入っているものと同じになるってことでしょうか?
681 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:02:26 ] A の指してる先は同じ しかし A 自体は別々
682 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:03:17 ] それはクローンだな。 オブジェクトの実体:0x1100〜0x1200 main内のA:0x2000-0x2010(実体の格納先など) change内A:0x2300-0x2310(同上) アドレスで書くとかえって分かりにくくなるかもね。 サイズなんか適当だから。
683 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:11:41 ] 代入前 ------------ -Hoge-- | main の A |---> | x = 7 | ------------ ------- | main の B |-----↑----- ------------ | ↓ | change の A |------ -Hoge--- ------------ | x = 999 | | change の B |--------> -------- ------------ A=B 代入後 ------------ -Hoge-- | main の A |---> | x = 7 | ------------ ------- | main の B |------------ ------------ ↓ | change の A |--------> -Hoge--- ------------ | x = 999 | | change の B |--------> -------- ------------ mainのAは何も変わらない
684 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:26:35 ] ああなるほど! 参照ではなく参照を値渡しているって「指している矢印」がもうひとつ出来るイメージですね! 皆さんのおかげでやっと理解することが出来ました。 こんな時間にも関わらずもの凄く分かりやすい説明をして頂いて本当にありがとうございます!
685 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:36:46 ] Javaの変数は、 プリミティブに対しては値そのものが入るけど、 オブジェクトに対してはそのオブジェクトへの参照が入る メソッドは、それらの値渡しをする
686 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 08:33:20 ] javaでは参照渡しはないのですか
687 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 08:37:54 ] ないです
688 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:17:58 ] プリミティブ以外は参照わたしじゃなかったのかい?
689 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:22:21 ] >>688 いいえ。参照の値渡しです。
690 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 10:05:49 ] メタには参照渡しだけど、メタじゃ済まない部分が顔を出す。
691 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:16:07 ] ここで聞いて良いものか微妙かもしれませんが、こういうのってどうやって作るのでしょうか? www.nicovideo.jp/watch/sm3943529
692 名前:デフォルトの名無しさん [2008/07/29(火) 19:30:56 ] すみません、バケットソートをカウントじゃなく 二次元配列で作ったらものすごく処理が遅くなったんですけどどうしてでしょうか?
693 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:39:34 ] >>691 普通にタグ出力しまくるだけでおk
694 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:46:03 ] >>692 それだけだと作り方が悪いとしかいえない。
695 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:52:39 ] >>691 画像読み込んで1pxづつ見ていくだけ 色取得も出来るし簡単だよ。 多分ものすごいHTMLのソースになってるんだろうけど・・
696 名前:デフォルトの名無しさん [2008/07/29(火) 19:56:33 ] >>694 2次元配列のプログラム思い出しながら書いてみました。 だいたいこんな感じです。 maxはバケットソートを使って並び変えたい要数の最大値です。 max++; sort_array.length=tail int[][] bucket=new int[max][tail]; for(int i=0 ; i<tail; i++){ int m=0; while(bucket[sort_array[i]][m]<=1){ m++; { bucket[sort_arrray[i]][m]=sort_array[i] } for(int i=1; i>tail; i++){ while(bucket[i][m]<=1){ sort_array[i]=bucket[i][m] m++: } }
697 名前:デフォルトの名無しさん [2008/07/29(火) 20:00:18 ] すみません、一個目のwhileのとこ「<」と「>」間違えてました while(bucket[sort_array[i]][m]>=1){ m++; }
698 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 20:04:41 ] バケットソートの高速性は要素数に比例する量の処理で済むところだ そのコードのように二重ループにすると要素数の二乗に比例する量の処理が必要になる 大雑把に言ってバブルソートと同じ計算量
699 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 20:28:17 ] どうしようもない質問かと思いますが コンストラクタというのはインスタンスを作成するのに使う クラスの特殊なメソッドのようなものという認識で良いのでしょうか?
700 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 20:39:30 ] うん
701 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 20:47:06 ] >>700 ありがとうございます コンストラクタの作成と書いてあったので混乱しました 「クラスのコンストラクタを使ってインスタンスを作成する」 と脳内変換しておきます
702 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:16:58 ] >>693 ,>>695 レスありがとうございます! 1px取得してその色の■をhtmlの方でmarginとpaddingを0にして ひたすら敷き詰めていけば出来るものなのかな? ちょっとその方向で今から作ってみようと思います。
703 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:18:11 ] >>701 コンストラクタの作成は、コンストラクタの定義を書くということだと思うが
704 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 22:26:23 ] >>702 ちょっとやってみたけど単純にテキストじゃないっぽい? ブラウザにもよるかもしれないけれど、テキストでやると、属性値が変わる部分でずれる部分があるから、テーブルでやってみたらきれいにできた。 public static void encode(BufferedImage input,PrintStream writer,String pxStr,int width,int height){ BufferedImage out = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); out.getGraphics().drawImage(input, 0, 0,width,height, null); writer.println("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"); for (int i = 0; i < height; i++) { writer.println(" <tr>"); for (int j = 0; j < width; j++) { int rgb = out.getRGB(j, i); writer.printf(" <td style=\"background:#%06X\">",rgb&0xFFFFFF); writer.print(pxStr); writer.println("</td>"); } writer.println(" <tr>"); } writer.println("</table>"); } pxStrはテーブル内の文字列。全角スペース*2くらいがちょうどいいかも 拡大縮小は今回ほんとに最低限の実装だけどw
705 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 00:09:35 ] >>701 文脈が解らんけど、 複数のコンストラクタを定義できるし、そのときは「コンストラクタを作成する」という。
706 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 00:13:33 ] 質問させてください 現在、jdk6でgui開発を行っています サイズを指定しないJFrameの上にサイズを指定したJPanelを載せて、JFrame#pack()を行い、大きさを整えようとしたのですが、なぜか、小さくなってしまいます。 JPanelはsetSizeで800*600とかにしているのですが、実行するとせんべいみたいな形になってしまいます なぜなんでしょ? また、せんべいみたいな形になったwindowを広げるとJPanelは800*600なのに、それを超えてJFrameの大きさと同じ大きさまで拡大してしまいます これも、なぜなんでしょ? 解決方法や実装の常識的な方法があれば、教えてください
707 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 00:15:10 ] >>706 setPreferredSize(Dimension)
708 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 01:11:11 ] Swingのソース見れば分かるがsetPreferredSize()はかなり無視されてるぞw
709 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 01:28:20 ] >>708 夏だな
710 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 02:00:47 ] >>706 サイズも含めて望みのレイアウトになるようなレイアウトマネージャを使う。 そしてそのレイアウトマネージャがレイアウトに利用するコンポーネントのプロパティを正しく設定する。
711 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 02:07:25 ] >>710 ベスト回答
712 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 09:45:20 ] 以下の方法でurlクラスロードできません。 URL[] url = {new URL("file:///C:/…/classes")}; new URLClassLoader(url).loadClass("/jp/co/…/Xxx")); → ClassNotFoundException new URLClassLoader(url).loadClass("/jp/co/…/Xxx.class")); → ClassNotFoundException 実際のディレクトリ クラスパス → C:\…\classes クラス → C:\…\classes\jp\co\…\Xxx.class
713 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 10:08:26 ] >>712 > new URLClassLoader(url).loadClass("/jp/co/…/Xxx")); → ClassNotFoundException new URLClassLoader(url).loadClass("jp.co.….Xxx")); loadClass する時のクラス名はバイナリ名らしいので packagename.classname$innerclassname みたいに パッケージ及びトップレベルクラスまでは '.' で繋いでいい。
714 名前:デフォルトの名無しさん [2008/07/30(水) 15:13:44 ] 質問です。 JAVAのstaticメソッド内に宣言したローカル変数は ヒープに領域を取られるのでしょうか? 配列などのオブジェクト宣言時は領域を取られるとあったのですが、 変数はオブジェクトではありませんよね?
715 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 15:28:55 ] フリーの日本語で音声合成ができるライブラリってありますか?
716 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 15:34:19 ] javaでボタンなどのコンポーネントを追加するときは、 getContentPaneでコンテナを取得して、 そのコンテナに対してコンポーネントを追加すると思います。 そこで、質問なのですが、コンテナを複数個作成することはできるのでしょうか。 目的は、複数のコンテナを複数の画面とみなし、 メニューなどから必要に応じて表示するコンテナを切り替えることです。
717 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 15:52:09 ] >>716 CardLayout使うとか、JLayeredPane使うとかじゃだめ?
718 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 15:55:01 ] >>717 ありがとうございます。早速、調べてみます。
719 名前:デフォルトの名無しさん [2008/07/30(水) 16:37:41 ] 質問です。 JAVAのstaticメソッド内に宣言したローカル変数は ヒープに領域を取られるのでしょうか? 配列などのオブジェクト宣言時は領域を取られるとあったのですが、 変数はオブジェクトではありませんよね?
720 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 16:40:12 ] >>719 メンバだろうがstaticだろうがローカル変数はスタックじゃね?
721 名前:デフォルトの名無しさん [2008/07/30(水) 16:44:07 ] 標準ライブラリってどうやって見るんですか?
722 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 16:46:23 ] >>714 staticか否かにかかわらず、ローカル変数は「ローカル変数テーブル」 に置かれる。(で、ローカル変数テーブルは通常はスタック上に置かれる) でも、ローカル変数が指す先はヒープ上かもしれない。 例: static void foo() { Foo f = new Foor(); // f はローカル変数テーブルに領域が取られるが、fが指すオブジェクトはヒープ >>719 同じことを二度も書かなくていいよ。
723 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 16:52:33 ] これで二度書けば解答がもらえると認識した。
724 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 16:52:43 ] >>721 java.sun.com/javase/ja/6/docs/ja/api/index.html
725 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 17:29:48 ] enterflagってどうゆう関数?
726 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 21:10:33 ] 書いた奴に聞け
727 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 21:56:32 ] ディレクトリ階層を取得してくれるライブラリはありませんか? シンボリックリンクとかあって、単純に再帰かけると無限ループ入るんで、 誰かが提供したライブラリを使ってプログラミングがしたい。 読み込んで、ノードがサイズとか名前とか更新日時とかを持った木構造にしてくれればいい。
728 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 21:59:21 ] winのlnkファイルもあるしな。 まああれは解析されてるがディレクトリツリーの取得ぐらい自分で書け。
729 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 23:11:43 ] >>728 すごくだるいです・・・ 他人が書いたライブラリを使った方が正確です。
730 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:47:38 ] >>729 ならそのまま延々待ってろw
731 名前:デフォルトの名無しさん [2008/07/31(木) 01:18:13 ] Javaで、Excelのデータを読むときは、poiを使用するけど もし、Javaで、OpenOfficeOrgのドキュメントのデータを読むときは 何を使用されていますか?
732 名前:デフォルトの名無しさん [2008/07/31(木) 06:06:04 ] for文について質問です。 int i; for(i=-3;i<3;i++); といった始めにiを-3としておいて-3≦i≦3の計算をさせることはできますか?
733 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 07:42:47 ] kwsk
734 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 07:43:11 ] >>731 POI >>732 聞く前に試せ
735 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 08:26:36 ] >>732 それだと-3≦i<3の範囲になっちゃうけど
736 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 10:05:49 ] springなどのDIってのは、結局のところJDKのProxyで割り込みかけてるってのが正体ですか?
737 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:17:39 ] public void paint(Graphics g){ g.setColor(Color.green); g.fillArc(30,30,150,100,90,250); } アプレットに表示した後、数秒待機してこの図形を消したいのですが、 図形を消す命令というのはありますか?
738 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:18:59 ] clear
739 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:27:22 ] >>738 よろしかったら記述方法のヒントを頂けないでしょうか? g.clearではだめだったので… orz
740 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:42:40 ] private bool display = true; void 数秒後に発動するタイマーのハンドラー() { display = false; 画面の再描画指示 repaint() でいいんだっけ? } public void paint(Graphics g){ if (display) { g.setColor(Color.green); g.fillArc(30,30,150,100,90,250); } }
741 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 15:20:50 ] 解決しました、ありがとうございました。
742 名前:デフォルトの名無しさん [2008/07/31(木) 19:59:56 ] JFrameのウィンドウを何らかの処理をした後、自動でHIDE_ON_CLOSEの状態に したいのですがどうすればいいんでしょうか?
743 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 20:03:14 ] setVisible(false)
744 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 21:55:41 ] jspとかサーブレットやるときはほぼ確実にコンテナにトムキャットを使いますけど、 実際に現場でもトムキャット(+アパッチ連携)が使われてるんでしょうか? それともグラスフィッシュとかでしょうか?
745 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 22:05:44 ] 使いたいものを使えよ
746 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 22:31:29 ] WebSphereやWebLogicのようなメーカーものも強いな
747 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 23:36:26 ] Tomcatのみで運用だけはない、そのくらいかと
748 名前:デフォルトの名無しさん [2008/07/31(木) 23:47:46 ] gr3というゲームがあるんですけど、 Javaのなんというプログラム(ファイル?)で開いていいのかわからず、 起動できません。 教えてください。
749 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:01:16 ] JavaでPostgresにデータ追加する方法教えてー。 ・データベース名 「userdb」 ・テーブル名 「user」 列名 型 制約 id varchar(10) 主キー name varchar(50) NOT NULL address varchar(50) なし 追加するデータ 「add.txt」の内容 001,太郎,taro@test.ne.jp 002,花子,hanako@test.ne.jp 003,次郎,jiro@test.ne.jp
750 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 01:12:27 ] jdbcでぐぐれ
751 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 09:46:23 ] 共通の定数クラスやユーティリティークラスをみんなで更新しているので、cvsのマージが大変です。 皆さんはこのような時どうされます。 定数クラスを各自作成し、最後にリファクタリングで1つにまとめコミットし、その他は破棄でやってます。 自分ではなかなかだなと思っています。
752 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 10:03:45 ] このint aをマルチスレッドで扱うとき、synchronizedブロックで囲って排他したほうがいいでしょうか。 オブジェクトの捜査ならその中でいろいろやるけど1行だけの更新なら必要ないと思うのですが。
753 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 10:24:21 ] >>751 git でも mercurial でもなんでも使えよ。 >>752 更新する場所がソース上で1行だろうがなんだろうが、そこを通るスレッドが複数 存在するならガードする必要があるのはあたりまえだろボケ。
754 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:01:48 ] >>751 共通部分は一人で作る
755 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:27:45 ] >>753 要は、intのデータバイト更新しかかり中に別スレッドが読んじゃうからということですか?
756 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 11:34:16 ] 2つのスレッドが同時に更新したら・・・とか 同期しないと別スレッドの更新した値が更新されて見えないことがあるよ・・・とか
757 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:02:08 ] >>756 その、同時に更新したらという懸念はわかるけど、同時に更新したらどうなるの? データはめちゃくちゃになる、ということ?
758 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:13:03 ] >>757 銀行口座の例とか教科書に載ってなかったか? javaじゃないけど www.atmarkit.co.jp/fdotnet/mthread/mthread03/mthread03_01.html
759 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 12:50:46 ] 5年ぐらいJavaいじってなくて、そろそろまたいじろうかと思ってるんですけど Web系の場合、何で遊ぶのが一番仕事の役に立ちそうですか? Tomcat+Struts2あたり? 宗教戦争っぽくなりそうですけど、目安を知りたいので教えてください
760 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 13:45:59 ] 金融系で開発する場合の開発環境はEclipseが多いですか?
761 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:01:52 ] 事実上EclipseなのだがWebSphere Studioを使ってるよ
762 名前:デフォルトの名無しさん [2008/08/01(金) 14:25:39 ] JavaアプレットってSwingやAWTのことですか? 現在、Javaアプレットに代わって利用されているJava技術は何ですか?(FLASH等多言語は除く)
763 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 14:27:33 ] java web start (jnlp)
764 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:36:19 ] java開発ソフト(java.sun.com/javase/ja/6/download.html の2番目)をインストールして コンパイルしようとしたのですがjavacが認識されず出来ません どうすればよいですか 初歩的ですみません
765 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:43:06 ] 環境変数設定してないのかな
766 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:46:53 ] >>764 java.sun.com/javase/ja/6/webnotes/install/jdk/install-windows.html の4.を行わない場合、javacをフルパスで起動する必要がある。
767 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 20:45:40 ] jnlpの実装がRIのjwsしかないってのがな。 ブラウザが実装してくれればいいのに
768 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:45:24 ] >>764 bin フォルダの中に javac.exe はあるぽ?
769 名前:デフォルトの名無しさん [2008/08/01(金) 23:48:48 ] webアプリのビジネス層のインターフェースの設計について質問。 下のように、似たようなシグネチャのメソッドを持つインターフェースを 数種類だけ作ってアプリ全体で使い回そうとしてるんだけどこれって普通ですか? コントローラからはビジネス層へのアクセスは必ずこれらを呼ぶようにしていますが、 もっと賢いやり方があれば教えてください。 public interface hogeLogic { void execute (object o) } public interface hogeLogicReturningObject { Object execute (object o) } public interface hogeLogicReturningList { List execute (object o) }
770 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:52:06 ] public interface hogeLogic<T> { T execute(Object o); }
771 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:57:02 ] >>770 これは別ですか? public interface hogeLogic { void execute () } あとjdk1.4だと>>769 以外に何かありますか
772 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:14:01 ] いまさら1.4かよ。Java7出たらEOLだけどいいのか?
773 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:30:21 ] java.lang.Void
774 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:40:30 ] java.lang.ZOID
775 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:50:29 ] 新規案件で1.4とかもあるぜ、もうアホかと
776 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:53:46 ] >>772 Sunが金払う顧客にはサポート続けるって言ってなかったっけ?
777 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 01:08:25 ] >>769 そのパターンでは、静的型付の利点を生かせないよね。
778 名前:764 mailto:sage [2008/08/02(土) 06:23:37 ] >>766 設定してみましたが変化がありませんでした >>768 ありません><
779 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 09:18:28 ] >>769 インターフェイスを使うのは必要として、 ビジネス層の中身によるがObjectまで抽象化すると逆にメリットがなくなる。 もう少し具象化した型別にインターフェイスを用意したほうがよいと思うよ。
780 名前:デフォルトの名無しさん [2008/08/02(土) 14:51:22 ] >>777 >>779 なるほど。確かにタイプセーフじゃないんで >>769 はこれはこれでどうしたものか、と思いました。 参考までに1.5だと全部下ので 片が付くと思ったのですが、あってますか? public interface hogeLogic<T, E> { T execute(E commandParameterObj); }
781 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:17:05 ] java.awt.Color.whilteとjava.awt.Color.WHITEは何の違いがあってどう使い分けるのよ
782 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 17:53:46 ] 定数は大文字アンスコで書くのがルール 後はわかるな?
783 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 19:59:32 ] >>759 だれかたのむ
784 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 21:13:53 ] >>759 Web+仕事が前提だと、未だにStruts1がぶっちぎり。 Struts2はその他大勢とどんぐりの背比べ状態。 それでもあえてStruts1以外を選ぶなら、Wicketあたりをお勧めしておく。
785 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 22:40:36 ] Swingの経験はあるけどWebは初めてって人には、却ってWicketの方が分かりやすいかも。
786 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:17:34 ] >>782 いや、わからん・・・・ 定数と同名のpublic変数フィールドがなぜ定義されてて、 どうやって使い分けるのか 検討もつきません。まじで。
787 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:33:47 ] >>786 つ 導入されたバージョン: 1.4
788 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 01:07:46 ] APIドキュメントの読み方や利用方法がいまいち分からないのですが 丁寧に解説している本ってありますか? いま持っている本はドキュメントの使い方の説明はほとんどされてません。
789 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 01:13:28 ] >>786 1.4以前に定義された小文字の変数名だと命名規約に反する。 それで大文字を導入したが小文字の方を消すと以前作ったコードがコンパイルできなくなる。 >>788 辞典みたいなもん。
790 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 01:16:20 ] とくにAWTやSwingのドキュが意味不明です
791 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 01:19:22 ] GUIプログラミングの基礎を勉強すればいい
792 名前:デフォルトの名無しさん [2008/08/03(日) 01:24:03 ] 誰か>>780 の件、たのむ >ビジネス層の中身によるがObjectまで抽象化すると逆にメリットがなくなる。 メリットって?
793 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 03:39:15 ] >>792 よくわからんがコントローラー層から実行するメソッドごとに、 インタフェース作ることにならんかい? 極端な例だけど、 あるひとつのドメインに対して、 CRUDごとにインタフェース作るより、 まとめてインタフェース定義するほうが自然だよ。
794 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 03:44:33 ] >>792 ビジネス層でObject受け取ってうれしいか? 結局ダウンキャストしなきゃいけないじゃん。
795 名前:デフォルトの名無しさん [2008/08/03(日) 15:52:03 ] JTableのsetAutoCreateRowSorterにtrueを指定した場合、 テーブルのカラムを押したときにソートができるようになります。 ところが、このソートの仕方がおかしいのです。 たとえば、次のような値は 8 1 14 -> 8 1 14 となるように思えますが、実際には 8 1 14 -> 14 1 8 のようになってしまいます。 DefaultTableModel.addRowにはIntegerオブジェクトを渡しているのに、 数学上での大小を区別してくれません。 どうすれば、よいでしょうか。
796 名前:デフォルトの名無しさん [2008/08/03(日) 16:07:40 ] 795です。 スペースがうまく入っていないので補足します。 言いたいことは、1,8,14という並び方になってほしいのに、 1,14,8という並び方になってしまうということです。
797 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:20:44 ] 文字列として比較しているからだろ
798 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:24:27 ] >>3 DOSの本嫁
799 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:27:48 ] >>796 ttp://guijava.180r.com/pJTable%A4%CE%BE%AE%B5%BB%BD%F4%A1%B9.html
800 名前:デフォルトの名無しさん [2008/08/03(日) 16:31:34 ] バイト配列→文字列の変換をするメソッドを書きたいです。 ぐぐってみたところ、以下2つのメソッドが引っかかったのですが どちらを使うべきでしょうか? asHex2()のif文は必要なのでしょうか。 public static String asHex(byte b[]) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < b.length; i++) { sb.append(Integer.toHexString((int) b[i] & 0xff)); } return sb.toString(); } public static String asHex2(byte b[]) { StringBuffer sb = new StringBuffer(b.length * 2); for (int index = 0; index < b.length; index++) { int bt = b[index] & 0xff; if (bt < 0x10) { sb.append("0"); } sb.append(Integer.toHexString(bt)); } return sb.toString(); }
801 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:31:59 ] ピンズが皆浮いてるw
802 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:32:53 ] 誤爆った
803 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:48:44 ] >>799 すごすぎる... 正にどんぴしゃのコードです。 ありがとうございます。 ちなみに、 「シリアライズ可能クラス は long 型の static final serialVersionUID フィールドを宣言していません。」 という警告が出たのですが、これは何を意味しているのでしょうか。 動作の方は、至って正常です。
804 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 17:46:03 ] ググレ、カス
805 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:47:13 ] 質問スレで回答がなかったので、こちらにも投稿させてください mvel 勉強してるんですが、macro が分かりません。 mvel.codehaus.org/Macros mvel の macro とは何するものなんでしょうか? どういったことを意図して作られた機能なのでしょう? サンプルを実行しても理解できませんでした。 ただの文字列置換ではないですよね…
806 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 20:35:42 ] >>769 >>777 ,779 に賛成。 そもそも、何故そのようにまとめる必要があるのか? そのまとめ方は、なんか共通処理があってそれを挿みたいから、それを interface で判断するって事? 自分は(おそらくその他大勢も)基本的にビジネスロジックも POJO がベストだと思っていて、 そのような共通メソッドでビジネスロジックを呼び出すスタイルは過去の物だと思っている。 例えば、Foo を渡すと Bar を返す Hoge という処理があったとする。 // interface public interface Hoge{ Bar getBar(Foo foo); } // implementation public class HogeImpl{ Bar getBar(Foo foo){ // do something return bar; } } さて、これでダメな理由って何? interface が増えるから? 個々のビジネスロジックの interface が増えるのは全く問題ではないのだが、 それが分からないのであれば、もっと勉強しなければならない。 ついでにこれを T execute(<E>) にした時の利点って何? それは実装と interface の分離について何かメリットがあるのか? 最後に、とりあえず Seasar でも Spring でもいいから、なんか DI を使ってごらん。 サンプルアプリとかを見て、真似してみ。 やれば↑のことが分かるようになるはず、だと思う。 java にとっての DI は、もはや必須のパラダイム。 EJB3 にも DI が取り込まれたのも必然。やってみ。
807 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:19:35 ] HTMLを取得して、FORMタグ内のパラメータを作成して、フォーム送信するにはどうしたらいいですか? HttpURLConnectionを使ってHTMLを取得するまではできていて、 HTML Parserを使って、FORMタグ内のタグ解析もなんとなくできそうですが、フォーム送信がさっぱり GETならURLに?をつけてパラメータを結合したものをHttpURLConnectionから取得すればフォーム送信したことになりそうだけど、 POSTを使ってhiddenで送信されるパラメータをJava上から実現するのはどうしたらいいんだい?
808 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:24:27 ] コマンドプロンプト上で実行するJavaプログラムを書いてます。Win XPです。 時刻を表示して、時刻が変わったら上書きして表示するということをしたいのですが、 どのようにすれば良いのでしょうか。 また、無理だったら、画面をクリアして書き直すということをしたいのですが、 クリアの仕方もわかりません… 「Java 画面のクリア コマンドプロンプト」でググっても出ませんでした。
809 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:24:40 ] >>807 httpunit
810 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:25:09 ] POSTだったらgetOutputStreamしてそれに書き込めばいいよ。
811 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:27:32 ] >>808 コマンドプロンプト(System.out)の書き換えは基本的に不可能 というか、OSに依存していてWindowsじゃ無理 改行して次の文字を表示していくか、簡単なGUIをSwingで作ればおk
812 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:29:27 ] >>807 ttp://www.atmarkit.co.jp/fjava/javatips/069java006.html すでに手書きしているので今更だが、HttpUnitを使うともっと楽にできる。
813 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:32:48 ] >>811 ありがとうございます。 無理なのですか…残念です。 【時刻】2008/08/03/21:31:10 【時刻】2008/08/03/21:31:11 【時刻】2008/08/03/21:31:12 【時刻】2008/08/03/21:31:13 【時刻】2008/08/03/21:31:14 … となるのは見苦しいですが、しょうがないのですね…
814 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:34:46 ] >>809 ,810,812 おまいらThx!即レスThx!
815 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:18:56 ] >>813 しょうがないっていうか、コンソールってどういう目的であるか考えろよ。 見苦しいんじゃなくて、そう流れるのが普通
816 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:33:11 ] HttpUnitすげーっと思って使ってみたらJavaScriptで落ちまくるw これはやり方が悪いのかねぇ。 どうもページ内でリンクされてる外部のJavaScriptを読みにいってないっぽいんだよなぁ
817 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:42:47 ] >>813 こんなことは出来るんじゃないか? System.out.print("HOGE"); System.out.write(0x0D); System.out.println("ORZ");
818 名前:デフォルトの名無しさん [2008/08/03(日) 23:04:56 ] >>806 丁寧にありがとう。Springを使ってる。言ってることも理解できます。 実践J2EEシステムデザインって本読んで、それを参考にやってますが、 やりたいことは、コントローラでビジネスロジックを呼び出す回数を出来る限り 少なくして、コントローラのテストを簡単にしたい。 コントローラが扱うビジネスクラスを限定したいのです。 そのために、ビジネスロジックのinterfaceを2段がまえにして、 コントローラから呼ばれるinterfaceはexecuteである程度汎用化して、 (ObjectかMapでモデルオブジェクトだけ返してくれれば十分なので) これしか呼ばないようにする。ビジネスロジックの入り口。 より具象化した型はexecuteを実装したクラスの中だけで 扱うようにしたいんだけど、これは変なのでしょうか? public interface Hoge<T, E>{ T execute(E object) } public class HogeImpl<Void, Integer>{ private Foo foo; // DIする private Bar bar; // DIする public int execute(Object o) { foo.doXXXLogic() bar.doYYYLogic() return foo.getZZZ() + bar.getZZZ(); } } public interface Foo{ int doXXXLogic(); } public interface Bar{ Biz doXXXLogic(); }
819 名前:818 mailto:sage [2008/08/03(日) 23:09:18 ] すみません、訂正。 public interface Hoge{ int execute() } public class HogeImpl{ private Foo foo; // DIする private Bar bar; // DIする public int execute() { return foo.doXXXLogic() + bar.doYYYLogic(); } } public interface Foo{ int doXXXLogic(); } public interface Bar{ int doXXXLogic(); }
820 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:32:01 ] >>818 だから、テストするクラスが少なくなってもテストするパターンが複雑になるんじゃ本末転倒。 それよりは静的言語のメリットを生かして、ビジネスロジックごとにインターフェイスきる方がいいんじゃね?ってのが流れだと(ry >これは変なのでしょうか? あえて時代に逆行しているのは構わないけど、誰からも支持されてないよな? それが答えだよ
821 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:39:31 ] >>820 コントローラでぐちゃぐちゃとビジネスクラスを呼び出してる方が テストは複雑な気がするのですが・・・。 POJOじゃないクラスでのテストが増えるってことでしょう?
822 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:55:14 ] ビジネスロジックを意味のある塊に纏めて実行するビジネスロジックを用意すればいいじゃないか。 変な皮被せるんじゃなくて、純粋にビジネスロジックとして纏めるんだよ。 何のための DI だよ?
823 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 00:37:01 ] >>817 目的のことが出来ました! ありがとうございます。
824 名前:822 mailto:sage [2008/08/04(月) 00:39:08 ] と思ったら、DI してるのか。 しかし >>818 ,819 は何だ? Foo も Bar も静的に型が決まるんだから、汎化して呼び出す意味が分からん。 本来 Foo やら Bar やらが持つ意味どおりに getXxx やら getYyy を呼べよ。 真剣にその汎化して呼び出す理由が分からん。 例えばカートを扱うサービスがあったとして、 putXxx とか removeYyy とかやりたいと思うのだが、 それだともの凄く窮屈じゃないか? とても分かり難いソースにならないか? 実装とインタフェースの分離ってのは、やってもらうことは決まってるけど実装には依存しないってことだよ。 何でも屋インタフェースを用意するってことではないよ。 会計データを入力すると決算書を吐くインタフェースはあっていいが、 何か頼むと何かやってくれるインタフェースなんてあっても意味ないぞ。
825 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 00:40:21 ] なんか根本的に話が通じてない気がするな そもインターフェイスを統一することに何のメリットがあるんだ?
826 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 00:49:42 ] 誰でも簡単に使える(笑)フレームワークでも目指しているんじゃない?
827 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 00:52:43 ] おk、インターフェイス名はプログラムIDの連番 全ての定義メソッドはexecuteだ プログラムID+Resultという型で結果を返すこと この手の設計と似ているね・・・
828 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 01:11:15 ] serialVersionUIDについて質問させてください。 次のようにクラスに追加したら、シリアライズに関するエラーが なくなると思っているのですがなくなりません。 どこが問題なのでしょうか。 model = new DefaultTableModel(column, 0) { // シリアライズに関する警告を消そうと思い追加 private static final long serialVersionUID = 1; // オーバーライドしたいメソッド public Class<?> getColumnClass(int columnIndex) { return Integer.class; } }; 便乗になるのですが、このようにクラスのインスタンスの生成時にメソッドを オーバーライドするというのは、よくあることなのでしょうか。 普通は、サブクラスを作成してそこでメソッドをオーバーライドし、 サブクラスのインスタンスを作成するものだと思うのですが。
829 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 03:35:19 ] >>828 ただ、エラーを消すために、 private static final long serialVersionUID = 1; こんなことするくらいだったら、 eclipseの設定で出なくしちゃっていいよ。 設定のコンパイラの辺りでどーにかなるよ。 それが嫌ならちゃんと直列化について勉強するとよいよ。
830 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 03:38:16 ] >>828 イベントリスナやら、Comparatorなんかではよく見るけど、 インタフェースを実装するときがほとんどだな。 つまり、よくあることではない。 ってことだ。
831 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 07:34:59 ] >>828 @SuppressWarnings でおk。 @SuppressWarnings嫌いって多いけど、 そうなら勉強するしかない。 そして@SuppressWarningsが正解で、 デフォルトバージョンを入れてしまうことが間違いだと分かる。 >>便乗になるのですが、このようにクラスのインスタンスの生成時にメソッドを >>オーバーライドするというのは、よくあることなのでしょうか。 よくある。 別にクラス作っても一緒だけど、 「たった一つ振る舞いを変える」かつ、 「その振る舞いはそこでしか使わない」 の場合は生成時オーバーライドが一番見やすい。
832 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 10:05:14 ] >>825 DI登場以前にはメリットがあった。 トランザクション管理とか、ロギングとかね。 今では、過去の遺物だと思う。
833 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 10:12:56 ] serialVersionUIDの警告はIDEが過剰に出してるものだからIDEの設定で切るのが筋。 javacやantだと出ないでしょ、たしか。
834 名前:デフォルトの名無しさん [2008/08/04(月) 12:12:00 ] JAVAの最大化ボタンを押せなくする(使用不可能)プログラムを教えてください。 お願いします。くぐったんですけど出てきませんでしたm(__)m
835 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 13:00:25 ] ttp://www.uploda.org/uporg1586571.txt ↑ mojiフオルダ内にある[moji000〜moji004]の5枚の画像について、読み込み とある処理をして出力するプログラムなんですが [moji0〜moji4]を読み込むにはどのように書き換えればよいのですか?
836 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 13:05:36 ] >>835 宿題スレで書いてもらったコードだろ・・・ >private static DecimalFormat df = new DecimalFormat("000"); を private static DecimalFormat df = new DecimalFormat("0"); でどうよ?
837 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 13:13:21 ] >834 java.awt.Frame#setResizable(boolean)
838 名前:デフォルトの名無しさん [2008/08/04(月) 13:40:13 ] >>837 それはImportの所に置きますか? それとも初期化の所に置くのですか?
839 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 16:54:05 ] JTableで作成したテーブルのカラムを後から変更することは できるでしょうか。 getColumnNameがあるのに、setColumnNameがないようなのです。 また、getColumnで取得できるTableColumnにも 名前を設定できるメソッドがありません。
840 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 17:17:42 ] setHeaderValue(Object)ってなかったっけ?
841 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 17:38:42 ] それでいけました! ありがとうございます。
842 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:44:13 ] Objectクラスはnewできますが、new Object()をする場合などあるのでしょうか。 今までロックインスタンス用としてしか使用したことがありませんが、他に有意義な使用法等あれば教えてください。
843 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:51:55 ] >842 ttp://www.google.co.jp/codesearch?q=lang%3Ajava+%22new+Object(%22
844 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:34:30 ] while ・・・ String a; a = ・・・ } は String a; while ・・・ a = ・・・ } すべきといわれますが、なぜでしょうか?
845 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:52:37 ] {がなくてwhileがどうなってるかわからんけど前者だとaの定義を何回も行う事になるから。
846 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 12:01:06 ] >>844 一般的には、前者の方がスコープ短くできるので良いとされる。 後者が良いのは a の初期化処理が共通で使いまわせる場合とかだね。
847 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 13:08:42 ] a.xml ======= <a> <b> <c>1</c> </b> </a> ======= b.xml ======= <a> <b> <c>2</c> </b> </a> ======= を下記のようにマージするクラスやフレームワークはあるでしょうか? <a> <b> <c>1</c> </b> <b> <c>2</c> </b> </a>
848 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 14:32:09 ] クラスをbyte[]に変換することは出来ますか? Hoge hoge = new Hoge(); byte[] buf = (byte[])hoge; 上記のようなことがしたいのですが・・・ よろしくお願いします。
849 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 14:39:55 ] >>533 javadoc -doclet 自作クラス … でjavadoc要素の操作をしているのですが、 javadocのデバッグはできるのでしょうか? 下記のオプションをつけてみましたが、不正なオプションでエラーになってしまいました。 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
850 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 14:47:26 ] >>848 シリアライズでぐぐる
851 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 19:00:38 ] EventObjectなしのListenerってありですかねぇ? 単純な通知だけのとかは面倒でしょうがない。
852 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 19:13:53 ] >>851 単に何かが起きたことの通知だけなら Java流のイベントソース/イベントリスナーの形にきっちり従わなくても 単純にObserver/Obserbableで作るのではだめ?
853 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 19:16:45 ] Obserbable → Observable
854 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 19:18:15 ] WindowsでコンパイルしたSwingアプリのラベルやらなんやらがLinux上でことごとく文字化けするんですが、 文字コードレベルではrun anywhereは実現できないんですか?
855 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 19:28:43 ] >>854 フォントの問題じゃないか?
856 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 19:42:01 ] >>852 ありがとうございます。 通知の種類が複数あるため、Observerではちょっと・・・ 引数でその種類を示す物を送るのもありですが。
857 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 22:17:03 ] DBにたくさんSQL文を投げる時に使うPreparedStatementって、 「?」の数が8個より大きいと使えないのかな?ちなみにバージョン1.5.1. こんなエラーが出る java.sql.SQLException: Parameter index out of bounds. 9 is not between valid values of 1 and 8 APIやら解説書にもそんな記述は無いんだが、だとしたら相当ショボイ部品だなぁ・・・
858 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 22:25:23 ] >>857 その辺はJavaよりもJDBCドライバの実装に依存する。 DBMSとJDBCドライバの名前とバージョンさらして。
859 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 22:25:41 ] >857 使ってるデータベースやドライバの仕様じゃなくて?
860 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 22:47:48 ] DBMS MySQLの5.0.27 JDBCドライバ mysql-connector-java-5.0.4 です。 この辺の仕様ということなら、残念ですね・・・。
861 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:08:38 ] "JDBC MySQL Parameter index out of bounds"あたりでググってみたが、 %付きでlike演算子使った時に同じエラーが出る、という話がヒットした。 ttp://forums.mysql.com/read.php?39,86819 ttp://forums.mysql.com/read.php?39,86819,86821#msg-86821 ttp://archives.neohapsis.com/archives/dev/sapdb/2003-q4/0768.html 他にもあるかもしれないが、自分でググってみて損はないぞ。
862 名前:857 mailto:sage [2008/08/05(火) 23:10:54 ] >>861 サンクス! グーグル大先生に色々聞いてみることにします。
863 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 11:32:03 ] javaのStringクラスにログ的なものを入れた改修し、それを使用させるために -Xbootclasspath/p:-Xbootclasspath/p:C:\classes の起動オプションを追加したところ 以下のメッセージが出て起動できません。 JDK1.6です。 Error occurred during initialization of VM java.lang.NullPointerException at java.util.Hashtable.put(Hashtable.java:394) at java.lang.System.initProperties(Native Method) at java.lang.System.initializeSystemClass(System.java:1072)
864 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 12:26:38 ] >>863 そうですか
865 名前:デフォルトの名無しさん [2008/08/06(水) 15:26:33 ] 未だにj2sdk1.4.2_14を使っているんですけど、 Java入門者にとっては最新版でなくても差し支え無いですか?
866 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 16:16:34 ] >>865 1.5で言語仕様がかなり追加された。 それに合わせてAPIも実装だけでなくインタフェース部分も書き直されたので、 少なくともjdk5か、できればjdk6を使用したほうがいいと思う。 入門書とかもそれに対応したものを使う。
867 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 17:31:31 ] >>885 同じ1.4.2系列の最新版1.4.2_18にはしとこうぜ。
868 名前:デフォルトの名無しさん [2008/08/06(水) 17:38:17 ] すみません,どなたか助言お願いします. DataOutputStreamクラスのwriteChars(String)を実行すると 出力先のtxtファイルでは文字列の文字1つ1つの間に 半角空白が1つずつ入ってしまいます. どうすれば空白が入らずに出力できるでしょうか. ちなみにANTLRという構文解析ソフト(javaで記述)の中で, out.writeChars(text); out.writeChars(Integer.toString(value)); などという感じで使っています.
869 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 17:46:03 ] >>868 16byteのキャラクタを未加工で出力してるんだからそれであってる。 DataOutputStreamを使ったことが間違い。 それでもこういう手合いはwriteUTFで自己解決してしまうんだろうな(笑
870 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 18:08:22 ] 16bitだった。好きなほうで BufferedWriter out2 = new BufferedWriter(new OutputStreamWriter(out)); PrintWriter out3 = new PrintWriter(new BufferedWriter(new OutputStreamWriter(out)));
871 名前:sage [2008/08/06(水) 18:21:35 ] >>869-870 ありがとうございます! 文字列をそのままバイトコードとして流したのがだめだった,ってことでしょうか? 適当に言ってますが... とにかくOutputStreamWriterを見てみます!
872 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 18:22:23 ] sageれてなかった... すみません.
873 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 18:24:25 ] UTF-16が開けるエディタがあったら問題解決かもしれない。 この場合必ずビッグエンディアンになるんだろうか。それともCPUのエンディアン依存?
874 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:01:10 ] >>873 DataInput/DataOutputはビッグエンディアン。
875 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:36:13 ] javadocのコメント内容が変更できるAPIはあるでしょうか
876 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:44:10 ] エディタのタブ背景をプロジェクトによって色分けするプラグインありますか? 前半で似たような名前があるとタブを見ただけでは解かりにくくて。
877 名前:デフォルトの名無しさん [2008/08/06(水) 19:58:03 ] DefaultMutableTreeNode を使って JTree を作っているのですが、 Node ごとにドラッグ&ドロップ許可/禁止させたいのですが、可能でしょうか?
878 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:22:16 ] できる
879 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:27:13 ] 可能
880 名前:877 [2008/08/06(水) 20:30:16 ] orz どの辺りを調べればよいのでしょうか?
881 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:42:36 ] TreeModel とか TreeModelListener とか
882 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 21:17:03 ] awtかSwingのDnDパッケージだろ
883 名前:デフォルトの名無しさん [2008/08/06(水) 22:38:31 ] JAVAってeclipse以外でできますか? 地元ネット喫茶にてeclipse(JAVA)ができなくなってました。 なるべくならJDKの全varに対応してるアプリがうれしいのですが。
884 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 22:49:11 ] 意味が解らん
885 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 23:45:44 ] jniで使用するnativeライブラリをjarの中に含めるなどして java.library.pathにパスを追加せずにnativeライブラリを呼び出せることって出来るのでしょうか? なるべく簡単且つすっきりと纏めれたらなぁと思いまして。。
886 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 23:50:37 ] >>865 jdk6というかjre6の方が圧倒的に速い
887 名前:デフォルトの名無しさん [2008/08/06(水) 23:54:54 ] JAVAの再生方法を教えてください
888 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:18:58 ] Javaは再生しません
889 名前:デフォルトの名無しさん [2008/08/07(木) 00:54:22 ] ファイルに出力するときに PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("tst.txt"))); という風にやっているのですが、出力が途中で切れてしまい、最後までファイルに出力してくれません。 ・具体的には、ファイル1から文字列を読み込む ・文字列を加工してファイル2に出力 これをファイル1の最後まで行うのですが、pw.println(加工した文字列)では途中できれ、System.out.println(加工した文字列) だと途中で切れずに最後まで出力します。 解決法を教えていただけないでしょうか・・・
890 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:57:01 ] closeしてないとか
891 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 01:00:01 ] >>889 終わったらちゃんとpw.close()してる?
892 名前:デフォルトの名無しさん [2008/08/07(木) 01:03:54 ] レスありがとうございます。 closeはしてるのですが・・・ブツッと行の途中で切れます
893 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 01:54:58 ] closeは実際に実行されてる? 明示的にflushを実行した場合はどう?
894 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 02:29:03 ] JVMからJVMって起動出来る?
895 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 02:37:41 ] >>893 よくやっちまうのがこのパターン。 FileWriter fw = new FileWriter("tst.txt"); PrintWriter pw = new PrintWriter(new BufferedWriter(fw)); fw.close(); // これが余計 pw.close(); >>894 外部プロセスは起動できるのだから
896 名前:デフォルトの名無しさん [2008/08/07(木) 03:24:00 ] JAVAでいらない周りの背景を透かすにはどうやればいいのでしょうか? 不必要な白い部分まで写ります。
897 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 04:18:37 ] 最終的にフレームの下地が写るから透かすのはuN以降じゃないと無理じゃない? コンポーネントの一部を透かしたいならSwingならできるけど。
898 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 08:38:55 ] >>885 JNI は最終的には Windows で言えば LoadLibrary 関数を呼ぶことになるので、jar の中に入れたままでは 不可能。 もしやりたいなら jar からテンポラリディレクトリに解凍(もしくはリソース読み込み)して、それを読み込ませる ようにロジックを組まないとダメだと思う。
899 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 14:39:54 ] JFileChooserで得られるファイルが、 FILEオブジェクト固定であることに悩んでいます。 本当は、FileOutputStreamオブジェクトが欲しいのですが...。 file.getPathが返した値を、FileOutputStreamのコンストラクタに 指定するしかないでしょうか。
900 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 14:56:04 ] >899 JFileChooser を使って FileOutputStream を得る、 新しいクラスを作ったらどうでしょう 使いづらい道具は直せるのがプログラミングですよ 治具みたいなものです。
901 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 15:09:23 ] >>900 何か、思いっきり勘違いしていました。 FileOutputStreamのコンストラクタに 取得したFileオブジェクトを指定すればよいだけの話でした。 お騒がせしました。
902 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 15:24:31 ] JAIってどこでダウンロードできますか?
903 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:19:19 ] Java Web Startでのアプリケーションのインストール情報を管理するアプリケーションが標準でついてたと思うのですがどなたかご存じないでしょうか?
904 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:23:34 ] ネットビーンズとエクリプスは使い方がぜんぜん違いますか?
905 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:23:39 ] >>903 コントロールパネルでJavaを開いてインターネット一時ファイルの表示ボタンを押すと出るやつ?
906 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 17:35:01 ] >>905 意味合いは違ったようですがビンゴです ありがとうございました!!
907 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 18:09:14 ] zipの中身表示するJFileChooser作ったときは意外と苦労したのにSwing Hacksに同じ事やられたorz
908 名前:デフォルトの名無しさん [2008/08/07(木) 19:27:06 ] data.txtというファイルに読み書きするプログラムを作成しました。 このプログラムをダブルクリックだけで実行できるjarファイルにしたいのですが、 data.txtはjarファイルと別に用意しなければ実行できないのでしょうか? jarファイルの中にdata.txtも含めて実行してみたのですが、 data.txtが見つからないと出ました。 data.txtをjarファイルのあるフォルダに置いておけば実行できました。
909 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 19:37:12 ] パスの指定の問題だろ。getResource[AsStreem]()ってメソッドを使うんだ。
910 名前:デフォルトの名無しさん [2008/08/08(金) 02:21:52 ] actionPerformed内での挙動に関する質問です。 Maskクラスに値を詰め、それを利用したいのですが、 private Mask mask; public void actionPerformed(ActionEvent e){ String cmd = e.getActionCommand(); if(cmd.equals("Read")){ if(mask == null){ mask = new Mask(); } mask = label.getValue(); }else if(cmd.equals("Write")){ System.out.println(this.mask.getValue()); } としたときに、下の標準出力から「NullPointerException」 が返ってきます。maskのnewはできていると思うのですが… 万策尽きました。どなたかご教授くださいm(_ _)m
911 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:28:56 ] if(mask == null){ mask = new Mask();ここでnewしたのに } mask = label.getValue(); ここで代入してるのは何故?
912 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:36:58 ] String cmd = e.getActionCommand(); この間にMask mask;とかって行は無い? if(cmd.equals("Read")){ if(mask == null){ mask = new Mask(); } mask = label.getValue(); }else if(cmd.equals("Write")){ System.out.println(this.mask.getValue()); } "Read"の前に"Write"が実行されるとmaskはnullになるよ? そもそも例外が出ているのはどこ?maskが問題なの?
913 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:07:23 ] デスクトップにJavaが全然普及しないのはSwingがヘッポコだからですか?
914 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:20:22 ] ネイティブな実行形式吐けないからだろ。
915 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:41:53 ] C#もVBもネイティブじゃ無いじゃん
916 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 04:07:30 ] MicrosoftNativeです
917 名前:デフォルトの名無しさん [2008/08/08(金) 04:18:13 ] >>911 ,912 ちょっと簡易的に書きすぎました MaskはTimerTaskを継承していて、裏で常に動いています。 で、これをStopさせたいのですが、このmaskオブジェクトにアクセスできない状態です。 調べたところ、maskは存在していますが、 Write側でmaskのアドレスを認識できないようです。 グローバル部分でnewするとそれはそれで問題がありなので、 この状況からWrite側のmaskオブジェクトを操作させる方法が欲しいところです。
918 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 05:51:46 ] ひどい情報の小出し。 肝心な部分を隠してどこが問題なのじゃないだろ。 maskの実装とTimerの起動箇所を隠さず出せ。
919 名前:デフォルトの名無しさん [2008/08/08(金) 07:34:34 ] >>918 すまん。別のコードともごっちゃになってて自分でも意味不明。 最初から言い直します。 class tTask extends TimerTask{ public void run(){ Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("ss's':mm'm':hh'h'"); MainPanel.pD.timeLabel.setText(sdf.format(date)); } } class actionUpdate implements ActionListener{ Timer ttimer; tTask ttask; public void actionPerformed(ActionEvent e){ String cmd = e.getActionCommand(); if(cmd.equals("Start")){ if(ttask == null){ ttask = new tTask(); } MainPanel.pB.startButton.setEnabled(false); MainPanel.pB.stopButton.setEnabled(true); ttimer.schedule(ttask,0,1000); }else if(cmd.equals("Stop")){ System.out.println("Time task off"); this.ttask.cancel(); this.ttask = null; MainPanel.pB.startButton.setEnabled(true); MainPanel.pB.stopButton.setEnabled(false); }
920 名前:デフォルトの名無しさん [2008/08/08(金) 07:36:50 ] staticに作ったMainPanel上のボタンを押すとStart、Stopされる仕組み。 このとき、this.ttask.cancel()に対してNullPointerException発生。 しかしttaskのrunは動きっぱなし。 さてこれをどうやって止めればよいのか?という質問でした。
921 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 08:00:15 ] awtならかまわないけど、Swingとjava.util.Timerを使っています? それならタイマーイベントはスレッドになるからTimerTaskのsetTextはまずい気がする。 Swingならなるべくswing.Timerを使った方が無難。
922 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 08:06:16 ] >>920 なんかいろいろ違いそうだが・・・。 「ボタンを押したら始まって、ボタンを押したら止まる。」 という仕掛けに、タイマが存在する理由は全くない。 タイマタスクは、実行内容をスケジュールと合わせて保持するだけで、 「実行中」「停止中」を切り替えるステートオブジェクトではない。 TimerTask#cancel()=次の実行時刻が来ても実行されないように、 キャンセルフラグを立てておくだけ。 今の実行状態を切り替えるためのものではない。 ヌルポはなにがnullなんか調べれば解決できるだろ。
923 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 08:29:24 ] MainPanelが謎のスタティックメンバーを持ってたり、 ActionListenerがメンバ持ってたりでかなりあれだな。 actionUpdateをどこかで作り直してるとかしてないだろうか。 それならヌルポになる。
924 名前:デフォルトの名無しさん [2008/08/08(金) 08:38:44 ] AwtかSwingかアプレットで いくつか画像があって、マウスが特定の画像の上に乗っている状態の時にその画像を変える(その画像から出たら元に戻す。)にはどうしたらいいですか? (変化前と変化後の画像のサイズは同じ)
925 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 08:45:17 ] アプレットでは不可能な技術
926 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 08:47:03 ] >>924 1から10まで聞くつもりかよ
927 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:49:26 ] ただのマウスオーバーじゃん。mousemotion拾え
928 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:00:41 ] >>926 ? >>927 アプレット領域全部ではなく、特定の画像の上でのみイベントを発生させたいです。 将棋のゲームで、ある駒の上にマウスを持っていくと、その駒が移動可能なマスを薄い黒色でピカピカ点灯させるといった感じです。 画像じゃなくても、ボタンのようなオブジェクトに各駒の画像が表示できるならそれでもよいのですが
929 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 11:30:37 ] mouseMovedは座標を得られるからマウスが画像の上かどうかを判断できるし、 JButtonにImageIconを設定することもできるし、 画像を表示したJLabelにMouseListenerをつけることもできる
930 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 11:34:13 ] >>929 ありがとうございます。
931 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 11:35:35 ] mainメソッドとコンストラクタの違いは main - VMが起動した時に呼び出される コンストラクタ - クラスをインスタンス化した時に呼び出される という理解でよろしいでしょうか?
932 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 11:39:35 ] よろしいですよ
933 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 11:45:34 ] >>932 ありがとうございます。
934 名前:デフォルトの名無しさん [2008/08/08(金) 12:02:00 ] Javaにおいて、Stringは不変であるからObject.clone()は 実行する必要が無い。 これの実装に関して分からないことがあります。 Javaにおいては 1.protectedメンバは自身の属するパッケージ、 または、所属するクラスのサブクラスからのみ アクセス(利用)できる。 2.全てのクラスはObjectクラスのサブクラス と、認識しています。 ということは、Stringオブジェクトはclone()を実行できると 思ったのですが、protectedメンバなので利用できない旨の コンパイルエラーが出力されます。 なぜでしょうか?
935 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:05:29 ] 1は 所属するクラスのサブクラス<<の中>>からアクセスできる ってこと Stringクラスの外からはアクセスできない
936 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:20:41 ] javaでは継承でアクセス修飾子の範囲(特権)を広げる方向に変更ししてよい。 つまり継承したクラスではclone()をpublicにoverrideできる。 Object.cloneは特別なメソッドでoverrideする場合はCloneableインターフェイスを実装しなければならない。 CloneableはマーキングのみでcloneメソッドはあくまでもObject.cloneである。
937 名前:934 mailto:sage [2008/08/08(金) 12:21:46 ] なるほど・・・ ありがとうございます。
938 名前:デフォルトの名無しさん [2008/08/08(金) 12:26:29 ] "A"のchar型は'A'ですが、"\n"のchar型は何ですか? char c = ;
939 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:40:54 ] char c = '\n';
940 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:48:08 ] >>939 GJ
941 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:50:46 ] これだとエラーが出てしまうんですけど、どうしたらよいでしょうか JButton[] bt = JButton[100]; //ここでエラー for (int i=1; i<=100; i++) { bt[i] = new JButton(new ImageIcon("ohana.jpg")); }
942 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:51:15 ] JButton[] bt = new JButton[100];
943 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:54:14 ] >>942 すいません。寝ぼけてましたっっ
944 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 15:29:05 ] String str = "hoge"; このときStringクラスのコンストラクタは一切呼ばれないのでしょうか。以前聞いたことがあって。 リテラル?を保持するなんかのクラスがあるのでしょうか。 あるとした場合、それはmain以降から呼ばれるクラスでアクセスできるのでしょうか?
945 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 16:33:07 ] >>944 呼ばれます。 "hoge"が使用される時に"hoge"に対応するデータがコンスタントプールから取り出され、 その情報を元にString型のインスタンスが生成されます。 その時にStringのコンストラクタも呼ばれます。
946 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 16:36:18 ] >>945 Stringのコンストラクタにでん部ブレークを張りましたが、決して呼ばれなかったです。 new String(chararray);とかすれば呼ばれますけど。"hoge"でどのコンストラクタが呼ばれますか? ちなみに1.6です。
947 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 16:40:52 ] Stringはランタイムに組み込まれてるからそんなこと考えるのは無意味だよ
948 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 16:48:59 ] 気になるなら、javap してみりゃいいよ。 5: ldc #2; //String hoge 7: putfield #3; //Field str:Ljava/lang/String; これだけだね〜
949 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 18:02:27 ] BufferedImageに任意の大きさに拡大縮小した画像を読み込むにはどうすれば良いのでしょうか?
950 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 18:07:54 ] Graphics g = bufferedimage.getGraphics(); g.drawImage(画像, 0, 0, 任意の幅, 任意の高さ, null); g.dispose();
951 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 18:11:36 ] iteratorでまわし途中で、iterator生成もとのリストを削除する方法ってありますか
952 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 18:15:36 ] Iterator#remove
953 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 18:24:33 ] >>950 レスありがとうございます。 えっと拡大縮小した画像を描画するのではなく、 その画像の高さや幅やRGBを取得して他の処理に用いたいので BufferedImage bi=〜 みたいにBufferedImageのインスタンスに拡大縮小した画像を読み込みたいのです。
954 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 18:29:30 ] 欲しいサイズのBufferedImageを作って、その作ったBufferedImage上に描画すればいいだろ BufferedImage bi = new BufferedImage(任意の幅, 任意の高さ, BufferedImage.TYPE_INT_RGB); Graphics g = bi.getGraphics(); g.drawImage(画像, 0, 0, 任意の幅, 任意の高さ, null); g.dispose();
955 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 20:57:09 ] >>954 今までGraphicsってpaintとかpaintcomponentとかで 引数として既知な感じで扱っていたのでよく理解してなかったですが、 これで描画対象をメモリ上のBufferedImageに出来るんですね。 なんかBufferedImageのコンストラクタって引数にImageとかが無いから 今までどう使うものか分からなかったけど、おかげさまでやりたい処理が出来ました。 ありがとうございます!><
956 名前:デフォルトの名無しさん [2008/08/09(土) 00:41:50 ] テキストファイルにコマンドライン引数で入力したデータを書き込みたいのですが 現時点ではテキストファイルにまでは辿りつくけど文字を記入することができない状態です 修正箇所と修正の仕方を教えてください mport java.util.*; import java.io.* public class A23_StrArray extends A22_StrArray { public void writeFile(String path) throws Exception { Arraylist list = new Arraylist File file = new File(path); //Fileのオブジェクトを生成 FileWriter fw = new FileWriter(file); //Filewriterのオブジェクトを生成 //リストの要素が無くなるまでループ for(int i = 0; i < list.size(); i++) { fw.write(get(i)); } System.out.println("ファイルに書き込みました。"); fw.close(); } }
957 名前:デフォルトの名無しさん [2008/08/09(土) 00:42:59 ] //実行クラス mport java.io.*; import java.util.*; pubic class A23_exec { public static void main(String args[]) { A23_StrArray list = new A23_StrArray(); //書き込み処理 if(inputData.equals("12")) System.out.println("取得内容?"); inputData = input();//コマンドラインからの入力 list.writeFile(inputData); } private static String input() { //入力用オブジェクト BufferedReader cinBuff = new BufferedReader(new InputStreamReader(System.in)); //コンソールからの文字入力 try { //入力用オブジェクトが文字入力を受付、それをStringクラスに代入 return cinBuff.readLine(); } catch(IOException e) { System.out.println("IOExceptionエラー発生!!"); } } }
958 名前:デフォルトの名無しさん [2008/08/09(土) 00:46:05 ] //書き込み処理 if(inputData.equals("12")) System.out.println("ファイル名は?"); inputData = input();//コマンドラインからの入力 System.out.println("書き込むデータは?"); inputData = input();//コマンドラインからの入力 list.writeFile(inputData); 一部修正。正しくはこうです 家のPCにエクリプスが無くてインデントとかおかしい部分もあると思いますが 勘弁してください
959 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 01:04:28 ] public void writeFile(String path) throws Exception { Arraylist list = new Arraylist File file = new File(path); //Fileのオブジェクトを生成 FileWriter fw = new FileWriter(file); //Filewriterのオブジェクトを生成 //リストの要素が無くなるまでループ for(int i = 0; i < list.size(); i++) { fw.write(get(i)); } めちゃくちゃじゃないか。
960 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 01:10:36 ] そのコードのどこでlistに値を詰めているのか教えて欲しい
961 名前:958 [2008/08/09(土) 01:37:34 ] public void writeFile(String path) throws Exception { Arraylist list = new Arraylist File file = new File(path); //Fileのオブジェクトを生成 FileWriter fw = new FileWriter(file); //Filewriterのオブジェクトを生成 String str; str = //リストの要素が無くなるまでループ for(int i = 0; i < list.size(); i++) { fw.write(get(i)); list.add(str); } strを初期化できれば行くんでしょうか? どうすれば初期化できるかわからない
962 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 01:43:14 ] 初期化の方法。 String str = null; もしくは String str = "";;
963 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 01:43:22 ] なんという名前のテキストファイルに、どういう文字列を書き込みたいのか、まずはそれを説明してくれ
964 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 01:44:18 ] //リストの要素が無くなるまでループ 答え: リストに要素はありません><
965 名前:958 [2008/08/09(土) 01:48:24 ] >>962 ありがとうございます。それで試してみます >>963 あらかじめCドラの直下にテキストファイル(仮にabc.txtする)を置いておいて 最初の引数を入力時にc:\ abc.txtで指定した後に 次の引数でファイルに書き込みたいんです
966 名前:958 [2008/08/09(土) 01:51:34 ] 日本語的におかしいので訂正 最初の引数を入力時にc:\ abc.txtと入力して指定した後に 次の引数で書き込む文字列を入力したい
967 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 02:04:04 ] >>966 引数…?Arraylist list=new Arraylist…? 全体を通して頭狂ってるだろ。
968 名前:958 mailto:sage [2008/08/09(土) 02:13:42 ] >>967 >Arraylist list = new Arraylist この行はいらないのかな? エクリプスが家にあれば自分でもおかしいってことがわかると思うんですけどメモ帳だと厳しい 出直してきます。 お手数おかけして申し訳ございませんでした でも初期化の方法がわかっただけでも助かりました
969 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 02:15:04 ] >>956 public static void main(String args[])throws Exception { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.print("ファイル名入力>>"); String file=br.readLine(); System.out.println(filename); FileWriter fw=new FileWriter(file); System.out.println("書き込むデータは?"); fw.write(br.readLine()); br.close(); fw.close(); } なんか書いてくれたコードが不明だが、やりたいのはこういうことじゃなくて?
970 名前:969 mailto:sage [2008/08/09(土) 02:17:19 ] >System.out.println(filename); 前に書いてたコード消し忘れ。これはナシで。
971 名前:958 mailto:sage [2008/08/09(土) 02:26:53 ] >>969 やりたいこととしてはそんな感じなんですけど メインクラスの実行文から呼び出してサブクラスにあるBufferedReaderやFileWriterを使いたい
972 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 02:54:04 ] >>971 これだけおかしいのにeclipseが無いと分からないのは初心者未満すぎるので、 人に聞く前に初心者用の本で勉強してください。 まずは引数やサブクラスの意味、それと掲示板で聞く際の常識から。
973 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 06:17:06 ] 中堅企業以上の場合 ふつう公開されている初任給データに家賃補助は含まれてませんよね?
974 名前:デフォルトの名無しさん [2008/08/09(土) 07:15:01 ] 初任給なんて大手から零細までどこも18〜20万 院卒は+2
975 名前:デフォルトの名無しさん [2008/08/09(土) 07:46:49 ] なんか、複雑な気持ちです。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 アキバ殺傷事件の献花台がホームレスのエサ場に! ttp://www.tanteifile.com/diary/2008/06/30_01/index.html
976 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 13:54:37 ] というかIDE関係ないだろ。
977 名前:デフォルトの名無しさん [2008/08/09(土) 15:44:45 ] SJC-P の試験ですが、試験コード(?)を書くときは、 「310-055J」と「310-055」ではどちらが正式な書き方ですか? (最後に「J」を付けるべきかどうかってことです。)
978 名前:977 mailto:sage [2008/08/09(土) 17:02:48 ] 自己解決しました。 suned.sun.co.jp/JPN/certification/progdetails.html こことか https://www1.prometric-jp.com/exam_list/exam_list.asp ここ見るとJはいらないみたいですね。 お騒がせしました。
979 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:42:54 ] HttpUnitでinnerHTMLはサポートされているのでしょうか? document..getElementById('***').innerHTML = "***"; こんな感じのスクリプトを実行させても、実行できたというtrueは返って来ますが、何が変化したのかさっぱりで・・・ どなたか分かる方よろしくお願いします。
980 名前:デフォルトの名無しさん [2008/08/09(土) 19:58:56 ] コンテンツ産業はGDPの2%、ゲームはその中で更に極僅かな一部分だからな。 産業としてみれば、音楽産業ですら豆腐産業とほぼ同じ市場規模(年間約5000億円)でしかない。
981 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:36:07 ] どこの誤爆だ?
982 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:23:27 ] innderHTMLはJavaScriptですね、わかります
983 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:38:52 ] いやそれは分かってますよ。 JavaScriptはRhinoでサポートされてます。 ですがHttpUnitでの実行のサポートがされているのか気になっているんです。
984 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:46:40 ] 海外のフォーラムに全く同じ質問がある。ググれカス
985 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 22:56:13 ] あんがと!解決したっちゃ!
986 名前:デフォルトの名無しさん [2008/08/10(日) 03:27:40 ] JavaでWindowsやLinux上で動くアプリケーションソフトを製作する場合、 どのようにして配布をするのでしょうか?
987 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 05:41:41 ] jarで固める
988 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 12:49:09 ] J#
989 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 13:19:25 ] >>988 スレ違い
990 名前:デフォルトの名無しさん [2008/08/10(日) 15:05:56 ] Visual Web JSFで データベースのデータをフィルタリングしながら取得するには RowSet←FilterdTableDataprovider←ValueBindFilterCriteria で良いんでしょうか フィルター条件そのものをどこでコントロールすればいいのかも 分からないので ついでに教えてください
991 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:05:11 ] javaでwindowsのWaitForSingleObjectのようなメソッドはあるでしょうか。 特定のイベントが発生するまでのスレッドを待機させ、 イベント発生時にスレッドが自動的に動作するようにしたいのです。
992 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:13:55 ] もうちょい低レベルの同期手段もあるが、まずは基本のモニターを使いこなそう。 synchronized(Object) Object.wait / notify / notifyAll Thread.interrupt
993 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:29:26 ] 印刷処理のように、単純にイベントが発生した時点でスレッドを起動させるので済むって話ならば、待機とかやる必要はないぞ。
994 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:53:40 ] waitで待機しているスレッドが再び動作するには、 誰か別のスレッドにnotifyを呼び出してもらう必要があると思っています。 notifyを明示的に呼ぶのではなく、 ボタンが押されたら自動的にスレッドが動作するようなことを したいのですが、できるものでしょうか。
995 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:08:14 ] JSF(index.jsp)で、テキストボックスに、"foo"と入力して、 フォーム送信したとき、result.jspに飛んで、それ以外が入力された時、 result2.jspに飛んで、未入力でフォーム送信した時、index.jspで、"入力してください。" という処理をするには、どのようなJSPと、faces-config.xmlと、モデルを書けばいいんでしょうか。 おしえてください。
996 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:12:03 ] join();
997 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:30:06 ] >>994 WaitForSingleObjectもそんな機能はないよ ボタンが押されたらnotifyすればいいじゃん
998 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:32:14 ] >>994 Notifyを明示的に呼ぶのとWaitForSingleObject使うのにそんなに差はないような。 何をやりたいのかよくわからないが、スレッドプールが向いてるのかも。 それならコンカレントAPIにいろいろある。
999 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:34:38 ] どんな目的のスレッドをwaitしてんだ?
1000 名前:デフォルトの名無しさん [2008/08/10(日) 18:18:14 ] むしろ次スレをwaitしてるよ
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。