1 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 19:48:24 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下の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質問・相談スレッド111【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1200151522/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝のう存じます。 次スレは>>980 あたりで。
620 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 10:00:34 ] ジェネリクスについての質問が多いのは 初心者には難しいので入門書の段階では取り扱わないからか それとも基本1.4で5.0要素は申し訳程度にしか書いてない本が 未だに主流だからか
621 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 10:21:52 ] 直観的でなくて罠が多いからな
622 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:27:58 ] www.xlsoft.com/jp/products/jet/index.html このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか? もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが
623 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:38:09 ] >>620 俺のとこでは依頼される仕事も未だに1.4全盛なんだよなー。他の会社の人に聞いてもそうだという。5.0に移行するのはいつになることやら。。
624 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:43:56 ] >>622 Javaをネイティブ化したいだけならGCJもあるよ 速くなるとは限らないが Javaが見た感じ重いのはSwingとかライブラリのせいもあるから…
625 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 11:48:02 ] 165 名前: 以下、名無しにかわりましてVIPがお送りします。 [sage] 投稿日: 2008/02/22(金) 11:45:46.56 ID:Q0PQrlKw0 お前らに朗報 pc11.2ch.net/tech/ この板の適当なスレに www.xlsoft.com/jp/products/jet/index.html このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか? もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが と書き込んだらデブスがデブゲバうpするってよお
626 名前:デフォルトの名無しさん [2008/02/22(金) 11:50:08 ] 170 名前:以下、名無しにかわりましてVIPがお送りします。[sage] 投稿日:2008/02/22(金) 11:47:31.63 ID:Q0PQrlKw0 お前らに朗報 pc11.2ch.net/tech/ この板の適当なスレに www.xlsoft.com/jp/products/jet/index.html このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか? もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが こう書き込まないとお前らがキーボード打ってる指があさって腐るそうだ 腐って死ぬぞ??
627 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 12:37:40 ] ジェネリクスを使うだけなら難しいか? Foo[] と ArrayList<Foo> が初心者的には理解しやすくなると思うんだけど 単なる入門書の怠慢だと思う
628 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 14:03:27 ] 始めるんだけど、どの本がオススメですか?
629 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:01:06 ] 初心者で失礼します。どう修正していいかわかりません。宜しくお願いします。 import java.util.Scanner; public class tes { public static void main(String[] args) { char stuname; Scanner kb = new Scanner(System.in); stuname = getStuN("Please enter the student name: ", kb); } //get studnt name public static char getStuN(String str, Scanner kb) { System.out.print(str); char sname = kb.nextLine(); System.out.print(sname); return sname; } } --------- tes.java:15: 互換性のない型 検出値 : java.lang.String 期待値 : char char sname = kb.nextLine(); ^
630 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:08:50 ] >>629 ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Scanner.html nextLine の戻り値型は String です。 よって sname の型宣言を String にして、それ以降の記述を適切に修正してください。
631 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:26:12 ] >>630 できました! ありがとうございましたm(_ _)m
632 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 15:42:51 ] 625 名前:デフォルトの名無しさん[sage] 投稿日:2008/02/22(金) 11:48:02 165 名前: 以下、名無しにかわりましてVIPがお送りします。 [sage] 投稿日: 2008/02/22(金) 11:45:46.56 ID:Q0PQrlKw0 お前らに朗報 pc11.2ch.net/tech/ この板の適当なスレに www.xlsoft.com/jp/products/jet/index.html このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか? もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが と書き込んだらデブスがデブゲバうpするってよお 626 名前:デフォルトの名無しさん[] 投稿日:2008/02/22(金) 11:50:08 170 名前:以下、名無しにかわりましてVIPがお送りします。[sage] 投稿日:2008/02/22(金) 11:47:31.63 ID:Q0PQrlKw0 お前らに朗報 pc11.2ch.net/tech/ この板の適当なスレに www.xlsoft.com/jp/products/jet/index.html このソフトを使えばJavaでもネイティブアプリケーションが作れると書いてあるのですが、そんなうまい話があるんですか? もし本当ならJavaのパフォーマンス面での不利がだいぶ改善されると思うのですが こう書き込まないとお前らがキーボード打ってる指があさって腐るそうだ 腐って死ぬぞ??
633 名前:デフォルトの名無しさん [2008/02/22(金) 18:03:04 ] JAVAからpostgresSQLを操作するプログラムを作成しております。 JAVAからpostgresのでーたをバックアップする方法を知りたいのですが、 JDBCを利用して、postgreSQLのpg_dumpを操作する方法はあるのでしょうか。 また、pg_dump以外にも、JDBCにてデータのバックアップを出来る方法があれば、 ご教授お願いいたします。
634 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 18:19:27 ] >>633 DatabaseMetaData#getTablesで全テーブルを取得して全行クエリしてファイルに書き出すとか・・・ それですべて復元できるかわからないけど Runtime#execでpg_dump呼び出す方が簡単な気がする
635 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 18:33:59 ] >>634 >DatabaseMetaData#getTablesで全テーブルを取得して全行クエリしてファイルに書き出すとか・・・ それは遅そうだw >Runtime#execでpg_dump呼び出す方が簡単な気がする わしもそう思う。 何かの操作が必要だったら、シェルかバッチの中でJavaプログラムで操作したのちに バックアップを走らせた方が効率が良さそうだが。
636 名前:633 [2008/02/22(金) 18:44:15 ] 634,635 どうもありがとうございます。 早速、試してみます。
637 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:07:30 ] 今どきJDBCなんて使う必要あるの?
638 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:32:33 ] 教えてください。 環境:Oracle JDBC PreparedStatementとResultSetを使用し、 SELECTを実行しています。 通常問題ないのですが、バインド変数(?)が11個以上あるSQLを実行した場合、 かつ、レコードのヒット件数が11件以上を超えている場合、 11件目のデータ取得時に「配列の範囲」を超えた、という例外が発生します。 バインド変数はsetStringで1から順に設定し、 設定内容についても問題ないです。 ※デバッガで確認済み SQL自身は問題なく、SQLExceptionが発生しているわけでもありません。 何か回避策はあるのでしょうか?
639 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:03:15 ] まずスタックトレースを貼れ。その話し振りだと単なるバグの可能性が素敵連
640 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:09:44 ] Cで言うところの構造体の代わりにクラスを使っています。 内部変数はInt型が2つ、Boolean型が1つの小さなクラスです。 クラスの2次元配列として2000x2000のインスタンスを生成するコードを書いたら インスタンスを生成する箇所(以下)で for(int j=0;j<2000;j++){ for(int i=0;i<2000;i++){ box[i][j] = new Box(); } } java.lang.OutOfMemoryError: Java heap space というエラーが出てしまいました。 メモリの使い方が下手なんだと思うのですが、 よい対処法が思いつきません。 何か手はあるでしょうか?
641 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:32:58 ] >>640 簡単に計算。integer型として。 4byte * 2 * 2000 * 2000 => 32byte * k * k => 32Mbyte boolean型はどれだけ食うのか分からないが、さらに4-16Mbyte ということで、先の値を目安にし、ヒープを明示的に確保します。 以下ページから java のページ、-Xmx や -Xms オプションを参照のこと。 ttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/tools.html 他の方法もあるとは思いますが、安易な解決法として。
642 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:23:53 ] >>641 ありがとうございます。 そういうやり方もありそうですが、 もう少しコードの書き方について考えてみます。
643 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:24:12 ] tomcatは内部でjspをコンパイルするためにjdkを使っていると聞いたのですが tomcatをインストールする場面ではjdkではなくjreのパスを指定しますよね その後もtomcatの設定でjdkの場所を教えたつもりは無いのですが jspをちゃんとコンパイルしてくれてるみたいです。 tomcatはどうやってjdkを認識してるんでしょうか?
644 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:47:22 ] >>644 JSPのコンパイル用にIBMのJDK積むようになった。 昔はJDKの指定が必須だった。4までだったっけ?
645 名前:643 mailto:sage [2008/02/23(土) 00:52:46 ] >>644 なるほど〜そういうことだったんですね。 モヤモヤしてたのがスッキリしました。 ありがとうございました。
646 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 02:17:56 ] >>640 Int型というのは存在しない Booleanの代わりにbooleanを使ったらどうか?
647 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 03:40:02 ] >>640 試してみた Sun JRE 1.6.0_04 Box[2000][2000] の場合 107MB int[2000][2000][2] + boolean[2000][2000] の場合 110 MB
648 名前:デフォルトの名無しさん [2008/02/23(土) 03:59:50 ] new って複数のスレッドから同時に実行できるんですか?
649 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:06:06 ] >>648 意味が分からん どういう状況を想定しているのか擬似コードでもいいからシンプルな例で示せ
650 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:06:21 ] >>647 まあなんですか、[2000][2000][2] ではなく、[2][2000][2000] をお勧めします。 ついでに用途が合えば boolean[][] ではなく、java.util.BitSet を。
651 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:10:57 ] >>648 コンストラクタはスレッドセーフかって意味なら答えは一般的にはノー
652 名前:648 mailto:sage [2008/02/23(土) 04:16:48 ] 作ったプログラムのどうも動作が遅くて、スレッドダンプをみてみたらほとんどのスレッドが コンストラクタ java.lang.AbstractStringBuilder.AbstractStringBuilder(int capacity)内の value = new char[capacity]; ↑のところでブロックしてたので、非同期でnewは呼べないのかなと思ったんですが ひょっとするとcapacityが大きいときだけ同期呼び出しだったりします?
653 名前:648 mailto:sage [2008/02/23(土) 04:18:31 ] >>651 つまり非同期には呼ばれないってことですね。
654 名前:デフォルトの名無しさん [2008/02/23(土) 04:40:17 ] hou
655 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 04:46:29 ] >>652 ヒープに配列を生成する過程でロックされてそうだ。 仮に非同期に実行できたとしても体感時間は変わらないと思う。 仮にヒープの拡張に時間が掛かってるなら、 最初からヒープを必要な分大きくしておけば少しは早くなる。 あとは初期にやたら時間が掛かるなら、確保するサイズを小さくして、 最大確保を遅延させるのはどうか。 確保するたびに前のゴミが出るのと時間が掛かるけど。
656 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:57:09 ] >>652 確保するサイズが大きいとスレッドごとのプールから取れなくなるから同期が必要になる というかそんな大きなStringBuilderをそんな頻繁に確保するってことがまずい気がする GC起きまくってないか?一度 -verbose:gc で見てみ 確保したのを使いまわすと改善するんじゃないかな
657 名前:お [2008/02/23(土) 11:14:43 ] j2dk1.4.2を使っているのですが、 javacが使えず、環境変数の設定をすると、一度できたんですが、 2回目からできなくなりました。 しかも変数の設定を変えていたので元のがどんなのだったかがわかりません…。 環境変数の、Pathを教えて下さい。
658 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:16:24 ] >>657 >>1
659 名前:お [2008/02/23(土) 11:29:59 ] 読んでもよくわかりません。どなたかー
660 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:51:13 ] >>659 本当に読んだか?具体的にどの手順がわからないんだ java.sun.com/javase/ja/6/webnotes/install/jdk/install-windows.html#path
661 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:00:48 ] >>655 >>656 なるほど!スレッドごとのプールから取れなくなるからってことですか。 このStringBuffer自体はデバッグのための文字列だったのでここの部分を取り払ったら ロック争奪がなくなってスムーズに動きました。 ありがとうございました!
662 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:05:43 ] >>647 >>650 いろいろありがとうございます Intのうち一つはflagで3種類の値しかとらないのでboolean2つで頑張って もう一つのIntをshort型にするとだいぶ減りそうな気がしました。 後で実装してみようと思います boolean2つのところはBitSet?を使えばいいのですかね。。 後でjavadoc読んでみます。
663 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:05:39 ] 下記の構造でメインクラスtestから、VelocityのgetTemplateをコールしたところ、エラーが出ました。 test.jar +-dir1 +-test.class +-templ.properties これで、 > java -jar test.jar と実行すると ResourceManager : unable to find resource 'templ.properties' in any resource loader. というエラーが出ています。 test.jarのおかれているディレクトリにtempl.propertiesがあるか?を探しているようで、 test.jarの中を探していないみたいです。 Main-Class:はdir1.testと指定してあるのでmainはコールできてます。 なにか指定し忘れてることあるんでしょうか。。。お願いします。
664 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:25:09 ] BufferedImageのディープコピーの仕方を教えてください
665 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:30:43 ] もう1回BufferedImageを作れ
666 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:04:50 ] Javaの初心者にExceptionのことを教えたいのですが、 J2SEのクラスの、Exceptionをthrowするメソッドで、 一番基本的で分かりやすいものって何だと思いますか? コンストラクタじゃない普通のメソッドでお願いします。
667 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:11:09 ] ぬるぽ
668 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:11:27 ] NumberFormatException
669 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:19:51 ] いや、Exception自体じゃなく、 Exceptionをスローするメソッドです。 例えば、FileOutputStream#write(byte[] b)とか。
670 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:24:40 ] >>666 // Exception 自体は throw も catch もするな。を教える 実行時例外なら、Integer.parseInt(String) で NumberFormat 普通のヤツは意図的に起こすだけなら ClassNotFound とか IO とか NumberFormat は良い例ではないのよね。 実行時例外の割りに、catchされるように組み込まれてるし。 まあ、別に無理に教える必要は無いんじゃないかな それよりも知らないメソッドは API doc で調べるように仕込むべし。
671 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:38:36 ] ありがとうございます。 実行時例外じゃなくて、 IOExceptionとか、メソッド呼び出すと絶対try catchしないといけないヤツです。
672 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:42:38 ] new FileInputStream ファイルがなければFileNotFoundExceptionを投げる
673 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:45:47 ] って、コンストラクタはだめなのか じゃあ Socket#connect 接続できなければ IOException
674 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:55:35 ] コンストラクタでないわかりやすいもの・・・ ImageIO#read(File) とか?
675 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 18:50:51 ] Stream系のIOExceptionじゃね? try-catch-finally と合わせて覚えるのがセオリーかと
676 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:40:42 ] みなさんありがとうございます。 finnalyも合わせて、Stream系で説明してみようと思います。
677 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:55:38 ] IOException もいいが ParserConfigurationException も捨てがたい
678 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:54:30 ] 学校でちょっとプログラムに興味あって色々自分で勉強してみたんですがJavaって簡単過ぎてつまらないんですがこんなので仕事になるんでうか? HTMLも簡単だったし仕事では何やってるんですか?
679 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:58:40 ] オナヌー
680 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:00:51 ] >>678 ひとつだけいえることはつまらないと思う人は これを仕事にしてはいけませんよ。
681 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:01:05 ] 簡単か難しいかと、仕事になるかならないかは、関係ないからな なにせ「単純労働」っていう言葉もあるくらいだ
682 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:01:06 ] 言語は簡単でいいんだよ
683 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:40:01 ] 27歳になってJAVAで開発チームに入る事になりました。 今までの業務開発経験は、COBOL3年あとはVBAぐらいですかね・・。 4年程前にSUNJAVA1.4の資格は取得したんで基礎的な事は大丈夫と思います。 実際に業務で役に立つ為に、他にどんな勉強しておけばいいですかね? とりあえずTOMCATとMYSQL入れて、なんか作ってみようかなと思ってますが、 業務レベルでは全く無意味なんでしょうね・・
684 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:52:48 ] tomcatとmysqlが何で無意味なの?普通に業務レベルで使うのに。 とりあえずeclipseで簡単なwebアプリでも作ってみたら?
685 名前:683 mailto:sage [2008/02/24(日) 01:06:18 ] やっぱ業務でも使うんですね。 いや、簡単な事やっても業務レベルでは通じないかなぁと。 でも基本的な事分かってると大分入りやすいですよね。 適当にDB構築してWEBアプリ作ってみます。
686 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:32:01 ] 適当にDB構築できちゃうレベルなら心配無用だと思うけど…
687 名前:デフォルトの名無しさん [2008/02/24(日) 08:34:52 ] class calcException extends Exception { } public class sample53 { public static void main(String[] args) { try { calc(2,2); }catch (calcException e) { System.out.println("calcExceptionが"+"throwされました"); } } static void calc (int i,int j) throws calcException { if(i == j) { calcException ce = new calcException(); throw ce; } System.out.println(i*j); } } これなんですけど、 if(i == j) { calcException ce = new calcException(); throw ce; この部分でどういう処理を行っているのですか?
688 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 08:50:07 ] 普通に例外なげてるんじゃね
689 名前:デフォルトの名無しさん [2008/02/24(日) 09:23:16 ] throw ceってなんですか? もしiとJの値が同じなら、オブジェクトを作成して、その後はなんですか?
690 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:30:37 ] だから例外投げてるんだよ
691 名前:デフォルトの名無しさん [2008/02/24(日) 10:10:44 ] たびたび申し訳ないが、 static void calc (int i,int j) throws calcException この部分はこの式は例外を投げる式ですよってこと?
692 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:14:30 ] このメソッドはcalcExceptionを投げ得ますよってこと。
693 名前:お [2008/02/24(日) 10:27:48 ] >>660 [追加します]とありますが全部変えてしまいました。全部どう記述するのか聞きたいです。
694 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:33:26 ] >>693 つ ttp://okwave.jp/qa2940675.html
695 名前:デフォルトの名無しさん [2008/02/24(日) 11:13:00 ] >>692 ありがとうございました><
696 名前:お [2008/02/24(日) 11:30:48 ] wbemの場所ってわからないことないですか?
697 名前:お [2008/02/24(日) 11:36:33 ] 設定方法わかりませーん
698 名前:デフォルトの名無しさん [2008/02/24(日) 11:57:29 ] @F8押す→3秒待機→F8押す Bこの処理を500回ループした後 AF7押す→1秒待機→F8押す→1秒待機 C処理Aを30回繰り返し@に戻る こういうプログラムはjavaだったら可能でしょうか? ゲームに使うのでVBみたいにF8押したことにしますってのではなくて 実際に押すことが重要なんです
699 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:09:13 ] >>698 >>96 VB が何をやってるのか知らんが、 人がキーを押したときと同じような結果をシミュレートすることは可能。 // 自動演奏みたいにキーボードが動く……誰かそういうヤツを作ってください。
700 名前:デフォルトの名無しさん [2008/02/24(日) 12:16:39 ] VBではSENDKEYなるメソッドがあり それを使うとたとえば F8押した時、1+1の処理をするというプロシージャがあった場合 SENDKEYによって1+1を呼び出すことはできますが 実際にF8を押すという動作がウィンドウズ内で行われている というわけではないようです (押した時のようにキーをへこませるといわけではありません。念のため) ようするに、キーを押した後の処理ではなく、キーそのものを押したことを キーを押さずにウィンドウズに認識させたい
701 名前:お [2008/02/24(日) 12:22:46 ] 設定方法わかりませーん
702 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:25:25 ] >>700 なるほど。イベントのトリガーとして登録させてるようなものですかね。 ということで、96 を実行することで少しは感動してもらえそうな予感。
703 名前:デフォルトの名無しさん [2008/02/24(日) 12:31:18 ] どうやらjavaなら可能なようですね 勉強します
704 名前:11 mailto:sage [2008/02/24(日) 12:31:27 ] 画面A,B,Cとあり画面CのB画面終了ボタンを押すとB画面のみ終了させたいと考えてますが さっぱりわかりません。どなたかご教授願います。 /*ソースここから*/ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Gamen extends JFrame implements ActionListener{ private JButton b1 = new JButton("B画面表示"); private JButton b2 = new JButton("終了"); private JButton b3 = new JButton("C画面表示"); private JButton b4 = new JButton("B画面終了"); public void GamenA() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(b1); getContentPane().add(b2); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("A画面"); setSize(200, 100); setVisible(true); b1.addActionListener(this); b2.addActionListener(this);} public void GamenB() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(b3); getContentPane().add(b2); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("B画面"); setSize(200, 100); setVisible(true); b3.addActionListener(this); b2.addActionListener(this);} //続きます
705 名前:704 mailto:sage [2008/02/24(日) 12:33:21 ] すみません>>704 は11さんとは無関係です。 続き public void GamenC() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(b4); getContentPane().add(b2); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("C画面"); setSize(200, 100); setVisible(true); b4.addActionListener(this); b2.addActionListener(this);} public void actionPerformed(ActionEvent e){ if(e.getSource() == b1){ Gamen bb = new Gamen(); bb.GamenB(); }else if(e.getSource() == b2){ System.exit(0); }else if(e.getSource() == b3){ Gamen cc = new Gamen(); cc.GamenC(); }else if(e.getSource() == b4){ //B画面終了ボタンを押してBのみ画面を終了させたい。 } } public static void main(String[] args) { Gamen aa = new Gamen(); aa.GamenA(); } } /*ソースここまで*/ よろしくお願いします。
706 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:34:45 ] >>698 Javaはある程度のことしかできないし、そういうものであれば既存のソフトで腐るほどありますよ。 自分でやりたいなら何らかのスクリプトを使うことをおすすめしておきます。
707 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:43:52 ] 一つ一つのフレームは、その他のフレームのインスタンスを持ってないから現状では無理。 閉じさせるフレームのインスタンスを持たせて、それでactionPerformedでdisposeしてやれば実現できるけど・・・継承とかそこらへんの意味を見直した方がいいと思うよ。
708 名前:705 [2008/02/24(日) 12:53:30 ] >>707 様 ありがとうございました。 勉強しなおしてきます。
709 名前:638 mailto:sage [2008/02/24(日) 13:30:03 ] >>639 業務なのでスタックとレースはちょっと貼れません・・・ 実際に発生している問題は パターン1 setStringでパラメータを19個設定 検索ヒット件数が10件以下 →問題なし パターン2 setStringでパラメータを19個設定 検索ヒット件数が11件以上 →ResultSetでlastや、11件目のnextで例外発生 スタックとレースに配列の範囲外を指定(詳細19)というエラーが出力される。 ※パラメータを15や11にした場合も同様に(詳細15)のように出力される。 パターン1と2で使用しているSQLは全く同一。 パターン1と2の違いはパラメータの1つの日付の範囲を数ヶ月広げているだけ。 パラメータを全て直接SQLに埋め込んだ場合、データが件数分正しく取得できます。 パラメータに上限とかあるのでしょうか? SQLはそれなりに大きいです。100行程度。
710 名前:お [2008/02/24(日) 14:16:01 ] 設定方法わかりませーん
711 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:16:23 ] >>709 Oracle なら、詳細19とか詳細15とかマニュアル嫁 それの何処に配列が出てくるのか謎
712 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 14:18:34 ] 問題ない部分だけの抜粋でもいいからスタックトレース貼ったらどうか。 例外は本当にOJDBCで出てるのか?
713 名前:638 mailto:sage [2008/02/24(日) 14:29:54 ] ResultSetやPreparedStatementをデバッガで除くと、 設定したパラメータが正しい内容で格納されているのは確認しています。 出力される例外はArrayIndexOutOfBoundsExceptionです。 ここでパラメータの数が「詳細 パラメータ数」と表示されます。 >>711 まず、SQLExceptionじゃないです。 上記通り、19とか15はパラメータの総数が出力されます。 謎ですが。 >>712 そもそも業務で外部接続できないので貼れません・・・ 例外は、ResultSetのnextが11回目に呼び出されたタイミングで発生します。 ResultSetの処理の中でArrayIndexOutOfBoundsExceptionで死亡します・・・
714 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:02:57 ] test
715 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:05:15 ] 固定長*可変長の配列を作りたいです。 (i方向が固定でj方向が可変、初期は空) import java.util.*; public class Test2{ public static void main(String[] args){ ArrayList<Integer>[] a = new ArrayList<Integer>[10]; for(int i=0; i<a.length; i++){ a[i] = new ArrayList<Integer>(); } a[0].add(3); System.out.println(a[0]); } } こう書きましたがエラーが出ます。 どこがおかしいのでしょうか?
716 名前:ちんこ ◆GbXlaaQNk. [2008/02/24(日) 17:05:45 ] age
717 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:07:30 ] 固定長のちんこなんて要りません
718 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:09:04 ] 1〜nの整数の順列をすべて表示するプログラムを書いてみたのですが もっと簡単にやる方法とかここはこうしたらいいとかあったらアドバイスお願いします import java.util.*; class PermutationTest { public static void main(String[] args) { Permutation perm1 = new Permutation(4); perm1.PrintPermutation(); return; } } class Permutation { private int N; private int[] ans; Permutation(int N){ this.N = N; this.ans = new int[N]; } void PrintPermutation() { int[] a = new int[N]; for (int i = 0; i < N; i++) { a[i] = i+1; } this.subPrintPerm(a,0); } 続く
719 名前:ちんこ ◆GbXlaaQNk. mailto:sage [2008/02/24(日) 17:09:27 ] まぁまぁそういわず。 なんでエラーが出るのかさっぱり分からなくてね。
720 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:09:46 ] >>718 の続き private void subPrintPerm(int[] a, int idx) { // 配列a[]から1つ取り出して残りで再帰呼び出し if (a.length == 1) { ans[idx] = a[0]; ansを表示; return; } for (int i = 0; i < a.length; i++) { int[] b = new int[a.length-1]; ans[idx] = a[i]; int j=0; while (j < b.length) { if (j < i) { b[j] = a[j]; } else { b[j] = a[j+1]; } j++; } this.subPrintPerm(b,idx+1); } } }